FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: peter_w am 25 April 2015, 20:43:35

Titel: Kein Emfang
Beitrag von: peter_w am 25 April 2015, 20:43:35
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.


Titel: Antw:Kein Emfang
Beitrag von: martinp876 am 26 April 2015, 09:31:17
{ ReadingsVal("hm","I_actTotal",0) =~ /dead:(\d{1,})/;; $1;; }
Titel: Antw:Kein Emfang
Beitrag von: peter_w am 26 April 2015, 15:02:12
Vielen Dank das war es.
Titel: Antw:Kein Emfang
Beitrag von: peter_w am 26 April 2015, 15:08:55
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.