[gelöst] Notify will nicht...

Begonnen von thgorjup, 06 Januar 2017, 10:14:26

Vorheriges Thema - Nächstes Thema

thgorjup

Hallo, da mein WOLF Heizkessel über den eBus keine Störung meldet (hab zumindest noch nicht rausgefunden wie) möchte ich als Workaround ein NOTIFY über die Kesseltemperatur auslösen. Also wenn die Kesseltemperatur unter 24°C fällt, will ich eine Pushover Benachrichtigung erhalten.

Hier mein Ansatz, aber es klappt nicht. Vermutlich ist "Kesseltemperatur" kein numerischer Wert.


defmod Kesseltemperatur ECMDDevice wolf.class
attr Kesseltemperatur IODev EBUS
attr Kesseltemperatur group Kessel
attr Kesseltemperatur icon sani_boiler_temp
attr Kesseltemperatur room Heizraum
attr Kesseltemperatur stateFormat {ReadingsVal("Kesseltemperatur","Kesseltemperatur",0)." °C"}

defmod HeizkesselStoerungPushover notify Kesseltemperatur:Kesseltemperatur:.* { if(ReadingsNum("Kesseltemperatur","Kesseltemperatur","") < 24) {system ("curl -s -F 'token=xxxxxxx' -F 'user=xxxxxxx' -F 'message=Kesseltemperatur < 24°C' https://api.pushover.net/1/messages.json")}}


Schön wäre auch, wenn ich in dem Pushover noch den $EVENT mit angeben könnte.
Wo muss ich dran schrauben, damit mein Vorhaben fruchtet?

Danke und Gruß
Thomas
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

Otto123

Moin Thomas,

ich zitiere mal meinen Antwort von gestern
Zitatdie Frage: beim notify passiert nichts, wo liegt der Fehler? ist immer wieder gleich zu beantworten:
Entweder am Ausführungsteil, kann man meist separat testen.
Oder an der Bedingung, die kannst Du im Eventmonitor prüfen.

Sehe ich das richtig? Genau hier machst Du doch aus dem Wert einen nicht numerischen -> {ReadingsVal("Kesseltemperatur","Kesseltemperatur",0)." °C"}
Ist Dein Event wirklich Kesseltemperatur:Kesseltemperatur:.*?
Was liefert Dir denn {ReadingsNum("Kesseltemperatur","Kesseltemperatur","")} bei Eingabe in der Kommandzeile?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

thgorjup

Hallo Oto,

ReadingsNum und ReadingsVal liefern beide das Ergebnis: 34.0
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

thgorjup

Ich habe nun den Wert für Kesseltemperatur in Num geändert. Aber trotzdem triggert Notify nicht wenn ich testweise die Abfrage auf <80 stelle.


attr Kesseltemperatur stateFormat {ReadingsNum("Kesseltemperatur","Kesseltemperatur",0)}
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

Benni


Otto123

Zitat von: thgorjup am 06 Januar 2017, 11:17:29
Hallo Oto,

ReadingsNum und ReadingsVal liefern beide das Ergebnis: 34.0
naja nun hast Du nur die zweite Frage beantwortet.
Was liefert denn der Eventmonitor? Liefert der wirklich Kesseltemperatur Kesseltemperatur: ???

Er muss ja erstmal zu Deinem if kommen, eventuell geht das ja gar nicht.

Den Ausführungsteil kannst Du ja auch komplett testen
{ if(ReadingsNum("Kesseltemperatur","Kesseltemperatur","") < 24) {system ("curl -s -F 'token=xxxxxxx' -F 'user=xxxxxxx' -F 'message=Kesseltemperatur < 24°C' https://api.pushover.net/1/messages.json")}}

Zumindest die Bedingung{(ReadingsNum("Kesseltemperatur","Kesseltemperatur","") < 24)} müsste eine 1 liefern

Ist natürlich derzeit nicht kleiner 24  ;D

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

thgorjup

#6
Hallo Otto,

also wenn ich z.B. folgenden test mache:


{(ReadingsNum("Kesseltemperatur","Kesseltemperatur","") < 80)}


Wird eine 1 zurück gemeldet.

Und wenn ich das ganze IF-Statement eingebe, dann kommt -1 und ich bekomme die Nachricht auf mein Smartphone. DAS IST SCHONMAL SUPER!
Aber, warum wird es denn nicht automatisch von selbst gesendet? Steht auf active!


Mit dem Eventmonitor hatte ich Probleme wegen Bitdefender. Hab es jetzt auf einem anderen Rechner getestet.
Folgendes kommt an:


2017-01-06 16:51:16 ECMDDevice Kesseltemperatur Kesseltemperatur: 38.0 
2017-01-06 16:51:16 ECMDDevice Kesseltemperatur Kesseltemperatur 38.0 


Gruß
Thomas
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

Otto123

Hallo Thomas,

dann wissen wir jetzt am Ausführungsteil liegt es nicht.

Eigentlich sieht aber das notify vom regEx her gut aus, hast Du das notify noch auf 24 Grad stehen?

Ansonsten probiere mal :

defmod HeizkesselStoerungPushover notify Kesseltemperatur { if(ReadingsNum("Kesseltemperatur","Kesseltemperatur","") < 80) {system ("curl -s -F 'token=xxxxxxx' -F 'user=xxxxxxx' -F 'message=Kesseltemperatur < 24°C' https://api.pushover.net/1/messages.json")}}

Da müsstest Du aber zwei oder mehr Nachrichten bekommen. Jeder Event von Kesseltemperatur  müsste dann triggern.

Vielleicht kann regEx auch nicht weil gerät und Reading gleich heisst  :-X - ist ein Scherz  ;D

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

thgorjup

Ich habe es die ganze Zeit mit  < 80 eingetragen.
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

Otto123

Du siehst aber ich habe den trigger geändert! Also nur zum Test
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

thgorjup

Ah, stimmt. Und es klappt jetzt! Super, vielen Dank!

Wenn du mir jetzt noch sagt, wie ich $EVENT in den Pushover bekomme, dann ist es Perfekft.
Und vielleicht noch einen Tipp, wie ich es bewerkstellige, dass ich bei <24 °C nicht permanent eine Meldung bekomme.  8) 
Also dass ich nur einmalig die Nachricht bekomme.
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

CoolTux

In Deinem Fall habe ich 2 Empfehlungen für Dich. Statt Notify, DOIF. Und auf jeden Fall das Pushover Modul installieren.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

thgorjup

Ok, danke. Ich habe jetzt ein Konstrukt aus Dummy, DOIF und Notify gebaut.
Funktioniert gut!  :)
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy