MQTT2_DEVICE: Wie übergibt man durch Leerzeichen getrennte Werte per „setlist“

Begonnen von LudgerR, 23 Januar 2025, 21:33:27

Vorheriges Thema - Nächstes Thema

LudgerR

Was "desired-temp" angeht, dass hatte ich mir bereits gedacht. Bei Sonoff TRVZB  weicht "occupied_heating_setpoint" in Z2M von der dort sonst üblichen Bezeichnung "current_heating_setpoint" ab. local-temperature dann ebenfalls nach temperature zu mappen bieted sich dann ebenso an.

"valve_opening_degree" und "valve_closing_degree" sollte man belassen. Falls ich es selber setze, definiere ich das Fenster in dem das TRV selbständig pendelt, wenn es von "heat" auf "idle" und umgekehrt wechselt. Liegt die Summe von beiden exakt bei 100, dann gibt es  kein Fenster mehr. Dann hdürfte die "Ventilposition" fest vorgegeben sein. "valve_opening_degree" mit "valve" gleichzusetzten wäre für mich etwas irreführend. 

Das beim "system_mode" der Modus "manual" mit "heat" bezeichnet wir, finde ich etwas unglücklich (Beim ME167 ebenfalls).  Ich habe den Wert durch "manual" ersetzt.  Falls man  mit JSONMAP nicht nur Keys sondern auch Values modifizieren kann, dann würde sich JSONMAP wert korrektur des Readingswert anbieten. Bei mir ahbe ich das Helper-Modul "readingsChange" genutzt, um den Wert von system_mode von "heat" durch "manual" bei all meinen ME167 und SONOFF TVRZB zu ersetzen.

Bei vielen anderen TRV Geräte wird von Z2M auch der Modus "manual" geliefert und nicht "heat". 

Zitat von: Beta-User am 27 Januar 2025, 09:17:39eher das Umschalten von verschiedenen Modi. Da vermisse ich eine Option bei dieser setList, um direkt den manual-Mode mit einer bestimmten Temperatur zu fahren. Geht vermutlich, wenn man den JSON aufbohrt?

Da Verhalten sich die TRV-Geräte in Z2M unterschiedlich. Sonoff TRVZB scahltet automatisch auf "heat" sprich manual, Bei ME167 bleibt der Modus auf "auto" obwohl sich das Gerät anschließend wie im manuellen Modus verhält. Hier muss man also den Moduswechsel forcieren.

getList habe ich bisher nicht benutzt. Per setList bekomme ich eine Akualisierung aller Readings und somit auch den aktuellen Wert von z.B. "system_mode". Derselbe Befehl mit getLIST bleibt jedoch unbeantwortet.

Folgend die Definition
define E2_TRV_mq MQTT2_DEVICE zigbee_0x44e2f8fffe107869
attr E2_TRV_mq alias E2_Buero_TRV
attr E2_TRV_mq autocreate 0
attr E2_TRV_mq devicetopic zigbee2mqtt/0x44e2f8fffe107869
attr E2_TRV_mq getList desired-temp: $DEVICETOPIC/get {"occupied_heating_setpoint": ""}\
system_mode: $DEVICETOPIC/get {"system_mode": ""}
attr E2_TRV_mq icon temp_control
attr E2_TRV_mq jsonMap occupied_heating_setpoint:desired-temp local_temperature:temperature
attr E2_TRV_mq readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr E2_TRV_mq room Mq->Zb->Regler
attr E2_TRV_mq setList system_mode:auto,manual,heat,off {my $m=$EVTPART1;;$m=~ s/manual/heat/;;return qq($DEVICETOPIC/set {"system_mode": "$m"})}\
get_system_mode: $DEVICETOPIC/get {"system_mode":""}\
child_lock:LOCK,UNLOCK  $DEVICETOPIC/set {"child_lock": "$EVTPART1"}\
open_window:ON,OFF $DEVICETOPIC/set {"open_window": "$EVTPART1"}\
get_desired-temp: $DEVICETOPIC/get {"occupied_heating_setpoint": ""}\
desired-temp:slider,4.0,0.5,35.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }\
valve_opening_degree:slider,0,1,100,1 $DEVICETOPIC/set {"valve_opening_degree": $EVTPART1 }\
valve_closing_degree:slider,0,1,100,1 $DEVICETOPIC/set {"valve_closing_degree": $EVTPART1 }\
frost_protection_temperature:slider,4.0,0.5,35.0,1 $DEVICETOPIC/set {"frost_protection_temperature": $EVTPART1 }\
local_temperature_calibration:slider,-12.8,0.2,12.7,1 $DEVICETOPIC/set {"local_temperature_calibration": $EVTPART1 }\
weekly_schedule_monday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"weekly_schedule": {"monday": "@a" }})}\
weekly_schedule_tuesday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"weekly_schedule": {"tuesday": "@a" }})}\
weekly_schedule_wednesday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"weekly_schedule": {"wednesday": "@a" }})}\
weekly_schedule_thursday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"weekly_schedule": {"thursday": "@a" }})}\
weekly_schedule_friday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"weekly_schedule": {"friday": "@a" }})}\
weekly_schedule_saturday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"weekly_schedule": {"saturday": "@a" }})}\
weekly_schedule_sunday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"weekly_schedule": {"sunday": "@a" }})}\

