Zigbee-Anbindung mit Raspbee-Modul: Per Hue oder zigbee2mqtt?

Begonnen von dadoc, 23 Januar 2023, 12:14:56

Vorheriges Thema - Nächstes Thema

dadoc

Zitat von: TomLee am 24 Januar 2023, 13:08:00
Hast du bei diesem Device die Attribute auch selbst von Hand angelegt oder wurden die so ergänzt nachdem du das zigbee2mqtt_bridge-Template angewendet hast ?
Ich hatte https://wiki.fhem.de/wiki/Zigbee2mqtt#Define_eines_MQTT2-Devices_als_.22Bridge.22 versucht zu befolgen, was aber schon bei
attr MQTT2_zigbee_pi IODev MQTT2_FHEM_Server

scheiterte, weil da noch garkein MQTT2_FHEM_Server definiert war. Dann habe ich weitergewurschtelt und m.W. in der Tat das Bridge-Template angewandt.
Zitat
Lösche einfach das MQTT2_zigbee_pi Device, wende auf das MQTT2_zigbee_bridge Device das zigbee2mqtt_bridge-Template an und zeig davon mal ein List.
Done. Jetzt sind allerdings erstmal die Geräte weg in fhem.
list:
Internals:
   CID        zigbee_bridge
   DEF        zigbee_bridge
   FUUID      63cfcd0a-f33f-fddf-fcc7-2a7b00c72b69bdc7
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_127.0.0.1_46380
   MQTT2_FHEM_Server_MSGCNT 7
   MQTT2_FHEM_Server_TIME 2023-01-24 13:25:10
   MSGCNT     7
   NAME       MQTT2_zigbee_bridge
   NR         123
   STATE      online
   TYPE       MQTT2_DEVICE
   eventCount 9
   OLDREADINGS:
   READINGS:
     2023-01-24 13:24:22   attrTemplateVersion 20220328
     2023-01-24 13:25:10   log_level       info
     2023-01-24 13:25:10   log_message     MQTT publish: topic 'zigbee2mqtt/Heizkoerperthermostat1', payload '{"battery_low":false,"boost_timeset_countdown":0,"child_lock":"UNLOCK","comfort_temperature":18,"current_heating_setpoint":15.5,"eco_temperature":15,"error_status":0,"frost_protection":"OFF","heating_stop":"OFF","holiday_start_stop":"2021/01/01 01:01 | 2021/01/01 01:01","holiday_temperature":17,"linkquality":255,"local_temperature":18.3,"local_temperature_calibration":0,"online":"ON","open_window":"OFF","open_window_temperature":16,"preset":"auto","schedule_friday":"06:00/17 12:00/21 14:00/17 17:00/21 24:00/17","schedule_monday":"06:00/17 12:00/21 14:00/17 17:00/21 24:00/17","schedule_saturday":"06:00/17 12:00/21 14:00/17 17:00/21 24:00/17","schedule_sunday":"06:00/17 12:00/21 14:00/17 17:00/21 24:00/17","schedule_thursday":"06:00/17 12:00/21 14:00/17 17:00/21 24:00/17","schedule_tuesday":"06:00/17 12:00/21 14:00/17 17:00/21 24:00/17","schedule_wednesday":"06:00/17 12:00/21 14:00/17 17:00/21 24:00/17","system_mode":"heat","update":{"state":"idle"},"update_available":false,"working_day":"mon_sun"}'
