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


Hallo,
 wie verfährt man, wenn man im FHEMWEB mit ,,setlist"  in einem  MQTT2_DEVICE Wertepaare übergeben will, die durch ,,blank"  getrennt sind.
Folgend die Definition meines Devices für ein SONOFF TRVZB, das von der zigbee-bridge angelegt und von mit ergänzt wurde.

define zigbee_0x44e2f8fffe107869 MQTT2_DEVICE zigbee_0x44e2f8fffe107869
attr zigbee_0x44e2f8fffe107869 alias E2_Buero_TRV
attr zigbee_0x44e2f8fffe107869 devicetopic zigbee2mqtt/0x44e2f8fffe107869
attr zigbee_0x44e2f8fffe107869 icon temp_control
attr zigbee_0x44e2f8fffe107869 readingList zigbee2mqtt/0x44e2f8fffe107869:.* { json2nameValue($EVENT) }\
zigbee2mqtt/0x44e2f8fffe107869/set:.* { json2nameValue($EVENT) }
attr zigbee_0x44e2f8fffe107869 room Mq->Zb->Regler
attr zigbee_0x44e2f8fffe107869 setList system_mode:auto,off,heat $DEVICETOPIC/set {"system_mode":" $EVTPART1 "}\
occupied_heating_setpoint:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }\
valve_opening_degree:slider,0,10,100,1 $DEVICETOPIC/set {"valve_opening_degree": $EVTPART1 }\
valve_closing_degree:slider,0,10,100,1 $DEVICETOPIC/set {"valve_closing_degree": $EVTPART1 }\
local_temperature_calibration:slider,-10.0,0.5,10.0,1 $DEVICETOPIC/set {"local_temperature_calibration": $EVTPART1 }\
weekly_schedule_sunday: {my $p=$EVTPART1;;$p=~ tr /-/ /;; my $s="$DEVICETOPIC/set {\"weekly_schedule\": {\"sunday\": \"$p\" }}";;;;$s;;}\
weekly_schedule_monday: {my $p=$EVTPART1;;$p=~ tr /-/ /;; my $s="$DEVICETOPIC/set {\"weekly_schedule\": {\"monday\": \"$p\" }}";;;;$s;;}\
weekly_schedule_tuesday: {my $p=$EVTPART1;;$p=~ tr /-/ /;; my $s="$DEVICETOPIC/set {\"weekly_schedule\": {\"tuesday\": \"$p\" }}";;;;$s;;}\
weekly_schedule_wednesday: {my $p=$EVTPART1;;$p=~ tr /-/ /;; my $s="$DEVICETOPIC/set {\"weekly_schedule\": {\"wednesday\": \"$p\" }}";;;;$s;;}\
weekly_schedule_thursday: {my $p=$EVTPART1;;$p=~ tr /-/ /;; my $s="$DEVICETOPIC/set {\"weekly_schedule\": {\"thursday\": \"$p\" }}";;;;$s;;}\
weekly_schedule_friday: {my $p=$EVTPART1;;$p=~ tr /-/ /;; my $s="$DEVICETOPIC/set {\"weekly_schedule\": {\"friday\": \"$p\" }}";;;;$s;;}\
weekly_schedule_saturday: {my $p=$EVTPART1;;$p=~ tr /-/ /;; my $s="$DEVICETOPIC/set {\"weekly_schedule\": {\"saturday\": \"$p\" }}";;;;$s;;}
attr zigbee_0x44e2f8fffe107869 stateFormat system_mode Temp: local_temperature -> occupied_heating_setpoint °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_54242
#   MQTT2_Server2_MSGCNT 19320
#   MQTT2_Server2_TIME 2025-01-23 21:23:21
#   MSGCNT     19320
#   NAME       zigbee_0x44e2f8fffe107869
#   NR         790
#   STATE      heat Temp: 21.6 -> 20.5 °C idle idle V=17:93
#Battery: 100 % lqi 120
#   TYPE       MQTT2_DEVICE
#   eventCount 28245
#   OLDREADINGS:
#   READINGS:
#     2025-01-17 14:17:10   IODev           MQTT2_Server2
#     2025-01-11 14:48:37   associatedWith  MQTT2_zigbee_bridge
#     2025-01-23 21:23:21   battery         100
#     2025-01-23 21:23:21   child_lock      UNLOCK
#     2025-01-23 21:23:21   closing_steps   296
#     2025-01-23 21:23:21   frost_protection_temperature 7
#     2025-01-23 21:23:21   idle_steps      293
#     2025-01-23 21:23:21   linkquality     120
#     2025-01-23 21:23:21   local_temperature 21.6
#     2025-01-23 21:23:21   local_temperature_calibration -2
#     2025-01-23 21:23:21   occupied_heating_setpoint 20.5
#     2025-01-23 21:23:21   open_window     OFF
#     2025-01-23 21:23:21   running_state   idle
#     2025-01-23 21:23:19   state           valve_closing_degree
#     2025-01-23 21:23:21   system_mode     heat
#     2025-01-23 21:23:21   update_installed_version 4609
#     2025-01-23 21:23:21   update_latest_version 4609
#     2025-01-23 21:23:21   update_state    idle
#     2025-01-23 21:23:21   valve_closing_degree 93
#     2025-01-23 21:23:21   valve_closing_limit_voltage 2620
#     2025-01-23 21:23:21   valve_motor_running_voltage 1337
#     2025-01-23 21:23:21   valve_opening_degree 17
#     2025-01-23 21:23:21   valve_opening_limit_voltage 2045
#     2025-01-23 21:23:21   weekly_schedule_friday 00:00/16 07:00/21 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-23 21:23:21   weekly_schedule_monday 00:00/16 07:00/21 10:00/21 10:00/21 17:00/19 23:00/16
#     2025-01-23 21:23:21   weekly_schedule_saturday 00:00/16 07:00/21 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-23 21:23:21   weekly_schedule_sunday 00:00/16 07:00/21 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-23 21:23:21   weekly_schedule_thursday 00:00/16 07:00/21 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-23 21:23:21   weekly_schedule_tuesday 00:00/16 06:00/19 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-23 21:23:21   weekly_schedule_wednesday 00:00/16 06:00/21 10:00/19 10:00/19 17:00/19 23:00/16
#
setstate zigbee_0x44e2f8fffe107869 heat Temp: 21.6 -> 20.5 °C idle idle V=17:93\
Battery: 100 % lqi 120
setstate zigbee_0x44e2f8fffe107869 2025-01-17 14:17:10 IODev MQTT2_Server2
setstate zigbee_0x44e2f8fffe107869 2025-01-11 14:48:37 associatedWith MQTT2_zigbee_bridge
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 battery 100
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 child_lock UNLOCK
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 closing_steps 296
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 frost_protection_temperature 7
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 idle_steps 293
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 linkquality 120
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 local_temperature 21.6
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 local_temperature_calibration -2
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 occupied_heating_setpoint 20.5
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 open_window OFF
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 running_state idle
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:19 state valve_closing_degree
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 system_mode heat
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 update_installed_version 4609
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 update_latest_version 4609
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 update_state idle
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 valve_closing_degree 93
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 valve_closing_limit_voltage 2620
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 valve_motor_running_voltage 1337
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 valve_opening_degree 17
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 valve_opening_limit_voltage 2045
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 weekly_schedule_friday 00:00/16 07:00/21 10:00/19 10:00/19 17:00/19 23:00/16
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 weekly_schedule_monday 00:00/16 07:00/21 10:00/21 10:00/21 17:00/19 23:00/16
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 weekly_schedule_saturday 00:00/16 07:00/21 10:00/19 10:00/19 17:00/19 23:00/16
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 weekly_schedule_sunday 00:00/16 07:00/21 10:00/19 10:00/19 17:00/19 23:00/16
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 weekly_schedule_thursday 00:00/16 07:00/21 10:00/19 10:00/19 17:00/19 23:00/16
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 weekly_schedule_tuesday 00:00/16 06:00/19 10:00/19 10:00/19 17:00/19 23:00/16
setstate zigbee_0x44e2f8fffe107869 2025-01-23 21:23:21 weekly_schedule_wednesday 00:00/16 06:00/21 10:00/19 10:00/19 17:00/19 23:00/16



