FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: pillepalle12 am 25 November 2016, 12:33:22

Titel: (Gelöst) Dummy und Notify Wert erhöhen und verringern aktualisiert nicht
Beitrag von: pillepalle12 am 25 November 2016, 12:33:22
Hallo, ich habe ein Dummy, Notify Problem, dass ich leider trotz recherche in anderen Themen nicht gelöst bekomme:

Meine Wärmepumpenheizung hängt mit dem Modul LUXTRONIK2 als "Heizung" definiert in FHEM.

Um die Rücklauftemperatur um +-5 Kelvin zu verändern, habe ich einen Dummy mit 2 Notifys gebaut die den Wert jeweils erhöhen oder verringern sollen beim klick.

Das funktioniert auch wirklich gut, die Änderung sehe ich im Luxtronik2 Gerät in den Readings (returnTemperatureSetBack) perfekt.

Das eigentliche Problem ist, dass der aktuell angezeigte Wert leider immer um +-1 Grad hinterher hinkt. Die Aktualisierung erfolgt erst nach dem Klick aber der Wert ist der vorherige.

Hier mein Code:

define HeizungsTemp dummy
attr HeizungsTemp stateFormat Wert
attr HeizungsTemp userReadings Wert { ReadingsVal("Heizung","returnTemperatureSetBack",0);;;; }
attr HeizungsTemp webCmd wärmer:kälter
define Heizungceraendern notify HeizungsTemp {my $Wert=ReadingsVal("Heizung","returnTemperatureSetBack",0);;\
    if ($EVENT eq "wärmer") {\
    $Wert = $Wert+1};;\
fhem("set Heizung returnTemperatureSetBack $Wert");;\
}
define Heizungveraendern2 notify HeizungsTemp {my $Wert=ReadingsVal("Heizung","returnTemperatureSetBack",0);;\
    if ($EVENT eq "kälter") {\
    $Wert = $Wert-1};;\
fhem("set Heizung returnTemperatureSetBack $Wert");;\
}


Ich habe schon mit einem DoIf Trigger gespielt und versucht so immer den aktuellen Wert von Heizung:returnTemperatureSetBack zu ziehen, hab es bisher aber nicht geschafft.

