Hi,
gestern ist der Fall eingetreten, dass über Stunden kein Telegramm empfangen wurde. FHEM lief noch aber es kamen keine Daten mehr rein. Nach einem Restart von FHEM war wieder alles OK.
Ich würde gerne den Funkempfang überwachen und das CUL ggf zurücksetzten, komme aber nicht weiter.
Hat da Jemand vielleicht eine funktionierende Lösung ?
Eine Idee war das HMinfo zu überwachen.
I_actTotal liefert gerade : "alive:17,dead:0,unkn:0,off:0"
Wenn "dead" ein Limit überschreitet dann könnte man das CUL neu starten.
Ich wollte im ersten Schritt mal HMinfo mit einem userReadings erweitern auf dem der Wert von "dead" einzeln lesbar ist.
attr hm cntdead:I_actTotal { ReadingsVal("hm","I_actTotal",0) =~ /dead:(\d{1,})/; $1; }
Wenn ich { ReadingsVal("hm","I_actTotal",0) =~ /dead:(\d{1,})/; $1; }
teste, dann bekomme ich Syntaxfehler:
Unknown command {, try help.
Unknown command $1, try help.
Unknown command }, try help.
vielleicht kann mich ja Jemand hier erleuchten. Danke.
{ ReadingsVal("hm","I_actTotal",0) =~ /dead:(\d{1,})/;; $1;; }
Vielen Dank das war es.
Was ich gemacht habe:
Ein Reading für HMinfo eingefügt mit dem man die Anzahl der fehlenden Geräte direkt als einzelne Zahl sehen kann:
attr hm serReadings cntdead { { ReadingsVal("hm","I_actTotal",0) =~ /dead:(\d{1,})/;; $1;; }}
Dann via DOIF überwacht ob mindestens 9 Geräte fehlen und in diesem Fall wird das CUL (hier SSC) zurückgesetzt.
define HmComCheck DOIF ([hm:cntdead] >= 9)(set SSC raw B00)
Ich hoffe das funktioniert so.