attr E2_TRV_mq stateFormat system_mode Temp: temperature -> desired-temp °C running_state update_state V=valve_opening_degree:valve_closing_degree\
Battery: battery % lqi linkquality
#   CID        zigbee_0x44e2f8fffe107869
#   DEF        zigbee_0x44e2f8fffe107869
#   FUUID      67822183-f33f-3e5d-4872-c68423ba2faf0e6b
#   IODev      MQTT2_Server2
#   LASTInputDev MQTT2_Server2
#   MQTT2_Server2_CONN MQTT2_Server2_192.168.69.43_57252
#   MQTT2_Server2_MSGCNT 2215
#   MQTT2_Server2_TIME 2025-01-27 16:34:46
#   MSGCNT     2215
#   NAME       E2_TRV_mq
#   NR         786
#   STATE      manual Temp: 23 -> 20.5 °C idle idle V=80:30
#Battery: 100 % lqi 109
#   TYPE       MQTT2_DEVICE
#   eventCount 2966
#   JSONMAP:
#     local_temperature temperature
#     occupied_heating_setpoint desired-temp
#   OLDREADINGS:
#   READINGS:
#     2025-01-25 13:59:29   IODev           MQTT2_Server2
#     2025-01-25 13:53:20   associatedWith  MQTT2_zigbee_bridge
#     2025-01-27 16:34:46   battery         100
#     2025-01-27 16:34:46   child_lock      UNLOCK
#     2025-01-27 16:34:46   closing_steps   296
#     2025-01-27 16:34:46   desired-temp    20.5
#     2025-01-27 16:34:46   frost_protection_temperature 6
#     2025-01-27 16:34:46   idle_steps      293
#     2025-01-27 16:34:46   linkquality     109
#     2025-01-27 16:34:46   local_temperature_calibration -2
#     2025-01-27 16:34:46   open_window      OFF
#     2025-01-27 16:34:46   running_state   idle
#     2025-01-27 16:32:40   state           valve_closing_degree
#     2025-01-27 16:34:46   system_mode     manual
#     2025-01-27 16:34:46   temperature     23
#     2025-01-27 16:34:46   update_installed_version 4609
#     2025-01-27 16:34:46   update_latest_version 4609
#     2025-01-27 16:34:46   update_state    idle
#     2025-01-27 16:34:46   valve_closing_degree 30
#     2025-01-27 16:34:46   valve_closing_limit_voltage 2620
#     2025-01-27 16:34:46   valve_motor_running_voltage 1251
#     2025-01-27 16:34:46   valve_opening_degree 80
#     2025-01-27 16:34:46   valve_opening_limit_voltage 2045
#     2025-01-27 16:34:46   weekly_schedule_friday 00:00/16 07:00/20 10:00/19 10:00/20 17:00/30 23:00/16
#     2025-01-27 16:34:46   weekly_schedule_monday 00:00/16 06:00/21 10:00/19 11:50/20 17:00/19 23:00/16
#     2025-01-27 16:34:46   weekly_schedule_saturday 00:00/16 07:00/22 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-27 16:34:46   weekly_schedule_sunday 00:00/16 06:00/20 10:00/19 10:00/19 16:45/22 23:00/16
#     2025-01-27 16:34:46   weekly_schedule_thursday 00:00/16 07:00/19 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-27 16:34:46   weekly_schedule_tuesday 00:00/16 06:00/19 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-27 16:34:46   weekly_schedule_wednesday 00:00/16 06:00/21 10:00/19 10:00/19 17:00/19 23:00/16
#
setstate E2_TRV_mq manual Temp: 23 -> 20.5 °C idle idle V=80:30\
Battery: 100 % lqi 109
setstate E2_TRV_mq 2025-01-25 13:59:29 IODev MQTT2_Server2
setstate E2_TRV_mq 2025-01-25 13:53:20 associatedWith MQTT2_zigbee_bridge
setstate E2_TRV_mq 2025-01-27 16:34:46 battery 100
setstate E2_TRV_mq 2025-01-27 16:34:46 child_lock UNLOCK
setstate E2_TRV_mq 2025-01-27 16:34:46 closing_steps 296
setstate E2_TRV_mq 2025-01-27 16:34:46 desired-temp 20.5
setstate E2_TRV_mq 2025-01-27 16:34:46 frost_protection_temperature 6
setstate E2_TRV_mq 2025-01-27 16:34:46 idle_steps 293
setstate E2_TRV_mq 2025-01-27 16:34:46 linkquality 109
setstate E2_TRV_mq 2025-01-27 16:34:46 local_temperature_calibration -2
setstate E2_TRV_mq 2025-01-27 16:34:46 open_window  OFF
setstate E2_TRV_mq 2025-01-27 16:34:46 running_state idle
setstate E2_TRV_mq 2025-01-27 16:32:40 state valve_closing_degree
setstate E2_TRV_mq 2025-01-27 16:34:46 system_mode manual
setstate E2_TRV_mq 2025-01-27 16:34:46 temperature 23
setstate E2_TRV_mq 2025-01-27 16:34:46 update_installed_version 4609
setstate E2_TRV_mq 2025-01-27 16:34:46 update_latest_version 4609
setstate E2_TRV_mq 2025-01-27 16:34:46 update_state idle
setstate E2_TRV_mq 2025-01-27 16:34:46 valve_closing_degree 30
setstate E2_TRV_mq 2025-01-27 16:34:46 valve_closing_limit_voltage 2620
setstate E2_TRV_mq 2025-01-27 16:34:46 valve_motor_running_voltage 1251
setstate E2_TRV_mq 2025-01-27 16:34:46 valve_opening_degree 80
setstate E2_TRV_mq 2025-01-27 16:34:46 valve_opening_limit_voltage 2045
setstate E2_TRV_mq 2025-01-27 16:34:46 weekly_schedule_friday 00:00/16 07:00/20 10:00/19 10:00/20 17:00/30 23:00/16
setstate E2_TRV_mq 2025-01-27 16:34:46 weekly_schedule_monday 00:00/16 06:00/21 10:00/19 11:50/20 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-27 16:34:46 weekly_schedule_saturday 00:00/16 07:00/22 10:00/19 10:00/19 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-27 16:34:46 weekly_schedule_sunday 00:00/16 06:00/20 10:00/19 10:00/19 16:45/22 23:00/16
setstate E2_TRV_mq 2025-01-27 16:34:46 weekly_schedule_thursday 00:00/16 07:00/19 10:00/19 10:00/19 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-27 16:34:46 weekly_schedule_tuesday 00:00/16 06:00/19 10:00/19 10:00/19 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-27 16:34:46 weekly_schedule_wednesday 00:00/16 06:00/21 10:00/19 10:00/19 17:00/19 23:00/16




 
   
Fhem/mosquitto/zigbee2mqtt on PI 5 , 2xCUNO 1xCUL, telegram SONOS,
MQTT2 (Sonoff/Shelly),Buderus GB-112,CanOverEthernet(UVR67/CIM)
Tasmota 20+ Z2M 80+ Geräte

LudgerR

Meinen Syntaxfehler bei "getList" habe ich inzwischen gefunden.
Beim get vom "system_mode" erhalte ich nun "heat"  im Falle von "manual" da "readingsChange" erst anschließend die Anpassung auf "manual" macht.  Bei mir werde ich es dabei belassen, den von der getList habe ich keinen Nutzen, Hatte es nur vollständigkkeitshalber mit aufgenommen. 
Fhem/mosquitto/zigbee2mqtt on PI 5 , 2xCUNO 1xCUL, telegram SONOS,
MQTT2 (Sonoff/Shelly),Buderus GB-112,CanOverEthernet(UVR67/CIM)
Tasmota 20+ Z2M 80+ Geräte

Beta-User

Du müsstest eigenen Code in readingList verwenden, um die Antwort direkt zu verändern.
Der Weg über getList ist imo in jedem Fall besser, wie das in setList zu belassen....
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

LudgerR

Nachfolgend die Device-Definition für Sonoff TRVZB

