Eurotronics Spirit Readingsgroup mit Sollwerten (heating und energysaveheating)

Begonnen von omnior, 17 Oktober 2020, 08:53:53

Vorheriges Thema - Nächstes Thema

omnior

Ich möchte in einer Readingsgroup in getrennten Spalten die Sollwerte meiner Spirit Devices anzeigen.
Und zwar in einer Spalte die Sollwerte der Absenktemperatur und in einer weiteren, den des normalen Heizmodus.
Wie mache ich das?

MadMax-FHEM

Das hier hast du dir angesehen: https://wiki.fhem.de/wiki/ReadingsGroup

Ansonsten (wie immer!) bitte lists mind. eines deiner Thermostate!

Wie ist bei dir die Namensvergabe der Geräte!?
Lässt sich das als DevSpec nutzen!?
Ansonsten kann/muss man evtl. mit TYPE "arbeiten" etc.

EDIT:
Zitat von: commandref"
Geräte-Spezifikation (devspec)
[EN DE]

    Die Befehle attr, set, get, usw. attr, deleteattr, displayattr, delete, get, list, set, setreading, setstate, trigger können eine komplexere Gerätespezifikation als Argumente enthalten, die auch eine Anzahl von Geräten betreffen kann. Eine Gerätespezifikation kann folgendes sein:
        ein einzelner Gerätename. Dies ist der Normalfall
        eine durch Komma(,) getrennte Liste von Gerätenamen
        ein regulärer Ausdruck
        ein NAME=WERT Ausdruck, wo NAME ein "Internal" Wert wie TYPE ist, ein Reading-Name oder ein Attribut. WERT ist ein regulärer Ausdruck. Um die Bedingung zu negieren, muss NAME!=WERT verwendet werden. Um die Suche einzugrenzen, kann man als Praefix i: für internal Werte, r: für Reading-Namen und a: für Attribute verwenden, siehe das Beispiel unten. Groß-/Kleinschreibung wird durch die Verwendung von ~ oder !~ ignoriert.
        Falls die Spezifikation von :FILTER=NAME=WERT gefolgt wird, dann wird die zuvor gefundene Liste durch diesen neuen Ausdruck gefiltert.
    Beispiele:
        set lamp1 on
        set lamp1,lamp2,lamp3 on
        set lamp.* on
        set room=kitchen off
        set room=kitchen:FILTER=STATE=on off
        set room=kitchen:FILTER=STATE!=off off
        list disabled=
        list room~office
        list TYPE=FS20 STATE
        list i:TYPE=FS20 STATE
    Bemerkungen:
        die Spezifikation kann keine Leerzeichen enthalten.
        falls ein Gerätename exakt dem Spezifikation entspricht, dann werden keine reguläre Ausdrücke oder Filter ausgewertet.
        zuerst wird die durch Komma getrennte Spezifikation abgearbeitet, dann folgen die regulären Ausdrücke und die Filter
        die Befehlszeile kann die selbe Gerätebezeichnung mehrfach enthalten z.B.: "set lamp3,lamp3 on". Lamp3 wird hier zwei Mal eingeschalten.
        um Strukturen mit komplexeren Anforderungen zu realisieren lesen Sie bitte den Abschnitt zu structure.

Und dann bitte noch mal genauer (mit den tatsächlichen ReadingNamen) was wo stehen soll.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

curt

Waaaaa - das hatte ich ja glatt übersehen/verdrängt!

@MadMax-FHEM
Du bist auf der falschen Baustelle unterwegs, es geht im Moment gar nicht um ReadingsGroup - erstmal müssen die Daten in FHEM.

Ich nehme mal @Beta-User und @krikan mit rein:
Kirkan weiß es, er hat ja den Wiki-Artikel geschrieben: https://wiki.fhem.de/wiki/Z-Wave-Eurotronic_Spirit_Thermostat#Solltemperaturen

Es gibt zwei unterschiedliche Solltemperaturen. Das hatte ich schon wieder verdrängt - dabei läuft einer meiner Thermostaten tatsächlich auch im Modus tmEnergySaveHeating.

BTW: Meine bisherigen Konfigurationen/Scripts habe ich von @rcmcronny (großen Dank nochmals!), das ist das berühmte "desiredTemp" im Gegensatz zu desired-temp, greifen nur auf den Sollwert für heating zu ... gna.

@omnior
Bevor Du mit ReadingsGroup was anstellen kannst, musst Du aktiv (siehe verlinkten Absatz im Wiki-Artikel) vermittels GET die Sollwerte abrufen. Denn der Thermostat meldet nicht aktiv zurück, in FHEM stehen dann veraltete Readings. Ronny gab mir dafür ein Script, welches das alle 30 Minuten tut - glaube ich wenigstens. Ich kann morgen nachsehen.
RPI 4 - Jeelink HomeMatic Z-Wave

MadMax-FHEM

Aber der TE Omnior hat doch speziell und ausdrücklich (Threadtitel und Fragestellung) nach readungsGroup gefragt!!

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

curt

RPI 4 - Jeelink HomeMatic Z-Wave

MadMax-FHEM

Zitat von: curt am 19 Oktober 2020, 01:32:17
Hallo Joachim,
Du hast recht, vielleicht habe ich zu weit gedacht.

Auch das ist noch nicht raus... ;)

Wir werden es (vielleicht) erfahren...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

curt

Zitat von: MadMax-FHEM am 19 Oktober 2020, 02:09:20
Auch das ist noch nicht raus... ;)

Um mal abzuschweifen oder auch nicht abzuschweifen:
Das Problem ist, dass es für den zweiten Sollwert (tmEnergySaving) sowie für die Ventilstellung kein Reading gibt - das bastelt sich jeder selbst. Oder auch nicht.

Bei genauer, systematischer Betrachtung wird auch klar, warum das so ist: Der Thermostat ist nicht so gesprächig, dass er diese Werte freiwillig rausrückt, da muss man schon ein GET losschicken. Dieses systematische Problem war bei meiner battery-Sache (gleiche Baustelle) irgendwie schon in meinem Unterbewusstsein. Aber erst mit diesem Thread wurde mir das Problem wegen des 2. Sollwerts so richtig klar.

Im Moment denke ich tatsächlich, dass das Modul umgestaltet werden muss (ohne das ich das auch nur ansatzweise könnte): Es muss diese (neuen/zusätzlichen) Readings geben, sie sind ja Eigenschaft des Geräts, der Device. Und dafür muss ich die Möglichkeit haben, für jedes neue Reading einen Zeitintervall-Default der Abfrage durch das FHEM-Modul zu überschreiben.

Aber erzähl das mal jemandem. Vermutlich kann ich nicht gut erklären. Oder wirke angriffslustig. Oder alle sind dünnhäutig. - Die Dinge sind so, wie die Dinge sind - ich muss das erstmal so zur Kenntnis nehmen.


Zitat von: MadMax-FHEM am 19 Oktober 2020, 02:09:20Wir werden es (vielleicht) erfahren...

@omnior
Wie steht es um Dein Problem?

Komm, erzähl frei raus - je mehr, desto besser! Keine falsche Scham, Du kannst Dich nicht blamieren - die Rolle habe hier schon ich. ;)

P:S: Ich hatte schon mehrere Thermostate verschiedener Funkprotokolle in den Händen. Der hier in Rede stehende Thermostat ist ganz subjektiv kein Schrott. Sondern eine Perle ... die wir halt noch polieren müssen.
RPI 4 - Jeelink HomeMatic Z-Wave

omnior