Die ,,weekly_schedule_monday bis sunday"  Readings enthalten  die Definition von 6 Schaltpunkten, die untereinander mit Leerzeichen getrennt sind.

Beim "set  weekly_schedul_xxxx"  steht im $EVPART1 nur die Definition des ersten Schaltpunktes und die restlichen 5 Schaltpunkte werden verschluckt.
 
Um die Wochenpläne mit set definieren zu können, habe ich mich damit beholfen, 6 Schaltzeiten mit ,,-,, statt Leerzeichen zu trennen und vorm Publish diese wieder durch Leerzeichen zu ersetzen.

Dafür sollte  es doch einen einfacheren, banaleren Weg geben die Werte mit Leerzeichen zu übergeben.
Vielleicht habe ich auch Scheuklappen.

Gruß
Ludger



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

Hallo,

versuch mal so:
weekly_schedule {my @a=split / /,$EVENT;@a=splice(@a, 2);return qq($DEVICETOPIC/set {"$EVTPART0": {"$EVTPART1": @a }})}
in dem setter übergibst auch den Wochentag:

bspw:
   
sunday 00:00/16 07:00/21 10:00/19 10:00/19 17:00/19 23:00/16

Gruß Thomas

LudgerR

Hallo,

Super!

mit

weekly_schedule_sunday {my @a=split / /,$EVENT;@a=splice(@a, 1);return qq($DEVICETOPIC/set {"weekly_schedule": {"sunday": "@a"}})}

(und analog für die anderen Wochentage) habe ich das gewünschte Ergebnis.

Gruß

Ludger
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

Zitat(und analog für die anderen Wochentage) habe ich das gewünschte Ergebnis.

Gut möglich das ich nicht alles verstanden. Mein Gedanke war, ein setter für alle Wochentage.

Warum nicht den Wochentag als 1. Parameter, wie in meinem gezeigten Vorschlag, mitgeben ?


Beta-User

Zitat von: LudgerR am 23 Januar 2025, 21:33:27attr zigbee_0x44e2f8fffe107869 readingList zigbee2mqtt/0x44e2f8fffe107869:.* { json2nameValue($EVENT) }\
zigbee2mqtt/0x44e2f8fffe107869/set:.* { json2nameValue($EVENT) }
Sicher, dass du die 2. Zeile wirklich so haben willst?

(Schon klar, dass darüber was kommt, aber sagt das was dazu aus, ob das beim Device ankam?!?)
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

TomLee

Zitatweekly_schedule_sunday {my @a=split / /,$EVENT;@a=splice(@a, 1);return qq($DEVICETOPIC/set {"weekly_schedule": {"sunday": "@a"}})}

Verstehen tu ich es nicht ganz, aber laut Doku gibt man die Werte ohne Anführungszeichen an.

LudgerR

Zitat von: Beta-User am 24 Januar 2025, 12:43:57
Zitat von: LudgerR am 23 Januar 2025, 21:33:27attr zigbee_0x44e2f8fffe107869 readingList zigbee2mqtt/0x44e2f8fffe107869:.* { json2nameValue($EVENT) }\
zigbee2mqtt/0x44e2f8fffe107869/set:.* { json2nameValue($EVENT) }
Sicher, dass du die 2. Zeile wirklich so haben willst?

(Schon klar, dass darüber was kommt, aber sagt das was dazu aus, ob das beim Device ankam?!?)

Die Zeile hatte ich leider unreflektiert/unkritisch von einem alten Template für Eutronic Spirit Thermostate übernommen. Damit hast Du vollkomen recht. Es ist noch etwas im Argen.

Melde mich später mit dem endgültigen vollständig getesteten Ergebnis

Da ich für mich einen Workaround gefunden hatte, lief das ganze ersteinmal als "nice to have".
Bin gerade ziemlich mit der Umstellung meiner ThermostatSteuerung beschäftigt.







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

Hallo,

Nun habe ich das ganze getestet. Z2M Version 1.42  ist dabei sehr restrikt. Es kommt tatsächlich auf jedes !! Leerzeichen an.

In mosquitto sieht das so aus:

mosquitto_pub  -p 1885 -t zigbee2mqtt/0x44e2f8fffe107869/set -m '{"weekly_schedule": {"sunday": "00:00/16 06:00/20 10:00/19 10:00/19 1
7:00/19 23:00/16" }}'

In der "setList" im Device:


weekly_schedule_sunday {my @a=split / /,$EVENT;@a=splice(@a, 1);return qq($DEVICETOPIC/set {"weekly_schedule": {"sunday": "@a" }})}



Läßt man das eine oder andere Blank weg, erhält man sofort die rote Karte.

Mit der obigen setList Definition werden die Tagesplan Daten nicht nur von Z2M akzeptiert sondern auch tatsächlich ans Gerät weitergegeben.


 
Zitat von: Beta-User am 24 Januar 2025, 12:43:57
Zitatattr zigbee_0x44e2f8fffe107869 readingList zigbee2mqtt/0x44e2f8fffe107869:.* { json2nameValue($EVENT) }\
zigbee2mqtt/0x44e2f8fffe107869/set:.* { json2nameValue($EVENT) }
Sicher, dass du die 2. Zeile wirklich so haben willst?

Bis jetzt ja.

Da bin ich konform  mit in der Tradition in Z2M in der standardmäßig auch eine optimistischen Sicht gewählt wird 

Vollständigkeitshalber folgend die Definition des Gerätes

Gruß
Ludger


defmod E2_TRV_mq MQTT2_DEVICE zigbee_0x44e2f8fffe107869
attr E2_TRV_mq alias E2_Buero_TRV
attr E2_TRV_mq devicetopic zigbee2mqtt/0x44e2f8fffe107869
attr E2_TRV_mq icon temp_control
attr E2_TRV_mq readingList zigbee2mqtt/0x44e2f8fffe107869:.* { json2nameValue($EVENT) }\
zigbee2mqtt/0x44e2f8fffe107869/set:.* { json2nameValue($EVENT) }
attr E2_TRV_mq room Mq->Zb->Regler
attr E2_TRV_mq setList system_mode:auto,off,heat $DEVICETOPIC/set {"system_mode":" $EVTPART1 "}\
occupied_heating_setpoint:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }\
valve_opening_degree:slider,0,10,100,1 $DEVICETOPIC/set {"valve_opening_degree": $EVTPART1 }\
valve_closing_degree:slider,0,10,100,1 $DEVICETOPIC/set {"valve_closing_degree": $EVTPART1 }\
local_temperature_calibration:slider,-10.0,0.5,10.0,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": {"sunday": "@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: local_temperature -> occupied_heating_setpoint °C running_state update_state V=valve_opening_degree:valve_closing_degree\
Battery: battery % lqi linkquality

setstate E2_TRV_mq heat Temp: 21.5 -> 20.5 °C idle idle V=37:73\
Battery: 100 % lqi 116
setstate E2_TRV_mq 2025-01-17 14:17:10 IODev MQTT2_Server2
setstate E2_TRV_mq 2025-01-11 14:48:37 associatedWith MQTT2_zigbee_bridge
setstate E2_TRV_mq 2025-01-24 21:50:21 battery 100
setstate E2_TRV_mq 2025-01-24 21:50:21 child_lock UNLOCK
setstate E2_TRV_mq 2025-01-24 21:50:21 closing_steps 296
setstate E2_TRV_mq 2025-01-24 21:50:21 frost_protection_temperature 7
setstate E2_TRV_mq 2025-01-24 21:50:21 idle_steps 293
setstate E2_TRV_mq 2025-01-24 21:50:21 linkquality 116
setstate E2_TRV_mq 2025-01-24 21:50:21 local_temperature 21.5
setstate E2_TRV_mq 2025-01-24 21:50:21 local_temperature_calibration -2
setstate E2_TRV_mq 2025-01-24 21:50:21 occupied_heating_setpoint 20.5
setstate E2_TRV_mq 2025-01-24 21:50:21 open_window OFF
setstate E2_TRV_mq 2025-01-24 21:50:21 running_state idle
setstate E2_TRV_mq 2025-01-24 21:38:13 state valve_closing_degree
setstate E2_TRV_mq 2025-01-24 21:50:21 system_mode heat
setstate E2_TRV_mq 2025-01-24 21:50:21 update_installed_version 4609
setstate E2_TRV_mq 2025-01-24 21:50:21 update_latest_version 4609
setstate E2_TRV_mq 2025-01-24 21:50:21 update_state idle
setstate E2_TRV_mq 2025-01-24 21:50:21 valve_closing_degree 73
setstate E2_TRV_mq 2025-01-24 21:50:21 valve_closing_limit_voltage 2620
setstate E2_TRV_mq 2025-01-24 21:50:21 valve_motor_running_voltage 1340
setstate E2_TRV_mq 2025-01-24 21:50:21 valve_opening_degree 37
setstate E2_TRV_mq 2025-01-24 21:50:21 valve_opening_limit_voltage 2045
setstate E2_TRV_mq 2025-01-24 21:50:21 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-24 21:50:21 weekly_schedule_monday 00:00/16 06:00/19 10:00/19 10:00/19 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-24 21:50:21 weekly_schedule_saturday 00:00/16 07:00/21 10:00/19 10:00/19 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-24 21:50:21 weekly_schedule_sunday 00:00/16 06:00/25 10:00/19 10:00/19 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-24 11:03:27 weekly_schedule_sunday_00_00/16 07:00/21 10:00/22 10:00/21 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-24 21:50:21 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-24 21:50:21 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-24 21:50:21 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