Der  system_mode "heat" wurde nun durchgehend durch  "manual" ersetzt. Damit grenzt er sich begrifflich  besser vom running_state ab, der entweder "heat" oder "idle" ist.

Bei den Readingnamen von den Tagesplänen wird nun das führende "weekly_" entfernt.  Damit sind sie gleich mit den automatsich generierten Readingnamen von meinen ME167 Thermostaten.
Die Anpassung von "manual" statt "heat" und das Mappen auf die geläufigen  "desired-temp" und "temperature" Readings habe ich dort ebenfalls gemacht   


define E2_TRV_mq MQTT2_DEVICE zigbee_0x44e2f8fffe107869
attr E2_TRV_mq IODev MQTT2_Server2
attr E2_TRV_mq alias E2_Buero_TRV
attr E2_TRV_mq autocreate 0
attr E2_TRV_mq devicetopic zigbee2mqtt/0x44e2f8fffe107869
attr E2_TRV_mq getList system_mode:noArg system_mode $DEVICETOPIC/get {"system_mode": ""}\
desired-temp:noArg desired-temp $DEVICETOPIC/get {"occupied_heating_setpoint": ""}\
running_state:noArg running_state $DEVICETOPIC/get {"running_state": ""}
attr E2_TRV_mq icon temp_control
attr E2_TRV_mq jsonMap occupied_heating_setpoint:desired-temp local_temperature:temperature
attr E2_TRV_mq readingList $DEVICETOPIC:.* { my $r = $EVENT;; $r =~ s/"system_mode":"heat"/"system_mode":"manual"/;; $r =~ s/"weekly_schedule"/"schedule"/;; json2nameValue($r,'',$JSONMAP,) }
attr E2_TRV_mq room Mq->Zb->Regler
attr E2_TRV_mq setList system_mode:auto,manual,off {my $m=$EVTPART1;;$m=~ s/manual/heat/;;return qq($DEVICETOPIC/set {"system_mode": "$m"})}\
child_lock:LOCK,UNLOCK  $DEVICETOPIC/set {"child_lock": "$EVTPART1"}\
open_window:ON,OFF $DEVICETOPIC/set {"open_window": "$EVTPART1"}\
desired-temp:slider,4.0,0.5,35.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }\
valve_opening_degree:slider,0,1,100,1 $DEVICETOPIC/set {"valve_opening_degree": $EVTPART1 }\
valve_closing_degree:slider,0,1,100,1 $DEVICETOPIC/set {"valve_closing_degree": $EVTPART1 }\
frost_protection_temperature:slider,4.0,0.5,35.0,1 $DEVICETOPIC/set {"frost_protection_temperature": $EVTPART1 }\
local_temperature_calibration:slider,-12.8,0.2,12.7,1 $DEVICETOPIC/set {"local_temperature_calibration": $EVTPART1 }\
schedule_monday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"weekly_schedule": {"monday": "@a" }})}\
schedule_tuesday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"weekly_schedule": {"tuesday": "@a" }})}\
schedule_wednesday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"weekly_schedule": {"wednesday": "@a" }})}\
schedule_thursday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"weekly_schedule": {"thursday": "@a" }})}\
schedule_friday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"weekly_schedule": {"friday": "@a" }})}\
schedule_saturday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"weekly_schedule": {"saturday": "@a" }})}\
schedule_sunday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"weekly_schedule": {"sunday": "@a" }})}\