Danke erstmal für eure Überlegungen. Aktuell hab ich es so eingerichtet, dass in meinem Readingsgroup über Commands jeweil alternativ der eine (SollSpar) oder der andere (SollHeat) Sollwert abgerufen werden kann (er wird dann auch angezeigt aber eben immer nur als !setpointTemp den setppointSparTemp kennt er natürlich nicht), damit probier ich im Moment herum, schaff es aber nicht beide Werte gleichzeitig darzustellen.
Die Readingsgroup sieht folgendermaßen aus:
Internals:
   DEF        <Raum>,<SollSpar>,<SollHeat>,<SollNeu>,<Ist>,<Ventil>,<Änderung>,<Batterie>,<Modus>,<M>,<->,<d>,<+> .*:FILTER=alias!=.*OFF:FILTER=model=EUROtronic.*:!setpointSparTemp,!setpointTemp,<sollsetz>,!*[Tt]emperature,reportedState,<{ReadingsTimestamp($DEVICE,"temperature","")}>,battery,thermostatMode,!Mode,<{myUtils_HeizungUpDown($DEVICE,"up")}@desired-temp>,desired-new,<{myUtils_HeizungUpDown($DEVICE,"down")}@desired-temp>
   FUUID      5ce9a64e-f33f-5aeb-6144-8a57afdd9d7234c6
   NAME       Temperatur2
   NR         103
   NTFY_ORDER 50-Temperatur2
   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(0x4767ef0)
     ARRAY(0x4ebf3f0)
     ARRAY(0x4f0b330)
     ARRAY(0x4ed71c0)
     ARRAY(0x4ded330)
     ARRAY(0x4e54060)
     ARRAY(0x4ed0410)
     ARRAY(0x4ef36c8)
     ARRAY(0x4ef24a0)
     ARRAY(0x4ef1d50)
     ARRAY(0x4f0b798)
   fhem:
     lastDefChange 158
     last_update 1603271877.79897
   helper:
     DEF       
     commands   {'setpointSparTemp'=>'get $DEVICE setpoint 11','setpointTemp'=>'get $DEVICE setpoint 1', 'Temperatur2.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','Temperatur2.m' => 'set $DEVICE desired-temp =-1;get $DEVICE setpoint','Temperatur2.p' => 'set $DEVICE desired-temp 20;get $DEVICE setpoint','reportedState' => 'get $DEVICE swmStatus','Mode' => 'get $DEVICE thermostatMode;get $DEVICE setpoint'}
     mapping    %ALIAS
     nameStyle  style="color:blue"
     valueColumn {\
setpointSparTemp => 1,
setpointTemp => 2,\
temperature => 3,\
Temperatur2 => 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","")},
avg => "%.1f&deg;C"
}
     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.Mode 10:9
       ZWave_THERMOSTAT_31.battery 10:7
       ZWave_THERMOSTAT_31.desired-new 10:11
       ZWave_THERMOSTAT_31.reportedState 10:5
       ZWave_THERMOSTAT_31.setpointSparTemp 10:1
       ZWave_THERMOSTAT_31.setpointTemp 10:2
       ZWave_THERMOSTAT_31.temperature 10:4
       ZWave_THERMOSTAT_31.thermostatMode 10:8
       ZWave_THERMOSTAT_32.Mode 7:9
       ZWave_THERMOSTAT_32.battery 7:7
       ZWave_THERMOSTAT_32.desired-new 7:11
       ZWave_THERMOSTAT_32.reportedState 7:5
       ZWave_THERMOSTAT_32.setpointSparTemp 7:1
       ZWave_THERMOSTAT_32.setpointTemp 7:2
       ZWave_THERMOSTAT_32.temperature 7:4
       ZWave_THERMOSTAT_32.thermostatMode 7:8
       ZWave_THERMOSTAT_33.Mode 6:9
       ZWave_THERMOSTAT_33.battery 6:7
       ZWave_THERMOSTAT_33.desired-new 6:11
       ZWave_THERMOSTAT_33.reportedState 6:5
       ZWave_THERMOSTAT_33.setpointSparTemp 6:1
       ZWave_THERMOSTAT_33.setpointTemp 6:2
       ZWave_THERMOSTAT_33.temperature 6:4
       ZWave_THERMOSTAT_33.thermostatMode 6:8
       ZWave_THERMOSTAT_38.Mode 9:9
       ZWave_THERMOSTAT_38.battery 9:7
       ZWave_THERMOSTAT_38.desired-new 9:11
       ZWave_THERMOSTAT_38.reportedState 9:5
       ZWave_THERMOSTAT_38.setpointSparTemp 9:1
       ZWave_THERMOSTAT_38.setpointTemp 9:2
       ZWave_THERMOSTAT_38.temperature 9:4
       ZWave_THERMOSTAT_38.thermostatMode 9:8
       ZWave_THERMOSTAT_40.Mode 8:9
       ZWave_THERMOSTAT_40.battery 8:7
       ZWave_THERMOSTAT_40.desired-new 8:11
       ZWave_THERMOSTAT_40.reportedState 8:5
       ZWave_THERMOSTAT_40.setpointSparTemp 8:1
       ZWave_THERMOSTAT_40.setpointTemp 8:2
       ZWave_THERMOSTAT_40.temperature 8:4
       ZWave_THERMOSTAT_40.thermostatMode 8:8
       ZWave_THERMOSTAT_42.Mode 3:9
       ZWave_THERMOSTAT_42.battery 3:7
       ZWave_THERMOSTAT_42.desired-new 3:11
       ZWave_THERMOSTAT_42.reportedState 3:5
       ZWave_THERMOSTAT_42.setpointSparTemp 3:1
       ZWave_THERMOSTAT_42.setpointTemp 3:2
       ZWave_THERMOSTAT_42.temperature 3:4
       ZWave_THERMOSTAT_42.thermostatMode 3:8
       ZWave_THERMOSTAT_44.Mode 4:9
       ZWave_THERMOSTAT_44.battery 4:7
       ZWave_THERMOSTAT_44.desired-new 4:11
       ZWave_THERMOSTAT_44.reportedState 4:5
       ZWave_THERMOSTAT_44.setpointSparTemp 4:1
       ZWave_THERMOSTAT_44.setpointTemp 4:2
       ZWave_THERMOSTAT_44.temperature 4:4
       ZWave_THERMOSTAT_44.thermostatMode 4:8
       ZWave_THERMOSTAT_45.Mode 5:9
       ZWave_THERMOSTAT_45.battery 5:7
       ZWave_THERMOSTAT_45.desired-new 5:11
       ZWave_THERMOSTAT_45.reportedState 5:5
       ZWave_THERMOSTAT_45.setpointSparTemp 5:1
       ZWave_THERMOSTAT_45.setpointTemp 5:2
       ZWave_THERMOSTAT_45.temperature 5:4
       ZWave_THERMOSTAT_45.thermostatMode 5:8
       ZWave_THERMOSTAT_46.Mode 2:9
       ZWave_THERMOSTAT_46.battery 2:7
       ZWave_THERMOSTAT_46.desired-new 2:11
       ZWave_THERMOSTAT_46.reportedState 2:5
       ZWave_THERMOSTAT_46.setpointSparTemp 2:1
       ZWave_THERMOSTAT_46.setpointTemp 2:2
       ZWave_THERMOSTAT_46.temperature 2:4
       ZWave_THERMOSTAT_46.thermostatMode 2:8
       ZWave_THERMOSTAT_55.Mode 11:9
       ZWave_THERMOSTAT_55.battery 11:7
       ZWave_THERMOSTAT_55.desired-new 11:11
       ZWave_THERMOSTAT_55.reportedState 11:5
       ZWave_THERMOSTAT_55.setpointSparTemp 11:1
       ZWave_THERMOSTAT_55.setpointTemp 11:2
       ZWave_THERMOSTAT_55.temperature 11:4
       ZWave_THERMOSTAT_55.thermostatMode 11:8
     recalc:
       undef
       undef
       undef
       undef
       ARRAY(0x4c9fec0)
     values:
       formated:
         undef
         ARRAY(0x4afe040)
         ARRAY(0x274f340)
         undef
         ARRAY(0x4ecf6c0)
         ARRAY(0x4ec7520)
         undef
         ARRAY(0x4ebf1e0)
         ARRAY(0x48f6860)
         ARRAY(0x4eebc10)
         undef
         ARRAY(0x4ca65f8)
       orig:
         undef
         ARRAY(0x4e02718)
         ARRAY(0x4ee8140)
         undef
         ARRAY(0x4ec81b0)
         ARRAY(0x4e674b8)
         undef
         ARRAY(0x4ca6400)
         ARRAY(0x4ef4008)
         ARRAY(0x4eee880)
         undef
         ARRAY(0x4e54d00)
       prefixsuffix:
         undef
         ARRAY(0x4c396b8)
         ARRAY(0x4e5b5d8)
         undef
         ARRAY(0x4c9cfb8)
         ARRAY(0x4ef5060)
         undef
         ARRAY(0x4b80478)
         ARRAY(0x4ebb990)
         ARRAY(0x4e514d8)
         undef
         ARRAY(0x4dea9d0)
