autom. Aktualisierung einer Readingsgroup mit Eurotronics Spirit Zwave Devices

Begonnen von omnior, 16 Dezember 2020, 23:34:45

Vorheriges Thema - Nächstes Thema

omnior

Im Rahmen einer Heizungssteuerung fasse ich über eine readingsGroup 10 Heizkörperthermostate zusammen. In der Übersicht werden die Sollwerte des Energiesparmodus und des Normalmodus angezeigt, der aktuelle Modus, aktuelle Temperatur, Ventilstellung und Batteriestatus.
https://www.dropbox.com/s/h4gmoot77wkl26c/temperatur3.JPG?dl=0
Die beiden Sollwerte frage ich bisher immer explizit über get ab und speichere sie in den Variablen desTempSaving und desTempHeating, erst mit einem Klick auf die entsprechende Solltemperatur wird das Get Command ausgeführt, in einem PopupFenster ausgeführt und dann korrekt angezeigt.
Genauso bei dem Thermostatmodus oder der Ventilstelllung, diese werden auch erst über ein get Command nach Klick auf den in der Tabelle enthaltenen Wert aktualisiert.
Lediglch die aktuelle Ist Temperatur ändert sich korrekt mit jeder tatsächlichen Temperaturveränderung in jedem der Devices.

Warum ist das so? Kann man das nicht irgendwie ändern, sodaß Ventilstellung, Thermostatmodus oder Sollwerte direkt nach einer Änderung (z.B. gibt es eine Zeitsteuerung die solche Werte ändert) korrekt angezeigt werden?

Grundsätzlich steht im fhemweb device longpoll auf websocket, im ZWDongle habe ich jetzt das setReadingOnAck Attribut auf 1 gesetzt, aber all das hat noch nix gebracht, ich mache also noch irgendwas anderes grundsätzlich falsch oder es fehlt etwas.
Hier die komplette Readingsgroup, vielleicht kann einer der Readingsgroup Spezialisten mir mal auf die Sprünge helfen?

