FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: tomleitner am 21 Juni 2020, 15:38:43

Titel: Regensensor auf Shelly1 und on-for-timer.
Beitrag von: tomleitner am 21 Juni 2020, 15:38:43
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
Titel: Antw:Regensensor auf Shelly1 und on-for-timer.
Beitrag von: MadMax-FHEM am 21 Juni 2020, 15:43:53
Schon mal das watchdog-Modul angesehen!?

Gruß, Joachim
Titel: Antw:Regensensor auf Shelly1 und on-for-timer.
Beitrag von: tomleitner am 21 Juni 2020, 15:44:37
Nein, schau ich gleich, danke ....
Titel: Antw:Regensensor auf Shelly1 und on-for-timer.
Beitrag von: tomleitner am 21 Juni 2020, 15:50:22
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?
Titel: Antw:Regensensor auf Shelly1 und on-for-timer.
Beitrag von: tomleitner am 21 Juni 2020, 15:53:53
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 ...
Titel: Antw:Regensensor auf Shelly1 und on-for-timer.
Beitrag von: Beta-User am 22 Juni 2020, 17:12:15
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...)