Attributes:
   bridgeRegexp zigbee2mqtt/([A-Za-z0-9._]+)[/]?.*:.* "zigbee_$1"
   comment    To check for new updates of the deamon software, you might want to use a separate HTTPMOD device. See HTTPMOD template zigbee2mqtt_daemon_updates for further details.
   devicetopic zigbee2mqtt
   getList    networkmap_raw:noArg raw $DEVICETOPIC/bridge/request/networkmap raw
  networkmap_graphviz:noArg graphviz $DEVICETOPIC/bridge/request/networkmap graphviz
   icon       mqtt
   model      zigbee2mqtt_bridge
   readingList $DEVICETOPIC/bridge/state:.* state
  $DEVICETOPIC/bridge/config/devices:.* {}
  $DEVICETOPIC/bridge/config/log_level:.* log_level
  $DEVICETOPIC/bridge/config/permit_join:.* permit_join
  $DEVICETOPIC/bridge/config/rename:.* { json2nameValue($EVENT, 'rename_') }
  $DEVICETOPIC/bridge/config:.* { json2nameValue($EVENT) }
  $DEVICETOPIC/bridge/log:.*\"type\".\"devices\".\"message\".* devices
  $DEVICETOPIC/bridge/log:.* log
  $DEVICETOPIC/bridge/logging:.* { json2nameValue($EVENT,'log_') }
  $DEVICETOPIC/bridge/response/networkmap:.* { my $type = $EVENT =~ m/.*,"type":"(raw|graphviz)",.*/ ? $1 : 'networkmap'; $EVENT =~ m/{"data":\{.*"value":"?(.*[^"])"?\},"status":"ok"\}/ ? { $type=>$1 } : {} }
  $DEVICETOPIC/bridge/devices:.* devices
  $DEVICETOPIC/bridge/info:.* info
  $DEVICETOPIC/bridge/groups:.* groups
  $DEVICETOPIC/bridge/event:.* { json2nameValue($EVENT) }
  $DEVICETOPIC/bridge/extensions:.* extensions
   room       MQTT2_DEVICE
   setList    log_level:debug,info,warn,error $DEVICETOPIC/bridge/config/log_level $EVTPART1
  permit_join:true,false $DEVICETOPIC/bridge/request/permit_join $EVTPART1
  remove:textField $DEVICETOPIC/bridge/config/remove $EVTPART1
  ota_update:textField $DEVICETOPIC/bridge/ota_update/update $EVTPART1
  ota_update_check:textField $DEVICETOPIC/bridge/ota_update/check $EVTPART1
  y_device_setting:textField $DEVICETOPIC/$EVTPART1/set {"$EVTPART2": "$EVTPART3"}
  x_bind:textField $DEVICETOPIC/bridge/bind/$EVTPART1 $EVTPART2
  x_bind_unbind:textField $DEVICETOPIC/bridge/unbind/$EVTPART1 $EVTPART2
  x_device_options:textField $DEVICETOPIC/bridge/config/device_options {"friendly_name":"$EVTPART1","options": {"$EVTPART2": "$EVTPART3"}}
  x_group_add_to:textField $DEVICETOPIC/bridge/group/$EVTPART1/add $EVTPART2
  x_group_rm_from:textField $DEVICETOPIC/bridge/group/$EVTPART1/remove $EVTPART2
  x_group_rm_from_all:textField $DEVICETOPIC/bridge/group/$EVTPART1/remove_all $EVTPART2
  x_group_add_group:textField $DEVICETOPIC/bridge/config/add_group $EVTPART1
  x_group_rm_group:textField $DEVICETOPIC/bridge/config/remove_group $EVTPART1
  z_elapsed:textField $DEVICETOPIC/bridge/config/elapsed $EVTPART1
  z_last_seen:disable,ISO_8601,epoch,ISO_8601_local $DEVICETOPIC/bridge/config/last_seen $EVTPART1
  z_ban:textField $DEVICETOPIC/bridge/config/ban $EVTPART1
  z_rename:textField $DEVICETOPIC/bridge/config/rename  {"old":"$EVTPART1","new":"$EVTPART2"}
  z_reset_CC:noArg $DEVICETOPIC/bridge/config/reset
   setStateList on off

list -r:
define MQTT2_zigbee_bridge MQTT2_DEVICE zigbee_bridge
attr MQTT2_zigbee_bridge bridgeRegexp zigbee2mqtt/([A-Za-z0-9._]+)[/]?.*:.* "zigbee_$1"
attr MQTT2_zigbee_bridge comment To check for new updates of the deamon software, you might want to use a separate HTTPMOD device. See HTTPMOD template zigbee2mqtt_daemon_updates for further details.
attr MQTT2_zigbee_bridge devicetopic zigbee2mqtt
attr MQTT2_zigbee_bridge getList networkmap_raw:noArg raw $DEVICETOPIC/bridge/request/networkmap raw\
  networkmap_graphviz:noArg graphviz $DEVICETOPIC/bridge/request/networkmap graphviz
attr MQTT2_zigbee_bridge icon mqtt
attr MQTT2_zigbee_bridge model zigbee2mqtt_bridge
attr MQTT2_zigbee_bridge readingList $DEVICETOPIC/bridge/state:.* state\
  $DEVICETOPIC/bridge/config/devices:.* {}\
  $DEVICETOPIC/bridge/config/log_level:.* log_level\
  $DEVICETOPIC/bridge/config/permit_join:.* permit_join\
  $DEVICETOPIC/bridge/config/rename:.* { json2nameValue($EVENT, 'rename_') }\
  $DEVICETOPIC/bridge/config:.* { json2nameValue($EVENT) }\
  $DEVICETOPIC/bridge/log:.*\"type\".\"devices\".\"message\".* devices\
  $DEVICETOPIC/bridge/log:.* log\
  $DEVICETOPIC/bridge/logging:.* { json2nameValue($EVENT,'log_') }\
  $DEVICETOPIC/bridge/response/networkmap:.* { my $type = $EVENT =~ m/.*,"type":"(raw|graphviz)",.*/ ? $1 : 'networkmap';; $EVENT =~ m/{"data":\{.*"value":"?(.*[^"])"?\},"status":"ok"\}/ ? { $type=>$1 } : {} }\
  $DEVICETOPIC/bridge/devices:.* devices\
  $DEVICETOPIC/bridge/info:.* info\
  $DEVICETOPIC/bridge/groups:.* groups\
  $DEVICETOPIC/bridge/event:.* { json2nameValue($EVENT) }\
  $DEVICETOPIC/bridge/extensions:.* extensions
attr MQTT2_zigbee_bridge room MQTT2_DEVICE
attr MQTT2_zigbee_bridge setList log_level:debug,info,warn,error $DEVICETOPIC/bridge/config/log_level $EVTPART1\
  permit_join:true,false $DEVICETOPIC/bridge/request/permit_join $EVTPART1\
  remove:textField $DEVICETOPIC/bridge/config/remove $EVTPART1\
  ota_update:textField $DEVICETOPIC/bridge/ota_update/update $EVTPART1\
  ota_update_check:textField $DEVICETOPIC/bridge/ota_update/check $EVTPART1\
  y_device_setting:textField $DEVICETOPIC/$EVTPART1/set {"$EVTPART2": "$EVTPART3"}\
  x_bind:textField $DEVICETOPIC/bridge/bind/$EVTPART1 $EVTPART2\
  x_bind_unbind:textField $DEVICETOPIC/bridge/unbind/$EVTPART1 $EVTPART2\
  x_device_options:textField $DEVICETOPIC/bridge/config/device_options {"friendly_name":"$EVTPART1","options": {"$EVTPART2": "$EVTPART3"}}\
  x_group_add_to:textField $DEVICETOPIC/bridge/group/$EVTPART1/add $EVTPART2\
  x_group_rm_from:textField $DEVICETOPIC/bridge/group/$EVTPART1/remove $EVTPART2\
  x_group_rm_from_all:textField $DEVICETOPIC/bridge/group/$EVTPART1/remove_all $EVTPART2\
  x_group_add_group:textField $DEVICETOPIC/bridge/config/add_group $EVTPART1\
  x_group_rm_group:textField $DEVICETOPIC/bridge/config/remove_group $EVTPART1\
  z_elapsed:textField $DEVICETOPIC/bridge/config/elapsed $EVTPART1\
  z_last_seen:disable,ISO_8601,epoch,ISO_8601_local $DEVICETOPIC/bridge/config/last_seen $EVTPART1\
  z_ban:textField $DEVICETOPIC/bridge/config/ban $EVTPART1\
  z_rename:textField $DEVICETOPIC/bridge/config/rename  {"old":"$EVTPART1","new":"$EVTPART2"}\
  z_reset_CC:noArg $DEVICETOPIC/bridge/config/reset
attr MQTT2_zigbee_bridge setStateList on off

setstate MQTT2_zigbee_bridge online
setstate MQTT2_zigbee_bridge 2023-01-24 13:24:22 attrTemplateVersion 20220328
setstate MQTT2_zigbee_bridge 2023-01-24 13:25:10 log_level info
setstate MQTT2_zigbee_bridge 2023-01-24 13:25:10 log_message MQTT publish: topic 'zigbee2mqtt/Heizkoerperthermostat1', payload '{"battery_low":false,"boost_timeset_countdown":0,"child_lock":"UNLOCK","comfort_temperature":18,"current_heating_setpoint":15.5,"eco_temperature":15,"error_status":0,"frost_protection":"OFF","heating_stop":"OFF","holiday_start_stop":"2021/01/01 01:01 | 2021/01/01 01:01","holiday_temperature":17,"linkquality":255,"local_temperature":18.3,"local_temperature_calibration":0,"online":"ON","open_window":"OFF","open_window_temperature":16,"preset":"auto","schedule_friday":"06:00/17 12:00/21 14:00/17 17:00/21 24:00/17","schedule_monday":"06:00/17 12:00/21 14:00/17 17:00/21 24:00/17","schedule_saturday":"06:00/17 12:00/21 14:00/17 17:00/21 24:00/17","schedule_sunday":"06:00/17 12:00/21 14:00/17 17:00/21 24:00/17","schedule_thursday":"06:00/17 12:00/21 14:00/17 17:00/21 24:00/17","schedule_tuesday":"06:00/17 12:00/21 14:00/17 17:00/21 24:00/17","schedule_wednesday":"06:00/17 12:00/21 14:00/17 17:00/21 24:00/17","system_mode":"heat","update":{"state":"idle"},"update_available":false,"working_day":"mon_sun"}'

Wenn ich im zigbee2mqtt-Interface etwas ändere (z.B. Solltemperatur des Thermostats), erscheint das Gerät wieder in fhem. Die vorher zugewiesenen Templates sind aber nicht mehr zugeordnet.
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

TomLee

Für mich sieht das jetzt gut aus, da sind bei mir selbst zwar noch ein zwei Fragezeichen, hab aber keine Lust den Kasper zu spielen.
Nur eines von mir noch, warum die zuvor bereits erstellten Devices einfach gelöscht worden sein sollen nachdem du das MQTT2_zigbee_pi Device gelöscht hast erschließt sich mir einfach nicht.

dadoc

Zitat von: TomLee am 24 Januar 2023, 13:53:43
warum die zuvor bereits erstellten Devices einfach gelöscht worden sein sollen nachdem du das MQTT2_zigbee_pi Device gelöscht hast erschließt sich mir einfach nicht.
Ich kann es Dir nicht sagen - auch nicht, ob es kausal mit dem Auskommentieren von MQTT2_zigbee_pi in der fhem.cfg, speichern und sicherheitshalber shutdown restart zu tun hatte. Sie waren jedenfalls weg.
Was ich gelernt habe: Devices, die man wegen der räumlichen Entfernung (bin gerade remote auf dem System) nicht manuell betätigen kann und die auch keine Schaltmöglichkeit im zigbee2qmtt-Interface haben (wie z.B. ein Tür-/Fensterkontakt), werden ja nicht "von selbst" an fhem übermittelt. Wenn man aber vorübergehend im zigbee2qmtt-Interface den friendly name ändert (z.B. von Tuerkontakt1 zu Tuerkontakt0), werden beide "Geräte" nach fhem übertragen; eines kann man dann ja wieder löschen. Vielleicht würde ja auch ein reboot oder ein restart von zigbee2mqtt die Synchronisierung triggern, habe ich noch nicht ausprobiert. Oder gibt es andere Möglichkeiten?
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

TomLee

ZitatVielleicht würde ja auch ein reboot oder ein restart von zigbee2mqtt die Synchronisierung triggern, habe ich noch nicht ausprobiert. Oder gibt es andere Möglichkeiten?

Der Grund wird einfach deine Rumspielerei in der fhem.cfg sein, die zuvor angelegten Devices waren in dieser wsl. einfach noch nicht gespeichert und du hast nach dem auskommentieren einfach einen shutdown restart gemacht.

Vermutlich hast du bis jetzt immer noch nicht gespeichert, wenn das so ist schau dir doch einfach die fhem.cfg jetzt an, genau das wird auch nach einem shutdown restart wieder da drin stehen, wenn du nicht zuvor die bereits angelegten Devices, auf welchem Weg auch immer, der einfachste dürfte wohl über FHEMWEB sein) in der fhem.cfg speicherst.

dadoc

Zitat von: TomLee am 24 Januar 2023, 15:29:21
Der Grund wird einfach deine Rumspielerei in der fhem.cfg sein
Bestimmt nicht, ich editiere die cfg (nur dann, wenn es mir vorteilhaft erscheint, z.B. zum Auskommentieren) erfolgreich und unfallfrei seit über neun Jahren ;)
Die Geräte waren da, seit ich sie gestern mit templates versehen hatte, und haben gestern Abend und heute auch mehrere reboots überlebt.
Vielleicht hat es ja auch mit der Anwendung des templates auf das bridge-Device zu tun? Dessen list ist ja nun doch sehr anders als vorher, als es eine schier endlose Liste von Readings aller Devices beinhaltete (s.o. MQTT2_zigbee_bridge_list.txt)
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

