Die mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.
Hier habe ich Euch eine kleine Sammlung von ESPEasy Rules.
Für diese Beispiel benötigt Ihr einen FHEM Server, mit welchem das ESPEasy kommunizieren kann. Die Idee hinter dem Onlinecheck ist folgende:
- ESPEasy sendet eine HTTP Anfrage an FHEM http://IP-Adresse:Port/fhem?cmd=set%20FHEM.DEVICE.NAME%20event%20isonline=1
- Diese Anfrage bewirkt,e dass der FHEM Server dem ESPEasy ein EVENT mit dem WERT 1 sendet.
- ESPEasy wertet diese EVENT aus, und führt dann einen entsprechende Befehl aus.
- Wie z.B. Reboot
Damit diese alles funktioniert, benötigt das ESPEasy ein "Dummy" Device. Folgende Konfiguration muss hier gemacht werden:
- Device = Dummy Device
- Name = dummy
- Enabled = Haken setzten, damit der Schalter aktiv ist
- Simulate Data Type = SENSOR_TYPE_SINGLE
- Send to Controller = Haken setzen, damit der Status an FHEM gesendet wird.
- Delay = 60 (Alle 60 sek. wird der Wert an FHEM gesendet)
-
Value = isonline (case sensitive beachten)
- Decimals = 0 (Hier werden nur ganze Zahlen übertragen)
- Speichern der Konfiguration mit "Submit"
- Beenden der Konfiguration mit "Close"
Das Skript ist in 4 Bereiche unterteilt
-
"System#Boot" hier wird der Timer "Rules#Timer=1" in 600 sek. aktiviert
- "Rules#Timer=1" der Befehl "TaskValueSet 7,1,2" setzt beim Device mit der ID "7" den Wert mit der ID
"1" auf "2". Direkt danach senden wir via "SendToHTTP" unseren Befehl an FHEM. Dieser Befehl soll den zuvor gesetzten Wert "2" auf
"1" setzen. Da die Ausführung etwas dauert setzen wir hier einen weiteren Timer "Rules#Timer=3" mit einer
Verzögerung von 3 Sekunden.
-
"Rules#Timer=2" hier wird geprüft, ob unser Dummy device "dummy#isonline" den
Wert "2" hat. Wenn hier der Wert "2" ermittelt wurde, ist dies das Zeichen, dass FHEM das ESPEasy nicht erreicht hat. In diesem Beispiel führen wir dann
einen Reboot durch.
-
"isonline" Hiermit kann das Dummy Device von außen gesteuert werden
-
Die Aktivierung ist über eine URL "http://IPAdresse/control?cmd=event,isonline=<ZAHL>" möglich
-
Oder über FHEM mit "set <name> event isonline=<ZAHL>"
-
Der Befehl "TaskValueSet 7,1,%eventvalue%" setzt beim Device mit der ID "7" den
Wert "%eventvalue%" mit der ID "1"
On System#Boot do
timerSet,1,600
endon
On Rules#Timer=1 do
TaskValueSet 7,1,2
SendToHTTP IP-Adresse,Port,/fhem?cmd=set%20Gaestezimmer.Klima%20event%20isonline=1
timerSet,2,3
endon
On Rules#Timer=2 do
If [dummy#isonline]=2
reboot
endif
timerSet,1,600
endon
on isonline do
TaskValueSet 7,1,%eventvalue%
endon
Kommentar schreiben