NEWS
Unterstüzung von ZigBee Thermostate unvollständig?
-
Hallo zusammen,
ich versuche momentan mein Glück mit der Einbindung von Zigbee-Heizungsthermostate im IObroker.
Ich verwende den ZigBee-Adapter. IOBroker ist auf dem aktuellen Stand (stable).
Als Coordinator verwende ich einen USB-Stick,- Silicon Labs CP210x UART Bridge (SONOFF Zigbee 3.0 USB Dongle Plus).Zunächst hatte ich den Thermostat "Siterwell GS361A-H04", auch verkauft als "essentials Premium" und vielen weiteren Namen, versucht.
Der Thermostat wird erkannt, Pairing klappt und einige Funktionen (Soll-Temperatur) lassen sich auch steuern. Es gelingt mir nicht,
einen Temperaturoffset (local_temp_calibration) zu setzen. Der eingegebene Wert unter Objekte wird rot, der Thermostat reagiert auch nicht darauf.Als Zweites habe den Thermostat "Danfoss Ally" probiert. Der Thermostat wurde ebenfalls problemlos erkannt und eingebunden und reagiert auch auf Änderung der Soll-Temperatur.
Allerdings vermisse ich zahlreiche Objekt-Variablen. Der Thermostat soll laut zigbee2mqtt Temperaturoffset, externe Temperaturmessung und noch vieles mehr
unterstützen. Die entsprechenden Variablen sind aber schlichtweg nicht vorhanden.Was läuft falsch? Ist vielleicht die ZigBee-Unterstützung im IOBroker unvollständig?
Danke schon mal für Hilfe. -
@lotmar der Danfoss Ally stammt noch aus einer Zeit wo wir explizite Device-Definitionen im Zigbee adapter haben. Mach bitte folgendes:
- trag den Danfoss Ally in die "ausschliessen" Liste ein
- starte den Adapter neu
- mach einen "state cleanup" (das rote icon rechts oben im Screenshot)
- poste wie die Objekte dann ausssehen und was du an Objekten erwartest.
Zum Thema Thermostate und Zigbee - die meisten davon laufen mit TuYa. Das ist ein gemischter Sack mit verschiedenen Problemen:
- Dinge die gleich aussehen sind es manchmal nicht
- Dinge die nicht gleich aussehen sind manchmal intern gleich
- Hersteller passen die Firmware gerne mal an ohne die gemeldete Zigbee-ID zu verändern
Das macht es fast unmöglich eine "saubere" Einbindung der Thermostate zu bekommen - ein Problem welches im übrigen auch zigbee2mqtt.io hat. Da wäre z.Bsp. interessant zu sehen ob / was für Meldungen kommen wenn ein DP nicht bestätigt wird.
A.
-
@asgothian Danke für deine Antwort. Das werde ich machen und das Ergebnis hier berichten. Das kann aber ein paar Tage dauern.
-
@asgothian: Ich habe deine Anleitung ausgeführt. Prompt sind insgesamt 38 Variablen unter Objekte erschienen. Da vermisse ich momentan nichts.
Ob alle wichtigen Objekte wirklich vom Thermostat verarbeitet werden, muss ich erst noch testen.Den anderen Thermostat ("Siterwell GS361A-H04", "essentials Premium", "TuYa") habe ich momentan nicht montiert und daher muss ein Test noch warten.
Die entstandenen Objekte vom "Danfoss Ally" als Auszug aus der exportierten .json,- ein Screenshot wäre zu groß:
$ cat zigbee.0.e8e07efffe86b913.json | grep zigbee.0.e8 | grep _id "_id": "zigbee.0.e8e07efffe86b913", "_id": "zigbee.0.e8e07efffe86b913.adaptation_run_control", "_id": "zigbee.0.e8e07efffe86b913.adaptation_run_settings", "_id": "zigbee.0.e8e07efffe86b913.adaptation_run_status", "_id": "zigbee.0.e8e07efffe86b913.algorithm_scale_factor", "_id": "zigbee.0.e8e07efffe86b913.available", "_id": "zigbee.0.e8e07efffe86b913.battery", "_id": "zigbee.0.e8e07efffe86b913.day_of_week", "_id": "zigbee.0.e8e07efffe86b913.device_query", "_id": "zigbee.0.e8e07efffe86b913.external_measured_room_sensor", "_id": "zigbee.0.e8e07efffe86b913.heat_available", "_id": "zigbee.0.e8e07efffe86b913.heat_required", "_id": "zigbee.0.e8e07efffe86b913.keypad_lockout", "_id": "zigbee.0.e8e07efffe86b913.link_quality", "_id": "zigbee.0.e8e07efffe86b913.load_balancing_enable", "_id": "zigbee.0.e8e07efffe86b913.load_estimate", "_id": "zigbee.0.e8e07efffe86b913.load_room_mean", "_id": "zigbee.0.e8e07efffe86b913.local_temperature", "_id": "zigbee.0.e8e07efffe86b913.mode", "_id": "zigbee.0.e8e07efffe86b913.mounted_mode_active", "_id": "zigbee.0.e8e07efffe86b913.mounted_mode_control", "_id": "zigbee.0.e8e07efffe86b913.msg_from_zigbee", "_id": "zigbee.0.e8e07efffe86b913.occupied_heating_setpoint", "_id": "zigbee.0.e8e07efffe86b913.occupied_heating_setpoint_scheduled", "_id": "zigbee.0.e8e07efffe86b913.pi_heating_demand", "_id": "zigbee.0.e8e07efffe86b913.preheat_status", "_id": "zigbee.0.e8e07efffe86b913.programming_operation_mode", "_id": "zigbee.0.e8e07efffe86b913.radiator_covered", "_id": "zigbee.0.e8e07efffe86b913.regulation_setpoint_offset", "_id": "zigbee.0.e8e07efffe86b913.running_state", "_id": "zigbee.0.e8e07efffe86b913.send_payload", "_id": "zigbee.0.e8e07efffe86b913.setpoint_change_source", "_id": "zigbee.0.e8e07efffe86b913.thermostat_vertical_orientation", "_id": "zigbee.0.e8e07efffe86b913.trigger_time", "_id": "zigbee.0.e8e07efffe86b913.viewing_direction", "_id": "zigbee.0.e8e07efffe86b913.window_open_external", "_id": "zigbee.0.e8e07efffe86b913.window_open_feature", "_id": "zigbee.0.e8e07efffe86b913.window_open_internal",
Noch eine Frage zum Schluss: Was geschieht überhaupt, wenn ich das ZigBee Gerät auf die Ausschlussliste setze?
Danke für deine Hilfe! -
@lotmar sagte in Unterstüzung von ZigBee Thermostate unvollständig?:
Noch eine Frage zum Schluss: Was geschieht überhaupt, wenn ich das ZigBee Gerät auf die Ausschlussliste setze?
Um diese Frage zu beantworten muss ich etwas ausholen.
Der Zigbee-Adapter nutzt 2 Bibliotheken für die eigentliche Kommunikation mit den Geräten. Da ist zum einen der Zigbee-Herdsman, der für den Versand und Empfang der Nachrichten vom Koordinator verantwortlich ist. Dieser kennt die einzelnen Geräte nicht und erwartet formell korrekte Nachrichten zur Übermittlung. Als 2 Bibliothek werden die Zigbee-Herdsman-Converters genutzt. Diese kennen die Geräte und sind dafür verantwortlich die Nachrichten des Zigbee-Herdsman zu entschlüsseln bzw. die Nachrichten für den Zigbee-Herdsman zusammen zu bauen.
In der Vergangenheit war es so das die Zigbee-Herdsman-Converters alle dazu notwendigen Funktionen zur Verfügung stellen, es aber keine standardisierte Möglichkeit gab von einem Device zu erfragen welche Funktion es unterstützt. Dementsprechend wurde im Zigbee-Adapter eine zu den Zigbee-Herdsman-Converters passende Struktur zur Kommunikation aufgebaut - mit dem Risiko das die Struktur bei Anpassungen an den Zigbee-Herdsman-Converters ggf. nicht mehr passt und damit nicht mehr sauber funktioniert.
vor ca. 2 Jahren wurden dann die Zigbee-Herdsman-Converters um die sogenannten "Exposes" erweitert. Diese stellen eine Struktur dar die die entsprechenden Klienten (z.Bsp. der Zigbee Adapter, aber auch zigbee2mqtt.io) nutzen können um die Funktionen des Gerätes korrekt abzubilden. Die Option dieses zu nutzen wurde in der Folge auch in den Zigbee-Adapter eingebaut.
Diese Exposes existieren für alle Geräte, auch die die explizit im zigbee-Adapter hinterlegt sind. Dabei ist das Abbild der Geräte im Zigbee Adapter ggf. unterschiedlich je nach dem ob sie nativ oder über die Exposes erzeugt werden. Deswegen konnten wir nicht einfach die nativen Integrationen abschalten.
Durch den Eintrag in der Ausschlussliste findet genau das statt - es wird erzwungen das das Gerät über die Exposes erzeugt wird auch wenn es im Adapter explizit definiert wurde.
Für alle Nutzer die den Adapter nicht seit Jahren nutzen bringt das keine Probleme - bei älteren Installationen kann es dazu führen das Datenpunkte wegfallen und dafür neue entstehen was Anpassungen an Aliasen, Skripten und Visualisierungen erfordern kann
A.
-
@asgothian Danke für deine ausführliche Antwort. Verspätet, weil aus unerklärlichem Grund meine IP-Adresse gesperrt wurde.
So wie ich es jetzt verstanden habe, gibt es mindestens 3 Wege, ZigBee Geräte einzubinden:- Im ioBroker "ganz normal",
- in ioBroker auf Ausschlussliste, was in diesen Fall funktioniert,
- via ZigBee2MQTT2 mit externen Broker, z.B. mosquitto.
Wobei ich die letzte Variante möglichst vermeiden möchte.
LG Lothar