TomLee

Es wäre für mich halt eine Erklärung gewesen, dann weiß ich auch nicht.

Mit dem anwenden des Templates kann es meiner Meinung nach nicht zusammenhängen.

Das mit den endlosen Readings zuvor, hat damit zu tun, wie und ob die einzelnen Pfade auseinandergenommen werden.
So sah die automatisch angelegte readingList vor dem Template anwenden aus:
zigbee2mqtt/bridge/state:.* state
zigbee2mqtt/bridge/info:.* info
zigbee2mqtt/bridge/devices:.* { json2nameValue($EVENT) }
zigbee2mqtt/bridge/groups:.* groups
zigbee2mqtt/bridge/extensions:.* extensions
zigbee2mqtt/bridge/logging:.* { json2nameValue($EVENT) }
zigbee2mqtt/bridge/config:.* { json2nameValue($EVENT) }
zigbee2mqtt/bridge/event:.* { json2nameValue($EVENT) }
zigbee2mqtt/bridge/log:.* { json2nameValue($EVENT) }
zigbee2mqtt/bridge/response/device/rename:.* { json2nameValue($EVENT) }
zigbee2mqtt/bridge/response/networkmap:.* { json2nameValue($EVENT) }
zigbee2mqtt/bridge/response/device/configure:.* { json2nameValue($EVENT) }
zigbee2mqtt/bridge/response/device/ota_update/check:.* { json2nameValue($EVENT) }


