Zuletzt angesehen:
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste Überarbeitung Beide Seiten der Revision | ||
public:fhem_wetterstation [2020/04/11 23:39] admin [Anschluß Anemometer (Optional)] |
public:fhem_wetterstation [2021/11/12 15:25] admin [Anschluß Anemometer (Optional)] |
||
---|---|---|---|
Zeile 30: | Zeile 30: | ||
**WEBSERVER: http://192.168.4.1** \\ | **WEBSERVER: http://192.168.4.1** \\ | ||
\\ | \\ | ||
- | Auf dem Webserver angelangt, wechselt man auf den Reiter **Config** und trägt die SSID des heimischen WiFi und dessen WPA Key (Kennwort) ein.\\ | + | :!: Falls keine Verbindung zustande kommt, dann bitte den intelligenten Netzwechselmodus des Smartphones ausschalten!\\ |
- | Anschließend nach unten scrollen und mittels des Buttons **Submit** die Konfiguration speichern. Danach muss die Mini-Wetterstation neu gestartet werden. \\ | + | |
- | Im heimischen Router sollte man dann die Wetterstation mit dessen zugewiesener IP-Adresse finden. \\ | + | |
- | \\ | + | |
- | {{:public:espeasy_ssid.jpg?500|}} | + | |
\\ | \\ | ||
+ | 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.\\ | ||
\\ | \\ | ||
\\ | \\ | ||
Zeile 296: | Zeile 294: | ||
{{:public:gpio-14_d5_input.jpg?600|}} \\ | {{: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 unterstützt werden und die Tasks 1-3 von den anderen Sensoren bereits belegt sind.\\ | + | 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:\\ | Die Einstellungen sind folgende:\\ | ||
\\ | \\ | ||
{{:public:anemometer_task_settings_2.jpg?600|}}\\ | {{:public:anemometer_task_settings_2.jpg?600|}}\\ | ||
\\ | \\ | ||
- | Und der Task 6 wird per Dummy als Melder verwendet.\\ | + | Und der Task 6 wird per Dummy als Melder verwendet, der die Werte zum Controller schickt.\\ |
{{:public:anemometer_task_settings_3.jpg?600|}}\\ | {{:public:anemometer_task_settings_3.jpg?600|}}\\ | ||
\\ | \\ | ||
- | In den **Devices** sieht das dann so aus: \\ | + | |
+ | Zusätzlich benötigt man noch einer Regel:\\ | ||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
\\ | \\ | ||
Zeile 313: | Zeile 324: | ||
**Erläuterung zu Count/Total/Time**:\\ | **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.\\ | 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. Ggf. in FHEM festschreiben wenn benötigt. \\ | + | 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.\\ | 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.\\ | ||
Zeile 330: | Zeile 341: | ||
attr ESPEasy_WS_Windsensor room ESPEasy | attr ESPEasy_WS_Windsensor room ESPEasy | ||
attr ESPEasy_WS_Windsensor setState 3 | attr ESPEasy_WS_Windsensor setState 3 | ||
- | attr ESPEasy_WS_Windsensor userReadings V { Windspeed();; } | + | attr ESPEasy_WS_Windsensor stateFormat { "WS: ".ReadingsNum($name,"WS","")." V: ".ReadingsNum($name,"V","") } |
+ | attr ESPEasy_WS_Windsensor userReadings V { Windspeed();; },WS { Windstrength();; } | ||
</code> | </code> | ||
- | Zusätzlich benötigt man noch folgendes Script: | + | Zusätzlich benötigt man noch folgendes Script: \\ |
- | <code> | + | //Im FHEM-Menü [Edit Files] --> 99_myUtils.pm// \\ |
+ | <code> | ||
# Windgeschwindigkeit | # Windgeschwindigkeit | ||
sub Windspeed () { | sub Windspeed () { | ||
Zeile 346: | Zeile 359: | ||
$G_Now = ReadingsNum("ESPEasy_WS_Windsensor", "G", 0); | $G_Now = ReadingsNum("ESPEasy_WS_Windsensor", "G", 0); | ||
$G_Old = OldReadingsNum("ESPEasy_WS_Windsensor", "G", 0); | $G_Old = OldReadingsNum("ESPEasy_WS_Windsensor", "G", 0); | ||
- | $rps = ($G_Now - $G_Old) / 60; | + | |
+ | # 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); | $v = sprintf "%.2f", (1.761 / (1 + $rps) + 3.013 * $rps); | ||
- | if ($v == 1.76) { | + | if ($v == 1.76 || $v > 200) { |
$v = 0.00; | $v = 0.00; | ||
} | } | ||
return $v; | 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; | ||
+ | |||
} | } | ||
</code> | </code> | ||
+ | == 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.\\ | ||
+ | <code> | ||
+ | define RepairWindspeed DOIF ([ESPEasy_WS_Windsensor:WS] eq "12") (setreading ESPEasy_WS_Windsensor G 0) | ||
+ | attr RepairWindspeed do always | ||
+ | attr RepairWindspeed wait 900 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | === ioBroker === | ||
+ | Alles wissenswerte findet ihr hier: [[https://iotspace.dev/espeasy-sensordaten-per-mqtt-an-iobroker-senden/]] |