Zigbee2MQTT Umzug aus IP Symcon Umgebung

Hi Bernd,

wird etwas ausführlicher aber damit hoffentlich klarer.

Aktuell nutze ich die Zentrale/SmartHome Zentrale von IP Symcon, dort ist auch ein MQTT Broker Bestandteil.

Es ist wohl eine philosophische Frage aber ich bin dabei verschiedene Plattformen zur Übersicht aufzutrennen. Einen eigenständigen MQTT Broker, auf den alle Systeme zugreifen. Eine eigenständige RaspMatic, eigenständiges Zigbee2MQTT … (alles unter Proxmox).

Zur Verwaltung dieser ganzen Kleinsysteme kommt, aktuell, IP Symcon zum Einsatz. Im Prinzip ja eine Art Home Assistant, die “Schaltzentrale” von mir aus. (Zigbee2MQTT, inkl. Broker, ist ja noch nicht separat, da hakt es gerade)

Warum habe ich so viel aufgetrennt bzw. bin ich dabei?
Regelmäßig (alle 2-4 Jahre) schaue ich mir an welche neuen Systeme es gibt,… gewechselt habe ich vor glaub 6-8 Jahren das letzte Mal und bin bisher im IP Symcon zufrieden. Sieht man sich aber nicht immer mal wieder um entgeht einem vielleicht etwas besseres.
Hat man alle Komponenten in einem System, z.B. Zigbee2MQTT als Add-On in HA, den MQTT Broker in HA,… wird ein Wechsel sehr schwer.
Mal sehr vereinfacht: Sollte ich mich entscheiden von IP Symcon zu HA zu wechseln könnte ich bei getrennten Systemen (wenn es schon komplett so wäre) nur die Zugriffe, IP’s … zu den Kleinstsystemen ändern und ich habe eine neue “Schaltzentrale” ohne alle Komponenten neu aufzulegen/anzulernen.

Daher tendiere ich dazu alle Systeme zu trennen, so wäre ein Wechsel in Zukunft vielleicht mal einfacher. Vom neuen System die IP des MQTT Brokers geändert und es ist umgestellt (sehr vereinfacht). Und nicht das Add-On rausnehmen, alle Geräte neu im Add-On des neuen Systems mühevoll einzeln anlernen…

Deswegen möchte ich mir einen eigenständigen MQTT Broker anlegen. EMQX schien mir recht gut da dort Nutzerzugriffe… verwaltet werden können und eine sehr gute Übersicht besteht (wer ist eingeloggt,…).

Auf diesen wiederum würde Zigbee2MQTT zugreifen und auch HA. Damit könnte ich aus HA all meine Zigbee Geräte bedienen.

In der Übergangszeit, also während der Tests, müsste ich IP Symcon und HA über den gleichen MQTT Broker (also EMQX) laufen lassen. Bei RaspMatic klappt es prima, ebenso mit Netatmo, … (klar ganz andere Systeme/Plattformen)

Ich möchte HA etliche Wochen nutzen um das Haus zu steuern. Befinde ich es für gut (so sieht es für mich gerade aus) stelle ich es meiner Frau vor. Kommt sie auch damit klar wird IP Symcon abgeschalten und HA genutzt.

Hoffentlich wird es nun klarer was der Hintergrund ist.

Mein Problem zur Zeit ist MQTT. Der EMQX ist über das Community Script installiert und läuft. Über MQTTX kann ich darauf zugreifen. In Tests mit HA, IP Symcon und Zigbee2MQTT auch. In der ganzen Konstellation hängt es immer mal wieder.
Da es einfacher ist einen Zigbee Koordinator per LAN einzubinden statt USB durchzureichen… habe ich einen SLZB-06P7 angeschafft, den Zigbee2MQTT auch erreicht (laut SLZB-06P7 Weboberfläche).
Aktueller Stand komme ich nicht von dem IP Symcon MQTT Broker weg ohne dort alle Geräte unbrauchbar zu machen, es muss vorerst aber von beiden gehen.

Moin,

die lange Vorgeschichte, hatte ich mir fast schon so gedacht, danke das Du das aber noch einmal für mich zusammengefasst hast. :pray:

aber genau hier klemmt es bei mir, ich habe gelernt, dass MQTT keine Daten speichert, ist ja nicht wirklich eine Datenbank, sprich, wenn alle Clients noch mit demselben Topic publishen, dann spielt es keine Rolle, welcher MQTT Broker dahinter hängt, genauso die Subscriber also die, welche die Daten beim MQTT Broker abonnieren, haben damit kein Problem, sollte sich der Broker änder, sollten in der Zeit der Umstellung Pakete verloren gehen, dann werden da sowieso kurze Zeit später wieder Datenpakete gesendet.

Die andere Möglichkeit, habe ich aber noch nicht weiter recherchiert, wäre MQTT Bridge, also eine Verbindung zwischen den MQTT-Brokern.

VG
Bernd

Hatte mit dem Symcon Support kontakt, das Problem ist der EMQX Broker, offenbar ist es bekannt das dieser mit IP Symcon nicht reibungslos funktioniert. Und im “Übergangsbetrieb” benötige ich einen Brocker den HA und IP Symcon akzeptieren.

Mosquitto ist online ja weit verbreitet, gut dokumentiert,… dachte mir ich setze ihn in einem Ubuntu LXC in Proxmox auf. Gefühlt habe ich 100 Anleitungen gefunden, inhaltlich fast zu 100% identisch. Solange ich ohne User/Passwort arbeite und den anonymen Zugang nutze geht es. Mit Username und Passwort startet Mosquitto nicht mehr als Service.

Nach dem Start:

> root@Mosquitto-Ubuntu:~# sudo systemctl restart mosquitto
> Job for mosquitto.service failed because the control process exited with error code.
> See „systemctl status mosquitto.service“ and „journalctl -xeu mosquitto.service“ for details.
> root@Mosquitto-Ubuntu:~#

Im Detail:

> root@Mosquitto-Ubuntu:~# systemctl status mosquitto.service
> x mosquitto.service - Mosquitto MQTT Broker
> Loaded: loaded (/usr/lib/systemd/system/mosquitto.service; enabled; preset: enabled)
> Active: failed (Result: exit-code) since Wed 2024-12-25 09:58:20 UTC; 1min 48s ago
> Duration: 1min 4.144s
> Docs: man:mosquitto.conf(5)
> man:mosquitto(8)
> Process: 520 ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto (code=exited, status=0/SUCCESS)
> Process: 521 ExecStartPre=/bin/chown mosquitto:mosquitto /var/log/mosquitto (code=exited, status=0/SUCCESS)
> Process: 524 ExecStartPre=/bin/mkdir -m 740 -p /run/mosquitto (code=exited, status=0/SUCCESS)
> Process: 526 ExecStartPre=/bin/chown mosquitto:mosquitto /run/mosquitto (code=exited, status=0/SUCCESS)
> Process: 527 ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf (code=exited, status=13)
> Main PID: 527 (code=exited, status=13)
> CPU: 26ms
> 
> Dec 25 09:58:20 Mosquitto-Ubuntu systemd[1]: mosquitto.service: Scheduled restart job, restart counter is at 5.
> Dec 25 09:58:20 Mosquitto-Ubuntu systemd[1]: mosquitto.service: Start request repeated too quickly.
> Dec 25 09:58:20 Mosquitto-Ubuntu systemd[1]: mosquitto.service: Failed with result ‚exit-code‘.
> Dec 25 09:58:20 Mosquitto-Ubuntu systemd[1]: Failed to start mosquitto.service - Mosquitto MQTT Broker.
> root@Mosquitto-Ubuntu:~#

Habe online Infos gefunden wie die Mosquitto Ordner haben die falschen Rechte, eine Änderung der Config mit Info zum Pfad von Mosquitto,… alles ohne Erfolg.

Kennt das Problem jemand?
Wie bekomme ich Mosquitto, standalone, inkl. Username / Passwort zum Laufen, auch als Service? Anonym möchte ich nicht wirklich.

Hatte aus Testzwecken hivemq installiert, damit ging es ebenfalls einwandfrei. Dazu findet man nur wenige Infos im Netz was bei Problemen auch blöd wäre.

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)

Vorab: Ich habe mir hier nicht alle Postings durchgelesen.

Ubuntu LXC? Auch schon mal das

in Verbindung mit dem

probiert?

Edit:

  1. Script von tteck ausführen. Danach ist der MQTT Broker als LXC unter Proxmox installiert. Hier unter der IP 192.168.1.169
  2. In der MQTT LXC Konsole einen User für den MQTT Broker anlegen. Hier in dem Beispiel den User mqtt_user.
  3. Beim anlegen des Usern wird automatisch nach einem Passwort für ihn gefragt. → Passwort für den User festlegen
  4. User und Group anpassen und den MQTT Broker neu starten
  5. Fertig und der MQTT Broker ist über die IP 192.168.1.169 mit dem Port 1883 und mit dem User mqtt_user und dessen PW zu erreichen. :wink:
    Proxmox_LXC_MQTT_Explorer

Das gleiche kannst Du natürlich auch “zu Fuß” und ohne das Script von tteck machen, in dem Du mal einen Blick in das Script wirfst und Dich daran orientierst.
https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/install/mqtt-install.sh

VG Jim

Hatte ich schonmal versucht ging aber auch nicht mit dem Script, also neuer Anlauf. Immer wieder diverse Probleme mit dem mosquitto Script. Ich nutze einige Proxmox Helper Scripts, alle einwandfrei, nur Mosquitto wollte nie so richtig. Es waren auch immer unterschiedliche Fehler, z.B. gestern:

Danke für den Tipp das Script quasi manuell auszuführen/aufgeschlüsselt auszuführen, hat soweit geklappt.
Problem ist jetzt nur ich habe einen Benutzer eingefügt, sobald ich einen ergänze läuft der MQTT Systemdienst nicht mehr.

Den ersten User füge ich, anhand der Anleitung damit ein

mosquitto_passwd -c /etc/mosquitto/passwd <user>

Gefolgt von

chown mosquitto:mosquitto /etc/mosquitto/passwd

Restart,… und ich kann mit mit dem MQTT Explorer einwandfrei verbinden.
Einen 2. Nutzer kann ich mit dem Befehl für den ersten Nutzer ja nicht einfügen

mosquitto_passwd -c /etc/mosquitto/passwd <user>

So scheint es ja nur für den ersten Nutzer zu gelten, soweit ich diverse Anleitungen verstehe.

Online habe ich eine Anleitung gefunden, in der beschrieben wird ab dem 2. Nutzer weitere ergänzt werden

sudo mosquitto_passwd -b /etc/mosquitto/passwd USERNAME PASSWORD

Angeblich geht es nicht weil das passwort File nicht root Rechte hat , vergebe ich diese geht wieder nichts mehr

Dec 26 07:08:53 Mosquitto-Ubuntu systemd[1]: Started mosquitto.service - Mosquitto MQTT Broker.
root@Mosquitto-Ubuntu:~# sudo mosquitto_passwd -c /etc/mosquitto/passwd zigbeemqtt
Password: 
Reenter password: 
Warning: File /etc/mosquitto/passwd owner is not root. Future versions will refuse to load this file.To fix this, use `chown root /etc/mosquitto/passwd`.Warning: File /etc/mosquitto/passwd group is not root. Future versions will refuse to load this file.root@Mosquitto-Ubuntroot@Mosquitto-Ubuntu:~# chown root /etc/mosquitto/passwd
root@Mosquitto-Ubuntu:~# systemctl restart mosquitto
Job for mosquitto.service failed because the control process exited with error code.
See "systemctl status mosquitto.service" and "journalctl -xeu mosquitto.service" for details.

Was mache ich falsch?

Hat soweit geklappt, online gab es ältere und neuere Anleitungen und ich habe es mir “falsch” zusammengesucht.

Dennoch warum warum bekomme ich bei der Ausführung der Community Scripts Fehler?

Ich weiß nicht welche Community Scripts Du von wo geladen hast. Wenn es um das von mir verlinkte MQTT LXC Helper Script von tteck geht lief das gestern bei mir problemlos und fehlerfrei durch. Sieht man ja auch anhand meiner Screenshots. :slightly_smiling_face:

VG Jim