-
Fototrend
Okos Otthon összefoglaló
Új hozzászólás Aktív témák
-
Yoshida
aktív tag
Közben találtam pi-hez nfc modult, de lefoglalja az egész 40pin-es konnektort, akkor ehhez kell egy 1to3 connector multiplier modul?
Raspberry Pi 3 Model B 40 Pin GPIO Adapter Extension Board 1 To 3 40 Pin Plate Module
Ez jelent bármilyen korlátozást ennek a használata?
-
layerke
aktív tag
Jó sokat írtál és a rengeteg kérdésre a válasz: igen. A pi-arduino-domoticz kombó és még jó sok kiegészítő tudja mindazt, amit szeretnél. Én is szeretem a "madzagot", de teljesen megbízhatónak találom a 433 MHz-es, a 868 MHz-es és a 2,4 GHz- es eszközöket is.
[ Szerkesztve ]
-
layerke
aktív tag
Én a pi-arduino kombót úgy értem, hogy pi az agy és arduino pl a gateway vagy a szenzorok agya.
Indulásnak: mysensors.org
[ Szerkesztve ]
-
Mana86
tag
Pontosan ilyet szeretnék én is, kivéve a kulcs nélküli megoldás. Sajnos nekünk még nincs meg a ház, de szeretném addig tudni, hogy mit, hogyan lehet megvalósítani, hova kell majd kábelcsatornát építeni. Pl, az előszobai villany kapcsolásának vezérlésére mozgásérzékelőt vagy fénysorompót ideálisabb kiépíteni? Vezetékezés szempontjából ez sem mindegy és nem triviális melyik lenne a jobb megoldás. Nyilván mindkettőnek vannak előnyei és hátulütői. Ezért szeretnék én is képbe kerülni addigra, hogy akkor már az akkori tudásomhoz megfelelő legjobb megoldást válasszam ami lehetőleg már később sem fog nagy átalakítást igényelni. WiFi -t hanyagolom én is mert nem tartom biztonságosnak, főleg nem IoT eszközöknél (lásd a pár hónappal ezelőtti esetet).
Szerintetek a következő elképzelés megvalósítható? Arduinoval még most ismerkedem (nem mint ha Pi-vel nem így lenne...) és azt tudom, hogy USB-n keresztül lehet vele kommunikálni. Úgy képzeltem el a rendszert, hogy minden "egységet" (pl. világítás, hűtés-fűtés, szellőztetés, sötétítés és ezek kombinációit) külön Arduino vezérelne. Kábelezés szempontjából ez a legrosszabb mert az összes Arduinot és Pi -t egy központi helyre tenném. Szóval az összes Arduino -t a RPi vezérelné, illetve azon keresztül tudnám configolni őket és a RPi fogadná az Arduinoktól érkező jeleket is amit feldolgozna. Tulajdonképpen, ahogy layerke is írta, Pi lenne az agy és az Arduino -k pedig a szenzorok agya.
Milyen módon lehet ennyi Arduino -t rákötni egyetlen Pi-re és hogyan valósítható meg, hogy Pi-vel egy webfelületen keresztül (okos otthon vezérlő GUI) módosítsam az Arduino beállításait?Erre mind-mind alkalmas a Domoticz?
-
Mana86
tag
Igazad van. Mindent amihez nem kell vezeték azt nekem automatikusan WiFi. Ezért nem állt össze.
Sajnos még mindig nem volt időm Domoticz-ra, pedig már eléggé rá vagyok pörögve a dologra. Fél órára meg nincs értelme nekiállni. Vasárnap szerintem leülök délután és beleásom magam.
-
polyszi2013
csendes tag
Ha megjönnek (Esp8266, Pi, Arduino), akkor természetesen a pi-n lesz minden a nexus 7 csak egy falra szerelt "okos" kijelző lesz, ami fogadja majd a hang parancsokat és futtatja majd az openHAB klienst.
Több hónapja pihent a nexus a szekrényben és tegnap szerettem volna beüzemelni és folyamatos boot ciklusba került.. Mondom okés akkor rádugom a gépre, ADB és kész, erre a gépemen sem bootol az ubuntu... csak a windows megy.. Oké próbáltam megoldani, de mivel ennyi időm nem volt elengedtem a dolgot, viszont feltettem a windowsra a oHAB-ot.
Elég hamar problémába ütköztem, mert egyszerűen nem látja az RM-bridge-el megosztott Broadlinkemet... És meg mondom őszintén, nem igazán találtam semmilyen olyan leírást, ahol érhetően le lenne írva, hogy akár egy mqtt vagy bármit, hogyan állítsak be... Persze vannak megadva scriptek, de csak egy egy sor, viszont sehol sem találtam a paper UI-n olyan részt, ahova ezeket betudnám illeszteni és számomra szükséges sorokkal kiegészíteni... Konkrétan semmit sem tudok megadni, mert elvileg neki kellene megtalálnia, szinte mindent... De úgy soha nem fogja megtalálni, ha nem tudom megadni az IP-ét amin keresztül tudok parancsokat küldeni, hogy vezérelni tudjam a lámpát, tv-t stb..Valakinek ötlet, hogy hogyan kellene? HTTP-s add-on telepítettem, de konkrétan semmit sem tudok vele kezdeni, mert mikor létre szeretnék hozni egy Thing-et akkor semmi nem történik csak egy fehér képernyő... Item-t tudok hozzá adni, de dekralálni nem.. Megtudom adni a nevét hogy milyen kategóriába tartozik és ennyi...
Azt hiszem sokkal bonyolultabb lesz, mint azt előre gondoltam -
vargalex
félisten
Még egy szavazat a pushbullet-re. Igaz nem Domoticz-ból, hanem saját scriptből, de azt használom. Böngésző plugin is van (legalábbis Chrome-hoz biztosan), így akár PC-re is megjönnek az értesítések.
Ha jól emlékszem, csoportokba lehet szervezni az eszközöket és a csoportnak lehet értesítést küldeni. Bár ebben nem vagyok teljesen biztos, de ha gondolod, szívesen megnézem.[ Szerkesztve ]
Alex
-
Yoshida
aktív tag
Tegnap este volt 10 percem, rájöttem, hogy arduino pro / pro mini is van az arduino IDE progiban, azt kiválasztva sikerült feltölteni a sketch-et, domoticz meg is találta a node-ot (tehát megy a 2.4GHz-es rádió kommunikáció), látja hogy van rajta egy temp meg humidity sensor, de mégsincs rajta adat, és unknown sketch-nek ismeri fel a node-ot, míg a gateway-nél látja hogy temperature sensor, vagy mi a sketch neve, és ugyanazt töltöttem fel a node-ra is, ott mégse megy...
Majd agyalok még rajta, hogy mi a baja. Meg rákeresek domoticz site-on.
szerk: közben azt találtam, hogy lehet hogy gyenge a rádió, kell a kondi neki segítségnek (ezt több helyen is írják, hogy ajánlott a kondi, az stabilizálja a tápját a rádiós egységnek) este kipróbálom.
[ Szerkesztve ]
-
Yoshida
aktív tag
Alakul ez, 10 percet várni kell ha bekapcsolom a kültéri egységet, utána kezd el hő és páratartalom adatot küldeni. A rádió megjavult a kondival 22uF-et raktam rájuk, az került a kezem közé először. 4.7-47uF-ig bármi jó, azt írják.
Egyelőre sajna 0 fokot, és 0% párát ír ez a kültéri egység (itt van a másik mellett az asztalon), lehet hogy hibás a szenzor, de várok még vele fél órát 3.3V-ot most megkapja, azzal mennie kellene. -
balibatyo78
csendes tag
A ttyAMA0 a PI GPIO tüskéin lévő soros port (RX,TX) Amit te belinkeltél leírást, az az SPI-buszos átjáró. Ha USB-n csatlakoztatsz mondjuk egy Arduino nanoval egy serial gateway-t akkor az ttyUSB0-ként kell hogy megjelenjen a domoticz felületén. egyéb parancssoros dolgokra ilyenkor nincs szükség.
Amivel rengeteget sz*vtam hogy a USB-soros átalakító IC-k nem mindegyik elég gyors, és téveszt. ha több csomagot küldök be a gateway-nek, akkor téveszt, maradnak ki infók. Egyedül a CH340-es chippel szerelt nanók váltak be ilyen átjáróhoz, vagy pedig az itead-ról mostmár rendeltem egy sensebender gateway-t, ami az ethernetet is tudja, de egyenlőre sorosként használom. Nem nagyon favorizálom az USB-s átjárókat, mert ha újraindítom a málnát akkor keverednek a soros port címei. Igaz össze lehet bind-olni, de ha cserélek valamit, akkor megint bukik minden.
-
balibatyo78
csendes tag
Igazából én nem sok értelmét látom a DC-DC konverternek. a szenzorok az nrf24 és az atmega elketyeg 1,8V-tól. Addig úgy sem lehet leengedni az elemet, mert ott már nincs power ami az adáshoz kell. Az atmegához pedig sensebender bootloadert használok 8Mhz-en. Azt még tesztelem, hogy mekkora az a fesz amikor még biztonságosan elküldi az adatot. de sajnos ahány féle elem gyártó, annyiféle elem. CR123A típust használok.
Nekem így nég ki egy beltéri szenzor, amin 2 féle I2C kiosztás van:Jut eszembe! Ha valaki tudja, honnan lehet olyan nrf24l01 rádiót venni, ahol az antenna végén nincs az a pici pötty, az érdekelne. sajnos azt vettem észre, hogy ez a sorozat, ami a képen is van, nagyon vacak a rádió térereje. A GND réteg jobban belóg az antennához. Ez nekem már 5 méteren is okozott hibákat, és a kommunikáció is jóval lassabb.
[ Szerkesztve ]
-
balibatyo78
csendes tag
Nekem sosem volt ilyen baj, hogy az arduino gyorsabban éled fel. Ha így is van, mert így van, mikor a domoticz megnyitja azt a soros portot amin a gateway van, akkor az arduino rebootol egyet.próbáld ki, mikor PC-n van a gateway, és a soros portnak átállítos pl a sebességét. Simán újraindul. De ha nem is indulna újra akkor is ha érkezik egy mysensors üzenet a rádióra, ő azonnal továbbítja a málnának soroson. Szoval onnan a Domoticz látja. Nálad valami más dolog lehet szerintem.
Igen, ez az USB hozzárendelés működik, én így használom a sok soros cucc miatt.
Ezt a VNC-s dolgot nem értem. Te használod a raspbian grafikus felületét? Én még soha nem dugtam monitort a málnára. simán SSH-val lehet mindent konfigolni.
-
Zirowe
nagyúr
Igen, ezt néztem én is a videón, hogy az alkalmazás nem érzékeli a státuszát, de elvileg erre is van vmi megoldás, talán itt láttam, hogy említik.
We've jumped way beyond the Red Line. Limited supplies. Limited fuel, and now no hope! But I promise you one thing. On the memory of those lying here before you, we shall find it. And Earth will become our new home. So say we all!
-
drogery
tag
Nekem az nem tetszik, hogy az appban is fordítva lesz néha így a jelzés, felkapcsoltnak írja, közben meg le van kapcsolva a lámpa... Ha lesz egy alaprajzod, össze vissza lesznek a világítások így rajta, nem fog egyezni a valósággal.
én EasyESP fw-vel használok SonOff-ot, igaz nem falban, de van rajta kapcsoló. Ezzel felületen állítható, hogy küldjön update-et a servernek (ami nálam Domoticz) így az appban helyesen jelenik meg.
Engem az zavar, hogy a fali kapcsoló fel van kapcsolva, de nem világít. Erre meg jó a nyomógomb.
-
balibatyo78
csendes tag
BME280-t kollegám összehasonlította testo-s műszerrel. Akkor volt pontos, mikor a szenzor állítva volt. Amúgy csalt. De én pl DHT22-re nem tudtam rendesen szabályozni a fűtésem. Most bmp180-al mérem a hőmérsékletet, és 0.2 c fokot ingadozik csak.
BME280-nál már azt is észrevette mikor a tenyerem kb 10cm-re tettem tőle. Század fokokat stabilan áll. Mivel ilyen srabil, nem billeg a mérés, nincs felesleges adatküldés rádiós szenzor esetén. Nekem ez a favorit. :-) -
Mana86
tag
És úgy simán be tudod húzni a mérési adatokat domoticz-ba? Esetleg be tudnád linkelni nekem a leírást? Nagyon hálás lennék. Amúgy pont ez volt a tervem, hogy Arduinora fűzöm fel a szenzorokat.
Amúgy próbálom most kicsit átfogóbban tanulmányozni ezt a témát mert eddig elég kapkodva próbáltam összetenni a dolgokat és lehet ezért nem ment igazán. Ez a MySensors tulajdonképpen egy letölthető és installálható keretrendszer ami segít kommunikálni az eszközökkel rádiófrekvencián ugye? Jól értem? Csak mert már milliószor láttam millió helyen, de fogalmam sincs mire jó. Ezeket a keretrendszereket még tanulmányoznom kell mert én úgy indultam neki ennek az okos otthon dolognak, hogy majd Pythonban szépen megírok mindent. Aztán jött ez a topic és láttam, hogy ennél jóval egyszerűbben, gyorsabban és hatékonyabban is megoldható amit tervezek.
Nézem most ezt a node red-et is, de nagyon halvány képem van még róla. Azt látom, hogy egy "baromi egyszerűen" lehet vele funkciókat írni, de azt még nem tudom, hogy pontosan hogyan és min keresztül kommunikál a szenzorokkal. Kicsit vájkálok még a témában.
-
Mana86
tag
Köszi a részletes leírást! Otthon ezt átnézem tüzetesen.
Nálam annyi lesz a különbség, hogy nem lesz rádió semmire. Minden eszköz vezetékelve lesz. Arduino Uno van otthon, arra szeretném kötni a dht11 -et és valószínűleg USB-n fogom összekötni a RPi-vel amin a domoticz fut.
-
balibatyo78
csendes tag
Igazából én is azért döntöttem a mysensors mellett mert bármilyen adatot be lehet küldeni domoticz-nak, csak a fantázia szab határt. Próbáltam az esp wifi modulokat, a nodemcu-t is. Jó jó, de macerás, fogyasztása nagy, elemes szenzort kinlódás vele csinálni, és árban se olcsóbb mint egy nrf24l01 + arduino. Eddig bármit meg tudtam mysensors-al oldani.
-
félisten
Tapasztalatom még nincs a NodeMCU-val, csak egy barátom nyomatja nagyon, hogy ez a szuper eszköz -- ő viszont szó szerint profi a témában.
Ezért is vagyok kíváncsi minden más megoldásra is, így erre a serial-USB-re is.MaCS
Fán nem lehet motorozni, motoron viszont lehet fázni!
-
Mana86
tag
Kicsit kapkodva írtam a hsz-t, néha magam sem értem mit akarok. Megköszönném ha át tudnád dobni a Sketch-et.
Szerintem a legfőbb probléma, hogy nem nagyon volt időm eddig foglalkozni a dologgal és nem olvastam eleget, kapkodva próbálok mindent megoldani kódok összeollózásával és tulajdonképpen sokszor magam sem értem teljesen mit is csinálok. Ha tudnál küldeni pár linket hasznos oldalakról, basic cuccokról, leírásokról, hogy mihez mi kell, gatewayek, kommunikációs protokollok, stb... az nagyon sokat segítene. MySensors oldalt nézegettem, de nem igazán találtam amit keresek. Az a baj, hogy összefüggések nincsenek meg, hogy mire milyen alternatívák vannak, mit mivel lehet megoldani és hasonlók. RPi és Arduino kapcsolatát mindenhol rádión oldják meg én viszont ragaszkodom az usb-hez (vagy legalább a vezetékekhez), így nem nagyon találtam normális tutorialt az én esetemre.
A tervem most az, hogy Rpi lesz egy webserver, adatgyűjtő, loggoló és tulajdonképpen mindennek az "agya", Arduinot gatewaynek szánom amire ráakasztom a kívánt szenzorokat, reléket és így ezen keresztül történne minden. Arduino futtatná a kódot a szenzorok jeleinek kiolvasására és továbbítaná az adatokat az Rpi-n futó domoticznak vagy nodered olvasná. Ahogy most a fejemben vannak a dolgok nodered és domoticz az én esetemben tulajdonképpen pont ugyan arra való csak nodered -del mélyebben bele lehet nyúlni. Ezt jól látom?
-
Yoshida
aktív tag
Feladtam egyelőre a kültéri hőmérés dolgot
Két vadiúj alkáli elemmel másfél hetet ment, pedig mindkét ledet leszedtem a pro miniről. Egyedül a feszstab van még rajta, ahhoz béna vagyok hogy leforrasszam.
Amint 1.36V-ra leesnek az elemek, valami megáll. Elemcserével újra jó, de nem módi hogy másfél- két hetente elemet cseréljek...
Valszeg a sketch se optimális, percenként ad új hőmérséklet értéket a domoticznak, lehet elég lenne 5 perc is.
balibatyo78 ha olvasod, neked milyen sketched van? Nem tudnád megosztani? (ha van BME280-hoz való)
köszi
-
fecus
őstag
Be kell a sketchben állítani, hogy csak változáskor küldjön adatot és azt is csak 5 percenként vizsgálja.
"Szörnyek léteznek, de túl kevesen vannak ahhoz, hogy igazán veszélyesek legyenek. Sokkal veszélyesebbek az átlagemberek, a funkcionáriusok, akik készek hinni és cselekedni anélkül, hogy kérdéseket tennének fel." (fordította DeepL ) - Primo Levi
-
balibatyo78
csendes tag
Nekem ez a kód van a BME280 szenzorban:
Arduino 1.8.2 felület alatt MySensors 2.1.1 library és a hardver konfig pedig a MySensors AVR boards. Abból a Sensebender micro 8Mhz-es bootloader van beégetve. Ezt telepíteni az Arduino IDE-n:
Tools - Board - Boards Manager ott megkeresed a MySensors AVR boards by MySensors-t Nekem most az 1.0.1 van telepítve. Aztán ki tudod választani a hardverek között a Sensebender boardot. Bootloader feltölt, és mehet rá soroson a sketch. Bootloaderhez viszont kell valami ISP-s kütyü amivel feltöltöd. Én USBASP-t használok./**
* The MySensors Arduino library handles the wireless radio link and protocol
* between your home built sensors/actuators and HA controller of choice.
* The sensors forms a self healing radio network with optional repeaters. Each
* repeater and gateway builds a routing tables in EEPROM which keeps track of the
* network topology allowing messages to be routed to nodes.
*
* Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
* Copyright (C) 2013-2015 Sensnology AB
* Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
*
* Documentation: http://www.mysensors.org
* Support Forum: http://forum.mysensors.org
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation.
*
*******************************
*
* REVISION HISTORY
* Version 1.0 - Henrik Ekblad
*
* DESCRIPTION
* Pressure sensor example using BMP085 module
* http://www.mysensors.org/build/pressure
*
*/
// Enable debug prints to serial monitor
#define MY_DEBUG
#define MY_NODE_ID 32
#define MY_RF24_PA_LEVEL RF24_PA_LOW
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#define MY_RF24_CE_PIN 9
#define MY_RF24_CS_PIN 10
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#define MY_RADIO_NRF24
#include <SPI.h>
#include <MySensor.h>
#include <Wire.h>
// BME280 libraries and variables
// Bosch BME280 Embedded Adventures MOD-1022 weather multi-sensor Arduino code
// Written originally by Embedded Adventures
// https://github.com/embeddedadventures/BME280
#include <BME280_MOD-1022.h>
#define BARO_CHILD 0
#define TEMP_CHILD 1
#define HUM_CHILD 2
const float ALTITUDE = 23; // <-- adapt this value to your location's altitude (in m). Use your smartphone GPS to get an accurate value!
// Sleep time between reads (in ms). Do not change this value as the forecast algorithm needs a sample every minute.
const unsigned long SLEEP_TIME = 60000;
const char *weather[] = { "stable", "sunny", "cloudy", "unstable", "thunderstorm", "unknown" };
enum FORECAST
{
STABLE = 0, // "Stable Weather Pattern"
SUNNY = 1, // "Slowly rising Good Weather", "Clear/Sunny "
CLOUDY = 2, // "Slowly falling L-Pressure ", "Cloudy/Rain "
UNSTABLE = 3, // "Quickly rising H-Press", "Not Stable"
THUNDERSTORM = 4, // "Quickly falling L-Press", "Thunderstorm"
UNKNOWN = 5 // "Unknown (More Time needed)
};
float lastPressure = -1;
float lastTemp = -1;
float lastHum = -1;
int lastForecast = -1;
const int LAST_SAMPLES_COUNT = 5;
float lastPressureSamples[LAST_SAMPLES_COUNT];
// this CONVERSION_FACTOR is used to convert from Pa to kPa in the forecast algorithm
// get kPa/h by dividing hPa by 10
#define CONVERSION_FACTOR (1.0/10.0)
int minuteCount = 0;
bool firstRound = true;
// average value is used in forecast algorithm.
float pressureAvg;
// average after 2 hours is used as reference value for the next iteration.
float pressureAvg2;
float dP_dt;
boolean metric;
MyMessage tempMsg(TEMP_CHILD, V_TEMP);
MyMessage humMsg(HUM_CHILD, V_HUM);
MyMessage pressureMsg(BARO_CHILD, V_PRESSURE);
MyMessage forecastMsg(BARO_CHILD, V_FORECAST);
float getLastPressureSamplesAverage()
{
float lastPressureSamplesAverage = 0;
for (int i = 0; i < LAST_SAMPLES_COUNT; i++)
{
lastPressureSamplesAverage += lastPressureSamples[i];
}
lastPressureSamplesAverage /= LAST_SAMPLES_COUNT;
return lastPressureSamplesAverage;
}
// Algorithm found here
// http://www.freescale.com/files/sensors/doc/app_note/AN3914.pdf
// Pressure in hPa --> forecast done by calculating kPa/h
int sample(float pressure)
{
// Calculate the average of the last n minutes.
int index = minuteCount % LAST_SAMPLES_COUNT;
lastPressureSamples[index] = pressure;
minuteCount++;
if (minuteCount > 185)
{
minuteCount = 6;
}
if (minuteCount == 5)
{
pressureAvg = getLastPressureSamplesAverage();
}
else if (minuteCount == 35)
{
float lastPressureAvg = getLastPressureSamplesAverage();
float change = (lastPressureAvg - pressureAvg) * CONVERSION_FACTOR;
if (firstRound) // first time initial 3 hour
{
dP_dt = change * 2; // note this is for t = 0.5hour
}
else
{
dP_dt = change / 1.5; // divide by 1.5 as this is the difference in time from 0 value.
}
}
else if (minuteCount == 65)
{
float lastPressureAvg = getLastPressureSamplesAverage();
float change = (lastPressureAvg - pressureAvg) * CONVERSION_FACTOR;
if (firstRound) //first time initial 3 hour
{
dP_dt = change; //note this is for t = 1 hour
}
else
{
dP_dt = change / 2; //divide by 2 as this is the difference in time from 0 value
}
}
else if (minuteCount == 95)
{
float lastPressureAvg = getLastPressureSamplesAverage();
float change = (lastPressureAvg - pressureAvg) * CONVERSION_FACTOR;
if (firstRound) // first time initial 3 hour
{
dP_dt = change / 1.5; // note this is for t = 1.5 hour
}
else
{
dP_dt = change / 2.5; // divide by 2.5 as this is the difference in time from 0 value
}
}
else if (minuteCount == 125)
{
float lastPressureAvg = getLastPressureSamplesAverage();
pressureAvg2 = lastPressureAvg; // store for later use.
float change = (lastPressureAvg - pressureAvg) * CONVERSION_FACTOR;
if (firstRound) // first time initial 3 hour
{
dP_dt = change / 2; // note this is for t = 2 hour
}
else
{
dP_dt = change / 3; // divide by 3 as this is the difference in time from 0 value
}
}
else if (minuteCount == 155)
{
float lastPressureAvg = getLastPressureSamplesAverage();
float change = (lastPressureAvg - pressureAvg) * CONVERSION_FACTOR;
if (firstRound) // first time initial 3 hour
{
dP_dt = change / 2.5; // note this is for t = 2.5 hour
}
else
{
dP_dt = change / 3.5; // divide by 3.5 as this is the difference in time from 0 value
}
}
else if (minuteCount == 185)
{
float lastPressureAvg = getLastPressureSamplesAverage();
float change = (lastPressureAvg - pressureAvg) * CONVERSION_FACTOR;
if (firstRound) // first time initial 3 hour
{
dP_dt = change / 3; // note this is for t = 3 hour
}
else
{
dP_dt = change / 4; // divide by 4 as this is the difference in time from 0 value
}
pressureAvg = pressureAvg2; // Equating the pressure at 0 to the pressure at 2 hour after 3 hours have past.
firstRound = false; // flag to let you know that this is on the past 3 hour mark. Initialized to 0 outside main loop.
}
int forecast = UNKNOWN;
if (minuteCount < 35 && firstRound) //if time is less than 35 min on the first 3 hour interval.
{
forecast = UNKNOWN;
}
else if (dP_dt < (-0.25))
{
forecast = THUNDERSTORM;
}
else if (dP_dt > 0.25)
{
forecast = UNSTABLE;
}
else if ((dP_dt > (-0.25)) && (dP_dt < (-0.05)))
{
forecast = CLOUDY;
}
else if ((dP_dt > 0.05) && (dP_dt < 0.25))
{
forecast = SUNNY;
}
else if ((dP_dt >(-0.05)) && (dP_dt < 0.05))
{
forecast = STABLE;
}
else
{
forecast = UNKNOWN;
}
// uncomment when debugging
//Serial.print(F("Forecast at minute "));
//Serial.print(minuteCount);
//Serial.print(F(" dP/dt = "));
//Serial.print(dP_dt);
//Serial.print(F("kPa/h --> "));
//Serial.println(weather[forecast]);
return forecast;
}
void setup() {
metric = getConfig().isMetric;
Wire.begin(); // Wire.begin(sda, scl)
}
void presentation() {
// Send the sketch version information to the gateway and Controller
sendSketchInfo("BME280 Sensor", "1.6");
// Register sensors to gw (they will be created as child devices)
present(BARO_CHILD, S_BARO);
present(TEMP_CHILD, S_TEMP);
present(HUM_CHILD, S_HUM);
}
// Loop
void loop() {
// need to read the NVM compensation parameters
BME280.readCompensationParams();
/* After taking the measurement the chip goes back to sleep, use when battery powered.
// Oversampling settings (os1x, os2x, os4x, os8x or os16x).
BME280.writeFilterCoefficient(fc_16); // IIR Filter coefficient, higher numbers avoid sudden changes to be accounted for (such as slamming a door)
BME280.writeOversamplingPressure(os16x); // pressure x16
BME280.writeOversamplingTemperature(os8x); // temperature x8
BME280.writeOversamplingHumidity(os8x); // humidity x8
BME280.writeMode(smForced); // Forced sample. After taking the measurement the chip goes back to sleep
*/
// Normal mode for regular automatic samples
BME280.writeStandbyTime(tsb_0p5ms); // tsb = 0.5ms
BME280.writeFilterCoefficient(fc_16); // IIR Filter coefficient 16
BME280.writeOversamplingPressure(os16x); // pressure x16
BME280.writeOversamplingTemperature(os8x); // temperature x8
BME280.writeOversamplingHumidity(os8x); // humidity x8
BME280.writeMode(smNormal);
while (1) {
// Just to be sure, wait until sensor is done mesuring
while (BME280.isMeasuring()) {
}
// Read out the data - must do this before calling the getxxxxx routines
BME280.readMeasurements();
float temperature = BME280.getTemperatureMostAccurate(); // must get temp first
float humidity = BME280.getHumidityMostAccurate();
float pressure_local = BME280.getPressureMostAccurate(); // Get pressure at current location
float pressure = pressure_local/pow((1.0 - ( ALTITUDE / 44330.0 )), 5.255); // Adjust to sea level pressure using user altitude
int forecast = sample(pressure);
if (!metric)
{
// Convert to fahrenheit
temperature = temperature * 9.0 / 5.0 + 32.0;
}
Serial.println();
Serial.print("Temperature = ");
Serial.print(temperature);
Serial.println(metric ? " �C" : " �F");
Serial.print("Humidity = ");
Serial.print(humidity);
Serial.println(" %");
Serial.print("Pressure = ");
Serial.print(pressure);
Serial.println(" hPa");
Serial.print("Forecast = ");
Serial.println(weather[forecast]);
Serial.println();
if (temperature != lastTemp)
{
send(tempMsg.set(temperature, 1));
lastTemp = temperature;
}
if (humidity != lastHum)
{
send(humMsg.set(humidity, 1));
lastHum = humidity;
}
if (pressure != lastPressure)
{
send(pressureMsg.set(pressure, 2));
lastPressure = pressure;
}
if (forecast != lastForecast)
{
send(forecastMsg.set(weather[forecast]));
lastForecast = forecast;
}
sleep(SLEEP_TIME);
}
} -
layerke
aktív tag
Eleve nem volt valami jól beállítva, ha nem látta az usb-s eszközt csak kihúz-bedug után. Windows IOT-re legjobb tudomásom szerint nincs domoticz, hacsak le nem fordítod magadnak. Továbbá én azt se javaslom, hogy ennyi minden legyen egy gépen. Én is próbálkoztam ilyen öszvér rendszerekkel régebben, de arra jutottam, hogy nem olyan drága a málna, hogy ne lehessen külön venni a domoticznak egyet meg a kodinak egyet. Nekem az égvilágon semmi ilyen jellegű gondom nincs, hogy ne látna usb-s eszközt vagy hogy nem indulna el megfelelően valami. Én azt javaslom, hogy próbáld meg különválasztani a szórakozást a "munkától" és legyen külön gépen a domoticz és társai (influxdb, grafana, stb). Biztos, hogy jobban menni fog.
-
vargalex
félisten
Pontosan melyik Pi-d van? Ha nem Pi3, akkor érdemes lehet az USB áramerősséget megemelni a config.txt-ben 1.2A-re. Egyébként csak 500 mA-el megy.
Illetve a tápot mindenképpen nézd meg. Szerintem ezzel kapcsolatos problémára utal az, hogy eddig is csak ki-be után működött rendesen.
Linux-on sincs semmi gond a Kodi-val, úgyhogy nem kell tőle félni. Én mindenhol linuxot használok, sehol semmi gond vele. Raspberry-n is futtatom a Kodi-t (Arch linux-on) és mellette 5 db DS18B20 szenzort olvas percenként, post-olja az értékeket egy web szerverre.Alex