Hallo an alle,
ich habe einen Blackout.
Folgendes:
Ich lasse mir immer nach 30 min die Leistungsaufnahme eines Gerätes schicken.
defmod VDR_Kontrolle at +*00:30:00 set Telegram message VDR-Server [VDR_ST:ENERGY_Power] Watt
Dies möchte ich mir nun nur noch bei Änderungen zusenden lassen. So etwa bei einem Schwellwert um 40 Watt, darüber "ein" darunter "aus"
Mein Notify läuft nicht:
defmod Telegram_notify_1 notify VDR_ST:ENERGY_Power<40 set Telegram message.VDR-Server Aus
Wo könnte mein Fehler liegen? Gerne hätte ich noch die Zeit dazu übermittelt.
Und kann man das notify per Hand "auslösen", da ich an die Messsteckdose nicht so einfach rankomme.
Dankeschön
Moin,
an der Stelle VDR_ST:ENERGY_Power<40 muss ein Trigger stehen, ein Vergleich geht dort nicht. Du kannst Dir das Gerüst mit dem Trigger im Eventmonitor erstellen lassen. Könnte so aussehen:
VDR_ST:ENERGY_Power:.*
Danach hast Du im $EVENT irgendwo den Wert stehen, eventuell im $EVTPART1
dann kannst Du einen Vergleich machen:
IF ($EVTPART1 < 40)(Tu was)
Wenn Du mehr machen willst ist es meist besser im Ausführungsteil direkt auf PERL zu gehen:
{if ($EVTPART1 < 40){fhem("FHEM Befehl")}}
Von Hand auslösen kannst Du ein notify mit dem trigger Befehl.
trigger VDR_ST ENERGY_Power: 39
Wie gesagt das mit den Events muss alles nicht stimmen, das ist von mir geraten.
Ich will mal noch nachtragen: In engen Grenzen kann man eine Art Größenvergleich auch mit regExp im Trigger machen:
Das hier würde auf den Wertebereich 10-39 triggern
VDR_ST:ENERGY_Power:.[1-3][0-9]
Gruß Otto
Moin,
ganz so einfach ist es doch nicht.
defmod Telegram_notify_1 notify VDR_ST:ENERGY_Power:.* {if ($EVTPART1 < 40){fhem("set Telegram message VDR-Server Aus")}}
Da das Gerät VDR_ST die Werte aller 2 Minuten sendet (über MQTT) bekomme ich die Werte auch im 2-Minuten Abstand gesendet.
Gibts da eventuell noch eine Lösung?
Danke
Zitat von: NewbieNew am 20 August 2020, 07:29:25
Moin,
ganz so einfach ist es doch nicht.
defmod Telegram_notify_1 notify VDR_ST:ENERGY_Power:.* {if ($EVTPART1 < 40){fhem("set Telegram message VDR-Server Aus")}}
Da das Gerät VDR_ST die Werte aller 2 Minuten sendet (über MQTT) bekomme ich die Werte auch im 2-Minuten Abstand gesendet.
Gibts da eventuell noch eine Lösung?
Danke
ja, siehe https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung
Zitat von: NewbieNew am 20 August 2020, 07:29:25
Gibts da eventuell noch eine Lösung?
Moin,
nein, eine Lösung gibt es nicht. Es gibt wahrscheinlich hunderte. :) Die Frage was willst Du denn: Einmal ein Nachricht? Jede halbe Stunde?
Grundlegend: event-on-change-reading ist immer eine gute Maßnahme um die Flut an Events einzudämmen.
Du kannst andere Kriterien mit in die Auswertung nehmen.
Du kannst im Gerät einfach ein UserReadings definieren und dieses auswerten.
Wenn es einfach nur den Zustandswechsel informieren soll: (nicht getestet)
attr VDR_ST event-on-change-reading .*
attr VDR_ST userReadings Zustand:ENERGY_Power.* {ReadingsNum($name,'ENERGY_Power',0)<40?'aus':'ein'}
defmod Telegram_notify_1 notify VDR_ST:Zustand:(aus|ein) set Telegram message VDR-Server $EVTPART1
Gruß Otto