Regensensor auf Shelly1 und on-for-timer.

Begonnen von tomleitner, 21 Juni 2020, 15:38:43

Vorheriges Thema - Nächstes Thema

tomleitner

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

MadMax-FHEM

Schon mal das watchdog-Modul angesehen!?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

tomleitner


tomleitner

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?

tomleitner

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 ...

Beta-User

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...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors