Hauptmenü

Stromzähler & Watchdog

Begonnen von Parador, 22 November 2018, 19:43:51

Vorheriges Thema - Nächstes Thema

Parador

Hallo Zusammen,

ich versuche einen Verbraucher mit einem Watchdog zu überwachen und scheine irgendwo einen Knoten zu haben und freue mich auf Euere Unterstüzung.
Vielleicht zuerst was ich habe.... Es gibt einen Eltako Stromzähler mit Impulsausgang den ich von einem Wemos D1 Mini Pro mit ESP Easy / Impuls Counter an FHEM angebunden habe... Dieser liefert mir folgende Readings:
Readings
Count                         72.00
PulsZeit                      0.839
StromverbauchAktuell          4290.82
TagesVerbrauch                6.309
Time                          839.00
Total                         12618.00
ZaehlerStand                  7850.85600001114
presence                      present
state                         Cou: 72.00 Tim: 839.00 Tot: 12618.00


Jetzt würde ich gerne mittels Watchdog wissen, wenn länger als 12 Minuten mind. 60 Pulse/Count kommen. Wenn der Verbrauch vorher schon wieder unter die 60 fällt soll nix passieren...
Also habe ich einen Watchdog (Stromzaehler_Watchdog) wie folgt aufgebaut:

Stromzaehler:Count.[0-2]?[6-9][0-9] 00:12:00 Stromzaehler:Count.[0-5][0-9]
set Dummy_stromzaehler 1;
trigger Stromzaehler_Watchdog


Leider komme ich damit nicht weiter, er löst nicht aus... (ich bin nicht der Regexp-Profi und versuche mich hierbei gerade mal...)

Was hab ich falsch gemacht, bzw. was muss ich noch machen damit es läuft? Der Dummy dient mir nur der Überwachung ob es läuft, hätte hier auch eine andere Form der Benachrichtigung nehmen können...

Vielen Dank für euere Hilfe schon jetzt!

amenomade

#1
Ich würde die .00 in die Regex mitnehmen...
Zur Sicherheit, im Eventmonitor schauen, eine entspr. Eventzeile markieren, und auf "Create/modify device" klicken und "notify" oder "watchdog" auswählen. So wirst Du die richtige Regex sehen
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Parador

Hallo amenomade,
und danke für Deine Tipps... noch eine Rückfrage/Verständnisfrage.. habe ich die 00 nicht schon? Ich meine beim Rücksetz-Teil [0-5][0-9] das geht doch von 00 bis 59, oder?

amenomade

Ja, geht von 00 bis 59, aber nicht von 0.00 bis 59.00
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Parador


Parador

so ich habe nun die regexp auf folgendes geändert:
Stromzaehler:Count.[0-2]?[6-9][0-9](.?)[0-9]?[0-9]? 00:12:00 Stromzaehler:Count.[0-5][0-9](.?)[0-9]?[0-9]

Parallel habe ich einen zweiten Watchdog mittels Eventmonitor angelegt... (dort habe ich die CountZahl gegen das obige Regexp ausgetauscht)
Beide greifen nicht...

Kann es daran liegen, wie oft die Werte aktuallisiert werden? der Wemos übermittelt alle 60 Sekunden

Ein DOIF mit [Stromzaehler:Count] > 60 funktioniert.. da kann ich aber die 12Min. nicht abgreifen

Damian

Zitat von: Parador am 23 November 2018, 20:10:45
Ein DOIF mit [Stromzaehler:Count] > 60 funktioniert.. da kann ich aber die 12Min. nicht abgreifen

Warum nicht?

wait 720
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Parador

Naja, aber mein bescheidenes Wissen zeigt mir schon einen Unterschied zwischen
einem Doif das zu einem einmaligen Count >60 reagiert und dann 12 Minuten wartet und etwas auslöst egal wo der Wert dann liegt
und einem Watchdog der 12 Minuten einen Count>60 erwartet bevor er reagiert
oder lieg ich da falsch?

Damian

Deine Anforderung war aber:

Zitatwenn länger als 12 Minuten mind. 60 Pulse/Count kommen
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Parador

#9
ja, es sollen mind 12 Minuten lang mind 60 Impule kommen...
ich habe deshalb mit einem watchdog gearbeitet (und es noch nicht hinbekommen)
mit einem Doif, kann ich aber doch nicht prüfen ob es 12 minuten lang die ganze Zeit mehr als 60 impulse sind, oder sehe ich das falsch?
mit wait verzögere ich doch nur die reaktion auf die einmalig erreichten 60 Impulse...
also ist meine Anforderung damit doch nicht erfüllt...
Aber Du bist der DOIF Profi... bitte zeig mir doch mit einem Beispiel (nicht nur "wait 720" - das verstehe ich im geschilderten Zusammenhang noch nicht - ) wie ich das mit einem DOIF hinbekomme...

Damian

define di_count DOIF ([Stromzaehler:Count] > 60)
attr di_count wait 720
attr di_count cmdState on|off



Wenn count > 60 wahr wird und innerhalb von 12 Minuten nicht unter 60 fällt, dann nimmt das Modul den Zustand "on" an und bleibt in diesem, sobald count unter 60 fällt, nimmt das Modul den Zustand "off" an.


Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Parador

ok, danke, probier ich aus und meld mich wieder...
war mir bisher nicht bekannt, dass sich das auch so lösen läßt!

Damian

Zitat von: Parador am 24 November 2018, 10:36:34
ok, danke, probier ich aus und meld mich wieder...
war mir bisher nicht bekannt, dass sich das auch so lösen läßt!

siehe Beispiel "Waschmaschine fertig" https://fhem.de/commandref_DE.html#DOIF_timerWithWait

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Parador

Klappt! Danke für die Unterstützung!