attr E2_TRV_mq stateFormat system_mode Temp: temperature -> desired-temp °C running_state update_state V=valve_opening_degree:valve_closing_degree\
Battery: battery % lqi linkquality
#   CID        zigbee_0x44e2f8fffe107869
#   DEF        zigbee_0x44e2f8fffe107869
#   FUUID      67822183-f33f-3e5d-4872-c68423ba2faf0e6b
#   IODev      MQTT2_Server2
#   LASTInputDev MQTT2_Server2
#   MQTT2_Server2_CONN MQTT2_Server2_192.168.69.43_59722
#   MQTT2_Server2_MSGCNT 169
#   MQTT2_Server2_TIME 2025-01-28 11:26:30
#   MSGCNT     169
#   NAME       E2_TRV_mq
#   NR         786
#   STATE      manual Temp: 23.5 -> 20 °C idle idle V=80:30
#Battery: 100 % lqi 123
#   TYPE       MQTT2_DEVICE
#   eventCount 227
#   JSONMAP:
#     local_temperature temperature
#     occupied_heating_setpoint desired-temp
#   OLDREADINGS:
#   READINGS:
#     2025-01-28 00:16:44   IODev           MQTT2_Server2
#     2025-01-28 11:26:30   battery         100
#     2025-01-28 11:26:30   child_lock      UNLOCK
#     2025-01-28 11:26:30   closing_steps   296
#     2025-01-28 11:26:30   desired-temp    20
#     2025-01-28 11:26:30   frost_protection_temperature 6
#     2025-01-28 11:26:30   idle_steps      293
#     2025-01-28 11:26:30   linkquality     123
#     2025-01-28 11:26:30   local_temperature_calibration -4
#     2025-01-28 11:26:30   open_window      OFF
#     2025-01-28 11:26:30   running_state   idle
#     2025-01-28 11:26:30   schedule_friday 00:00/16 07:00/20 10:00/19 10:00/20 17:00/30 23:00/16
#     2025-01-28 11:26:30   schedule_monday 00:00/16 06:00/20 10:00/19 11:50/20 17:00/19 23:00/16
#     2025-01-28 11:26:30   schedule_saturday 00:00/16 07:00/22 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-28 11:26:30   schedule_sunday 00:00/16 06:00/20 10:00/19 10:00/19 16:45/22 23:00/16
#     2025-01-28 11:26:30   schedule_thursday 00:00/16 07:00/19 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-28 11:26:30   schedule_tuesday 00:00/16 06:00/19 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-28 11:26:30   schedule_wednesday 00:00/16 06:00/21 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-28 11:22:23   state           desired-temp
#     2025-01-28 11:26:30   system_mode     manual
#     2025-01-28 11:26:30   temperature     23.5
#     2025-01-28 11:26:30   update_installed_version 4609
#     2025-01-28 11:26:30   update_latest_version 4609
#     2025-01-28 11:26:30   update_state    idle
#     2025-01-28 11:26:30   valve_closing_degree 30
#     2025-01-28 11:26:30   valve_closing_limit_voltage 2620
#     2025-01-28 11:26:30   valve_motor_running_voltage 1251
#     2025-01-28 11:26:30   valve_opening_degree 80
#     2025-01-28 11:26:30   valve_opening_limit_voltage 2045
#
setstate E2_TRV_mq manual Temp: 23.5 -> 20 °C idle idle V=80:30\
Battery: 100 % lqi 123
setstate E2_TRV_mq 2025-01-28 00:16:44 IODev MQTT2_Server2
setstate E2_TRV_mq 2025-01-28 11:26:30 battery 100
setstate E2_TRV_mq 2025-01-28 11:26:30 child_lock UNLOCK
setstate E2_TRV_mq 2025-01-28 11:26:30 closing_steps 296
setstate E2_TRV_mq 2025-01-28 11:26:30 desired-temp 20
setstate E2_TRV_mq 2025-01-28 11:26:30 frost_protection_temperature 6
setstate E2_TRV_mq 2025-01-28 11:26:30 idle_steps 293
setstate E2_TRV_mq 2025-01-28 11:26:30 linkquality 123
setstate E2_TRV_mq 2025-01-28 11:26:30 local_temperature_calibration -4
setstate E2_TRV_mq 2025-01-28 11:26:30 open_window  OFF
setstate E2_TRV_mq 2025-01-28 11:26:30 running_state idle
setstate E2_TRV_mq 2025-01-28 11:26:30 schedule_friday 00:00/16 07:00/20 10:00/19 10:00/20 17:00/30 23:00/16
setstate E2_TRV_mq 2025-01-28 11:26:30 schedule_monday 00:00/16 06:00/20 10:00/19 11:50/20 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-28 11:26:30 schedule_saturday 00:00/16 07:00/22 10:00/19 10:00/19 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-28 11:26:30 schedule_sunday 00:00/16 06:00/20 10:00/19 10:00/19 16:45/22 23:00/16
setstate E2_TRV_mq 2025-01-28 11:26:30 schedule_thursday 00:00/16 07:00/19 10:00/19 10:00/19 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-28 11:26:30 schedule_tuesday 00:00/16 06:00/19 10:00/19 10:00/19 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-28 11:26:30 schedule_wednesday 00:00/16 06:00/21 10:00/19 10:00/19 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-28 11:22:23 state desired-temp
setstate E2_TRV_mq 2025-01-28 11:26:30 system_mode manual
setstate E2_TRV_mq 2025-01-28 11:26:30 temperature 23.5
setstate E2_TRV_mq 2025-01-28 11:26:30 update_installed_version 4609
setstate E2_TRV_mq 2025-01-28 11:26:30 update_latest_version 4609
setstate E2_TRV_mq 2025-01-28 11:26:30 update_state idle
setstate E2_TRV_mq 2025-01-28 11:26:30 valve_closing_degree 30
setstate E2_TRV_mq 2025-01-28 11:26:30 valve_closing_limit_voltage 2620
setstate E2_TRV_mq 2025-01-28 11:26:30 valve_motor_running_voltage 1251
setstate E2_TRV_mq 2025-01-28 11:26:30 valve_opening_degree 80
setstate E2_TRV_mq 2025-01-28 11:26:30 valve_opening_limit_voltage 2045

