Hallo,
ich möchte die von einem MYSENSORS-Device mitgeteilten Schaltzustände in FHEM aufzummieren. Dabei möchte ich gerne jeden Einschaltvorgang zählen, nicht jedoch den dazugehörigen Ausschaltvorgang.
Laut dem Commandref müsste genau dies das Modul HourCounter tun können:
If "pattern_for_OFF" is not defined, any matching event of "patter_for_ON" will be counted.
Das MYSENSOR-Device wechselt beim Schalten sein Reading "tripped" von "off" nach on" und wieder zurück. Ich möchte bei jedem "Aus-Ein-Aus"-Zyklus den Zähler um "1" erhöhen.
Den HouCounter haben ich wie folgt angelegt:
define Zaehler HourCounter MYSENSOR_102:.* {if (ReadingsVal("MYSENSOR_102", "tripped","") eq "on")}
Seltsamerweise wird jedoch bei jedem Wechsel von "off" zu "on" gezählt UND bei jedem Wechsel von "on" wieder zu "off" nochmal.
Wo liegt mein Denkfehler?
Hat keiner eine Idee, woran das liegen könnte?
Oder gibt es eine andere Möglichkeit, einen Zähler zu realisieren? Am besten mit eine Gesamtstand und einem zurücksetzbaren Zähler..
Hallo,
ich kenne den HourCounter zu wenig aber vielleicht könnte folgendes sein:
laut wiki gilt define <name> HourCounter <regexp_for_ON> [<regexp_for_Off>]
dein define define Zaehler HourCounter MYSENSOR_102:.* {if (ReadingsVal("MYSENSOR_102", "tripped","") eq "on")}
regexp für on ist bei dir MYSENSOR_102:.*
welches sowohl auf on als auch auf off reagiert (bzw. auf alles was von MYSENSOR_102 kommt).
Vielleicht würde ja folgendes tun was du willst:
define Zaehler HourCounter MYSENSOR_102:on
Gruß, Joachim
Hallo,
das klingt logisch. Mir ist aber noch nicht klar, wie ich dann das regexp formulieren muss, damit es nur reagiert, wenn im Device MYSENSOR_102 das Reading "tripped" auf "on" springt.
Oder gibt es einen anderen Weg? (Dummy oder so etwas?)
Vielen Dank schon mal
Gruß
Florian
Hallo,
am besten mal im EventMonitor schauen was kommt (lässt sich auf "MYSENSOR_102" filtern, damit nicht zu viel kommt was nicht interessiert).
Wenn bekannt ist was im Eventmonitor kommt, dann kann man eine entspr. regex "basteln"...
Gruß, Joachim
Hallo,
im Eventmonitor sehe ich folgendes:
2016-05-18 22:08:33 MYSENSORS_DEVICE MYSENSOR_102 tripped: on
2016-05-18 22:08:34 MYSENSORS_DEVICE MYSENSOR_102 tripped: off
2016-05-18 22:08:34 MYSENSORS_DEVICE MYSENSOR_102 tripped: on
2016-05-18 22:08:35 MYSENSORS_DEVICE MYSENSOR_102 tripped: off
Wie kann ich nun auf das Reading "tripped" verweisen?
Weder
define Kaffezaehler HourCounter MYSENSOR_102.tripped:on
Noch
define Kaffezaehler HourCounter MYSENSOR_102 tripped:on
funktioniert.
Hallo,
probier doch mal: MYSENSOR_102.tripped:.on
Gruß, Joachim
Hallo,
hier noch ein Tipp für's nächste Mal:
https://regex101.com/ (https://regex101.com/)
Gruß, Joachim
Ich habe bei mir folgendes definiert:
mys_103_TempHum2Button:status1:.on mys_103_TempHum2Button:status1:.off
Bei mir wird dann nur der on-Status gezählt. Anstatt status musst du nur auf tripped anpassen.
Hallo,
jetzt funktioniert es, vielen Dank für die Hilfe.
Grüße
Florian
Hallo Florian,
na prima!
Gruß, Joachim
Hallo bin zu spät auf dieses Thema gestossen, ich habe es auch mit MySensors umgesetzt: https://forum.fhem.de/index.php/topic,50610.msg422328.html#msg422328
Ich bin mal gespannt, ob du ähnliche Problem hast?