Attributes:
   alias      Thermostate
   commands   {'setpointSparTemp'=>'get $DEVICE setpoint 11','setpointTemp'=>'get $DEVICE setpoint 1', 'Temperatur2.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','Temperatur2.m' => 'set $DEVICE desired-temp =-1;get $DEVICE setpoint','Temperatur2.p' => 'set $DEVICE desired-temp 20;get $DEVICE setpoint','reportedState' => 'get $DEVICE swmStatus','Mode' => 'get $DEVICE thermostatMode;get $DEVICE setpoint'}
   comment    reported State in der Def war vorher: <{ReadingsVal($DEVICE,"reportedState","")}>
nun geändert auf reportedState
und funktioniert damit auch
   group      ReadingsGruppe
   icon       icoTemp
   mapping    %ALIAS
   nameStyle  style="color:blue"
   room       5. Umwelt,Küche,Übersicht
   sortDevices 1
   sortby     99
   valueColumn {\
setpointSparTemp => 1,
setpointTemp => 2,\
temperature => 3,\
Temperatur2 => 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","")},
avg => "%.1f&deg;C"
}
   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",'}


MadMax-FHEM

Ich bin mal ehrlich: ich habe keine Ahnung was du machst/willst bzw. wo konkret das Problem ist!?

Will sagen: mit deiner Problembeschreibung (wenn man das so nennen kann, also: meine Sicht) kann ich nichts anfangen.

