Eurotronic Spirit Zigbee mittels Conbee II und iobroker

Ich beschäftige (und ärgere) mich seit einiger Zeit leidenschaftlich mit “Heimautomatisierung” und aller einhergehender Probleme. Nach allerlei “Licht-Automatismen” (welche ja den typischen Einstieg in dieses Thema darstellen, habe ich ein Black-Friday Angebot auf Amazon genutzt und einen “Smarten Heizkörper-Thermostat” gekauft um das nächste größere Thema bei der Heimautomatisierung an zu gehen:

Eurotronic Spitit Zigbee

Ich habe vor kurzem meine laufende iobroker-Installation von meiner bisherigen Hardware, einem Raspberry 2B+ auf einen leistungsstärkeren “Rock64” von Pine64 (mit 4GB RAM) umgezogen. Hierbei habe ich gleich auch meine Hardware für das Zigbee Netzwerk gewechselt.

Vorher benutzte ich einen Zigbee-Sniffer welcher eigentlich auch recht anstandslos lief, allerdings etwas Einbußen in Thema “Reichweite” und “Stabilität” hatte. Daher wollte ich mal ein “nicht-frickel-Produkt” verwenden und habe mir den “Conbee II” Stick von dresden-Elektronik bestellt:

ConBee II – USB Gateway

Erste Versuche und Tests mit dem Stick erwiesen sich als vielversprechend! Die Installation ist gut beschrieben und lief reibungslos. Die “Web-Oberfläche” welche sich über den Port 80 erreichen lässt (http://localhost) ließ sich gut konfigurieren und sieht auch noch ansprechend aus. Alle meine Zigbee Sensoren (eigentlich ausschließlich Xiaomi Aqara) ließen sich sofort und auch erstaunlich schnell mit dem Stick verbinden.

Ich sagte “Alle”? Nicht ganz. Das o.g. Heizungsthermostat erschien leider nicht in der Web-Oberfläche und der Pairing-Vorgang konnte anscheinend auch nicht erfolgreich abgeschlossen werden. Nach einiger Recherche auf GitHub und so manchen Foren stellte ich recht schnell fest, dass die Entwicklung der Software bzgl. o.g. Heizungsthermostat noch nicht ganz abgeschlossen ist und dass der Stick, (obwohl er das Thermostat unter “Supported Sensor” auflistet) dieses nicht ohne ein ganz spezielle Prozedere verwenden kann.

Nach vielen Fehlversuchen und knapp 2 Tage mit Rumprobieren, möchte ich hier nochmal festhalten, welches Vorgehen letzten Endes zum Erfolg geführt hat.

Die Lösung des Heizungs-Problemes:

Die absolut wichtigste Erkenntnis war, dass es mehrere “Arten” gibt, den Stick zu betreiben. Unter anderem ein Deamon (Service) der den Stick betreibt und dessen Web-Oberfläche zur Verfügung stellt. Es gibt allerdings auch eine Desktop-Anwendung hierzu (deCONZ). Nach erfolgreicher Installation wird automatisch der service “deconz.service” im Hintergrund gestartet, wodurch die deconz-web-app unter dem Port 80 erreichbar ist (localhost:80). Zur Einrichtung des Heizungs-Thermostats ist allerdings die GUI-Desktop-Anwendung “deCONZ” notwendig. Diese kann jedoch nicht parallel zum Web-Service laufen!! (Beim Verbindungs-Screen wird zwar der Stick angezeigt, allerdings klappt eine Verbindung mittels “connect” nicht!)

  1. Das “beta”-Repository installieren “deconz” updaten/installieren wie hier beschrieben
  2. Einloggen in der Web-Oberfläche, Sensoren > neue Sensoren Suchen/Anmelden
  3. Start des Pairing-Vorganges am Thermostat.
    1. – Batterie entnehmen und wieder einsetzen
    2. – Alle 3 Tasten gleichzeitig drücken und halten (10 Sek.)
    3. – Es wird “reS” angezeit wodurch das Thermostat neu startet
    4. – Nach dem Neustart wird “PiR” (Pair) angezeigt
    5. – Es sollte nach ca. 1-2 min. die LED am Thermostat grün zu blinke anfangen
  4. sudo systemctl stop deconz.service (Dadurch wird der Service, der das USB-Device belegt beendet, es ist dann allerdings auch die Web-Oberfläche nicht mehr erreichbar)
  5. sudo systemctl start deconz-gui.service Dadurch sollte die App auf dem Desktop starten.
  6. “Connect” sollte nun funktionieren (kann sich mit dem USB Device verbinden)
  7. es ist ein neu erstellter Node in der grafischen Übersicht vorhanden (Evtl. mit “hex-namen”)
  8. auf der rechten Seite der grafischen Darstellung, sollten 2 Kreise sein, den rechten davon anklicken.
  9. im darauf erscheinenden Popup Fenster nun “0000 Basic” anklicken
  10. auf der linken Seite “cluster” auswählen (Reiter), falls dieser nicht vorhanden ist, muss er erst über das Menü “Editor” eingeblendet werden
  11. bei dem “Basic-Cluster” auf “read” klicken. Dadurch sollten div. Werte geladen werden
  12. sudo systemctl stop deconz-gui.service Dadurch sollte die App auf dem Desktop geschlossen werden
  13. sudo systemctl start deconz.service Dadurch ist die Web-Oberfläche wieder erreichbar. Es sollte nun “Sensor verbunden” angezeigt werden. -> Ready.
  14. ab sofort, sollte das Gerät auch im iobroker-adapter erscheinen. (dieser muss ggf. aktualisiert werden, min. V.1.2)

Einbindung und Verwendung im iobroker

Stand 02.01.2020: Man kann leider den “heatsetpoint” (noch) nicht setzen. Dieser Wert ist quasi die “Soll-Temperatur”.
Dies muss im moment noch über die REST-API durchgeführt werden:

curl -X PUT -d '{"heatsetpoint":1700}' http://localhost/api/<API-KEY>/sensors/<ID>/config

Ich habe hierzu ein Java-Script geschrieben, welches ein Datenpunkt namens “javascript.0.scriptEnabled.Virtual.Solltemp_Heizung_Schlafzimmer” überwacht. Wenn sich dieser “ändert, oder neu geschrieben wird” wird der neue Wert in o.g. curl Befehl integriert und auf der Komandozeile abgesetzt.

var VALUE,API_KEY,ID;

on('javascript.0.scriptEnabled.Virtual.Solltemp_Heizung_Schlafzimmer', async function (obj) { 
    console.log("Setze neue Zieltemperatur im Schlafzimmer")
    API_KEY="xxxxxxxxx"  //bitte aus Adapter-Instanz Konfiguration entnehmen"
    ID="2"                //ID, welche dem Element zugeordnet wurde z.B. deconz.0.Sensors.2
    VALUE=obj.state.val
    exec("curl -X PUT -d '{"+'"'+"heatsetpoint"+'"'+":"+VALUE+"00}' http://localhost/api/"+API_KEY+"/sensors/"+ID+"/config");
});

Der Wert “ID” als auch der API_Key muss allerdings manuell (einmalig) eingetragen werden. Der zu überwachende Datenpunkt muss natürlich auch angelegt werden (vom typ “Zahl”).

So läuft das Thermostat. Ich kann Werte auslesen und setzen…

Jetzt heißt es warten, bis das Gerät auch komplett uns sauber in die Software integriert wurde.

Viel Spaß beim basteln!

Matthias

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.