OH3 Arduino: Daten per UDP
-
- Beiträge: 12
- Registriert: 3. Apr 2022 20:29
Re: OH3 Arduino: Daten per UDP
MQTT Explorer kann keine Verbindung aufbauen - Disconnected from server
Port 1883 ist auf (Listen) und Mosquitto läuft - was fehlt dann?
Port 1883 ist auf (Listen) und Mosquitto läuft - was fehlt dann?
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3 Arduino: Daten per UDP
Vermutlich lauscht mosquitto nur intern.
Schau mal in die Datei /etc/mosquitto/mosquitto.conf, dort sollte als erste Nicht-Kommentar-Zeile mit Inhalt listener 1883 angegeben sein.
Steht diese Zeile erst weiter unten in der Datei, dann füge sie oben ein.
Nach Änderungen an der Konfiguration muss der Dienst neu gestartet werden.
Anschließend kannst Du testen ob alles passt:
Wichtig ist dabei der Teil 0.0.0.0:1883. steht hier 127.0.0.1, hört mosquitto nur lokal.
Schau mal in die Datei /etc/mosquitto/mosquitto.conf, dort sollte als erste Nicht-Kommentar-Zeile mit Inhalt listener 1883 angegeben sein.
Steht diese Zeile erst weiter unten in der Datei, dann füge sie oben ein.
Nach Änderungen an der Konfiguration muss der Dienst neu gestartet werden.
Code: Alles auswählen
sudo systemctl restart mosquitto.service
Code: Alles auswählen
openhabian@openhab2:~$ ss -l4tn | grep 1883
LISTEN 0 100 0.0.0.0:1883 0.0.0.0:*
openhabian@openhab2:~$
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 12
- Registriert: 3. Apr 2022 20:29
Re: OH3 Arduino: Daten per UDP
Danke für das Dran-bleiben!
die Zeile "listener 1883" hat komplett gefehlt und 1883 wurde nur lokal verfolgt. (127.0.0.1:1883)
"ss" hatte gemerkert - ich habe "netstat - pnltu" verwendet
nach Änderung der conf Datei ist der Neustart gescheitert (control process exited with error code)
dann "systemctl status mosquitto.service" ergibt:
● mosquitto.service - Mosquitto MQTT Broker
Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2022-04-07 20:58:27 CEST; 15s ago
Docs: man:mosquitto.conf(5)
man:mosquitto(8)
Process: 23384 ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto (code=exited, status=0/SUCCESS)
Process: 23385 ExecStartPre=/bin/chown mosquitto /var/log/mosquitto (code=exited, status=0/SUCCESS)
Process: 23386 ExecStartPre=/bin/mkdir -m 740 -p /run/mosquitto (code=exited, status=0/SUCCESS)
Process: 23387 ExecStartPre=/bin/chown mosquitto /run/mosquitto (code=exited, status=0/SUCCESS)
Process: 23388 ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf (code=exited, status=3)
Main PID: 23388 (code=exited, status=3)
CPU: 69ms
Apr 07 20:58:27 openhabian systemd[1]: mosquitto.service: Scheduled restart job, restart counter is at 5.
Apr 07 20:58:27 openhabian systemd[1]: Stopped Mosquitto MQTT Broker.
Apr 07 20:58:27 openhabian systemd[1]: mosquitto.service: Start request repeated too quickly.
Apr 07 20:58:27 openhabian systemd[1]: mosquitto.service: Failed with result 'exit-code'.
Apr 07 20:58:27 openhabian systemd[1]: Failed to start Mosquitto MQTT Broker.
.. und - steht - ich reboote jetzt erst mal
die Zeile "listener 1883" hat komplett gefehlt und 1883 wurde nur lokal verfolgt. (127.0.0.1:1883)
"ss" hatte gemerkert - ich habe "netstat - pnltu" verwendet
nach Änderung der conf Datei ist der Neustart gescheitert (control process exited with error code)
dann "systemctl status mosquitto.service" ergibt:
● mosquitto.service - Mosquitto MQTT Broker
Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2022-04-07 20:58:27 CEST; 15s ago
Docs: man:mosquitto.conf(5)
man:mosquitto(8)
Process: 23384 ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto (code=exited, status=0/SUCCESS)
Process: 23385 ExecStartPre=/bin/chown mosquitto /var/log/mosquitto (code=exited, status=0/SUCCESS)
Process: 23386 ExecStartPre=/bin/mkdir -m 740 -p /run/mosquitto (code=exited, status=0/SUCCESS)
Process: 23387 ExecStartPre=/bin/chown mosquitto /run/mosquitto (code=exited, status=0/SUCCESS)
Process: 23388 ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf (code=exited, status=3)
Main PID: 23388 (code=exited, status=3)
CPU: 69ms
Apr 07 20:58:27 openhabian systemd[1]: mosquitto.service: Scheduled restart job, restart counter is at 5.
Apr 07 20:58:27 openhabian systemd[1]: Stopped Mosquitto MQTT Broker.
Apr 07 20:58:27 openhabian systemd[1]: mosquitto.service: Start request repeated too quickly.
Apr 07 20:58:27 openhabian systemd[1]: mosquitto.service: Failed with result 'exit-code'.
Apr 07 20:58:27 openhabian systemd[1]: Failed to start Mosquitto MQTT Broker.
.. und - steht - ich reboote jetzt erst mal
-
- Beiträge: 12
- Registriert: 3. Apr 2022 20:29
Re: OH3 Arduino: Daten per UDP
reboot hilft nicht - mosquitto startet nicht mehr. Deinstallieren und über openhabian-config neu installieren..
-
- Beiträge: 12
- Registriert: 3. Apr 2022 20:29
Re: OH3 Arduino: Daten per UDP
jetzt aber:
neu installiert und in der mosquitto.conf eingefügt:
listener 1883 0.0.0.0
allow_anonymous true
Und: sowhl das MQTT Binding, die Bridge und die Verbindung ESP8266 zum Broker gehen!
Danke - ab jetzt komme ich hoffentlich erst einmal alleine weiter..
neu installiert und in der mosquitto.conf eingefügt:
listener 1883 0.0.0.0
allow_anonymous true
Und: sowhl das MQTT Binding, die Bridge und die Verbindung ESP8266 zum Broker gehen!
Danke - ab jetzt komme ich hoffentlich erst einmal alleine weiter..
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3 Arduino: Daten per UDP
Prima!
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 12
- Registriert: 3. Apr 2022 20:29
Re: OH3 Arduino: Daten per UDP
Zwischenstand mit Licht und Schatten..
ein Esp kann mehrere Topics an den Broker schicken und ich kann die in OH entsprechend einlinken. Pro Topic eine Information.
Wenn ich jetzt JASON schicke (wie test = {"temperatur":19.40, "feuchte":43.69}) - also topic "test" mit den zwei Informationen und im Profil z.B. mit JASONPATH ein "$.feuchte" verwende dann bleibt das item auf NULL. Im MQTT-Explorer sieht man das " {"temperatur":19.40, "feuchte":43.69}" zumindest in mosquitto ankommt.
Was parallel stört (oder mich wundert) - wenn der MQTT Broker (die Bridge) angelegt wird dann fragt OH nach dem Trigger. Es gibt Wildcards, aber wenn die Topics alle diskrete Namen haben (und nicht z.B. alle /Sensor/... heisssen) dann ist der Trigger nicht global. Gehört es zum guten Ton alles in eine Baumstruktur zu schieben??
ein Esp kann mehrere Topics an den Broker schicken und ich kann die in OH entsprechend einlinken. Pro Topic eine Information.
Wenn ich jetzt JASON schicke (wie test = {"temperatur":19.40, "feuchte":43.69}) - also topic "test" mit den zwei Informationen und im Profil z.B. mit JASONPATH ein "$.feuchte" verwende dann bleibt das item auf NULL. Im MQTT-Explorer sieht man das " {"temperatur":19.40, "feuchte":43.69}" zumindest in mosquitto ankommt.
Was parallel stört (oder mich wundert) - wenn der MQTT Broker (die Bridge) angelegt wird dann fragt OH nach dem Trigger. Es gibt Wildcards, aber wenn die Topics alle diskrete Namen haben (und nicht z.B. alle /Sensor/... heisssen) dann ist der Trigger nicht global. Gehört es zum guten Ton alles in eine Baumstruktur zu schieben??
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3 Arduino: Daten per UDP
Die Bridge ist nur die Verbindung zwischen Broker und openHAB Things. Ja, man kann direkt in der Bridge Channel definieren, diese Art Channel ist aber eine spezielle Anwendung.
Du musst stattdessen ein generic MQTT Thing anlegen und dieses der Bridge zuordnen. Im generic MQTT Thing legst Du dann beliebig Channel an. Wenn Du JSON als Format verwenden willst, um mehrere Werte gleichzeitig zu senden und diese auch synchron auszuwerten, bietet es sich an, einen String Channel zu verwenden. In diesem landet dann das komplette JSON Objekt.
Unter der Voraussetzung, dass auch die JSONPATH Transformation installiert ist, kannst Du dann diesen String Channel mit mehreren Number Items verlinken, wobei Du in jedem Link im Profile JSONPATH aktivierst und dort das jeweils passende Statement setzt. Du brauchst also nur einen Channel, die Werte landen in getrennten Items. Es ist neben der Konfiguration kein zusätzlicher Code notwendig.
Du musst stattdessen ein generic MQTT Thing anlegen und dieses der Bridge zuordnen. Im generic MQTT Thing legst Du dann beliebig Channel an. Wenn Du JSON als Format verwenden willst, um mehrere Werte gleichzeitig zu senden und diese auch synchron auszuwerten, bietet es sich an, einen String Channel zu verwenden. In diesem landet dann das komplette JSON Objekt.
Unter der Voraussetzung, dass auch die JSONPATH Transformation installiert ist, kannst Du dann diesen String Channel mit mehreren Number Items verlinken, wobei Du in jedem Link im Profile JSONPATH aktivierst und dort das jeweils passende Statement setzt. Du brauchst also nur einen Channel, die Werte landen in getrennten Items. Es ist neben der Konfiguration kein zusätzlicher Code notwendig.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 12
- Registriert: 3. Apr 2022 20:29
Re: OH3 Arduino: Daten per UDP
jetzt aber!
ich hatte Jasonpath im "link to item" (in profiles) verwendet und das ging nicht (bin gespannt wie das bei Dir geht!)
Wenn man aber JASONPATH als "ingoing value transformation" im Channel einsetzt und im Link dann "Standard" läßt - dann klappt es..
Heiß natürlich das ein Channel nur für eine Information gut ist, man muß dann mehrere Channel auf ein JASON Konstrukt ansetzen.
Aller Anfang ist schwer - grr
Danke für die Hilfe !!
ich hatte Jasonpath im "link to item" (in profiles) verwendet und das ging nicht (bin gespannt wie das bei Dir geht!)
Wenn man aber JASONPATH als "ingoing value transformation" im Channel einsetzt und im Link dann "Standard" läßt - dann klappt es..
Heiß natürlich das ein Channel nur für eine Information gut ist, man muß dann mehrere Channel auf ein JASON Konstrukt ansetzen.
Aller Anfang ist schwer - grr
Danke für die Hilfe !!
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3 Arduino: Daten per UDP
Doch, das funktioniert wunderbar. Kann eigentlich nur eine Kleinigkeit sein...
Kannst Du mal den Code des generic MQTT Thing zeigen? (in der Thing Ansicht auf den rechten Karteireiter "Code" wechseln, Code komplett in die Zwischenablage kopieren, dann hier im Forum als Code posten)
Kannst Du mal den Code des generic MQTT Thing zeigen? (in der Thing Ansicht auf den rechten Karteireiter "Code" wechseln, Code komplett in die Zwischenablage kopieren, dann hier im Forum als Code posten)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet