MQTT2_Device setList und Readingverhalten

Begonnen von ToKa, 25 März 2020, 15:50:34

Vorheriges Thema - Nächstes Thema

ToKa

Hallo zusammen,

ich habe ein Verständnisproblem bei der Umsetzung für ein Heizungsventil. Mein MQTT2_Device hat ein Reading "desired-new" für die Solltemperatur und eine setList Anweisung mit Slider zum Einstellen. Den Wert kann ich über die Weboberfläche einstellen und er wird auch an meinen Mosquitto udn von dort an meine zweite FHEM Instanz übertragen.

Das Reading "desired-new" wird allerdings nicht aktualisiert - nur der state auf "desired-new" gesetzt. Auch aus einer Routine in meiner 99_myUtils heraus lässt sich mit set desired-new xx.x zwar der Wert setzen bzw. übertragen, aber das Reading ändert sich nicht.

Bei einem Schalter ändert sich zumindest der state auf on / off, wenn ich über die Weboberfläche ein set on / off anklicke.

Wo liegt mein (Denk-)Fehler oder geht es gar nicht, dass das Reading auch aktualisiert wird?

Hier noch ein List:
Internals:
   CHANGED   
   CID        E4_az_THKV_Heizkoerper_Wand
   DEF        E4_az_THKV_Heizkoerper_Wand
   DEVICETOPIC E4_az_THKV_Heizkoerper_Wand
   FUUID      5e286185-f33f-f2d8-17d1-a5c3702ffcf71491
   FVERSION   10_MQTT2_DEVICE.pm:0.215010/2020-03-24
   IODev      ZS_zs_CO_SmartHome_MQTT_Client
   LASTInputDev ZS_zs_CO_SmartHome_MQTT_Client
   MSGCNT     125
   NAME       E4_az_THKV_Heizkoerper_Wand
   NR         16
   STATE      Ist: 22.02 °C (20.5 °C)
Ventil: 0 % (heating)
   TYPE       MQTT2_DEVICE
   ZS_zs_CO_SmartHome_MQTT_Client_MSGCNT 125
   ZS_zs_CO_SmartHome_MQTT_Client_TIME 2020-03-25 15:28:54
   READINGS:
     2020-01-29 18:39:43   associatedWith  ZS_zs_MQTT2_SCADA_Bridge
     2020-02-29 16:20:24   battery         35 %
     2020-02-29 16:20:24   batteryPercent  35
     2020-03-25 11:18:54   desired-new     00
     2020-03-25 11:22:31   desired-temp    20.5
     2020-03-25 15:28:54   reportedState   0
     2020-01-29 18:39:43   room            Übersicht
     2020-03-25 11:22:31   setpointTemp    20.5
     2020-03-25 15:28:50   state           desired-new
     2020-03-25 15:22:59   temperature     22.02
     2020-03-07 13:01:06   thermostatMode  heating
Attributes:
   IODev      ZS_zs_CO_SmartHome_MQTT_Client
   alias      Arbeitszimmer
   event-on-change-reading .*
   group      Heizung
   readingList scada/haus/E4/az/THKV_Heizkoerper_Wand/desired-temp:.* desired-temp
scada/haus/E4/az/THKV_Heizkoerper_Wand/temperature:.* temperature
scada/haus/E4/az/THKV_Heizkoerper_Wand/reportedState:.* reportedState
scada/haus/E4/az/THKV_Heizkoerper_Wand/thermostatMode:.* thermostatMode
scada/haus/E4/az/THKV_Heizkoerper_Wand/battery:.* battery
scada/haus/E4/az/THKV_Heizkoerper_Wand/batteryPercent:.* batteryPercent
scada/haus/E4/az/THKV_Heizkoerper_Wand/setpointTemp:.* setpointTemp
scada/haus/E4/az/THKV_Heizkoerper_Wand/lastActivity:.* lastActivity
   room       Arbeitszimmer,MQTT2_DEVICE,Übersicht
   setList    desired-new:slider,18,0.5,25,1 smarthome/haus/E4/az/THKV_Heizkoerper_Wand/desired-temp:r $EVTPART1
   sortby     1
   stateFormat Ist: temperature °C (desired-temp °C)
Ventil: reportedState % (thermostatMode)
   timestamp-on-change-reading .*
   webCmd     desired-new


Beste Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

rudolfkoenig

In den Readings werden die vom Geraet (bzw. MQTT Server) gelieferten Werte gespeichert.

Ausnahme: das Attribut setStateList ist gesetzt, und der Befehl CMD_X befindet sich nicht in der Liste. Siehe auch https://fhem.de/commandref_modular.html#setStateList

ToKa

Hallo Rudi,

danke für den Hinweis. Habe jetzt "attr setStateList X Y" gemacht und siehe da, beim Ändern über den slider wird jetzt das Reading "desired-new" z.B. mit "set 18.5" gefüllt. Daraus kann ich ja jetzt in einem weitere userreading den eigentlichen Temperaturwert extrahieren.

Beste Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Beta-User

Frage: Warum verwendest du nicht einfach direkt und nur desired-temp?

Dass der Befehl abgesetzt wurde, aber noch nicht "beantwortet", sieht man dann in dem "set_..."-Teil des Readings-Werts. Das war mit ein Grund, warum ich Rudi damals gefragt hatte, ob er das machen kann, was heute  setStateList heißt...

(Das hat den weiteren Vorteil, dass z.B. WeekdayTimer das Teil auch direkt als "Heizungs-Device" erkennt...).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ToKa

Hallo Beta-User,

ich war unsicher wie sich die readings verhalten, wenn sie einerseits in readingsList und andererseits in setList. Deshalb habe ich zum weiteren Tasten das andere Reading genutzt, das ich sonst in einer readingsGroup verwende.

Nachdem mir jetzt die Logik klar ist, werde ich mit desired-temp weiter arbeiten.

Beste Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight