[gelöst] HM-SEC-SC-2 trigger_cnt an dummy übergeben

Begonnen von oli82, 19 Februar 2016, 09:44:38

Vorheriges Thema - Nächstes Thema

oli82

Guten Morgen.

Ich komme gerade mit einem Problem nicht weiter.
Der HM-SEC-SC-2 Fenstersensor verfügt über einen internen Zähler, der die das öffnen des Kontakts zählt.
Dieser Zähler hat aber nur einen Wertebereich von 0-255. Beim 256. öffnen wird er wieder auf 0 gesetzt.

Nun wollte ich die Anzahl der Schaltvorgänge an einen Dummy übergeben und immer um 1 erhöhen, sobald der Kontakt erneut geöffnet wurde.

Dafür habe ich mir einen dummy erzeugt und ihm das Reading "trigger_cnt" hinzugefügt:
define Zaehler dummy
setreading Zaehler trigger_cnt 0


Als nächstes habe ich mir ein Notify gebastelt, welches auf den Statuswechsel "open/close" reagieren soll:
define nt.FensterTrigger notify Fenstersensor:state.* {my $Wert=ReadingsVal("Zaehler","trigger_cnt",0);my $trigger=ReadingsVal("Fenstersensor","state",0);if ($EVENT eq "open") {$Wert = $Wert+1;fhem("setreading Zaehler trigger_cnt $Wert");}}

Leider funktioniert das Notify so nicht.

Bennemannc

Hallo,

was Du mit der Variabelen $trigger machst, verstehe ich nicht - die wird gefüllt und dann ? Wenn Du nur open zählen willst, würde ich das vorne in die RegExp des notifys packen, damit kannst Du dir die if Abfrage sparen. Dann kommen also nur noch open durch und Du kannst stumpf zählen - wert lesen, 1 addieren, wert schreiben.
Wie das notify aussehen sollte, kannst Du am Eventmonitor sehen - ich würde Fensterkontakt:open abfragen - wenn open und closed zählen sollen Fensterkontakt:trigger_cnt.*

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

oli82

Ja, die Frage habe ich mir selbst gerade gestellt ;)

Du meinst also so:
Fenstersensor:trigger_cnt.* {my $Wert=ReadingsVal("Zaehler","trigger_cnt",0);{$Wert = $Wert+1;fhem("setreading Zaehler trigger_cnt $Wert");}}

Bennemannc

So ähnlich - ob die { vor $Wert sein muss, weiß ich nicht - ich bin nicht so der Perl Experte, aber von der logik her würde ich es so machen.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

oli82