Beta-User

Zitat von: LudgerR am 24 Januar 2025, 14:46:05von einem alten Template für Eutronic Spirit Thermostate übernommen
Da hätte ich aber einen sehr schlechten Tag haben müssen...

Zitat von: LudgerR am 24 Januar 2025, 22:18:27Da bin ich konform  mit in der Tradition in Z2M in der standardmäßig auch eine optimistischen Sicht gewählt wird 
Zum einen: Ein Pessimist ist ein Optimist mit Erfahrung ;) .
Zum anderen: Bisher ist mir diese "Tradition" nicht beim Durchstöbern der Doku zu z2m über den Weg gelaufen. Hast du dazu bitte eine Fundstelle?

Generell an eventuelle Mitleser: Ich halte es für eine großen Fehler, "set"-Topics in die readingList zu übernehmen. Bisher jedenfalls ist mir noch keine Konstellation über den Weg gelaufen, in der das sinnvoll gewesen wäre, bei bidirektionalen Systemen (wie ZigBee eines ist), sollte man immer ausschließlich die Rückmeldung vom Gerät (als Ist-Zustand) auswerten, eventuelle Zwischenstände sind als solche zu kennzeichnen. Kommt die Rückmeldung nicht automatisch, kann man ja ein "get" hinterherfeuern.
Ergo muss ich einen wirklich schlechten Tag gehabt haben, wenn mir mal beim Eichecken von attrTemplate ein "set"-Topic in die readingList verrutsch sein sollte...

Nur damit es hier klar und deutlich steht.

Kann natürlich jeder halten wie er will, wir brauchen auch Optimisten ;D .
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


Hi @Beta-User

Genervt von den vielen ,,Roten Karten" seitens Z2M  hatte ich mich am Ende des Tages zu einer etwas ,,flapsigen" Bemerkung verleiten lassen.
Bei Tageslicht betrachtet, würde ich es so formulieren:
Die Antwort vom Gerät nicht  abzuwarten ist nicht ungewöhnlich, wenn die allgemeine Standard-Einstellung in Z2M  auf Optimistisch steht.


ZitatGeneric device options
Every Zigbee Device supports the following list of option:
:
optimistic
The optimistic mode is a feature that influences how the state of a device is handled in the absence of updates. When optimistic mode is enabled for a device and the last sent command was successful, it updates the device state accordingly, even before receiving confirmation from the device itself  (default true)


Quelle: https://www.zigbee2mqtt.io/guide/configuration/devices-groups.html#generic-device-options


Diese Info hatte ich im Hinterkopf.

Inzwischen weiß ich auch, dass die readingList  Definition
<devicetopic>/set;.*
in meiner Umgebung per autocreate erzeugt wurden.
Nachdem ich dies nun unterbunden habe, konnte ich jetzt auch das eigentliche  Antwortverhalten der Z2M Geräte sehen.
Deine Aussagen kann ich selber voll unterschreiben.  So habe ich es bisher bei all meinen ,,Tasmota" Geräten (Sonoff, Shelly)  gehandhabt.

Mit Z2M bin ich Ende 2018/2019  mit einem kleinem USB-Stick mit minimaler Antennenleistung eingestiegen. Seitdem habe ich auch an den Zigbee-bridge Definitionen nichts mehr geändert.
Mit dem schlechten Antwortverhalten der Zigbee-Geräte hatte ich bisher gelebt.Anfang 2025 habe ich nun mit dem Umzug auf PI5 meine Systeme wieder (weitestgehend) auf aktuellen Stand gebracht.
Damit kann ich nun die "optimistische Sicht" bei den meisten Geräten hoffentlich aufheben.

Anbei noch die getestete Version für Sonoff TRVZB  und AVATTO ME167

Gruß
Ludger