Fhem/mosquitto/zigbee2mqtt on PI 5 , 2xCUNO 1xCUL, telegram SONOS,
MQTT2 (Sonoff/Shelly),Buderus GB-112,CanOverEthernet(UVR67/CIM)
Tasmota 20+ Z2M 80+ Geräte

TomLee

Sry, ich würd gerne mal fragen wollen wo mein Verständnisproblem liegt.
Warum werden hier in dem gezeigten Device Readings zu bspw. den schedule_*-settern ohne der Angabe des Attributs setStateList angelegt.
Oben hab ich noch gedacht Ok, dann wird wohl was bei weekly_schedule_* zur Bestätigung zurückkommen (darum wird auf einen setter für jeden Wochentag bestanden). Jetzt wurden die setter umbenannt in schedule_* und die Readings heissen auch so. Wie geht das denn, das verstehe ich nicht?

LudgerR



attr E2_TRV_mq readingList $DEVICETOPIC:.* { my $r = $EVENT;; $r =~ s/"system_mode":"heat"/"system_mode":"manual"/;; $r =~ s/"weekly_schedule"/"schedule"/;; json2nameValue($r,'',$JSONMAP,) }

Damit aus "system_mode":"heat" system_mode":"manual" wird, habe ich den JSON string, der von Z2M kommt vor der Auswertung durch "json2nameValue" entsprechend angepaßt. Entsprechednd bin ich mit  "weekly_schedule" verfahren. 

"setStateList"  hat damit nichts zu tun.

Zitat von: TomLee am 29 Januar 2025, 18:47:11Oben hab ich noch gedacht Ok, dann wird wohl was bei weekly_schedule_* zur Bestätigung zurückkommen

Das ist immernoch genau der Fall. Von Z2M kommt derselbe JSON string. Nur im "readingList" wird dieser nun vorab passend gemacht.
Fhem/mosquitto/zigbee2mqtt on PI 5 , 2xCUNO 1xCUL, telegram SONOS,
MQTT2 (Sonoff/Shelly),Buderus GB-112,CanOverEthernet(UVR67/CIM)
Tasmota 20+ Z2M 80+ Geräte

TomLee


TomLee

Hier setStateList zu verwenden beschäftigt mich auch, warum auch immer.

Mein Eindruck ist, das es hier Sinnn macht es zu setzen.