Hat jemand von Euch einen heißen Tipp?
Vielen Dank
Titel: Antw:Dummy und Notify Wert erhöhen und verringern aktualisiert nicht
Beitrag von: Benni am 25 November 2016, 12:36:54
Was passiert, wenn du zum setzen des Wertes über setreading (http://fhem.de/commandref_DE.html#setreading) gehst?


fhem("setreading Heizung returnTemperatureSetBack $Wert");;\
Titel: Antw:Dummy und Notify Wert erhöhen und verringern aktualisiert nicht
Beitrag von: pillepalle12 am 25 November 2016, 12:42:47
Dann funktioniert es einwandfrei!!  :D
DU bist ein Schatz!!!


VIELEN DANK - wahnsinn wie schnell hier geholfen wird!


Der vollständigkeit halber hier der komplette Code mit DOIF:

#Heizungswärme steuern:

define HeizungsTemp dummy
attr HeizungsTemp group 01_Klima
attr HeizungsTemp icon temp_control
attr HeizungsTemp room Heizung
attr HeizungsTemp stateFormat Wert
attr HeizungsTemp userReadings Wert { ReadingsVal("Heizung","returnTemperatureSetBack",0);;;; }
attr HeizungsTemp webCmd wärmer:kälter
define Heizungceraendern notify HeizungsTemp {my $Wert=ReadingsVal("Heizung","returnTemperatureSetBack",0);;\
    if ($EVENT eq "wärmer") {\
    $Wert = $Wert+1};;\
fhem("setreading Heizung returnTemperatureSetBack $Wert");;\
}
define Heizungveraendern2 notify HeizungsTemp {my $Wert=ReadingsVal("Heizung","returnTemperatureSetBack",0);;\
    if ($EVENT eq "kälter") {\
    $Wert = $Wert-1};;\
fhem("setreading Heizung returnTemperatureSetBack $Wert");;\
}


define Heizungstempaktualisieren DOIF ([Heizung]) (set HeizungsTemp Werte)
attr Heizungstempaktualisieren do always
Titel: Antw:(Gelöst) Dummy und Notify Wert erhöhen und verringern aktualisiert nicht
Beitrag von: pillepalle12 am 01 Dezember 2016, 07:19:09
Leider zu früh gefreut...

Wollte Gestern die Wärme anpassen und da hab ich gemerkt, dass der Wert zwar im Luxtronik2 Modul in FHEM geändert wird, nicht aber auf der Heizung selbst.
Wenn ich ein Set verwende, kommt es auch bei der Heizung an, bei setreadng nur im FHEM.

Ich komme nicht weiter  :-[
Titel: Antw:(Gelöst) Dummy und Notify Wert erhöhen und verringern aktualisiert nicht
Beitrag von: dev0 am 01 Dezember 2016, 08:05:50
Zitat von: pillepalle12 am 01 Dezember 2016, 07:19:09
Ich komme nicht weiter  :-[

http://fhem.de/commandref.html#setreading
Zitat
Note: setreading won't generate an event for device X, if it is called from a notify for device X. Use "sleep 0.1; setreading X Y Z" in this case.
Titel: Antw:(Gelöst) Dummy und Notify Wert erhöhen und verringern aktualisiert nicht
Beitrag von: pillepalle12 am 01 Dezember 2016, 19:21:27
Danke für den Tipp, mit einer Kombi aus SET und SETREADING funktioniert es jetzt wie gewünscht:

#Heizungswärme steuern:

define HeizungsTemp dummy
attr HeizungsTemp group 01_Klima
attr HeizungsTemp icon temp_control
attr HeizungsTemp room Heizung
attr HeizungsTemp stateFormat Wert
attr HeizungsTemp userReadings Wert { ReadingsVal("Heizung","returnTemperatureSetBack",0);;;; }
attr HeizungsTemp webCmd wärmer:kälter
define Heizungveraendern notify HeizungsTemp {my $Wert=ReadingsVal("Heizung","returnTemperatureSetBack",0);;\
    if ($EVENT eq "wärmer") {\
    $Wert = $Wert+1};;\
fhem("set Heizung returnTemperatureSetBack $Wert;;setreading Heizung returnTemperatureSetBack $Wert");;\
}
define Heizungveraendern2 notify HeizungsTemp {my $Wert=ReadingsVal("Heizung","returnTemperatureSetBack",0);;\
    if ($EVENT eq "kälter") {\
    $Wert = $Wert-1};;\
fhem("set Heizung returnTemperatureSetBack $Wert;;setreading Heizung returnTemperatureSetBack $Wert");;\
}


define Heizungstempaktualisieren DOIF ([Heizung]) (set HeizungsTemp Werte)
attr Heizungstempaktualisieren do always
Titel: Antw:(Gelöst) Dummy und Notify Wert erhöhen und verringern aktualisiert nicht
Beitrag von: regii am 16 September 2017, 17:27:28
ich finde es schöner, wenn man die beiden Notifies vereint und zudem auch gleicht den Wert des HeizungsTemp aktualisiert, damit man sofort sieht, dass was passiert, wenn man auf den Button klickt:

HeizungsTemp {
  my $Wert=ReadingsVal("Heizung","returnTemperatureSetBack",0);
  if($EVENT eq "wärmer") {
   $Wert = $Wert+1;
  }
  if($EVENT eq "kälter") {
   $Wert = $Wert-1;
  }
  fhem("set Heizung returnTemperatureSetBack $Wert;setreading Heizung returnTemperatureSetBack $Wert;set HeizungsTemp $Wert");
}