define E5_TRV_mq MQTT2_DEVICE zigbee_0xa4c138ac57b7dd65
attr E5_TRV_mq IODev MQTT2_Server2
attr E5_TRV_mq alias E5_BadU_ME167
attr E5_TRV_mq devicetopic zigbee2mqtt/0xa4c138ac57b7dd65
attr E5_TRV_mq icon temp_control
attr E5_TRV_mq readingList $DEVICETOPIC:.* { json2nameValue($EVENT) }
attr E5_TRV_mq room Mq->Zb->Regler
attr E5_TRV_mq setList system_mode:auto,heat $DEVICETOPIC/set {"system_mode":" $EVTPART1 "} \
current_heating_setpoint:slider,5,1,35,1 $DEVICETOPIC/set {"current_heating_setpoint": $EVTPART1 }\
local_temperature_calibration:slider,-9,1,9,1 $DEVICETOPIC/set{"local_temperature_calibration": $EVTPART1 }\
schedule_monday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"schedule_monday": "@a" })}\
schedule_tuesday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"schedule_tuesday": "@a" })}\
schedule_wednesday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"schedule_wednesday": "@a" })}\
schedule_thursday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"schedule_thursday": "@a" })}\
schedule_friday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"schedule_friday": "@a" })}\
schedule_saturday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"schedule_saturday": "@a" })}\
schedule_sunday {my @a=split / /,$EVENT;;@a=splice(@a, 1);;return qq($DEVICETOPIC/set {"schedule_sunday": "@a" })}
attr E5_TRV_mq stateFormat system_mode Temp: local_temperature -> current_heating_setpoint °C running_state\
Battery_low: battery_low lqi linkquality
#   CID        zigbee_0xa4c138ac57b7dd65
#   DEF        zigbee_0xa4c138ac57b7dd65
#   FUUID      677f9f8d-f33f-472b-58f6-3cd284c083fa0171
#   IODev      MQTT2_Server2
#   LASTInputDev MQTT2_Server2
#   MQTT2_Server2_CONN MQTT2_Server2_192.168.69.43_34052
#   MQTT2_Server2_MSGCNT 15
#   MQTT2_Server2_TIME 2025-01-25 15:37:13
#   MSGCNT     15
#   NAME       E5_TRV_mq
#   NR         767
#   STATE      auto Temp: 18 -> 19 °C heat
#Battery_low: false lqi 127
#   TYPE       MQTT2_DEVICE
#   eventCount 21
#   OLDREADINGS:
#   READINGS:
#     2025-01-25 13:59:29   IODev           MQTT2_Server2
#     2025-01-25 13:52:25   associatedWith  MQTT2_zigbee_bridge
#     2025-01-25 15:37:13   battery_low     false
#     2025-01-25 15:37:13   child_lock      UNLOCK
#     2025-01-25 15:37:13   current_heating_setpoint 19
#     2025-01-25 15:37:13   frost_protection OFF
#     2025-01-25 15:37:13   linkquality     127
#     2025-01-25 15:37:13   local_temperature 18
#     2025-01-25 15:37:13   local_temperature_calibration 0
#     2025-01-25 15:37:13   running_state   heat
#     2025-01-25 15:37:13   scale_protection ON
#     2025-01-25 15:37:13   schedule_friday 06:00/21.0 08:00/20.0 14:00/19.0 23:00/16.0
#     2025-01-25 15:37:13   schedule_monday 06:00/21.5 08:00/19.5 14:00/19.0 23:00/16.0
#     2025-01-25 15:37:13   schedule_saturday 06:00/21.0 08:00/19.5 14:00/19.0 23:00/16.0
#     2025-01-25 15:37:13   schedule_sunday 06:00/21.0 08:00/19.5 14:00/19.0 23:00/16.0
#     2025-01-25 15:37:13   schedule_thursday 06:00/21.5 08:00/16.5 12:00/21.0 14:00/16.0
#     2025-01-25 15:37:13   schedule_tuesday 06:00/20.0 08:00/19.5 14:00/19.0 23:00/16.0
#     2025-01-25 15:37:13   schedule_wednesday 06:00/21.0 08:00/19.0 14:00/19.0 23:00/16.0
#     2025-01-25 15:37:09   state           schedule_sunday
#     2025-01-25 12:37:15   sunday          06:00/22.0 08:00/19.0 14:00/19.0 23:00/16.0
#     2025-01-25 15:37:13   system_mode     auto
#
setstate E5_TRV_mq auto Temp: 18 -> 19 °C heat\
Battery_low: false lqi 127
setstate E5_TRV_mq 2025-01-25 13:59:29 IODev MQTT2_Server2
setstate E5_TRV_mq 2025-01-25 13:52:25 associatedWith MQTT2_zigbee_bridge
setstate E5_TRV_mq 2025-01-25 15:37:13 battery_low false
setstate E5_TRV_mq 2025-01-25 15:37:13 child_lock UNLOCK
setstate E5_TRV_mq 2025-01-25 15:37:13 current_heating_setpoint 19
setstate E5_TRV_mq 2025-01-25 15:37:13 frost_protection OFF
setstate E5_TRV_mq 2025-01-25 15:37:13 linkquality 127
setstate E5_TRV_mq 2025-01-25 15:37:13 local_temperature 18
setstate E5_TRV_mq 2025-01-25 15:37:13 local_temperature_calibration 0
setstate E5_TRV_mq 2025-01-25 15:37:13 running_state heat
setstate E5_TRV_mq 2025-01-25 15:37:13 scale_protection ON
setstate E5_TRV_mq 2025-01-25 15:37:13 schedule_friday 06:00/21.0 08:00/20.0 14:00/19.0 23:00/16.0
setstate E5_TRV_mq 2025-01-25 15:37:13 schedule_monday 06:00/21.5 08:00/19.5 14:00/19.0 23:00/16.0
setstate E5_TRV_mq 2025-01-25 15:37:13 schedule_saturday 06:00/21.0 08:00/19.5 14:00/19.0 23:00/16.0
setstate E5_TRV_mq 2025-01-25 15:37:13 schedule_sunday 06:00/21.0 08:00/19.5 14:00/19.0 23:00/16.0
setstate E5_TRV_mq 2025-01-25 15:37:13 schedule_thursday 06:00/21.5 08:00/16.5 12:00/21.0 14:00/16.0
setstate E5_TRV_mq 2025-01-25 15:37:13 schedule_tuesday 06:00/20.0 08:00/19.5 14:00/19.0 23:00/16.0
setstate E5_TRV_mq 2025-01-25 15:37:13 schedule_wednesday 06:00/21.0 08:00/19.0 14:00/19.0 23:00/16.0
setstate E5_TRV_mq 2025-01-25 15:37:09 state schedule_sunday
setstate E5_TRV_mq 2025-01-25 12:37:15 sunday 06:00/22.0 08:00/19.0 14:00/19.0 23:00/16.0
setstate E5_TRV_mq 2025-01-25 15:37:13 system_mode auto


