[Homegear-Gateway] Ein Gateway / mehrere Geräte-Familien (BidCos, Zigbee)

Hmm, die SSDP-Suche hatte nicht funktioniert? Weißt du noch, was der Fehler war?

Hey @sathya,

die SSDP-Suche an sich hat funktioniert, ich hab aber immer nur ein Result bekommen :wink:

– Micha

Kannst du dich erinnern, ob beide Gateway-Dienste auf Port 1900 gelauscht haben?

Micha und ich haben gerade diesbezüglich telefoniert. Ergebnis: Es könnte gehen. @Micha testet es die Tage noch einmal.

2 Likes

Hallo zusammen,

ich hab es tatsaechlich hinbekommen: auf meinem Gateway (OPi Zero) laufen zwei homegear-gateway Instanzen mit nur einer Installation auf unterschiedlichen Ports und antworten jeweils getrennt auf die ssdp-Suche.

Folgende Dinge sind zu beachten:

  • Jede Konfigurationsdatei (gateway.conf) muss in einem eigenen Pfad liegen, damit man homegear-gateway mit dem Parameter -c starten kann (eg. homegear-gateway -c /gateway-data/etc/zigbee/).
  • Jede Instanz benoetigt einen eigenen logfilePath und dataPath. Ansonsten kann die 2. Instanz die Logs nicht oeffnen, bzw. die Zertifikate werden einfach ueberschrieben.
  • Die Einstellungen port bzw. portUnconfigured muessen natuerlich je Instanz unterschiedlich konfiguriert werden.
  • Die uPnPUDN muss natuerlich auch je Instanz eindeutig sein!

So funktionierts hier bei mir. Ich hab auch testweise mal ein Zigbee-Device an meine Zigbee-Instanz angelernt um die Kommunikation zu testen. Funktioniert wie gewuenscht. Ein Hinzufuegen von Gateways mit nicht-standard Ports ueber die AdminUI ist ab dem naechsten nightly auch moeglich, die Aenderungen hab ich eben gepushed.

– Micha

3 Likes

Hallo Zusammen,

ich mache mir gerade Gedanken mir ein Homegear-Gateway mit mehreren Interfaces (ZigBee, Z-Wave, Homematic BidCos) zu bauen. Nachdem ich hier die Diskussion über mehrere Instanzen gelesen habe, kam mir die Idee, ob es nicht vielleicht eine Option wäre das ganze auf Docker-Basis zu bauen und jedem Protokoll/Interface einfach einen eigenen Docker-Container zu betreiben.

Vor 1-2 Wochen habe ich nun meine Homegear-Instanz in einem Docker-Container mit Zugriff auf eine Aeotec Z-Wave-Stick umgezogen. Derzeit stellt ein weiterer Container mit ZigBee2MQTT und Zugriff auf einen ConBee2 die ZigBee-Anbindung. Das würde ich aber zukünftig gerne mit Homegear-kompatibler Hardware ebenfalls mit Homegear-GW realisieren. Idealerweise direct über die GPIO-Pins statt über USB. Sowohl ZigBee als auch Z-Wave habe ich erstmal zum Spielen mit dazu genommen und mich dabei ungeschickterweise für den ConBee2 entschieden, den ich mit Homegear nicht zum laufen bekomme. Der Umweg über ZigBee2MQTT passt mir nicht so recht.

Denkbar wäre auch das Deployment, Updaten und Restarten von (neuen) Containern und das Pushen von Konfiguration von zentraler Stelle (vielleicht irgendwann die zentrale Homegear-Instanz/-WebGui?) zu steuern. Interessant wäre das insbesondere bei mehreren Gateway oder einem kommerziellen Produkt wie dem von @Micha. Damit könnte man die GWs als reine Docker-Nodes bereitstellen, dann dynamisch mit Hardware erweitern und dann von zentraler Stelle die passenden „Hardware-Container“ deployen, konfigurieren und pflegen.

Gruß Andreas

Nur ne Anmerkung zu Zigbee: Das Mesh mag nur einen Coordinator haben. Also mehrer Funkmodule auf mehrere Gateways verteilen würde dann jedes mal ein eigenes Mesh aufspannen.

Hallo @pmayer,

Soweit richtig. Viele Anwendungsfälle wird es für mehrere ZigBee-Gateways nicht geben, nehme ich an. Aber gerade bei sehr verteilten Installationen kann das sehr sinnvoll sein. Und genau so ein Szenario habe ich: ich wohne in einem Hochhaus mit 7 Obergeschossen + Erdgeschoss + Keller + Tiefgarage. In diesem Haus habe ich eine Wohnung im 2. OG und einen zusätzlichen Raum im Keller, den ich als Büro nutze. Beide sind mit LWL verbunden. Hier sind getrennte Mash-Netze sinnvoller als irgendwie ein großes Netz aufzubauen. Evtl. möchte ich die Hausautomation noch in die Garage ausdehnen. LWL werde ich da demnächst hinlegen. Bei anderen Technologien (z.B. HM BidCos) kommt man um mehrere GWs manchmal gar nicht rum. Z.B. wenn die Netze zu weitläufig werden oder zu viele Geräte für ein Gateway im System hängen (Stichwort: DutyCycle).

Gruß Andreas

1 Like

Absolut, aber hatte mit @Adrian diesbezüglich eine Unterhaltung, bis ich verstanden habe, dass mehre Koordinatoren keinen Sinn machen.

Allein aber schon für den Anwendungsfall, das Homegear in Docker oder auf irgend nem Server laufen, machen für das Gateway (auch bei ZigBee) schon Sinn.
Die CC253x-Module von mir, sind ja zum Beispiel direkt zum aufstecken auf den Pi und am Server mit USB runhantieren geht ja auch nicht immer :+1:

Ok, wie soll man aber dann getrennte Zellen aufbauen, zwischen denen man keine ZigBee-Verbindungen aufbauen kann, da es von der Reichweite nicht reicht und man dazwischen keine Devices setzen kann, die als „Repeater“ dienen könnten.

Bereits ein Stockwerk darüber oder darunter (fremde Wohnungen) ist meinen Test zufolge aufgrund der dicht armierten Stahlbetondecken nahezu kein Empfang mehr und ich müsste 2 Stockwerke (1.OG und EG) überbrücken in denen ich keine Devices setzen kann.

Gerne lasse ich mich eines besseren Belehren, aber aktuell sehe ich keine sinnvolle Alternative. Aufgrund der getrennten Nutzungsdomänen (Wohnung / Kellerbüro), zwischen denen eigentlich keine Interaktion zu erwarten ist, sehe ich auch keinen technischen Nachteile. Aber ich muss auch zugestehen, das ich mich bisher nicht mit den technischen Besonderheiten von ZigBee beschäftigt hab.

Vielleicht kann mir jemand die Argumente nennen, die gegen getrennte Mesh-Netze im allgemeinen sprechen, und ob diese in den skizzierten Anwendungszweck relevant sind.

Aber um ZigBee im speziellen ging es bei meinem Post nicht wirklich. Mehr um die Verwendung von Docker für den Betrieb mehrerer Gateway-Instanzen auf einer Hardware um Multi-Protokoll HG-GWs zu realisieren und den Vor- und evtl. Nachteilen die dieser Ansatz hätte.

Gruß Andreas

1 Like

Ja, genau für so etwas macht das Sinn. Bei mir ist das Szenario, dass in der 2. Etage Homegear und im Keller ein Homegear-Gateway läuft. Auf dem Homegear Pi4 läuft auch noch Zigbee2MQTT. Ich wollte dann Zigbee langsam nach Homegear (über das Gateway im Keller) migrieren. Einen zweiten Koordinator am Pi4 zu betrieben war mir zu heikel, das führt mit Sicherheit zu Problemen.

Ich habe es damals nicht hingekriegt, dass sich Homegear mit dem zweiten Gateway auf dem Gateway-Pi verbunden hat. :frowning:
Dann habe ich es nicht mehr verfolgt.

Der Nachteil, bei mehreren Zigbee-Gateways, ist dass man nicht ein einzelnes Gateway in den Pairing-Modus versetzen kann, sondern nur die gesamte Familie, so dass es möglich ist, dass sich das neue Gerät mit dem “falschen” Gateway verbinden kann.

Es spricht meiner Ansicht nach theoretisch nichts gegen die Verwendung von Docker, ich habe nur überhaupt keine Erfahrung damit. Wenn die Trennung im IP-Stack funktioniert, wovon ich ausgehe, sollte es besser gehen als mit meiner Lösung auf Service-Ebene, bei der ich die Ports umleiten musste.

1 Like

Hab es gerade noch einmal getestet.

Mittlerweile gibt es eine Fehlermeldung auf dem Gateway:

11/28/20 22:24:07.292 Error in file RpcServer.cpp line 267 in function BaseLib::PVariable RpcServer::configure(BaseLib::PArray&): Could not open file.

Und folgenden Output bei Konfiguration des Gateways:

PHP Fatal error:  Uncaught Homegear\HomegearException: Unknown application error. See log for more details. in /var/lib/homegear/scripts/inline.php:7
Stack trace:
#0 /var/lib/homegear/scripts/inline.php(7): Homegear\Homegear::configureGateway('pi3', 2118, '-----BEGIN CERT...', 'Certificate:\n  ...', '-----BEGIN RSA ...', 'HeTgvbFTeJ4ELpX...')
#1 {main}
  thrown in /var/lib/homegear/scripts/inline.php on line 7

Leider gibt es das Script nicht, ist wahrscheinlich etwas temporäres. Und auch im Log gibt es keine Details.

ConBee does not work with the zigbee module. Only TI zstack 3.0 chips work. cc2538 is recommended, but cc2530 works, too.

Hi @Adrian,

thank you very much for your answer, I have already noticed that in the meantime. Unfortunately I had already bought this stick when I realized that it is not supported by homegear. So at the moment I’m using ZigBee2MQTT to use this stick for the first time.

My plan is to build my own interfaces based on TI CC2538. (Electronic engineering was part of my studies and is still one of my hobbies)

@pmayer wrote that you explained him why multiple coordinators in a system make no sense. But I think that in my use case there is no alternative.

The scenario is as follows:
I live in a high-rise building with 7 upper floors + first floor + basement + underground parking beside the main building. In this building I have a condominium on the 2nd floor and an additional room with 24 square meters in the basement, which I use as an office. Both are connected by fiber optic cable. My parents had a additional condominium in the 5th upper floor and my wife’s car and my car and my parents car, too, are parking usually in the underground parking. Both buildings are made of densely reinforced concrete, so that after only one ceiling almost no signal can be received. Between the apartment and the basement there are two other apartments to which I have no access to.

My plan was to set up separate mesh networks in the apartment as well as in the basement, both with their own homegear-gateway with ZigBee interface. Maybe an additional one in the underground parking or at my parents condominium later. Is there anything to be said against this from technical perspective?

Regards,
Andreas

1 Like

:smiley:

Hi,

You can use multiple coordinators with homegear, a module allows more than one interface.
You can connect them either directly to homegear (that is, as ‘serial’) or using gateways. The only issue that could exist with such a setup is that all interfaces are put in pairing mode. As far as you keep the coordinators far away from each other, that shouldn’t be much of a problem, if you keep the pairing device close to the coordinator you want to pair with.
Otherwise you may want to temporarily disable the other interfaces.

2 Likes

Juchu!

Mittlerweile habe ich es geschafft. Es war wohl etwas mit dem Zertifikatspeicher des zweiten Gateways nicht in Ordnung.

1 Like

Hi Adrian

thank you for the fast response. This confirms my assumption. I already knew about the fact that pairing is always activated on all gateways of the module. But this is not a problem for my use case, as you say.

Greeting Andreas

Hi Job,

Glückwunsch. Ich nehme an, du hast es als mehrere Services realisiert.

Zu deiner Anmerkung zu Docker:
Docker hat Vor- aber auch Nachteile. Prinzipiell verwendet Docker als Standard ein internes Netz (meist mit 172er IP-Adressen) das mit einer Art NAT auf die IP-Adresse des Docker-Host übersetzt wird. Man kann dann ähnlich dem Port-Forwarding bestimmte Ports des Host an bestimmte Ports des Containers weiterleiten. Alternativ kann man einem Container aber auch eine MAC-Adresse verpassen und diesen in das normale Netz hängen. Dann bekommt er vom DHCP eine eigene IP (wie eine VM bei der Virtualisierung).

Als ich mit Docker angefangen habe, hatte ich meinen ersten Container (fertiges Image) innerhalb von Minuten am Laufen. Bei meinen ersten Versuchen mit Homegear als Container waren es mit den USB-Interfaces und dem einen Service der die NAT in den Standard-Einstellungen nicht so super findet ein paar Stunden länger. Gerade die Anbindung an die CCU war bisschen problematisch, hier musste man an der HG-Config bisschen was anpassen. Auch die USB-Devices in den Container zu bekommen bedurfte ein bisschen Recherche. Aber ansonsten war es wirklich mit Backup des bestehenden HG, kopieren der HG-Ordner in die Container-Volumes, deployen des fertigen Docker-Images und Restore des Backups im Container-HG getan.

Mit WebGUIs wie Portainer und Co ist das Management der Container recht komfortabel.

Wenn du Interesse an dem Thema hast, können wir hierzu gerne einen getrennten Thread aufmachen und darüber zu sprechen. Das passt ja nicht so ganz in diesen Thread hier.

Gruß Andreas

1 Like

Hi Andreas,

Danke. Ja, genau. Hier mal die kurze Skizze, was ich gemacht habe:

  • Konfigurationsvereichnis kopiert (/etc/homegear-gateway => /etc/homegear-gateway-zigbee)
  • Datenverzeichnis (Zertifikatsspeicher) kopiert (/var/lib/homegear-gateway => /var/lib/homegear-gateway-zigbee)
  • Ports und Pfade in neuer Konfiguration angepasst (2017->2117 und 2018->2118)
  • Servicekonfiguration erstellt (wie homegear-gateway, nur verweist auf das neue Konfigurationsverzeichnis)
  • richtige Zertifikate unter richtigem Namen in die richtigen Ordner gelegt.

Ich bin sehr an der Docker-Variante interessiert, Docker interessiert mich schon lange. Ich hatte nur kein Szenario bei dem es meiner Ansicht nach Sinn machte das damit zu lösen.

Viele Grüße

Joachim

1 Like