Internals:
   CFGFN     
   DEF        <Raum>,<SollSpar>,<SollHeat>,<SollNeu>,<Modus>,<Ist>,<Ventil>,<Änderung>,<Batterie> .*:FILTER=alias!=.*OFF:FILTER=model=EUROtronic.*:!desTempSaving,!desTempHeating,<sollsetz>,thermostatMode,!*[Tt]emperature,reportedState,<{ReadingsTimestamp($DEVICE,"temperature","")}>,battery
   FUUID      5fda79e0-f33f-5aeb-74d2-077a89d11ea20732
   NAME       temperatur3
   NR         397
   NTFY_ORDER 50-temperatur3
   STATE      Initialized
   TYPE       readingsGroup
   changed    0
   mayBeVisible 1
   CONTENT:
     ZWave_THERMOSTAT_31 1
     ZWave_THERMOSTAT_32 1
     ZWave_THERMOSTAT_33 1
     ZWave_THERMOSTAT_38 1
     ZWave_THERMOSTAT_40 1
     ZWave_THERMOSTAT_42 1
     ZWave_THERMOSTAT_44 1
     ZWave_THERMOSTAT_45 1
     ZWave_THERMOSTAT_46 1
     ZWave_THERMOSTAT_55 1
   CONTENT2:
   DEVICES:
     ARRAY(0x4e14408)
     ARRAY(0x4fae590)
     ARRAY(0x4a01f18)
     ARRAY(0x4c4c2d0)
     ARRAY(0x4e24a50)
     ARRAY(0x4a3bee0)
     ARRAY(0x4a43af8)
     ARRAY(0x4c46de8)
     ARRAY(0x4d84100)
     ARRAY(0x4c500a8)
     ARRAY(0x4dd3168)
   fhem:
     lastDefChange 84
     last_update 1608155986.6654
   helper:
     DEF       
     commands   {'desTempSaving'=>'get $DEVICE setpoint 11','desTempHeating'=>'get $DEVICE setpoint 1', 'temperatur3.sollsetz'=>'desired-temp:5.0,12.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0','reportedState' => 'get $DEVICE swmStatus','thermostatMode' => 'get $DEVICE thermostatMode;get $DEVICE setpoint'}
     valueColumns {\
setpointSparTemp => 1,
setpointTemp => 2,\
temperature => 3,\
temperatur3 => 3,\
reportedState => 4,\
timestamp => 5,\
battery => 6,\
thermostatmode => 7,\
}
     valueFormat {temperature => "%.1f&deg;C",
AM2301_Temperature => "%.1f&deg;C",
setpointTemp => "%.1f&deg;C",
timestamp => {ReadingsTimestamp($DEVICE,"temperature","")}
}
     valueStyle {($READING eq "temperature" && $VALUE < ReadingsNum($DEVICE, "setpointTemp",undef))?'style="color:red;text-align:right;font-weight:bold"':($VALUE eq "00")?'style="visibility:hidden"':'style="color:green;text-align:right",'}
     positions:
       ZWave_THERMOSTAT_31.battery 2:8
       ZWave_THERMOSTAT_31.desTempHeating 2:2
       ZWave_THERMOSTAT_31.desTempSaving 2:1
       ZWave_THERMOSTAT_31.reportedState 2:6
       ZWave_THERMOSTAT_31.temperature 2:5
       ZWave_THERMOSTAT_31.thermostatMode 2:4
       ZWave_THERMOSTAT_32.battery 3:8
       ZWave_THERMOSTAT_32.desTempHeating 3:2
       ZWave_THERMOSTAT_32.desTempSaving 3:1
       ZWave_THERMOSTAT_32.reportedState 3:6
       ZWave_THERMOSTAT_32.temperature 3:5
       ZWave_THERMOSTAT_32.thermostatMode 3:4
       ZWave_THERMOSTAT_33.battery 4:8
       ZWave_THERMOSTAT_33.desTempHeating 4:2
       ZWave_THERMOSTAT_33.desTempSaving 4:1
       ZWave_THERMOSTAT_33.reportedState 4:6
       ZWave_THERMOSTAT_33.temperature 4:5
       ZWave_THERMOSTAT_33.thermostatMode 4:4
       ZWave_THERMOSTAT_38.battery 5:8
       ZWave_THERMOSTAT_38.desTempHeating 5:2
       ZWave_THERMOSTAT_38.desTempSaving 5:1
       ZWave_THERMOSTAT_38.reportedState 5:6
       ZWave_THERMOSTAT_38.temperature 5:5
       ZWave_THERMOSTAT_38.thermostatMode 5:4
       ZWave_THERMOSTAT_40.battery 6:8
       ZWave_THERMOSTAT_40.desTempHeating 6:2
       ZWave_THERMOSTAT_40.desTempSaving 6:1
       ZWave_THERMOSTAT_40.reportedState 6:6
       ZWave_THERMOSTAT_40.temperature 6:5
       ZWave_THERMOSTAT_40.thermostatMode 6:4
       ZWave_THERMOSTAT_42.battery 7:8
       ZWave_THERMOSTAT_42.desTempHeating 7:2
       ZWave_THERMOSTAT_42.desTempSaving 7:1
       ZWave_THERMOSTAT_42.reportedState 7:6
       ZWave_THERMOSTAT_42.temperature 7:5
       ZWave_THERMOSTAT_42.thermostatMode 7:4
       ZWave_THERMOSTAT_44.battery 8:8
       ZWave_THERMOSTAT_44.desTempHeating 8:2
       ZWave_THERMOSTAT_44.desTempSaving 8:1
       ZWave_THERMOSTAT_44.reportedState 8:6
       ZWave_THERMOSTAT_44.temperature 8:5
       ZWave_THERMOSTAT_44.thermostatMode 8:4
       ZWave_THERMOSTAT_45.battery 9:8
       ZWave_THERMOSTAT_45.desTempHeating 9:2
       ZWave_THERMOSTAT_45.desTempSaving 9:1
       ZWave_THERMOSTAT_45.reportedState 9:6
       ZWave_THERMOSTAT_45.temperature 9:5
       ZWave_THERMOSTAT_45.thermostatMode 9:4
       ZWave_THERMOSTAT_46.battery 10:8
       ZWave_THERMOSTAT_46.desTempHeating 10:2
       ZWave_THERMOSTAT_46.desTempSaving 10:1
       ZWave_THERMOSTAT_46.reportedState 10:6
       ZWave_THERMOSTAT_46.temperature 10:5
       ZWave_THERMOSTAT_46.thermostatMode 10:4
       ZWave_THERMOSTAT_55.battery 11:8
       ZWave_THERMOSTAT_55.desTempHeating 11:2
       ZWave_THERMOSTAT_55.desTempSaving 11:1
       ZWave_THERMOSTAT_55.reportedState 11:6
       ZWave_THERMOSTAT_55.temperature 11:5
       ZWave_THERMOSTAT_55.thermostatMode 11:4
     recalc:
       undef
       undef
       ARRAY(0x4e12730)
       undef
       undef
       ARRAY(0x4d5eff8)
       ARRAY(0x4e0fa68)
       undef
       ARRAY(0x4c50330)
     values:
       formated:
         undef
         ARRAY(0x4fa6cd0)
         ARRAY(0x4d632f8)
         undef
         ARRAY(0x4dd49f0)
         ARRAY(0x4bd2458)
         ARRAY(0x4c70b28)
         undef
         ARRAY(0x4dd1f38)
       orig:
         undef
         ARRAY(0x4c42b40)
         ARRAY(0x4fb1fd0)
         undef
         ARRAY(0x4df48c8)
         ARRAY(0x4ecf618)
         ARRAY(0x4c403f8)
         undef
         ARRAY(0x4a2e490)
       prefixsuffix:
         undef
         ARRAY(0x4c3b218)
         ARRAY(0x5033428)
         undef
         ARRAY(0x49ef868)
         ARRAY(0x4e1e470)
         ARRAY(0x4e081c8)
         undef
         ARRAY(0x4c71158)
Attributes:
   commands   {'desTempSaving'=>'get $DEVICE setpoint 11','desTempHeating'=>'get $DEVICE setpoint 1', 'temperatur3.sollsetz'=>'desired-temp:5.0,12.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0','reportedState' => 'get $DEVICE swmStatus','thermostatMode' => 'get $DEVICE thermostatMode;get $DEVICE setpoint'}
   room       Übersicht
   valueColumns {\
setpointSparTemp => 1,
setpointTemp => 2,\
temperature => 3,\
temperatur3 => 3,\
reportedState => 4,\
timestamp => 5,\
battery => 6,\
thermostatmode => 7,\
}
   valueFormat {temperature => "%.1f&deg;C",
AM2301_Temperature => "%.1f&deg;C",
setpointTemp => "%.1f&deg;C",
timestamp => {ReadingsTimestamp($DEVICE,"temperature","")}
}
   valueStyle {($READING eq "temperature" && $VALUE < ReadingsNum($DEVICE, "setpointTemp",undef))?'style="color:red;text-align:right;font-weight:bold"':($VALUE eq "00")?'style="visibility:hidden"':'style="color:green;text-align:right",'}