define E2_TRV_mq MQTT2_DEVICE zigbee_0x44e2f8fffe107869
attr E2_TRV_mq alias E2_Buero_TRV
attr E2_TRV_mq devicetopic zigbee2mqtt/0x44e2f8fffe107869
attr E2_TRV_mq icon temp_control
attr E2_TRV_mq readingList $DEVICETOPIC:.* { json2nameValue($EVENT) }
attr E2_TRV_mq room Mq->Zb->Regler
attr E2_TRV_mq setList system_mode:auto,off,heat $DEVICETOPIC/set {"system_mode":" $EVTPART1 "}\
occupied_heating_setpoint:slider,4.0,0.5,35.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }\
valve_opening_degree:slider,0,10,100,1 $DEVICETOPIC/set {"valve_opening_degree": $EVTPART1 }\
valve_closing_degree:slider,0,10,100,1 $DEVICETOPIC/set {"valve_closing_degree": $EVTPART1 }\
local_temperature_calibration:slider,-10.0,0.5,10.0,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: local_temperature -> occupied_heating_setpoint °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_34052
#   MQTT2_Server2_MSGCNT 86
#   MQTT2_Server2_TIME 2025-01-25 15:58:43
#   MSGCNT     86
#   NAME       E2_TRV_mq
#   NR         786
#   STATE      heat Temp: 21.5 -> 19 °C idle idle V=0:100
#Battery: 100 % lqi 127
#   TYPE       MQTT2_DEVICE
#   eventCount 113
#   OLDREADINGS:
#   READINGS:
#     2025-01-25 13:59:29   IODev           MQTT2_Server2
#     2025-01-25 13:53:20   associatedWith  MQTT2_zigbee_bridge
#     2025-01-25 15:58:43   battery         100
#     2025-01-25 15:58:43   child_lock      UNLOCK
#     2025-01-25 15:58:43   closing_steps   296
#     2025-01-25 15:58:43   frost_protection_temperature 7
#     2025-01-25 15:58:43   idle_steps      293
#     2025-01-25 15:58:43   linkquality     127
#     2025-01-25 15:58:43   local_temperature 21.5
#     2025-01-25 15:58:43   local_temperature_calibration -2
#     2025-01-25 15:58:43   occupied_heating_setpoint 19
#     2025-01-25 15:58:43   open_window     OFF
#     2025-01-25 15:58:43   running_state   idle
#     2025-01-25 15:58:42   state           valve_closing_degree
#     2025-01-25 15:58:43   system_mode     heat
#     2025-01-25 15:58:43   update_installed_version 4609
#     2025-01-25 15:58:43   update_latest_version 4609
#     2025-01-25 15:58:43   update_state    idle
#     2025-01-25 15:58:43   valve_closing_degree 100
#     2025-01-25 15:58:43   valve_closing_limit_voltage 2620
#     2025-01-25 15:58:43   valve_motor_running_voltage 2224
#     2025-01-25 15:58:43   valve_opening_degree 0
#     2025-01-25 15:58:43   valve_opening_limit_voltage 2045
#     2025-01-25 15:58:43   weekly_schedule_friday 00:00/16 07:00/20 10:00/19 10:00/20 17:00/30 23:00/16
#     2025-01-25 15:58:43   weekly_schedule_monday 00:00/16 06:00/21 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-25 15:58:43   weekly_schedule_saturday 00:00/16 07:00/22 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-25 15:58:43   weekly_schedule_sunday 00:00/16 06:00/20 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-25 15:58:43   weekly_schedule_thursday 00:00/16 07:00/19 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-25 15:58:43   weekly_schedule_tuesday 00:00/16 06:00/19 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-25 15:58:43   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 heat Temp: 21.5 -> 19 °C idle idle V=0:100\
Battery: 100 % lqi 127
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-25 15:58:43 battery 100
setstate E2_TRV_mq 2025-01-25 15:58:43 child_lock UNLOCK
setstate E2_TRV_mq 2025-01-25 15:58:43 closing_steps 296
setstate E2_TRV_mq 2025-01-25 15:58:43 frost_protection_temperature 7
setstate E2_TRV_mq 2025-01-25 15:58:43 idle_steps 293
setstate E2_TRV_mq 2025-01-25 15:58:43 linkquality 127
setstate E2_TRV_mq 2025-01-25 15:58:43 local_temperature 21.5
setstate E2_TRV_mq 2025-01-25 15:58:43 local_temperature_calibration -2
setstate E2_TRV_mq 2025-01-25 15:58:43 occupied_heating_setpoint 19
setstate E2_TRV_mq 2025-01-25 15:58:43 open_window OFF
setstate E2_TRV_mq 2025-01-25 15:58:43 running_state idle
setstate E2_TRV_mq 2025-01-25 15:58:42 state valve_closing_degree
setstate E2_TRV_mq 2025-01-25 15:58:43 system_mode heat
setstate E2_TRV_mq 2025-01-25 15:58:43 update_installed_version 4609
setstate E2_TRV_mq 2025-01-25 15:58:43 update_latest_version 4609
setstate E2_TRV_mq 2025-01-25 15:58:43 update_state idle
setstate E2_TRV_mq 2025-01-25 15:58:43 valve_closing_degree 100
setstate E2_TRV_mq 2025-01-25 15:58:43 valve_closing_limit_voltage 2620
setstate E2_TRV_mq 2025-01-25 15:58:43 valve_motor_running_voltage 2224
setstate E2_TRV_mq 2025-01-25 15:58:43 valve_opening_degree 0
setstate E2_TRV_mq 2025-01-25 15:58:43 valve_opening_limit_voltage 2045
setstate E2_TRV_mq 2025-01-25 15:58:43 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-25 15:58:43 weekly_schedule_monday 00:00/16 06:00/21 10:00/19 10:00/19 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-25 15:58:43 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-25 15:58:43 weekly_schedule_sunday 00:00/16 06:00/20 10:00/19 10:00/19 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-25 15:58:43 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-25 15:58:43 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-25 15:58:43 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

Beta-User

Zitat von: LudgerR am 25 Januar 2025, 16:02:32and the last sent command was successful
OK, das ist auch nur "bedingt optimistisch", denn immerhin hat das Device geantwortet...

Wenn du den set-Topic weiter in der readingList hättest, wäre (bei externem MQTT-Server, intern werden ausgehende Topics nicht ohne weiteres verarbeitet) schon die ausgehende Message Anlass gewesen, irgendwelche Readings* zu aktualisieren, und das wäre "sehr optimistisch", denn zu diesem Zeitpunkt ist noch nicht mal klar, ob z2m den Befehl überhaupt entegengenommen hat - geschweige denn versendet.

Ad*: Vermutlich wäre es sinnvoll, wenn du entweder die setList so anpaßt, dass der "versendete Readingwert" zum Reading-Namen paßt, der mit "einfachem" json2nameValue() ermittelt wird, oder du verwendest jsonMap/$JSONMAP, um die Namen auf der Empfangsseite anzupassen. So läuft das etwas aneinander vorbei.
Ist eher ein Schönheitsfehler, aber eben nicht "perfekt" ;) .
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

Zitat von: Beta-User am 25 Januar 2025, 17:21:49
Zitat von: LudgerR am 25 Januar 2025, 16:02:32and the last sent command was successful
:
:
Ad*: Vermutlich wäre es sinnvoll, wenn du entweder die setList so anpaßt, dass der "versendete Readingwert" zum Reading-Namen paßt, der mit "einfachem" json2nameValue() ermittelt wird, oder du verwendest jsonMap/$JSONMAP, um die Namen auf der Empfangsseite anzupassen. So läuft das etwas aneinander vorbei.
Ist eher ein Schönheitsfehler, aber eben nicht "perfekt" ;) .


Genau dass ist meines Verständnisses nach bei beiden Beispielen (ME167 und Sonoff TRVZB) genau der Fall.

Der "versendete Readingwert" paßt zum Reading-Namen.
Beim auswahl von "weekly_schedule_sunday  werden mir die aktuellen Werte des Readings im FHEMWEB angezeigt.
Ich kann sie ändern und per "set" abschicken.
Ist die Syntax des Zeitplans ok wird dies über Z2M ans Device gesendet und und ich bekomme per JSON die kompletten Werte des TRV Gerätes als Info/Status zurück. Erst dann erfolgt der Update der Readings einschließlich des geänderten für "weekly_schedule_sunday" im "TRV-Gerät" in Fhem

Falls nicht, ist dies ein Hinweis, das Z2M den Zeitplan aus formalen Gründen abgelehnt hat. Bei ME167 sind z.B. 4 Quardupel zwingend vorgeschrieben. Falls ich nicht offensichtlich ist finde ich im Web-Interface von z2M Hinweise darauf wo der Fehler liegt.

Was JSONMAP angeht werde ich dies wahrscheinlich nutzen, das sowohl bei ME167 als TRVZB  die selben Readings (z.B. schedule_sunday, schedule_tuesday ...)  verwendet werden.

Also deinen obigen Hinweis verstehe ich nicht!

Nebenbei durch den Umstieg auf einen Sonoff Coordinator USB-Stick und den Einsatz von zwei weiteren Routern auf Basis von dem Sonoff Stick im OG und KG erziele ich sehr gute Antwortzeiten in allen Ecken des Hauses, wo die Thermostate zum Einsatz kommen.
Den Umstieg von "Optimistisch" auf "Skeptisch" d.h. auf Rückantwort wartend steht in den meisten Fällen eigentlich nichts mehr im Wege.

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

Zitat von: LudgerR am 25 Januar 2025, 21:53:39Also deinen obigen Hinweis verstehe ich nicht!
Ah, sorry, da hatte ich einen gedanklichen Mix aus beiden Devices gebastelt mit den setList-Angaben aus dem ersten und den Readingnamen aus dem 2....

Stimme dir zu, einheitliche Namen wären hilfreich :o .

PS: Falls du das zusammen mit "weekprofile" nutzen willst, um die Wochenpläne zu generieren: Es gibt dazu Code für ein paar andere (z2m-) Typen (zu finden entweder über die betr. attrTemplate oder in svn-contrib).

Blöd ist nur, dass jede Type irgendwelche Spezialitäten aufweist, das macht es schwer, sinnvollen allgemeinen Code bereitzustellen. Falls du was erarbeitet hast, checke ich das gerne mit im svn ein :) .
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

