Hauptmenü

Counter Auswertung

Begonnen von Meesus, 21 Mai 2013, 21:52:19

Vorheriges Thema - Nächstes Thema

Meesus

Hallo zusammen,

ich benötige einmal Hilfe von euch und stehe z.Zt. mit meinem umfunktionierten Tür/Fensterkontakt als (Alarm-)Wasserzähler mit Reed Kontakt auf dem ,,trockenen".

Hintergrund ist der, dass ich für die Gartenbewässerung eine Wasseruhr mit dem CUL_HM_HM_SEC_SC u. ext. ReedSensor ausstatten möchte.
(Die Hardware mit dem Umbau ist kein Prbl., dieses funktioniert auch schon)
Leider hapert es an meinen schwachen Perl Kenntnissen den Counter dazu auszuwerten.
Der CUL_HM_HM_SEC_SC soll einen Alarm per Notify schalten, wenn ein Counter, um ein Wert 10 innerhalb von 5 min. erhöht wird.
Also etwa: Counter ist momentan bei Wert 50, Wert erhöht sich um 10 innerhalb von 5 min, dann mach was...
Das Problem ist der Counter der ab einem bestimmten Wert innerhalb einer Zeit ein Ereignis auslösen soll und als Counter Anzeige im Fhem erscheinen soll, selbst da stehe ich zur Zeit auf dem ,,Schlauch"..

Meine jungfräuliche Config:

-Anfang-
# Fensterkontakt fuer Gartenwasser-Uhr
define CUL_HM_HM_SEC_SC_202B48 CUL_HM 202B48
attr CUL_HM_HM_SEC_SC_202B48 .devInfo 810101
attr CUL_HM_HM_SEC_SC_202B48 .stc 80
attr CUL_HM_HM_SEC_SC_202B48 actCycle 028:00
attr CUL_HM_HM_SEC_SC_202B48 actStatus alive
attr CUL_HM_HM_SEC_SC_202B48 devStateIcon .*:leer
attr CUL_HM_HM_SEC_SC_202B48 expert 2_full
attr CUL_HM_HM_SEC_SC_202B48 firmware 2.0
attr CUL_HM_HM_SEC_SC_202B48 model HM-SEC-SC
attr CUL_HM_HM_SEC_SC_202B48 peerIDs
attr CUL_HM_HM_SEC_SC_202B48 room CUL_HM
attr CUL_HM_HM_SEC_SC_202B48 serialNr KEQ0027870
attr CUL_HM_HM_SEC_SC_202B48 subType threeStateSensor


define FileLog_CUL_HM_HM_SEC_SC_202B48 FileLog ./log/CUL_HM_HM_SEC_SC_202B48-%Y.log CUL_HM_HM_SEC_SC_202B48
attr FileLog_CUL_HM_HM_SEC_SC_202B48 logtype text
attr FileLog_CUL_HM_HM_SEC_SC_202B48 room CUL_HM
define ActionDetector CUL_HM 000000
attr ActionDetector actCycle 600
attr ActionDetector event-on-change-reading .*
attr ActionDetector room CUL_HM
define FileLog_ActionDetector FileLog ./log/ActionDetector-%Y.log ActionDetector
attr FileLog_ActionDetector logtype text
attr FileLog_ActionDetector room CUL_HM

# Hier den Zähler eingebunden
# Die unteren Zeilen habe ich von Rudolf aufgeschnappt:
define onCounter notify CUL_HM_HM_SEC_SC_202B48:open.*  {\
    $defs{@}{READINGS}{onCounter}{VAL}++;;\
    $defs{@}{READINGS}{onCounter}{TIME} = TimeNow()\

-Ende-

Pro Impuls zählt er auch fleißig den Counter hoch.
In den Readings:
onCounter  ,,76"  2013-05-21 21:21:59

Weiß einer von euch, wie ich das Prbl. lösen kann (ohne 1-Wire)?
Gruss Micha


Raspberry 4 - FHEM 6.1 - HMLAN, CUL V3 433Mhz & 868Mhz, HM, Intertechno, HUE, Tasmota, Shelly, ESP Devices, Max! und Alexa - Banana PI zum testen

UliM

Hi,
versuch mal watchdog, der ist für solche "wenn nach Zeit x (nicht) y passiert" gemacht: http://fhem.de/commandref.html#watchdog
=8-)
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

justme1968

wenn du schon ein reading hast das brav hoch zählt schau dir mal die userReadings an. da gibt es den modifier differential der gibt dir änderungen pro zeiteinheit.

etwa so:attr CUL_HM_HM_SEC_SC_202B48 userReadings rate differential {ReadingsVal($name,"onCounter", 0)}
das gibt dir ein neues reading 'rate' mit der änderung pro zeit.
 
an das neue reading kannst du wieder ganz normal ein notify dran hängen und deinen alarm erzeugen wenn die rate größer ist als du möchtest.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Meesus

Hi,

danke erstmal für eure beiden Hilfen.

Ich denke mit den userReadings ist das was ich wohl brauche.

onCounter 7 2013-05-22 15:58:19
rate 0.998533970787023 2013-05-22 15:58:20

Aber wie kann ich da weiter ansetzen?
Und wie bekomme ich den Wert vom Counter in einer Dummy Anzeige dargestellt?

Gruss Micha
Raspberry 4 - FHEM 6.1 - HMLAN, CUL V3 433Mhz & 868Mhz, HM, Intertechno, HUE, Tasmota, Shelly, ESP Devices, Max! und Alexa - Banana PI zum testen

justme1968

mir ist nicht ganz klar was du mit dummy anzeige meinst.

wenn du den wert des counters als STATE (das ist was in der übersicht angezeigt wird) deines CUL_HM_HM_SEC_SC_202B48 möchtest dann schau dir stateFormat an. z.b.:attr CUL_HM_HM_SEC_SC_202B48 stateFormat ReadingsVal($name,"onCounter",0)}

für das ereigniss schau dir notify an:define alarm notify CUL_HM_HM_SEC_SC_202B48:rate {...} da wo die ... stehen schaust du ob du über dem schwellwert bist und löst dein ereigniss aus.

beim userReading ist es eventuell noch sinnvoll den wert zu skalieren. der default skaliert auf ändern pro sekunde. für änderung pro 5 minuten also * 300. mit sprintf("%.1f",wert) kannst du deine werte jeweils bei einer nachkommastelle abschneiden.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Meesus

Hi Andre,

Danke Dir für deine schnelle Hilfe.
Das mit dem State Format hatte ich jetzt nicht auf dem Schirm...
Das "attr CUL_HM_HM_SEC_SC_202B48 stateFormat onCounter" funzt schon mal.
Die anderen Punkte werde ich jetzt angehen u. probieren.

Gruss Micha
Raspberry 4 - FHEM 6.1 - HMLAN, CUL V3 433Mhz & 868Mhz, HM, Intertechno, HUE, Tasmota, Shelly, ESP Devices, Max! und Alexa - Banana PI zum testen