FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: tklein am 04 November 2018, 19:21:22

Titel: notify-Wert vom Aufruf benötigt --> bei Wertänderung bei HM-Wandthermo
Beitrag von: tklein am 04 November 2018, 19:21:22
Hallo zusammen,

wie kann ich am besten eine Aktion triggern, wenn sich der Wert (desired-temp) von meinem Homematic Wandthermostat ändert (nicht updated)?

Derzeit bekomme ich jetzt unabhängig von Wertänderung eine Nachricht. Sehr wahrscheinlich durch die normalen Statusupdates:

defmod WT_WZ_notify_1 notify WT_WZ:desired-temp:..* {\
fhem("set Pushover_Client msg 'Heizung WZ wurde geändert' 'Neuer Wert [WT_WZ_Climate:desired-temp] Grad.'");;\
}
attr WT_WZ_notify_1 room Heizung,Wohnzimmer



Wie kann ich den aufrufenden Wert aus dem notify mit dem derzeitigen desired-temp vergleichen?

Quasi:
if (wert_aus_notify !=  [WT_WZ_Climate:desired-temp]
{unterschiedliche Werte}
else
{gleiche Werte}


EDIT: Evtl ging es ja auch mit einem DoIf (besser)?

Viele Grüße
Thomas
Titel: Antw:notify-Wert vom Aufruf benötigt --> bei Wertänderung bei HM-Wandthermostat
Beitrag von: CoolTux am 04 November 2018, 19:32:24

if ($EVTPART1 !=  ReadingsVal($NAME,'desired-temp',200)
{unterschiedliche Werte}
else
{gleiche Werte}
Titel: Antw:notify-Wert vom Aufruf benötigt --> bei Wertänderung bei HM-Wandthermostat
Beitrag von: tklein am 04 November 2018, 19:34:13
Vielen lieben Dank für die sehr schnelle Antwort!!

Grüße
Thomas
Titel: Antw:notify-Wert vom Aufruf benötigt --> bei Wertänderung bei HM-Wandthermo
Beitrag von: tklein am 04 November 2018, 20:17:40
Hey,

das klappt doch nicht so wie gedacht. So wie es aussieht habe ich momentan immer den gleichen Wert (Wert aus dem notify und dem aus dem reading).
Ich bräuchte den den Wert ReadingsVal("WT_WZ_Climate","desired-temp",200)) bevor das notify den Wert aktualisiert

WT_WZ_Climate:desired-temp:..* {
if ($EVTPART1 !=  ReadingsVal("WT_WZ_Climate","desired-temp",200))
{
fhem("set Pushover_Client msg 'Heizung WZ wurde geändert' 'Neuer Wert [WT_WZ_Climate:desired-temp] Grad.'");
}
else {
fhem("set Pushover_Client msg 'Heizung WZ wurde nicht geändert' 'Gleicher Wert [WT_WZ_Climate:desired-temp] Grad.'");
}
}
Titel: Antw:notify-Wert vom Aufruf benötigt --> bei Wertänderung bei HM-Wandthermo
Beitrag von: CoolTux am 04 November 2018, 20:22:21
Das Notify ändert doch den Wert gar nicht.
Aber ich weiß was du meinst.

Setze das Attribut oldReadings mit dem Wert desired-temp und ändere den Funktionsnamen von ReadingsVal nach OldReadingsVal.
Titel: Antw:notify-Wert vom Aufruf benötigt --> bei Wertänderung bei HM-Wandthermo
Beitrag von: frank am 04 November 2018, 21:16:01
es ist doch viel sinnvoller das attr event-on-change-reading im thermostat zu nutzen. dann gibt es nur events bei änderung, wodurch auch das notify deutlich weniger getriggert und abgearbeitet werden muss.

event-on-change würde ich sogar grundsätzlich bei allen devices empfehlen.
Titel: Antw:notify-Wert vom Aufruf benötigt --> bei Wertänderung bei HM-Wandthermo
Beitrag von: tklein am 06 November 2018, 20:04:06
@frank:

Das hatte ich schon gesetzt:
Zitatattr WT_WZ_Climate event-on-change-reading .*

Was allerdings komisch ist, ist die Tatsache, daß
- bei einer Wertänderung der else-Zweig
- bei gleichem Wert der if-Zweig
ausgeführt wird.

Hab jetzt die Nachrichtentexte einfach getauscht und jetzt passt es, auch wenn ich es leider nicht verstehe. Vielleicht ist das "!=" nicht korrekt.

Grüße
Thomas
Titel: Antw:notify-Wert vom Aufruf benötigt --> bei Wertänderung bei HM-Wandthermo
Beitrag von: frank am 06 November 2018, 20:53:22
ZitatDas hatte ich schon gesetzt:
dann muss es zusätzlich weitere attribute oder mechanismen bei dir geben, wodurch auch events bei gleiheit generiert werden.