Beim  "setList" für SONOFF TVRZB  habe ich noch weitere Readings mit aufgenommen und getestet.
Ist somit bald "reif" für ein Template.

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 icon temp_control
attr E2_TRV_mq readingList $DEVICETOPIC:.* { json2nameValue($EVENT) }
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"})}\
get_system_mode: $DEVICETOPIC/get {"system_mode":""}\
open_window:ON,OFF $DEVICETOPIC/set {"open_window": "$EVTPART1"}\
get_occupied_heating_setpoint: $DEVICETOPIC/get {"occupied_heating_setpoint": ""}\
occupied_heating_setpoint: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: local_temperature -> occupied_heating_setpoint °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_34052
#   MQTT2_Server2_MSGCNT 1269
#   MQTT2_Server2_TIME 2025-01-26 20:14:02
#   MSGCNT     1269
#   NAME       E2_TRV_mq
#   NR         786
#   STATE      auto Temp: 20.5 -> 22 °C heat idle V=80:30
#Battery: 100 % lqi 116
#   TYPE       MQTT2_DEVICE
#   eventCount 1707
#   OLDREADINGS:
#   READINGS:
#     2025-01-25 13:59:29   IODev           MQTT2_Server2
#     2025-01-25 13:53:20   associatedWith  MQTT2_zigbee_bridge
#     2025-01-26 20:14:02   battery         100
#     2025-01-26 20:14:02   child_lock       UNLOCK
#     2025-01-26 20:14:02   closing_steps   296
#     2025-01-26 20:14:02   frost_protection_temperature 6
#     2025-01-26 20:14:02   idle_steps      293
#     2025-01-26 20:14:02   linkquality     116
#     2025-01-26 20:14:02   local_temperature 20.5
#     2025-01-26 20:14:02   local_temperature_calibration -2
#     2025-01-26 20:14:02   occupied_heating_setpoint 22
#     2025-01-26 20:14:02   open_window      OFF
#     2025-01-26 20:14:02   running_state   heat
#     2025-01-26 20:13:58   state           valve_closing_degree
#     2025-01-26 20:14:02   system_mode     auto
#     2025-01-26 20:14:02   update_installed_version 4609
#     2025-01-26 20:14:02   update_latest_version 4609
#     2025-01-26 20:14:02   update_state    idle
#     2025-01-26 20:14:02   valve_closing_degree 30
#     2025-01-26 20:14:02   valve_closing_limit_voltage 2620
#     2025-01-26 20:14:02   valve_motor_running_voltage 1671
#     2025-01-26 20:14:02   valve_opening_degree 80
#     2025-01-26 20:14:02   valve_opening_limit_voltage 2045
#     2025-01-26 20:14:02   weekly_schedule_friday 00:00/16 07:00/20 10:00/19 10:00/20 17:00/30 23:00/16
#     2025-01-26 20:14:02   weekly_schedule_monday 00:00/16 06:00/21 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-26 20:14:02   weekly_schedule_saturday 00:00/16 07:00/22 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-26 20:14:02   weekly_schedule_sunday 00:00/16 06:00/20 10:00/19 10:00/19 16:45/22 23:00/16
#     2025-01-26 20:14:02   weekly_schedule_thursday 00:00/16 07:00/19 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-26 20:14:02   weekly_schedule_tuesday 00:00/16 06:00/19 10:00/19 10:00/19 17:00/19 23:00/16
#     2025-01-26 20:14:02   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 auto Temp: 20.5 -> 22 °C heat idle V=80:30\
Battery: 100 % lqi 116
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-26 20:14:02 battery 100
setstate E2_TRV_mq 2025-01-26 20:14:02 child_lock  UNLOCK
setstate E2_TRV_mq 2025-01-26 20:14:02 closing_steps 296
setstate E2_TRV_mq 2025-01-26 20:14:02 frost_protection_temperature 6
setstate E2_TRV_mq 2025-01-26 20:14:02 idle_steps 293
setstate E2_TRV_mq 2025-01-26 20:14:02 linkquality 116
setstate E2_TRV_mq 2025-01-26 20:14:02 local_temperature 20.5
setstate E2_TRV_mq 2025-01-26 20:14:02 local_temperature_calibration -2
setstate E2_TRV_mq 2025-01-26 20:14:02 occupied_heating_setpoint 22
setstate E2_TRV_mq 2025-01-26 20:14:02 open_window  OFF
setstate E2_TRV_mq 2025-01-26 20:14:02 running_state heat
setstate E2_TRV_mq 2025-01-26 20:13:58 state valve_closing_degree
setstate E2_TRV_mq 2025-01-26 20:14:02 system_mode auto
setstate E2_TRV_mq 2025-01-26 20:14:02 update_installed_version 4609
setstate E2_TRV_mq 2025-01-26 20:14:02 update_latest_version 4609
setstate E2_TRV_mq 2025-01-26 20:14:02 update_state idle
setstate E2_TRV_mq 2025-01-26 20:14:02 valve_closing_degree 30
setstate E2_TRV_mq 2025-01-26 20:14:02 valve_closing_limit_voltage 2620
setstate E2_TRV_mq 2025-01-26 20:14:02 valve_motor_running_voltage 1671
setstate E2_TRV_mq 2025-01-26 20:14:02 valve_opening_degree 80
setstate E2_TRV_mq 2025-01-26 20:14:02 valve_opening_limit_voltage 2045
setstate E2_TRV_mq 2025-01-26 20:14:02 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-26 20:14:02 weekly_schedule_monday 00:00/16 06:00/21 10:00/19 10:00/19 17:00/19 23:00/16
setstate E2_TRV_mq 2025-01-26 20:14:02 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-26 20:14:02 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-26 20:14:02 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-26 20:14:02 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-26 20:14:02 weekly_schedule_wednesday 00:00/16 06:00/21 10:00/19 10:00/19 17:00/19 23:00/16


Zitat von: Beta-User am 26 Januar 2025, 08:21:33PS: Falls du das zusammen mit "weekprofile" nutzen willst, um die Wochenpläne zu generieren: Es gibt dazu Code für ein paar andere (z2m-) Typen (zu finden entweder über die betr. attrTemplate oder in svn-contrib).

Was die Wochenzeitpläne angeht, tendiere ich dafür den gleichen Ansatz wie bei meinen FHTs vor 12 Jahren zu verfolgen. Bei Rentnern gibt es nämlich keinen Wochenplan. Wir haben immer WE. Der Basis Tagesplan ist sehr schnell eingepflegt.Abweichungen hiervon bestehen eigentlich nur darin, dass man früher oder später zu Bett geht und zu diesem Zeitpunkt bereits abschätzen kann, wie sich die Aufstehzeit am nächsten Morgen (voraussichtlich) ändert. Bei den FHTs hab ich die Tagespläne im Gerät selbst voll genutzt. Beim zu Bett gehen einfach (am Gerät selbst oder per Funkbefehl) in den Nachtmodus gewechselt und per "PartyFunktion" (aber mit Absenktemperatur) den Zeitpunkt des "Heizung- und Heizkörpererwachen" für den kommenden Morgen nach Gusto verschoben. Am Morgen ließ sich die "Partyfunktion" abrechen (ein Knopfdruck am Gerat) oder ein Funkbefehl und man war wieder im "Auto" sprich Tagesplanmodus.
Wegen der schieren Anzahl der FHTS (13 Stck) war dies bei SlowRF das einzige  praktikable Verfahren und hat sich über die vergangenen Jahre hin bestens bewährt.
Danke für den Hinweis auf das "weekprofil". Werde ich mir mal ansehen ob es mir nützlich sein kann.

 
     
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

Zitat von: LudgerR am 26 Januar 2025, 20:29:57Ist somit bald "reif" für ein Template.
Dafür hätte ich dann doch noch ein paar Wünsche und Anregungen:
- "occupied_heating_setpoint" ist vermutlich das, was sich in FHEM besser als "desired-temp" integriert, "valve_opening_degree" nennt sich vermutlich üblicherweise "valve"
- "get"-Kommandos gehören imo in getList

Das mit weekprofile ist dann vermutlich nicht so relevant für dich (die Verteilerei ist aber schon cool), eher 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?
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