Structure - kein Update von state im Reading

Begonnen von kadettilac89, 06 Januar 2016, 13:57:51

Vorheriges Thema - Nächstes Thema

kadettilac89

Hallo,

ich bin gerade dabei meine Heizungssteuerung per Dropdown anzupassen. Dafür würde sich m. E. das Hilfsmodul "structure" blendend eignen. Es funktioniert fast perfekt, jedoch wird beim setzen eines neuen Programms das Reading nicht angepasst.

Beispiel:
Ich setze per Dropdown von "Arbeit" auf "Homeoffice". Im State wird richtig Homeoffice gesetzt. Auch die der Struktur zugeordneten Dummies "Heizung_SR" und "Heizung_WZ" erhalten Homeoffice. Im Reading intern bleibt aber Arbeit stehen. Dadurch wird auch im Dropdown zur Auswahl weiterhin "Arbeit" angezeigt.

Setzen über Status im struture-device --> Internal state wird gesetzt  > Problem: Reading wird nicht gesetzt <

Setzen aller zugeordneten Devices --> Reading im struct wird richtig gesetzt (Programm_SR = Arbeit + Programm_WZ = Arbeit --> HeizungStruct wird zu Arbeit gesetzt). Alles OK hier

Aktuell spiele ich nur auf meinem Testsystem, bei 2 Heizkörpern ist es etwas oversized, ich möchte aber noch mehrere Heizkörper aufnehmen.

Mein Setup:
- Dummy pro Heizkörper um den Status zu schalten, und bei Bedarf über ein Notify eine Routine aufrufen die dann das entsprechende Temperaturprogramm zu setzen (SetTempProgram ist in myUtils ... nur zur Erläuterung)
- jeder Heizkörper soll auch per Dropdown individuel gesetzt werden können
- ein Zentralschalter soll mir die Möglichkeit geben die Temeraturprogramme mit einem Klick zu setzen

Kann ich irgendwie erzwingen dass das Reading aktualisiert wird? Fehlt mir ein Attribut oder kann ich es irgendwie anders erzwingen? Ich hätte erwartet dass es automatisch geschieht. Fhem ist aktuell, alles drin was released ist. Version 5.7.

Danke!


#Dropdown Heizprogramm
#### Structure alle Heizkörper
define HeizungStruct structure Programm_SR Programm_WZ Programm_SR
attr HeizungStruct group SteuerungStruct
attr clientstate_behavior absolute
attr HeizungStruct room HomeMatic
attr HeizungStruct setList state:Urlaub,Homeoffice,Arbeit,Aus
attr HeizungStruct webCmd state

#### Wohnzimmer
define Programm_WZ dummy
attr Programm_WZ group Steuerung
attr Programm_WZ room HomeMatic
attr Programm_WZ setList state:Urlaub,Homeoffice,Arbeit,Aus
attr Programm_WZ webCmd state

#Action - Templist setzen
define Programm_WZ_nf notify Programm_WZ {SetTempProgram('Heizung_Wohnzimmer', $EVENT)}

#### Schlafzimmer
define Programm_SR dummy
attr Programm_SR group Steuerung
attr Programm_SR room HomeMatic
attr Programm_SR setList state:Urlaub,Homeoffice,Arbeit,Aus
attr Programm_SR webCmd state

#Action - Templist setzen
define Programm_SR_nf notify Programm_SR {SetTempProgram('Heizung_Schlafzimmer', $EVENT)}

rudolfkoenig

ZitatIm Reading intern bleibt aber Arbeit stehen.
Das habe ich nicht verstanden.

ZitatDadurch wird auch im Dropdown zur Auswahl weiterhin "Arbeit" angezeigt.
Wenn ich das unten aufgefuehrte Beispiel mit einem minimal-Config ausfuehre, dann Aendern sich die Dropdown Werte mAn passend mit, egal ob ich die Dummys direkt oder ueber die Struktur aendere.
Ich tippe auf einem Virsuscanner :) , das war naemlich bei den letzten 5 Faellen bei fehlender Aktualisierung die Ursache.

kadettilac89

Zitat von: rudolfkoenig am 06 Januar 2016, 16:38:33
Wenn ich das unten aufgefuehrte Beispiel mit einem minimal-Config ausfuehre, dann Aendern sich die Dropdown Werte mAn passend mit, egal ob ich die Dummys direkt oder ueber die Struktur aendere.
Ich tippe auf einem Virsuscanner :) , das war naemlich bei den letzten 5 Faellen bei fehlender Aktualisierung die Ursache.

Virenscanner - nein. Habe meine Fhem-Installation auf ein Debian (nackt) kopiert. Selbes Verhalten. Oder meinst du Virenscanner am Frontend der meine Brower (Chrome) überwacht? Hab ich jetzt auch getestet indem ich ihn deaktiviert habe ... auch nicht.

Du sagst in der Minimalconfig funktioniert es bei dir. Ich werde das mal testen.

Im Reading intern bleibt aber Arbeit stehen. ...
--> wenn ich über die Struktur von "Arbeit" auf "Urlaub" ändere habe ich in der Struktur in den Internals STATE den Wert Urlaub, in den Readings state (lower case) bleibt ein Wert von irgendwann vorher, z. B. Arbeit. Der Wert in den Readings wird nur geändert wenn von unten nach oben agregiert wird, also die Änderung von den Dummies kommt.



Internals:
   ATTR       hzg
   CFGFN      ./config/Heating_DBLog_struct.cfg
   DEF        hzg Programm_WZ Programm_SR
   NAME       HeizungStruct
   NR         269
   NTFY_ORDER 50-HeizungStruct
   STATE      Urlaub
   TYPE       structure
   Content:
     Programm_SR Homeoffice
     Programm_WZ Homeoffice
   Readings:
     2016-01-06 16:58:21   LastDevice      Programm_WZ
     2016-01-06 16:58:21   LastDevice_Abs  Programm_WZ
     2016-01-06 16:58:21   state           Homeoffice
Attributes:
   group      SteuerungStruct
   room       HomeMatic
   webCmd     state

rudolfkoenig

ZitatDer Wert in den Readings wird nur geändert wenn von unten nach oben agregiert wird, also die Änderung von den Dummies kommt.
Das konnte ich nachvollziehen, und habs auch gefixt.

kadettilac89

Zitat von: rudolfkoenig am 06 Januar 2016, 17:21:51
Das konnte ich nachvollziehen, und habs auch gefixt.

Habe es per Update bekommen. Funktioniert

Vielen Dank für die schnelle Hilfe!

eldrik

Hi,

scheinbar hat die Änderung Auswirkungen auf definierte Filter.

http://forum.fhem.de/index.php/topic,47053.0.html

Greetz
Eldrik