Mit dem anwenden des Template wird das dann auf Grundlage der bisher zusammengetragenen Erfahrungen etwas "ordentlicher" oder gar nicht entpackt:
$DEVICETOPIC/bridge/state:.* state
  $DEVICETOPIC/bridge/config/devices:.* {}
  $DEVICETOPIC/bridge/config/log_level:.* log_level
  $DEVICETOPIC/bridge/config/permit_join:.* permit_join
  $DEVICETOPIC/bridge/config/rename:.* { json2nameValue($EVENT, 'rename_') }
  $DEVICETOPIC/bridge/config:.* { json2nameValue($EVENT) }
  $DEVICETOPIC/bridge/log:.*\"type\".\"devices\".\"message\".* devices
  $DEVICETOPIC/bridge/log:.* log
  $DEVICETOPIC/bridge/logging:.* { json2nameValue($EVENT,'log_') }
  $DEVICETOPIC/bridge/response/networkmap:.* { my $type = $EVENT =~ m/.*,"type":"(raw|graphviz)",.*/ ? $1 : 'networkmap'; $EVENT =~ m/{"data":\{.*"value":"?(.*[^"])"?\},"status":"ok"\}/ ? { $type=>$1 } : {} }
  $DEVICETOPIC/bridge/devices:.* devices
  $DEVICETOPIC/bridge/info:.* info
  $DEVICETOPIC/bridge/groups:.* groups
  $DEVICETOPIC/bridge/event:.* { json2nameValue($EVENT) }
  $DEVICETOPIC/bridge/extensions:.* extensions

dadoc

Zitat von: rudolfkoenig am 24 Januar 2023, 11:07:29
Zum Schluss zeigt man die Konfiguration hier im Forum, damit man es in AttrTemplates einpflegen kann.
Im Fall meines Heizkörperthermostats "Smartes Thermostat" von Rollei, der lt. Erkennung durch zigbee2mqtt einem Tuya TV02-Zigbee entspricht, der wiederum mit den White Labels Moes TV01-ZB, AVATTO TRV06, Tesla Smart TSL-TRV-TV01ZG, Unknown/id3.pl GTZ08 übereinstimmt, ist das fhem-Template ja laut eigener Aussage für "Model Saswell SEA801-Zigbee/SEA802-Zigbee manufactured by Saswell" entwickelt. Die Readings scheinen aber zu 100% mit denen meines Rolleis übereinzustimmen. Für den zeigt zigbee2mqt:
battery_low Warnung, wenn Batterie schwach Falsch
child_lock Aktiviert/Deaktiviert die direkte Bedienung des Gerätes
open_window Aktiviert/deaktiviert den Status auf dem Gerät
open_window_temperature Temperatur bei geöffnetem Fenster 16 °C
comfort_temperature Komfort Temperatur 18 °C
eco_temperature Öko-Temperatur 15 °C
preset Modus des Thermostats (identisch zu system_mode)
local_temperature_calibration Kallibrierung der Raumtemperatur am Thermostat 0 °C
local_temperature Aktuell gemessene Temperatur am Gerät 18.7°C
current_heating_setpoint Temperatur Sollwert 17 °C
system_mode Only for Homeassistant
heating_stop Die Batterielebensdauer kann durch Abschalten der Heizung verlängert werden. Dazu wird das Ventil vollständig geschlossen. Um den Heizungsstopp zu aktivieren, zeigt das Gerät "HS" an, drücken Sie die Pair-Taste, um abzubrechen.
frost_protection When Anti-Freezing function is activated, the temperature in the house is kept at 8 °C.When Anti-Freezing function is activated, the temperature in the house is kept at 8 °C, the device display "AF".press the pair button to cancel.
boost_timeset_countdown Einstellen der Boost-Zeit (0 - 465 Sekunden). Wenn die Boost-Funktion (♨) aktiviert ist zählt der Countdown herunter (465 - 0) 0 second
holiday_temperature Urlaubstemperatur 17 °C
holiday_start_stop The holiday mode will automatically start at the set time starting point and run the holiday temperature. Can be defined in the following format: `startYear/startMonth/startDay startHours:startMinutes | endYear/endMonth/endDay endHours:endMinutes`. For example: `2022/10/01 16:30 | 2022/10/21 18:10`. After the end of holiday mode, it switches to "auto" mode and uses schedule. 2021/01/01 01:01 | 2021/01/01 01:01
working_day `mon_sun` - schedule for Monday used for each day (define it only for Monday). `mon_fri+sat+sun` - schedule for workdays used from Monday (define it only for Monday), Saturday and Sunday are defined separately. `separate` - schedule for each day is defined separately.
schedule Schedule will work with "auto" preset. In this mode, the device executes a preset week programming temperature time and temperature. Before using these properties, check `working_day` property. Each day can contain up to 10 segments. At least 1 segment should be defined. Different count of segments can be defined for each day, e.g., 3 segments for Monday, 5 segments for Thursday, etc. It should be defined in the following format: `hours:minutes/temperature`. Minutes can be only tens, i.e., 00, 10, 20, 30, 40, 50. Segments should be divided by space symbol. Each day should end with the last segment of 24:00. Examples: `04:00/20 08:30/22 10:10/18 18:40/24 22:50/19.5`; `06:00/21.5 17:20/26 24:00/18`. The temperature will be set from the beginning/start of one period and until the next period, e.g., `04:00/20 24:00/22` means that from 00:00 to 04:00 temperature will be 20 degrees and from 04:00 to 00:00 temperature will be 22 degrees. week_day schedule
schedule_monday
Schedule for monday, format: "HH:MM/C"
06:00/17 12:00/21 14:00/17 17:00/21 24:00/17
schedule_tuesday
Schedule for tuesday, format: "HH:MM/C"
06:00/17 12:00/21 14:00/17 17:00/21 24:00/17
schedule_wednesday
Schedule for wednesday, format: "HH:MM/C"
06:00/17 12:00/21 14:00/17 17:00/21 24:00/17
schedule_thursday
Schedule for thursday, format: "HH:MM/C"
06:00/17 12:00/21 14:00/17 17:00/21 24:00/17
schedule_friday
Schedule for friday, format: "HH:MM/C"
06:00/17 12:00/21 14:00/17 17:00/21 24:00/17
schedule_saturday
Schedule for saturday, format: "HH:MM/C"
06:00/17 12:00/21 14:00/17 17:00/21 24:00/17
schedule_sunday
Schedule for sunday, format: "HH:MM/C"
06:00/17 12:00/21 14:00/17 17:00/21 24:00/17

online The current data request from the device.
error_status Fehlerstatus 0
linkquality Signalstärke 255lqi

D.h. man könnte evtl. den Erklärungstext des attr um weitere kompatible Modelle ergänzen.
Angesichts der schieren Menge der schon vorhandenen und noch zu erwartenden Zigbee-Geräte wäre es vielleicht eine Idee, die Beschreibung/Benamung der fhem-Templates an https://www.zigbee2mqtt.io/supported-devices/ zu orientieren? Dort sind ja - wie oben beschrieben - auch die baugleichen und kompatiblen Geräte gelistet. Eine eigene Sammlung im Wiki wäre wahrscheinlich redundant und aufwändig zu pflegen.
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods