===== Mini Wetterstation Standalone und FHEM ===== Die Mini Wetterstation ist ein Eigenbau-Produkt, welche über **5 Messfunktionen** verfügt und diese auch zur Weiterverarbeitung zur Verfügung stellt. \\ \\ Die Mini Wetterstation wird im heimischen Wifi-Netzwerk integriert und verfügt über eine sehr umfangreichen und einfach zu bedienendes Webinterface, in dem man sämtliche Messwerte ablesen und Konfigurieren kann. \\ Bei Bedarf sendet die Mini Wetterstation die erfassen Messwerte an eine Hausautomation (z.B. FHEM) was hier auch eingehend beschrieben wird. \\ Sie kann aber auch autark, also Standalone ohne Hausautomation verwendet werden. \\ \\ Die Stromversorgung erfolgt über einen 5V Micro-USB-Anschluß. Hierzu kann ein eigenes Netzteil verwendet werden, oder auch ein in der Nähe befindlicher USB-Anschluß. \\ Weiterhin ist es möglich die Stromversorgung über eine Powerbank oder ein Battery-Pack zu realisieren.\\ \\ Im Standalone Betrieb wird eine feste Stromversorgung empfohlen, da die Mini Wetterstation dann permanent Online ist und eine Powerbank in ca. 2-5 Tagen leer ist.\\ Im Sommer könnte eine Solar-Powerbank die Lebenszeit etwas erhöhen, dennoch ist ein fester Anschluß aus komfortgründen dringend zu empfehlen.\\ \\ Im **SleepMode** Betrieb wacht die Mini Wetterstation alle 60 bis 4294 Sekunden (einstellbar), also max. alle 71 Minuten auf und sendet ihre Messwete an die Hausautomation. \\ Anschließend legt sie sich wieder schlafen und spart so viel Strom, sodass die Energie einer Powerbank um ein vielfaches länger reicht. \\ \\ [[https://www.ebay.de/itm/Mini-Wetterstation-5in1-Smart-Home-FHEM-ioBroker-OpenHAB-HTTP-MQTT-JSON-1W/123617024927?hash=item1cc8261b9f:g:J0QAAOSwzjNdbtwY|{{:public:mini-wetterstation-1.jpg?600|}}]] \\ \\ ==== Bauanleitung (nur bei Bausatz-Kauf) ==== Wer einen Bausatz erworben hat, folgt zunächst dieser Bauanleitung und kommt später an die Stelle zurück für die Inbetriebnahme. \\ :-P [[customer:FHEM_Wetterstation_Bausanleitung|Bauanleitung]] (Zugangsdaten siehe per E-Mail erhaltene Rechnung) ==== WiFi-Verbindung ==== Wenn die Mini Wetterstation sich nicht in das konfigurierte WiFI Netzwerk einwählen kann, fällt sie in den Access-Point Modus zurück und meldet sich mit der SSID namens **WS**, **WS_1** oder beim Bausatz mit **ESP_Easy_0**. \\ Am Besten in diesem Zustand mit dem Smartphone zu dieser SSID connecten und man wird sofort zur Konfigurationsoberfläche weitergeleitet. Falls nicht, dann bitte nachfolgende IP-Adresse im Browser eingeben.\\ \\ **SSID : WS, WS_1, ESP_Easy_0** \\ **PASSWORT : configesp** \\ **WEBSERVER: http://192.168.4.1** \\ \\ :!: Falls keine Verbindung zustande kommt, dann bitte den intelligenten Netzwechselmodus des Smartphones ausschalten!\\ \\ Auf dem Oberfläche angelangt, wählt man das heimische WLAN-Netzwerk aus und trägt weiter unten das zugehörige Passwort ein.\\ Nach dem Speichern zählt die Anzeige bis NULL runter und zeigt die heimische IP-Adresse an. Diese kann man dann direkt im Browser eingeben und landet auf dem Webinterface der Mini-Wetterstation.\\ \\ \\ ==== Webinterface ==== An unserem Computer oder natürlich auch auf dem Smartphone oder Tablet können wir nun bequem das Webinterface der Mini Wetterstation im Browser aufrufen (dazu die zugewiesene IP-Adresse verwenden). \\ === Gerätename und Admin Passwort === Das Webinterface ist per default nicht mit einem Kennwort geschützt, kann aber unter dem Reiter **Config** gesetzt werden. Auch der Name der Mini Wetterstation kann hier gesetzt werden.\\ Dieser Name ist aber nur für die Kommunikation mit einer Hausautomation von Bedeutung. Der Name wird dort vor den jeweiligen Sensor-Namen gesetzt. z.B. **ESPEasy_WS_Regensensor**. \\ {{:public:wetterstation_webinterface_config.jpg?600|}} \\ \\ === Messwerte === Die Messwerte werden auf dem Reiter **Devices** angezeigt. Dort kann man mittels dem Button **Edit** auch den Interval angeben und den Senor ein/ausschalten, sowie die Übermittlung an die Hausautomation aktivieren.\\ Auch die **Readings** Ausgaben in FHEM werden dort vorgegeben und sind anfangs mit **T**, **H**, **P**, **R**, **L** benannt. \\ :!: Wer einen Bausatz erworben hat, kann anhand der Bilder die Einstellungen über den **EDIT** Button vornehmen. Die Reihenfolge der Task's sollte übernommen werden.\\ \\ **Version 1**:\\ Die Version 1 hat noch einen zweiten, deaktivierten (disabled) Temperatursensor, welcher später eliminiert wurde. Auch der Luftfeuchtigkeitssensor hat einen etwas kleineren Messbereich, welcher jedoch selten über-/unterschritten wird.\\ {{:public:wetterstation_webinterface_devices1.jpg?1200|}} \\ \\ **Ab Version 2**:\\ {{:public:wetterstation_webinterface_devices3.jpg?1200|}} \\ (Task 5 ist für die Lebensverlängerung des Regensensors und kann ebenso in Version 1 verwendet werden)\\ \\ == Messbereiche == Um die Werte besser einschätzen zu können, hier ein kurze Erklärung: \\ \\ **Version 1:** \\ * Temperatursensor Außen (BMP280) = -40 bis +85 °C * Temperatursensor Innen (DHT11) = 0 bis +50 °C * Feuchtigkeitssensor (DHT11) = 20 bis 90% RH * Luftdrucksensor (BMP280) = 300-1100 hPa * Regensensor (T1592 P) = 0-1000 (0-10 ist als trocken anzusehen. 1000 = Unterwasser) * Helligkeitssensor (BH1750) = 0-100.000 LX (100.000 = heller Sonnentag) **Ab Version 2:** \\ * Temperatursensor (BME280) = -40 bis +85 °C * Feuchtigkeitssensor (BME280) = 0 bis 100% RH * Luftdrucksensor (BME280) = 300-1100 hPa * Regensensor (T1592 P) = 0-1000 (0-10 ist als trocken anzusehen. 1000 = Unterwasser) * Helligkeitssensor (BH1750) = 0-100.000 LX (100.000 = heller Sonnentag) \\ \\ ==== Lenbensverlängerung Regensensor ==== Der Regensensor erkennt Regen, wenn der Stromkreis durch Regentropfen geschlossen wird. Jedoch wenn ein Strom fließt, egal, wie gering, startet die Elektrolyse. \\ Dabei oxidiert eine der Elektroden und die andere bekommt einen Metallüberzug. Das funktioniert aber leider nicht ewig, weil entweder die Elektrode irgendwann "aufgebraucht" ist, oder so korrodiert ist, dass kein Strom mehr fließt. Demzufolge hält das Bauteil nicht ewig und muss leider irgendwann ausgetauscht werden. Aber um die Lebenszweit zu verlängern kann man den Strom nur zur Meßzeit einschalten und gleich wieder ausschalten. Wenn kein Strom fließt, entsteht auch keine Elektrolyse. \\ \\ * Dazu benennen wir den Namen **Regensensor** unter **Devices** Task 2 um in **Regensensor_Device** und deaktivieren (falls vorhaden) die Checkbox bei **Send to Controller** \\ * Danach legen wir unter **Devices** ein **Generic - Dummy Device** als Task 5 an, nennen dieses **Regensensor**, aktivieren (falls vorhanden) die Checkbox bei **Send to Controller** und nennen das **Value** -> **R:** \\ \\ Danach nutzen wir die **Rules** in ESPEasy um den Strom zu schalten.\\ Falls der Reiter **Rules** noch nicht vorhanden ist, dann diesen unter **Tools > Advanced** aktivieren und mit **Submit** speichern.\\ {{:public:sonoffs20_5.jpg?600|}}\\ Anschließend ist der Reiter **Rules** im Menü sichtbar, unter dem man einen Regelsatz mit folgendem Inhalt als **Rules Set 1** ablegt und speichert:\\ On System#Boot do gpio,16,1 timerSet,1,2 endon On Rules#Timer=1 do gpio,16,1 TaskRun,2 TaskValueSet 5,1,[Regensensor_Device#R] gpio,16,0 timerSet,1,300 endon **Erkärung des Scripts:** \\ Bei Systemstart (On System#Boot) wird der Regensensor über den Pin GPIO16 (D0) eingeschaltet und ein Timer Nr.1 wird gestartet. \\ Nachdem Timer Nr.1 gestartet ist, schaltet dieser den Strom auf GPIO16 ein und lässt den Task mit der ID 2 (Regensensor) seinen Wert bestimmen. Danach wird dieser Wert in den Dummy mit der Task ID 5 Value 1 geschrieben.\\ Anschließend wird der GPIO16 (D0) wieder ausgeschaltet und der Timer Nr.1 startet erneut in 300 Sekunden.\\ \\ Also muss das Gehäuse geöffnet und der **+** Kontakt des Regensensors auf den Pin **D0** (GPIO16) des D1 Mini umgesteckt werden. \\ Danach sollte der Regensensor gemäß obigem Script **timerSet,1,300** alle 5 Minuten (300 Sekunden) sich kurz einschalten und seinen Meßwert senden. \\ :!: Es ist darauf zu achten, dass die Task ID des Sensors (in obigem Bild unter Messwerte Task 2) mit dem Kommando **TaskRun,2** übereinstimmt. \\ :!: Es ist darauf zu achten, dass die Task ID des Dummy und der Name des Sensors (in obigem Bild unter Messwerte Task5 und Task2) mit dem Kommando **TaskValueSet 5,1,[Regensensor_Device#R]** übereinstimmt. \\ :!: Der Regensensor mit der Task ID 2 darf nicht mehr an den Controller senden, da nur der Wert des Dummy für die Übermittlung an die Hausautomation maßgeblich ist. \\ \\ Da der Regensensor jetzt nur noch alle 5 Minuten für den Bruchteil einer Sekunde einschaltet, sollte kaum eine Elektrolyse stattfinden und der Sensor viel viel länger halten. \\ \\ ==== Anbindung an Hausautomation (FHEM) ==== == FHEM vorbereiten == Damit die Mini Wetterstation mit FHEM kommunizieren kann, muss zunächst in FHEM eine **Bridge** eingerichtet werden. \\ Diese lauscht an einem Port (per default 8383) und nimmt die Messwerte der Mini Wetterstation entgegen. \\ \\ In FHEM einfach folgende Befehlszeile eingeben, speichern und FERTIG! \\ define espBridge ESPEasy bridge 8383 \\ Danach sollte sich die espBridge zunächst auf **initialized** stellen. Wenn dies so ist, ist die Konfiguration in FHEM erstmal erledigt und wir arbeiten an der Mini Wetterstation weiter.\\ {{:public:espeasy-fhem-1.jpg?500|}}\\ \\ == Wetterstation mit FHEM verbinden == Auf der Weboberfläche muss nun im Menü **Controllers** die Verbindung zu FHEM (espBridge) angegeben werden. \\ Dort auf **Edit** klicken und ausfüllen. \\ \\ Protokol = FHEM HTTP \\ Controller IP = IP-Adresse des FHEM Servers \\ Controller Port = Connection Port des FHEM Servers (default 8383) \\ Controller User = Benutzername für die Verbindung (optional) \\ Controller Password = Passwort für die Verbindung (optional) \\ **ACHTUNG:** Wenn username/password vergeben werden, müssen diese selbstverständlich auch in FHEM bei der espBridge über **set** hinzugefügt werden. \\ \\ {{:public:espeasy-5.jpg?500|}} \\ Jetzt fängt die Mini Wetterstation bereits an mit FHEM zu quatschen. Damit beim quatschen aber noch die Sensoren und deren Werte übergeben werden, müssen wir bei diesen noch eine Checkbox aktivieren. \\ Also auf dem Reiter **Devices** bei jedem Sensor auf **Edit** klicken und das Häckchen **Send to Contoller** aktivieren. \\ \\ {{:public:wetterstation_webinterface_send_controller.jpg?450|}} \\ \\ Anschließend werden nach kurzer Zeit sämtliche Sensoren in FHEM automatisch angelernt und sind im Raum **ESPEasy** zu finden (autocreate aktivieren). \\ Die Anzeige der Grafik unter den Werten muss allerdings erst noch konfiguriert werden. \\ \\ {{:public:wetterstation_fhem.jpg?700|}} \\ Man kann in der Grafik sehr gut erkennen, dass Sonnenaufgang ca. 07:00 Uhr und Sonnenuntergang ca. 17:00 Uhr war.\\ \\ Oben gezeigter Plot hat folgende Konfiguration (DBLOG): \\ define SVG_ESPEasy SVG DBLOG:SVG_ESPEasy:HISTORY attr SVG_ESPEasy group Sensoren attr SVG_ESPEasy label "Wetterstation - Temperatur Min $data{min2}, Max $data{max2}, Last $data{currval2}" attr SVG_ESPEasy plotsize 800,400 attr SVG_ESPEasy room ESPEasy **SVG_ESPEasy.gplot**\\ # Created by FHEM/98_SVG.pm, 2018-11-08 09:57:49 set terminal png transparent size crop set output '.png' set xdata time set timefmt "%Y-%m-%d_%H:%M:%S" set xlabel " " set title '' set ytics set y2tics set grid y2tics set ylabel "Helligkeit 1/100 (Lux) / Luftdruck (mbar)" set y2label "Temperatur (°C) / Luftfeuchte (%)" set yrange [0:400] set y2range [0:100] #DBLOG ESPEasy_WS_Helligkeitssensor:L:::$val=$val/100 #DBLOG ESPEasy_WS_Temperatur_Luftfeuchte_Sensor:T:: #DBLOG ESPEasy_WS_Temperatur_Luftfeuchte_Sensor:H:: #DBLOG ESPEasy_WS_Luftdrucksensor:P:::$val=$val/10 #DBLOG ESPEasy_WS_Regensensor:R:::$val=$val/5 plot "" using 1:2 axes x1y1 title 'Helligkeit ( 1/100 Lux)' ls l1 lw 0.5 with quadraticSmooth,\ "" using 1:2 axes x1y2 title 'Temperatur (°C)' ls l0fill_gyr lw 1 with lines,\ "" using 1:2 axes x1y2 title 'Luftfeuchtigkeit (%)' ls l2 lw 1 with lines,\ "" using 1:2 axes x1y1 title 'Luftdruck (1/10 mbar)' ls l4 lw 1 with lines,\ "" using 1:2 axes x1y1 title 'Regen' ls l2fill lw 1 with steps Oben gezeigter Plot hat folgende Konfiguration (FileLog): \\ define SVG_ESPEasy SVG ESPEasy_WS_Helligkeitssensor:SVG_ESPEasy:CURRENT attr SVG_ESPEasy label "Wetterstation - Temperatur Min $data{min2}, Max $data{max2}, Last $data{currval2}" attr SVG_ESPEasy plotsize 800,400 attr SVG_ESPEasy room ESPEasy **SVG_ESPEasy.gplot**\\ # Created by FHEM/98_SVG.pm, 2019-01-08 19:29:53 set terminal png transparent size crop set output '.png' set xdata time set timefmt "%Y-%m-%d_%H:%M:%S" set xlabel " " set title '' set ytics set y2tics set grid set ylabel "Helligkeit 1/50 (Lux) / Luftdruck (mbar)" set y2label "Temperatur (°C) / Luftfeuchte (%)" set yrange [0:400] set y2range [-12:100] #FileLog_Helligkeitssensor 4:ESPEasy_WS_Helligkeitssensor.*::$fld[3]/50 #FileLog_Temperatur_Luftdrucksensor 4:ESPEasy_WS_Temperatur_Luftdruck_Sensor.T\x3a:: #FileLog_Luftfeuchtesensor 4:ESPEasy_WS_Luftfeuchte_Sensor.H\x3a:: #FileLog_Temperatur_Luftdrucksensor 4:ESPEasy_WS_Temperatur_Luftdruck_Sensor.P\x3a::$fld[3]/10 #FileLog_Regensensor 4:ESPEasy_WS_Regensensor.*::$fld[3]/5 plot "" using 1:2 axes x1y1 title 'Helligkeit 1/50 Lux' ls l1fill lw 0.5 with quadratic,\ "" using 1:2 axes x1y2 title 'Temperatur (°C)' ls l0fill_gyr lw 1 with lines,\ "" using 1:2 axes x1y2 title 'Luftfeuchtigkeit (%)' ls l2 lw 1 with lines,\ "" using 1:2 axes x1y1 title 'Luftdruck (1/10 mbar)' ls l4 lw 1 with lines,\ "" using 1:2 axes x1y1 title 'Regen' ls l2fill lw 1 with steps ==== SleepMode === Die Mini Mini-Wetterstation verfügt über einen SleepMode der software- und hardwareseitig aktiviert werden muss. \\ In diesem Modus wacht die Mini-Wetterstation nach einer vorgegebenen Zeit auf, sendet die aktuellen Daten an den/die Controller (z.B. an FHEM) und legt sich wieder schlafen. \\ Somit kann eine Menge Energie eingespart werden und so lässt sich die Mini-Wetterstation auch mit einer Powerbank über mehrere Wochen/Monate mit Strom versorgen.\\ \\ === Softwareseitige Einstellungen === Zunächst müssen unter dem Reiter **Config** die Vorgaben gesetzt werden. \\ Die Einstellung //Sleep on connection failure// sorgt dafür, dass die Mini-Wetterstation direkt wieder schlafen geht, wenn kein Accesspoint gefunden wird.\\ \\ {{:public:sleepmode.jpg?600|}} \\ \\ \\ In nachfolgendem Beispiel würde die Wetterstation 30 Sekunden wach bleiben und sich danach für 5 Minuten schlafen legen. \\ {{:public:ws_sleeptime_settings.jpg?600|}} \\ **Achtung:** Wenn //Sleep on connection failure// aktiviert ist, gibt es keinen Fallback auf den AP-Modus mehr. \\ \\ \\ === Hardwareseitige Einstellungen === Zunächst die Mini-Wetterstation vom Strom nehmen. Danach öffnet man das Gehäuse und es kommt eine Platine zum Vorschein auf der sich ein **Jumper** befindet. \\ Mit diesem **Jumper** schickt man die Wetterstation mit der folgendermaßen gesetzten Stellung in den **SleepMode** (Mitte-Rechts). \\ In Stellung (Mitte-Links) wird der Wachmodus erzwungen. Sollte die Mini Wetterstation also einmal nicht mehr aufwachen, dann den Jumper auf (Mitte-Links) setzen. \\ \\ {{:public:wetterstation_platine_ohne_d1_sleep.jpg?600|}}\\ \\ \\ Wurden alle Maßnahmen ergriffen, kann man die Mini-Wetterstation wieder an den Strom anschließen.\\ Nach dem Neustart dauert es noch eine Weile bis der Intervall startet. Nach kurzer Zeit beginnen die Schlaf- und Wachpahsen wie eingestellt.\\ \\ Testen kann man das z.B. indem man die IP-Adresse der Mini-Wetterstation Dauer-Pingt.\\ \\ ping -t {{:public:ws_dauerping.jpg?500|}} \\ \\ \\ === Falls der Sleep Mode nicht funktioniert ==== Falls der DeepSleep Modus nicht richtig funktioniert, dann ist meistens die Powerbank daran schuld. Denn diese schalten oftmals nach einigen Sekunden ab, wenn zu wenig Last existiert. \\ In diesem Fall kann es sein, dass die Wetterstation neu bootet und es zu einem unerwünschtem Loop-Boot kommt. \\ Ich hatte eine Powerbank, die nach 40 Sekunden abgeschaltet hat und ich verzweifelt nach dem Grund gesucht habe. Dann habe ich diesen Artikel gefunden:\\ [[https://apfelhirn.de/automatische-abschaltung-von-powerbanks-als-arduino-stromversorgung-bei-geringer-grundlast-verhindern/]] \\ Alternativ kann man ein Battery-Pack mit 3x AA Batterien verwenden. Diese halten auch ewig. ===== Anschluß Anemometer (Optional) ===== Wer noch ein Anemometer anschließen will, der kann folgende Hardware und Konfiguration verwenden.\\ \\ **Hardware: Eltako Windsensor, WS**\\ {{:public:anemometer.jpg?300|}}\\ Link: [[https://www.amazon.de/Eltako-Windsensor-WS/dp/B0018LBFG8/ref=as_li_ss_tl?ie=UTF8&qid=1493731856&sr=8-1&keywords=eltako+windsensor&linkCode=sl1&tag=striderschatf-21&linkId=cad302816d15dc3e01f3e06b4e803870|Amazon]] \\ Zunächst müsst ihr den gewählten Eingang in ESPEasy auf **Input** stellen.\\ Dazu unter **Hardware** den gewählten GPIO, bei mir GPIO-14(D5), auf **Input** stellen und speichern. \\ \\ {{:public:gpio-14_d5_input.jpg?600|}} \\ \\ Anschließend wird der **Task Nr. 4** als Device gewählt. Dies ist wichtig, da nur die Tasks 1-4 von ESPEasy für den **Pulse-Counter** unterstützt werden und die Tasks 1-3 von den anderen Sensoren bereits belegt sind.\\ Die Einstellungen sind folgende:\\ \\ {{:public:anemometer_task_settings_2.jpg?600|}}\\ \\ Und der Task 6 wird per Dummy als Melder verwendet, der die Werte zum Controller schickt.\\ {{:public:anemometer_task_settings_3.jpg?600|}}\\ \\ Zusätzlich benötigt man noch eine Regel:\\ On System#Boot do timerSet,1,2 endon On Rules#Timer=1 do TaskRun,2 TaskValueSet 6,1,[Windsensor_Device#G] timerSet,1,60 endon \\ Entsprechend der vorgenannten Einstellungen wird das Anemomenter an Pin **D5** und **GND** am **D1-Mini** angeschlossen.\\ \\ \\ **Erläuterung zu Count/Total/Time**:\\ COUNT = bedeutet, das der Counter die Impulse zählt und diese dann nach Ablauf des eingestellten Delay auf Null zurücksetzt und von vorn beginnt.\\ TOTAL = Gesamtzählungen. Den Hinweis "Total count is not persistent!" bedeutet, dass dieser Zähler nicht auf dem ESP gespeichert wird (z.B. Reboot). Ggf. in FHEM festschreiben wenn benötigt. \\ TIME = dies ist die Zeit zwischen den einzelnen Impulsen am Zählereingang und wird maßgeblich für die Windgeschwindigkeit verwendet. Also je kleiner die Zahl, desto windiger.\\ === FHEM === Wichtig ist, dass das Attribut für **oldreadings** aktiviert wird. Denn nur dann werden die alten Werte in FHEM gespeichert um die Windgeschwindigkeit berechnen zu können. define ESPEasy_WS_Windsensor ESPEasy 10.4.70.108 80 espBridge WS_Windsensor attr ESPEasy_WS_Windsensor IODev espBridge attr ESPEasy_WS_Windsensor Interval 300 attr ESPEasy_WS_Windsensor group ESPEasy Device attr ESPEasy_WS_Windsensor oldreadings G attr ESPEasy_WS_Windsensor presenceCheck 1 attr ESPEasy_WS_Windsensor readingSwitchText 1 attr ESPEasy_WS_Windsensor room ESPEasy attr ESPEasy_WS_Windsensor setState 3 attr ESPEasy_WS_Windsensor stateFormat { "WS: ".ReadingsNum($name,"WS","")." V: ".ReadingsNum($name,"V","") } attr ESPEasy_WS_Windsensor userReadings V { Windspeed();; },WS { Windstrength();; } Zusätzlich benötigt man noch folgendes Script: \\ //Im FHEM-Menü [Edit Files] --> 99_myUtils.pm// \\ # Windgeschwindigkeit sub Windspeed () { my $rps; my $G_Now; my $G_Old; my $v; $G_Now = ReadingsNum("ESPEasy_WS_Windsensor", "G", 0); $G_Old = OldReadingsNum("ESPEasy_WS_Windsensor", "G", 0); # Achtung die Formel ist für den Eltako Windsensor $rps = ($G_Now - $G_Old) / 60; $rps = $rps / 2; $v = sprintf "%.2f", (1.761 / (1 + $rps) + 3.013 * $rps); if ($v == 1.76 || $v > 200) { $v = 0.00; } return $v; } # Windstaerke sub Windstrength () { my $ws; my $sp; $sp = ReadingsNum("ESPEasy_WS_Windsensor", "V", 0); if ($sp >= 0 && $sp <= 1) { $ws = 0; } if ($sp > 1 && $sp <= 6) { $ws = 1; } if ($sp > 6 && $sp <= 12) { $ws = 2; } if ($sp > 12 && $sp <= 19) { $ws = 3; } if ($sp > 20 && $sp <= 28) { $ws = 4; } if ($sp > 29 && $sp <= 38) { $ws = 5; } if ($sp > 39 && $sp <= 49) { $ws = 6; } if ($sp > 50 && $sp <= 61) { $ws = 7; } if ($sp > 62 && $sp <= 74) { $ws = 8; } if ($sp > 75 && $sp <= 88) { $ws = 9; } if ($sp > 89 && $sp <= 102) { $ws = 10; } if ($sp > 103 && $sp <= 117){ $ws = 11; } if ($sp > 117) { $ws = 12; } return $ws; } == DOIF zur Windstärke Reparatur == Falls die Mini Wetterstation mal neu gestartet wird, geht die Anzahl der Gesamtumdrehungen verloren.\\ In diesem Fall wird über die DOIF Regel der Wert **G** in FHEM zurück gesetzt und neu berechnet.\\ define RepairWindspeed DOIF ([ESPEasy_WS_Windsensor:WS] eq "12") (setreading ESPEasy_WS_Windsensor G 0) attr RepairWindspeed do always attr RepairWindspeed wait 900 === ioBroker === Alles wissenswerte findet ihr hier: [[https://iotspace.dev/espeasy-sensordaten-per-mqtt-an-iobroker-senden/]]