ConBee: Unterschied zwischen den Versionen

Aus FHEMWiki
K (→‎Binding einrichten: Fehlerkorrektur)
 
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Todo|Noch zu vervollständigen und zu verlinken}}
{{Todo|Noch zu vervollständigen und zu verlinken}}
[[ConBee]] ist ein [[ZigBee]] USB Gateway ([[Interface]]), mit dem herstellerübergreifend ZigBee-Geräte bedient werden können. Unter der Bezeichnung RaspBee ist auch eine Variante als [[Raspberry Pi]] Modul erhältlich. Beide Geräte sind als ''ConBee II'' und ''RaspBee II'' in einer aktualisierten Version erhältlich. Im folgenden werden alle Version als ''ConBee'' bezeichnet und die Ausführungen gelten auch RaspBee; sofern es relevante Unterschiede gibt, wird das ausdrücklich erwähnt.
[[ConBee]] ist ein [[ZigBee]] USB Gateway ([[Interface]]), mit dem herstellerübergreifend ZigBee-Geräte bedient werden können. Unter der Bezeichnung RaspBee ist auch eine Variante als [[Raspberry Pi]] Modul erhältlich. Beide Geräte sind als ''ConBee II'' und ''RaspBee II'' in einer aktualisierten Version erhältlich. Im folgenden werden alle Version als ''ConBee'' bezeichnet und die Ausführungen gelten auch RaspBee; sofern es relevante Unterschiede gibt, wird das ausdrücklich erwähnt.
{{Infobox Hardware
{{Infobox Hardware
|Bild=ConBee_II.jpg
|Bild=ConBee_II.jpg
|Bildbeschreibung=
|Bildbeschreibung=dresden Electronik, ConBee II
|HWProtocol=ZigBee
|HWProtocol=ZigBee
|HWType=[[Interface]]
|HWType=[[Interface]]
Zeile 21: Zeile 20:


== Dokumentation und Setup ==
== Dokumentation und Setup ==
* Offizielle deconz [https://phoscon.de/de/conbee/install Installationsanleitung]. Das Ergebnis der Installation ist vom verwendeten System abhängig.
* Offizielle deconz [https://phoscon.de/de/conbee/install Installationsanleitung] inklusive docker Installation. Das Ergebnis der Installation ist vom verwendeten System abhängig.
* Beschreibung der Parameter findet man versteckt im [https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/deCONZ-command-line-parameters deconz Rest-Plugin Wiki]
* Beschreibung der Parameter findet man versteckt im [https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/deCONZ-command-line-parameters deconz Rest-Plugin Wiki]
* Beschreibung der [https://github.com/marthoc/docker-deconz Containerinstallation] - aufschlussreich ist dort auch der Inhalt der start.sh.
Das Setup erzeugt auf einem Pi mit PiOS Lite sieben Services, die bis auf zwei alle disabled sind (<code>systemctl list-unit-files|grep deconz</code>).
Das Setup erzeugt auf einem Pi mit PiOS Lite sieben Services, die bis auf zwei alle disabled sind (<code>systemctl list-unit-files|grep deconz</code>).


Zeile 49: Zeile 47:
Um den Zugriff auf die deCONZ GUI zu erhalten, kann man '''X11 Forwarding''' verwenden, dazu braucht man nur einen X11 Server (Linux Desktop oder Windows VcXsrv, Xming; beides auf SourceForge.net verfügbar).
Um den Zugriff auf die deCONZ GUI zu erhalten, kann man '''X11 Forwarding''' verwenden, dazu braucht man nur einen X11 Server (Linux Desktop oder Windows VcXsrv, Xming; beides auf SourceForge.net verfügbar).


Einzeiler für Linux Desktop : <code>ssh -X <user>@<host> sudo systemctl stop deconz; deCONZ --dev=/dev/ttyACM0;sudo systemctl start deconz</code>
Sieh dazu auch den Beitrag im [https://forum.fhem.de/index.php/topic,117470.msg1200344.html#msg1200344 Forum]
 
Einzeiler für Linux Desktop : <code>ssh -X <user>@<host> "sudo systemctl stop deconz; deCONZ --dev=/dev/ttyACM0;sudo systemctl start deconz"</code>
 
Einzeiler für Windows 10 : <code>ssh -X <user>@<host> "export DISPLAY=%COMPUTERNAME%:0.0;sudo systemctl stop deconz; deCONZ --dev=/dev/ttyACM0;sudo systemctl start deconz"</code>
 
'''Tipp für Windows Einsteiger:'''
* Programme wie den X11 Server muss man herunterladen und installieren.
* Beispiel: VcXsrv wird gestartet mit xlaunch - alles Standard lassen nur im letzten Fenster: "disable access control" aktivieren
* CMD Box aufmachen mit: Windows Taste + r und dann CMD enter.
* Funktionstest <code>ssh -X pi@raspberrypi "export DISPLAY=%COMPUTERNAME%:0.0;xcalc"</code>  


Einzeiler für Windows 10 : <code>ssh -X <user>@<host> export DISPLAY=%COMPUTERNAME%:0.0;sudo systemctl stop deconz; deCONZ --dev=/dev/ttyACM0;sudo systemctl start deconz</code>
=== Problembehebung ===
=== Problembehebung ===
'''Service'''
'''Service'''
Zeile 113: Zeile 120:
# Den Bind Knopf drücken.
# Den Bind Knopf drücken.
Voraussetzung zum Erfolg: Beide Geräte unterstützen ein Binding, damit kann man zumindest Grundfunktionen direkt ausführen.
Voraussetzung zum Erfolg: Beide Geräte unterstützen ein Binding, damit kann man zumindest Grundfunktionen direkt ausführen.
== Bekannte Probleme ==
Wenn alles gut aussieht, aber trotzdem scheinbar keine Kommunikation mit Zigbee Geräten stattfindet (Anlernen geht nicht, auch nicht mit Abstand von wenigen cm) sollte man den Stick mit einer USB Verlängerung (30-50 cm) anschließen.


== Links ==
== Links ==

Aktuelle Version vom 7. Januar 2024, 19:04 Uhr

Todo: Noch zu vervollständigen und zu verlinken

ConBee ist ein ZigBee USB Gateway (Interface), mit dem herstellerübergreifend ZigBee-Geräte bedient werden können. Unter der Bezeichnung RaspBee ist auch eine Variante als Raspberry Pi Modul erhältlich. Beide Geräte sind als ConBee II und RaspBee II in einer aktualisierten Version erhältlich. Im folgenden werden alle Version als ConBee bezeichnet und die Ausführungen gelten auch RaspBee; sofern es relevante Unterschiede gibt, wird das ausdrücklich erwähnt.

ConBee
dresden Electronik, ConBee II
Allgemein
Protokoll ZigBee
Typ Interface
Kategorie diverse Hersteller
Technische Details
Kommunikation Funk 2.4 GHz
Kanäle Zigbee Channel 11 15 20 25
Betriebsspannung 5V=
Leistungsaufnahme ca. 0,1 W
Versorgung USB
Abmessungen 40 x 17 x 8 (ohne USB Stecker)
Sonstiges
Modulname HUEBridge.pm, HUEDevice.pm
Hersteller dresden elektronik, Vertrieb: Phoscon

Beschreibung

Das ConBee Gateway benötigt/hat keine Cloud-Anbindung. Eine Liste der kompatiblen ZigBee Geräte und Hersteller findet sich hier.

Dokumentation und Setup

Das Setup erzeugt auf einem Pi mit PiOS Lite sieben Services, die bis auf zwei alle disabled sind (systemctl list-unit-files|grep deconz).

Um den minimalen Dienst (deconz) in Betrieb zu nehmen, sind noch folgende Schritte notwendig:

  1. Optionale Konfiguration (empfohlen): serielle Schnittstelle und WEB-Port (Standard: 80) einstellen (siehe Problembehebung)
  2. Start und Test: sudo systemctl start deconz, mit dem Browser Zugriff auf Phoscon App testen: http://gatewayIP:Portnummer
  3. Funktioniert alles, kann man den Service dauerhaft aktivieren: sudo systemctl enable deconz

Hinweise:

  • Das Programm deCONZ verwendet die Hardwareschnittstelle und kann nicht mehrfach gestartet werden und dabei die gleiche Hardwareschnittstelle verwenden!
  • Es gibt eine Ungereimtheit in der Beschreibung des Parameters platform: es scheint aktuell (April 2021) egal zu sein, ob man -platform minimal oder --platform minimal verwendet.
  • Beim deCONZ Aufruf empfiehlt es sich generell, den --dev= Parameter anzuhängen (siehe Problembehebung).
  • deconz.service und deconz-gui.service sind alternative Aufrufe der gleichen Binary - es kann nur einer von beiden Diensten gestartet werden.
  • Alternativ (nicht empfohlen) kann man das deconz Setup auf einem Desktop System ausführen und den Dienst deconz-gui konfigurieren und aktivieren. Der Zugriff auf die GUI erfolgt dann mit einem VNC Viewer (RealVNC bietet eine portable Version).
  • Wer eine einfache Konfiguration möchte und sich mit docker auskennt, kann die docker Variante wählen.

Mit der Phoscon Web-App kann man

  • Das Gateway verwalten: Firmware, Backup/Restore, Zeitzone, Sprache
  • ZigBee Geräte anmelden und verknüpfen, Szenen einrichten ...
  • Applikationen mit dem Gateway verbinden, dazu zählt auch das HUEBridge Device von FHEM
  • Zugriff auf die alte WebApp erhalten (Hilfe Seite)

Mit der deCONZ GUI kann man

  • Die Firmware der Geräte aktualisieren (OTA Plugin)
  • Das Zigbee Netzwerk visualisieren
  • EIne direkte Kommunikation zwischen zwei Geräten - Binding - einrichten
  • ... (noch vervollständigen)

Um den Zugriff auf die deCONZ GUI zu erhalten, kann man X11 Forwarding verwenden, dazu braucht man nur einen X11 Server (Linux Desktop oder Windows VcXsrv, Xming; beides auf SourceForge.net verfügbar).

Sieh dazu auch den Beitrag im Forum

Einzeiler für Linux Desktop : ssh -X <user>@<host> "sudo systemctl stop deconz; deCONZ --dev=/dev/ttyACM0;sudo systemctl start deconz"

Einzeiler für Windows 10 : ssh -X <user>@<host> "export DISPLAY=%COMPUTERNAME%:0.0;sudo systemctl stop deconz; deCONZ --dev=/dev/ttyACM0;sudo systemctl start deconz"

Tipp für Windows Einsteiger:

  • Programme wie den X11 Server muss man herunterladen und installieren.
  • Beispiel: VcXsrv wird gestartet mit xlaunch - alles Standard lassen nur im letzten Fenster: "disable access control" aktivieren
  • CMD Box aufmachen mit: Windows Taste + r und dann CMD enter.
  • Funktionstest ssh -X pi@raspberrypi "export DISPLAY=%COMPUTERNAME%:0.0;xcalc"

Problembehebung

Service

deCONZ verwendet offenbar beim Start auch per default die Schnittstelle /dev/ttyAMA0 (raspbee Modul). Die Kommunikation eines dort steckenden anderen Moduls wird dabei gestört, die GUI reagiert eine Zeit lang nicht.

Hat man andere Module an AMA0 (UART GPIO) oder an den Standard USB Schnittstellen (ACM0 usw.), muss der deCONZ Aufruf mit den richtigen Schnittstellen Parametern konfiguriert werden.

Am zuverlässigsten ist es, die Definition per ID einzutragen. Der richtige Eintrag kann mit leicht abgefragt werden:

ls -lha /dev/serial/by-id

Die Konfiguration der Dienste erfolgt mit dem systemctl Editor:

sudo systemctl edit --full deconz

und die Zeile ExecStart um diesen Parameter ergänzen (Beispiel):

--dev=/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE1234567-if00

Grundsätzlich ist diese Art der Einbindung auch für alle seriellen Geräte in FHEM dringend anzuraten, wenn andere Services wie deconz auf demselben Server betrieben werden.

Docker

Im docker run Aufruf verändert man den device Parameter aus der Original Dokumentation am Einfachsten wie folgt:

--device=/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE1234567-if00:/dev/ttyACM0

docker-compose.yml

devices:
   - /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE1234567-if00:/dev/ttyACM0

Damit wird der Stick vom Host eindeutig mit serial/by-id eingebunden und im Container an der Standard Schnittstelle ttyACM0 bereitgestellt.

X11 Server

Sollte bei der Verbindung zum X11 Server die Fehlermeldung Authorization required kommen, kann man beim Start des VcXsrv Server einfach den Haken bei disable access control setzen.

Update in Docker Umgebung

Das Update der PhosCon App erfolgt durch ein update des docker containers (Image neu ziehen und Container neu machen -> run bzw. compose up).

Das Update der Firmware funktioniert nach dieser offiziellen Beschreibung.

Unterstützung in FHEM

Info green.pngAlternativ kann man das Model ConBee II auch als Interface für zigbee2mqtt verwenden und dann die ZigBee-Geräte als MQTT2_DEVICE in FHEM einbinden.

ConBee wird über das Modul HUEBridge und über die deCONZ Software, die Wireless Light Control WebApp und die Phoscon WebApp (kommt zusammen mit deConz) in FHEM eingebunden.

Sensoren werden nicht automatisch erzeugt und müssen manuell angelegt werden.

Tipps:

  • Die HUEBridge funktioniert (noch undokumentiert) auch mit Portangaben, falls nicht Standard Port 80 verwendet wird.
  • Der SSL Port wird im Modul von der API abgefragt und kann in der HUEBridge nicht extra angegeben werden. Dazu darf der SSL Port nicht extern umgemappt werden, sondern der deconz Service muss wissen, auf welchem Port er läuft.
  • Die Bridge muss einmalig mit dem Gateway gepairt werden. Das FHEM Bridge Device erzeugt einen Key, in der Phoscon App muss man im Menüpunkt Gateway/erweitert/App die Funktion verbinden wählen.

Binding einrichten

Um das Licht ohne "Umwege" direkt mit einem Taster/Schalter zu steuern, muss man beide direkt verbinden. Im Zigbee Umfeld wird dies Binding genannt. Beim ConBee Stick erfolgt das mit der deconz-gui.

Beispiel Binding Taster -> Lampe

Die Binding Logik geht normalerweise vom steuernden (Taster) zum gesteuerten Device (Lampe).

  1. Panel Bind Dropbox anhaken, Kartenreiter (unten!) wird damit angezeigt und muss in den Vordergrund gebracht werden.
  2. Bei beiden Geräten die Home Automation Tabelle öffnen: linker grauer "Knopf" im Symbol.
  3. Per drag&drop die gewünschte Zeile in der Tabelle (z.B. 006 on/off) in das jeweilige (linke oder rechte) Feld (Source -> Destination) fallen lassen.
  4. Den Bind Knopf drücken.

Voraussetzung zum Erfolg: Beide Geräte unterstützen ein Binding, damit kann man zumindest Grundfunktionen direkt ausführen.

Bekannte Probleme

Wenn alles gut aussieht, aber trotzdem scheinbar keine Kommunikation mit Zigbee Geräten stattfindet (Anlernen geht nicht, auch nicht mit Abstand von wenigen cm) sollte man den Stick mit einer USB Verlängerung (30-50 cm) anschließen.

Links