Wie wäre es denn mit einem list eines der Thermostate!?

Evtl. etwas ausführlicher was denn schon geht (wenn schon etwas von dem geht was du willst) und was genau nicht geht...

Und: wie bist du zu der aktuellen readingsGroup (die gepostet wurde) gekommen!?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

omnior

Sorry, wenn das nicht verständlich war. Es geht mir darum die beiden Sollwerte (für EnergySaveHeating und für Heating) in der Readingsgroup darzustellen. Die im Laufe der Zeit von mir zusammengebaute Readingsgroup stellt alle meine 10 Thermostate mit den aktuellen Ist und Sollwerten dar. Sie ermöglicht mir auch für jeden Thermostat direkt einen neuen Sollwert zu setzen. Das Problem ist hierbei eben nur, dass ich nicht gleichzeitig beide Sollwerte abfragen bzw. darstellen kann. Das muss ich aber, da einzelne Thermostate eventuell bewußt im Absenkmodus sind und andere nicht. Also möchte ich übersichtlich den aktuellen Modus des einzelnen THermostats und seinen Soll und Istwert sehen können.

Hier wie gewünscht noch ein List eines der Thermostaten.
Internals:
   DEF        e8edde56 44
   FUUID      5cff4032-f33f-5aeb-bcc9-1736534d73314be2
   IODev      ZBoard
   LASTInputDev ZBoard
   MSGCNT     442
   NAME       ZWave_THERMOSTAT_44
   NR         151
   STATE      tmHeating
   TYPE       ZWave
   ZBoard_MSGCNT 442
   ZBoard_RAWMSG 0004002c0631050142070e
   ZBoard_TIME 2020-10-21 16:36:13
   ZWaveSubDevice no
   cmdsPending 0
   homeId     e8edde56
   isWakeUp   
   lastMsgSent 1603290600.06516
   nodeIdHex  2c
   webCmd     desired-temp
   READINGS:
     2020-10-17 05:39:31   SEND_DATA       failed:00
     2019-10-05 13:58:05   UNPARSED        SENSOR_BINARY 06300501420805
     2020-10-21 12:42:13   battery         45 %
     2020-10-21 12:42:13   batteryPercent  45
     2020-10-21 12:42:13   batteryState    ok
     2019-12-21 22:06:36   configBacklight BacklightEnabled
     2019-06-11 08:17:12   configMeasuredTemperatureReport 5
     2020-10-15 22:55:38   desired-new     00
     2019-09-24 12:57:51   model           EUROtronic EUR_SPIRITZ Wall Radiator Thermostat
     2019-09-24 12:57:51   modelConfig     eurotronic/eur_spiritz.xml
     2019-09-24 12:57:51   modelId         0148-0003-0001
     2019-09-25 17:33:45   neighborList    ZWave_THERMOSTAT_42 ZWave_THERMOSTAT_45
     2020-10-17 05:59:42   reportedState   dim 4
     2020-10-21 11:10:53   setpointTemp    18.0 C heating
     2020-10-21 16:30:00   state           tmHeating
     2020-10-21 16:36:13   temperature     18.06 C
     2020-10-21 11:10:52   thermostatMode  energySaveHeating
     2020-10-16 23:35:46   thermostatSetpointSupported heating energySaveHeating
     2020-10-21 11:10:53   timeToAck       0.095
     2020-10-21 11:10:53   transmit        OK
     2019-09-24 12:57:52   zwavePlusInfo   version:01 role:SleepingListeningSlave node:Z-Wave+Node installerIcon:1200 userIcon:1200
Attributes:
   IODev      ZBoard
   alias      Bad EG Thermostat
   classes    ZWAVEPLUS_INFO ASSOCIATION ASSOCIATION_GRP_INFO VERSION MANUFACTURER_SPECIFIC DEVICE_RESET_LOCALLY PROTECTION SENSOR_MULTILEVEL SWITCH_MULTILEVEL THERMOSTAT_MODE THERMOSTAT_SETPOINT BATTERY CONFIGURATION ALARM POWERLEVEL SECURITY SECURITY_S2 TRANSPORT_SERVICE SUPERVISION FIRMWARE_UPDATE_MD
   room       Bad EG,ZWave
   sortby     50
   userattr   heizt heizt_map structexclude
   vclasses   ALARM:8 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 BATTERY:1 CONFIGURATION:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:3 MANUFACTURER_SPECIFIC:1 POWERLEVEL:1 PROTECTION:1 SECURITY:1 SECURITY_S2:1 SENSOR_MULTILEVEL:5 SUPERVISION:1 SWITCH_MULTILEVEL:1 THERMOSTAT_MODE:3 THERMOSTAT_SETPOINT:3 TRANSPORT_SERVICE:2 VERSION:2 ZWAVEPLUS_INFO:2[code]

MadMax-FHEM

Ok.

Aber trotzdem (noch mal):

Was geht schon!?

Was geht noch nicht!?

Geht es für manche Thermostate!?

Für gar keines!?

Alle selber Typ!?

Weil: (wo immer du Sachen "her geklaut" hast) du hast (zumindest sehe ich es nicht) kein desired-temp! Darauf zielen aber die myUtils_HeatingUpDown ab... Was macht die myUtils_HeatingUpDown (ok, ja ich kann's mir denken ;)  ) wo hast du das "Konstrukt" her? Aus wie vielen Quellen hast du "zusammenkopiert"? Wie war dein Vorgehen? Weil es ist eine ganz schön "üppige" readingsGroup, wenn du wirklich "nur" Ist/Soll mit "hoch/runter" haben willst...

Ich weiß auch nicht wieviel Arbeit du schon reingesteckt hast...
...aber ich würde erst mal (noch mal / überhaupt mal) beschreiben: welche Readings du wie dargestellt haben willst...

Ich sehe auch weitere Readings, die du in der readingsGroup haben willst, dein Device aber (noch) nicht hat...

Daher wohl auch die "!" (Ausrufezeichen) in der readingsGroup!?
Musste erst nachschauen wozu das überhaupt gut ist...

Ich habe ja auch eine Übersicht, so wie du sie evtl. willst.
Allerdings ganz ohne Ausrufezeichen etc.

Bild anbei...

DEF (nur bzgl. Wandthermostate) hier:

<Raum>,<Ist>,<Soll>,<>,<>,<Luft>,<Taupunkt>,<> NAME=Wand.*_Climate:measured-temp,desired-temp,<{my_HeatingUpDown($DEVICE,"up")}@desired-temp>,<{my_HeatingUpDown($DEVICE,"down")}@desired-temp>,humidity,dewpoint,<{my_SetHeatingModeIcon($DEVICE)}@controlMode>


Meine Wandthermostate heißen alle Wandthermostat_Raum

EDIT: liefern im _Clima Kanal (ist bei Homematic so) mit dem Reading temperature die IST und im Reading desired-temp eben die SOLL. In humidity noch die Luftfeuchte und in controlMode noch den aktuellen Modus (auto, manuell, ...)

Die sub my_HeatingUpDown stellt eine neue Soll ein und liefert ein entsprechendes Icon zurück (je nachedem ob "up" oder "down")...
Sieht aus wie bei dir ;)

ABER: wie geschrieben ich sehe kein Reading desired-temp bei dir...

EDIT: also wenn ich weiß welche Readings du in der readingsGroup anzeigen willst und welches Reading WAS ist (IST/SOLL) und wie du neue SOLL setzen kannst, dann können wir auch noch mal (parallel) anfangen und die readingsGroup aufbauen wie du sie haben willst. Deine umbauen ist mir zu kompliziert! (da bin ich ehrlich)

EDIT: und wie der Name readingsGroup ausdrückt damit ist es möglich Readings von Devices geordnet darzustellen (und mehr ;)  )... Aber es müssen schon Readings sein, die das Device auch hat... ;) Wenn sie (noch) nicht so sind wie du sie möchtest/brauchst, gibt es auch userreadings (beim Device selbst!) damit kann man sich Readings "umbauen" etc.

EDIT: wenn das was ich im Bild zeige nicht das ist (in etwa) was du willst, dann sorry, dass ich hier geantwortet habe! Aber in dem Fall bin ich (total) raus...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

omnior

Hallo Joachim, danke nochmal für deine Hilfe. Ich will versuchen es nochmal zu erklären.
Grundsätzlich funktioniert diese Readingsgroup wunderbar, mit allen Thermostaten so wie ich es will.
Die Zwave Eurotronics haben jeweils einen unterschiedlichen Sollwert für die Absenktemperatur und für die normale Temperatur. Das ist eigentlich sehr praktisch, weil man einfach nur den Modus "absenken" oder "normales Heizen" umstellen kann.
Das Problem ist jetzt dass in meiner Readingsgroup bisher immer nur ein Sollwert angezeigt wird und zwar derjenige des gerade eingestellten Modus. Nur das wollte ich ändern.
Den Sollwert kann man mit desired_temp setzen aber auch mit setpoint (mit zusätzlichem Parameter). Diese zweite Variante hat den Vorteil dass man mit setpoint 11 den Absenksollwert und mit setpoint 1 den normalen Sollwert setzen und entsprechend auch abfragen kann. Man erhält dann den setpointTemp und den Modus dazu. Desired_temp geht halt auf den Sollwert des gerade eingestellten Modus. Ich möchte aber beide Sollwerte hier anzeigen und das gelingt mir irgendwie nicht.
Der Grund ist sicherlich, dass das Device eben nur den Sollwert des gerade eingestellten Modus als reading hergibt (in setpointTemp). Wenn ich dieses Reading in der Readingsgroup benutze bekomme ich halt immer nur den aktuellen Sollwert (was prinzipiell ja auch ok ist). Ich möchte aber immer für jeden Thermostat aber beide Sollwerte anzeigen.
Ich dachte es ist ein Problem der Readingsgroup, irgendwie müsste man doch einen Befehl wie get $DEVICE setpoint 11 auch anzeigen können...soweit jedenfalls meine Überlegung.


MadMax-FHEM

Dann würde ich dafür (wie erwähnt) mal mit einem userreadings "rumspielen".

Evtl. 2 (ACHTUNG: beide müssen in das EINE Attribut userreadings! ;)  ):

eines pro heating-Status

Ich habe allerdings (leider) noch nicht verstanden wie sich erkennen lässt, welcher Wert nun steht.
Steht der immer im selben Reading?

Und abhängig eines anderen Readings (Modus?) ist dann "erkennbar" wie die angezeigte Temperatur zu verstehen ist!?

Sorry aber ohne das Gerät/Device zu haben ist es schwer nachzuvollziehen ;)

Wenn es "erkennbar" ist, welche Temp wann was ist, dann sollte das mit einem (oder 2) userreadings gehen...

Und dann könntest du eben statt den/dem tatsächlichen Reading eben die beiden "selbst erstellten" anzeigen...

Mehr kann ich dann hier wohl leider nicht helfen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

omnior

oK, danke werde mit den userreadings mal rumprobieren.
@curt  Die Sollwerte kann ich ja mit get setpoint 11 bzw. get setpoint 1 abfragen, mir ist nur nicht ganz klar wie ich diese Werte nun weiterverarbeiten kann bzw. z.B. in einer Readingsgroup anzeige. Wie hast Du das gelöst?

curt

Zitat von: omnior am 21 Oktober 2020, 19:03:19
Wie hast Du das gelöst?

Gar nicht - durch Dich bin ich ja erst wieder auf das Problem gestoßen, das taucht ja auch an anderen Stellen auf. Klar hatte ich das mal im Wiki gelesen und auch ausprobiert - und halt wieder vergessen.

Erstmal zu den Fakten, für MadMax-FHEM , aber auch für andere Mitleser - es geht um folgendes Problem:

Es gibt zwei automatische Heizmodi, die stellt man via tmHeating bzw. tmEnergySaveHeating an bzw. um. Beiden kann man einen Sollwert mitgeben, es gibt also zwei Sollwerte.

Jetzt wird es spannend: Die stehen nicht etwa in Readings der Device. Die muss man (wie so vieles bei diesem Thermostaten) aktiv per GET abfragen. Das war das erste Problem. Jetzt kommt das zweite Problem: Beide landen in nur einem Reading, je nachdem, was zuletzt abgefragt wurde.

Am Beispiel:
get Thermostat_Arbeitszimmer setpoint 1 --> Reading setpointTemp "23.0 C heating"

get Thermostat_Arbeitszimmer setpoint 11 --> Reading setpointTemp "18.0 C energySaveHeating"

@krikan kennt den Thermostat am besten, er kann sicher sagen, ob ich das richtig beschrieb oder irgend etwas übersehen habe.

@Beta-User nehme ich rein, weil er an sehr ähnlicher Front über andere Lösungswege nachdenkt. Er sollte auch über dieses Problem in Kenntnis gesetzt sein.

Ich persönlich finde ja, dass es systematisch korrekt wäre, wenn das Modul selbst diese Probleme lösen würde. Aber ich bin nicht der Nabel der Welt. Ich verstand @rudolfkoenig so, dass am fraglichen Modul in derartigen Sachen nichts geändert wird. Die Argumente habe ich (nur) teilweise verstanden, das liegt aber an mir. Ich bin wie gesagt nicht der Nabel der Welt und halte mich auch nicht dafür - ich schreibe das nur, damit wir alle auf gleichem Informationsstand sind.

Danke @omnior für Deine Antworten.
RPI 4 - Jeelink HomeMatic Z-Wave