Hallo,
Ich habe einen alten FS20 SR Regensensor mittels eines Shelly1 auf Wifi umgebaut. Klappt wunderbar. Nun bekomme ich vom Shelly1 jede Minute folgendes Topic:
shellies/shelly1-94200E/input/0 1
wobei 1 heißt das es regnet. Wenn es nur schwach regnet kann das durch aus jede Minute von 1 auf 0 und wieder zurück wechseln.
Mein FHEM RegenSensor Device sollte folgendes tun: Sobald das Flag auf 1 ist sollte der state auf "on" gehen. Aber erst wenn 30 Minuten lang kein Flag 1 mehr gekommen ist, sollte der state auf "off" gehen.
Meine Idee war: Immer wenn das Flag 1 ist mache ich ein "set RegenSensor on-for-timer 1800". Bei jedem Mal wo das Flag mit 1 kommt wird der Timer neu gestartet. Das Flag 0 wird gar nicht verarbeitet.
Soweit die Idee. Hier mein aktuelles Device:
defmod Regensensor1 MQTT2_DEVICE shellies/shelly1-94200E
attr Regensensor1 DbLogExclude .*
attr Regensensor1 IODev MQTT_Client
attr Regensensor1 devStateIcon {my $onl = ReadingsVal($name,"online","false") eq "false" ? "rot" : ReadingsVal($name,"new_fw","false") eq "true" ? "gelb" : "gruen";;;; my $light = ReadingsVal($name,"state","off");;;; my $show = '<a href="';;;;$show .= $onl eq "gelb" ? "/fhem?cmd.dummy=set $name x_update&XHR=1\">" : "http://".ReadingsVal($name,"ip","none").' "target="_blank">';;;;$show .= FW_makeImage("10px-kreis-".$onl)."</a>";;;; "<div> $show <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light eq "off" ? "weather_sun" : "weather_rain_heavy")."</a>" }
attr Regensensor1 group Sensoren
attr Regensensor1 icon weather_rain_meter
attr Regensensor1 model shelly1
attr Regensensor1 readingList shellies/shelly1-94200E/input/0:.* input0\
shellies/shelly1-94200E/online:.* online\
shellies/shelly1-94200E/announce:.* { json2nameValue($EVENT) }\
shellies/announce:.* { $EVENT =~ m,..id...shelly1-94200E...mac.*, ? json2nameValue($EVENT) : undef }
attr Regensensor1 room Garten,Homekit,MQTT
attr Regensensor1 setList x_update:noArg shellies/shellyswitch25-10B275/command update_fw\
x_mqttcom shellies/shellyswitch25-10B275/command $EVTPART1
Probleme:
1.) der "on-for-timer" Befehl steht gar nicht zur Verfügung und "useSetExtensions" ebenfalls nicht?
2.) Brauch ich umbedingt ein zusätzliches "Notify" device um das "on-for-timer" zu setzen? Oder läßt sich was ähnliches direkt mit dem Device realisieren?
Danke // Tom
Schon mal das watchdog-Modul angesehen!?
Gruß, Joachim
Nein, schau ich gleich, danke ....
Also mit einem Notify würde ich eher klar kommen als mit dem Watchdog Modul ... Ich brauch nur das on-for-timer in meinem Device ... warum ist das nicht da?
Ok -- gerade entdeckt. Es braucht nur in der "setList" ein on und off Befehl auftauchen und schon sind on-for-timer et.al. auch zur Verfügung. Ich werde also Dummy on und off in der setList einbaun und mit einem Notify arbeiten ... so sollte es gehen ...
Warum setzt du nicht ein passendes event-on-change-reading? Dann sollte das mit dem watchdog kein Problem mehr sein...
(Dass die shellies scheinbar ständig den aktuellen Status senden ist echt lästig...)