ZIgbee2MQTT wil niet verbinden met MQTT server

Pagina: 1
Acties:

Vraag


Acties:
  • +1 Henk 'm!

  • Buffalo
  • Registratie: Augustus 2005
  • Laatst online: 18-09 16:42
Ik ben bezig om een MQTT server op te zetten zodat ik hierna Zigbee2MQTT kan gebruiken om een Sonoff Zigbee Dongel aan te sturen en dit te integreren in Home Assistant.
Dit leek makkelijker gezegd dan gedaan, ook na het volgen van een aantal tutorials.

Toegegeven, ik ben waarschijnlijk verkeerd begonnen door eerst Zigbee2MQTT te installeren in Docker, zonder dat ik al een MQTT server had draaien.
Echter heb ik alles verwijderd en ben opnieuw begonnen.

Mijn vragen
- Waarom lukt verbinden (dit lijkt tenminste zo) niet van Zigbee2MQTT met de MQTT server?
De installatie volgorde die ik aangehouden heb:
MQTT server: YouTube: Eclipse MQTT 2.x in Docker + user credentials on Synology
Zigbee2MQTT: YouTube: Zigbee2MQTT in Docker for Home Assistant on Synology - #005
Home Assistant staat al geïnstalleerd in Synology Virtual Machine Manager.

MQTT server lijkt goed te draaien, die heb ik met de tool mqtt.fx getest.

Nu loop ik tegen het probleem aan dat ik denk dat Zigbee2MQTT niet wil starten.
Dit is de log file na starten:
code:
1
2
3
4
5
6
7
8
info  2022-03-21 16:14:48: Logging to console and directory: '/app/data/log/2022-03-21.16-14-47' filename: log.txt
info  2022-03-21 16:14:48: Starting Zigbee2MQTT version 1.24.0 (commit #7a2ddf2)
info  2022-03-21 16:14:48: Starting zigbee-herdsman (0.14.20)
info  2022-03-21 16:14:49: zigbee-herdsman started (resumed)
info  2022-03-21 16:14:49: Coordinator firmware version: '{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20211217,"transportrev":2},"type":"zStack3x0"}'
info  2022-03-21 16:14:49: Currently 0 devices are joined:
info  2022-03-21 16:14:49: Zigbee: disabling joining new devices.
info  2022-03-21 16:14:49: Connecting to MQTT server at 10.10.10.31:1883


Na stoppen is dit de log file:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
info  2022-03-21 15:36:49: Logging to console and directory: '/app/data/log/2022-03-21.15-36-47' filename: log.txt
info  2022-03-21 15:36:49: Starting Zigbee2MQTT version 1.24.0 (commit #7a2ddf2)
info  2022-03-21 15:36:49: Starting zigbee-herdsman (0.14.20)
info  2022-03-21 15:36:50: zigbee-herdsman started (resumed)
info  2022-03-21 15:36:50: Coordinator firmware version: '{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20211217,"transportrev":2},"type":"zStack3x0"}'
info  2022-03-21 15:36:50: Currently 0 devices are joined:
info  2022-03-21 15:36:50: Zigbee: disabling joining new devices.
info  2022-03-21 15:36:51: Connecting to MQTT server at 10.10.10.31:1883
error 2022-03-21 16:00:13: Failed to call 'Frontend' 'stop' (TypeError: Cannot read property 'clients' of null
    at Frontend.stop (/app/lib/extension/frontend.ts:59:39)
    at Controller.callExtensions (/app/lib/controller.ts:316:40)
    at Controller.stop (/app/lib/controller.ts:191:9)
    at stop (/app/index.js:105:5)
    at process.handleQuit (/app/index.js:111:9))
error 2022-03-21 16:00:13: Not connected to MQTT server!
error 2022-03-21 16:00:13: Cannot send message: topic: 'zigbee2mqtt/bridge/state', payload: 'offline
info  2022-03-21 16:00:13: Disconnecting from MQTT server
info  2022-03-21 16:00:13: Stopping zigbee-herdsman...
info  2022-03-21 16:00:23: Stopped zigbee-herdsman
info  2022-03-21 16:00:23: Stopped Zigbee2MQTT


Ik vermoed dat er iets fout gaat met de frontend. Maar dit gedeelte begrijp ik niet zo goed.

- Hoe benader ik de frontend van Zigbee2MQTT om de instellingen van gekoppelde apparaten te wijzigen?
De config file van Zigbee2MQTT ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Home Assistent integration (MQTT discovery)
homeassistant: false

# allow new device to join
permit_join: false

# MQTT settings
mqtt:
  # MQTT base topic for zigbee2mqtt MQTT messages
  base_topic: zigbee2mqtt
  # MQTT server URL
  server: '10.10.10.31:1883'
  # MQTT server authentication, uncomment if required:
  # user: my_user
  # password: my_password
  
# Serial settings
serial:
  # Location of CC2531 USB sniffer
  port: /dev/ttyUSB0

frontend:
  # Optional, default 8080 or you can use you own as well.
  port: 8080
  # IP adress of the device running Zigbee2MQTT
  host: 10.10.10.31

De frontend zou dus op 10.10.10.31:1883 te benaderen moeten zijn? Dit maakte ik op uit 1 van de filmpjes.
Maar helaas lukt dit niet.
10.10.10.31 is het IP adres van mijn NAS.

Relevante software en hardware die ik gebruik
DSM6.2

Wat ik al gevonden of geprobeerd heb
Wijzigingen in de config file van Zigbee2MQTT. O.a. IP adres. Veel verder ben ik eerlijk gezegd niet gekomen.
Ik ga er niet vanuit dat er in de firewall van de NAS nog poorten opengezet moeten worden? Hier wordt ook niet over gesproken.
Kijkend naar de filpmjes zou het gewoon moeten werken :+

Alle reacties


Acties:
  • 0 Henk 'm!

  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 21:51

Gizz

Dunder-Mifflin, Inc.

Buffalo schreef op maandag 21 maart 2022 @ 17:25:
De frontend zou dus op 10.10.10.31:1883 te benaderen moeten zijn?
Nee, 8080. Dat staat zo in configuratie:
code:
1
2
3
frontend:
  # Optional, default 8080 or you can use you own as well.
  port: 8080

1833 is je MQTT-server.

Maar goed, aan de frontend kunnen openen zonder een verbinding met je MQTT-server heb je toch niet zoveel. Eerste stap is ervoor zorgen dat die verbinding wel wordt gemaakt.

Staat je MQTT-server zonder authenticatie (gebruiker + wachtwoord) ingesteld? Want zo probeer je wel verbinding te maken met je server:
code:
1
2
3
4
  server: '10.10.10.31:1883'
  # MQTT server authentication, uncomment if required:
  # user: my_user
  # password: my_password


Ik heb het filmpje niet bekeken, maar omdat je zelf schrijft dat het om het instellen van MQTT-server mét credentials gaat:
MQTT server: YouTube: Eclipse MQTT 2.x in Docker + user credentials on Synology
vermoed ik dat het daar mis gaat ;)

[ Voor 26% gewijzigd door Gizz op 21-03-2022 18:57 ]

Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX


Acties:
  • 0 Henk 'm!

  • Buffalo
  • Registratie: Augustus 2005
  • Laatst online: 18-09 16:42
Gizz schreef op maandag 21 maart 2022 @ 18:48:
[...]

Nee, 8080. Dat staat zo in configuratie:
code:
1
2
3
frontend:
  # Optional, default 8080 or you can use you own as well.
  port: 8080

1833 is je MQTT-server.
Op 8080 kon ik hem ook niet bereiken.
Maar goed, aan de frontend kunnen openen zonder een verbinding met je MQTT-server heb je toch niet zoveel. Eerste stap is ervoor zorgen dat die verbinding wel wordt gemaakt.

Staat je MQTT-server zonder authenticatie (gebruiker + wachtwoord) ingesteld? Want zo probeer je wel verbinding te maken met je server:
code:
1
2
3
4
  server: '10.10.10.31:1883'
  # MQTT server authentication, uncomment if required:
  # user: my_user
  # password: my_password

Ik heb het filmpje niet bekeken, maar omdat je zelf schrijft dat het om het instellen van MQTT-server mét credentials gaat:

[...]
Dat is een goede.
Voor mosquitto heb ik de openssl versie gebruikt zoals in het filmpje. Maar authenticatie code nog uit staan met #. Ik moet die code weer even opzoeken. Maar in de config van zigbee2mqtt staat ook een #, dus niet in gebruik toch?

Acties:
  • 0 Henk 'm!

  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 21:51

Gizz

Dunder-Mifflin, Inc.

Buffalo schreef op maandag 21 maart 2022 @ 19:47:
[...]
Dat is een goede.
Voor mosquitto heb ik de openssl versie gebruikt zoals in het filmpje. Maar authenticatie code nog uit staan met #. Ik moet die code weer even opzoeken. Maar in de config van zigbee2mqtt staat ook een #, dus niet in gebruik toch?
Als je MQTT-server geen authenticatie gebruikt kun je het inderdaad in Z2M uit laten staan met #.

Simpele manier om het te testen:
  1. Installeer MQTT-explorer
  2. Verbind met 10.10.10.31:1883
Werkt dat, dan draait je MQTT-server en is geen authenticatie nodig.

edit: wat mij nog te binnen schiet i.v.m. de frontend.. Heb je toevallig al andere software draaien die poort 8080 gebruikt?

[ Voor 8% gewijzigd door Gizz op 21-03-2022 19:56 ]

Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX


Acties:
  • 0 Henk 'm!

  • Buffalo
  • Registratie: Augustus 2005
  • Laatst online: 18-09 16:42
Gizz schreef op maandag 21 maart 2022 @ 19:53:
[...]

Als je MQTT-server geen authenticatie gebruikt kun je het inderdaad in Z2M uit laten staan met #.

Simpele manier om het te testen:
  1. Installeer MQTT-explorer
  2. Verbind met 10.10.10.31:1883
Werkt dat, dan draait je MQTT-server en is geen authenticatie nodig.

edit: wat mij nog te binnen schiet i.v.m. de frontend.. Heb je toevallig al andere software draaien die poort 8080 gebruikt?
Ik denk dat mqtt.fx hetzelfde doet:
https://tweakers.net/i/yB...AiE.png?f=fotoalbum_large

https://tweakers.net/i/Kt...ADv.png?f=fotoalbum_large

Met deze instellingen:
https://tweakers.net/i/5x...15say9Ej.png?f=user_large

En dat werkt.
Nu zie ik dit in de log:
code:
1
2
3
4
5
6
1647965721: New connection from 10.10.10.59:64468 on port 1883.
1647965721: New client connected from 10.10.10.59:64468 as mqtt-explorer-c51514ab (p2, c1, k60).
1647965730: Saving in-memory database to /mosquitto/data/mosquitto.db.
1647965766: New connection from 10.10.10.59:64542 on port 1883.
1647965766: New client connected from 10.10.10.59:64542 as MQTT_FX_Client (p2, c1, k60).
1647966458: Client MQTT_FX_Client disconnected.

10.10.10.59 is het IP adres van mijn PC.

Wat mij ook nog opvalt is deze tekst in de log van Zigbee2MQTT:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
info  2022-03-21 16:27:05: Logging to console and directory: '/app/data/log/2022-03-21.16-27-04' filename: log.txt
info  2022-03-21 16:27:05: Starting Zigbee2MQTT version 1.24.0 (commit #7a2ddf2)
info  2022-03-21 16:27:05: Starting zigbee-herdsman (0.14.20)
info  2022-03-21 16:27:06: zigbee-herdsman started (resumed)
info  2022-03-21 16:27:06: Coordinator firmware version: '{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20211217,"transportrev":2},"type":"zStack3x0"}'
info  2022-03-21 16:27:06: Currently 0 devices are joined:
info  2022-03-21 16:27:06: Zigbee: disabling joining new devices.
info  2022-03-21 16:27:06: Connecting to MQTT server at 10.10.10.31:1883
error 2022-03-21 16:41:39: Not connected to MQTT server!
[error 2022-03-21 16:41:39: Cannot send message: topic: 'zigbee2mqtt/bridge/state', payload: 'offline
info  2022-03-21 16:41:39: Disconnecting from MQTT server
info  2022-03-21 16:41:39: Stopping zigbee-herdsman...
info  2022-03-21 16:41:49: Stopped zigbee-herdsman
info  2022-03-21 16:41:49: Stopped Zigbee2MQTT

Na ongeveer een kwartier blijkt connecten dus niet te lukken, want
'Cannot send message: topic: 'zigbee2mqtt/bridge/state', payload: 'offline'.
Heeft dit er wellicht iets mee te maken?
edit: wat mij nog te binnen schiet i.v.m. de frontend.. Heb je toevallig al andere software draaien die poort 8080 gebruikt?
Ik heb dit via de command prompt in Windwows met netstat -ab gecontroleerd. Hier staat poort 8080 niet tussen. Ik heb niet de indruk dat hij ergens anders gebruikt wordt.

Laatste waar ik zelf nog aan denk is dat mijn DSM inlogpagina standaard naar poort 5001 wordt doorverwezen als ik 10.10.10.31 of 10.10.10.31:5000 in de browser typ. Wellicht dat dit ook geldt voor andere poorten op 10.10.10.31?

Acties:
  • 0 Henk 'm!

  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 21:51

Gizz

Dunder-Mifflin, Inc.

Daar mis je juist de inhoud van het meest interessante tabblad: User Credentials :)

Wat zie je overigens in de log van je MQTT-server als Z2M probeert te verbinden?
Je laat nu een geslaagde poging van je pc zien, maar het is juist interessant om te zien wat je MQTT-server ervan vindt als Z2M probeert te verbinden.
Wat mij ook nog opvalt is deze tekst in de log van Zigbee2MQTT:

Na ongeveer een kwartier blijkt connecten dus niet te lukken, want
'Cannot send message: topic: 'zigbee2mqtt/bridge/state', payload: 'offline'.
Heeft dit er wellicht iets mee te maken?
Dat hij dat niet kan verzenden is logisch als hij in het geheel geen verbinding kan maken met de MQTT-server. Dus helaas, niet stukje informatie helpt ons niet echt verder.
Ik heb dit via de command prompt in Windwows met netstat -ab gecontroleerd. Hier staat poort 8080 niet tussen. Ik heb niet de indruk dat hij ergens anders gebruikt wordt.
Maar dat gaat om de diensten van je windows pc. Dat zegt niets over wat er op je Synology draait :)

Zou je het nog eens kunnen proberen door in Z2M als MQTT-server 127.0.0.1:1883 in te stellen?

[ Voor 11% gewijzigd door Gizz op 22-03-2022 18:33 ]

Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX


Acties:
  • 0 Henk 'm!

  • Buffalo
  • Registratie: Augustus 2005
  • Laatst online: 18-09 16:42
Gizz schreef op dinsdag 22 maart 2022 @ 18:31:
[...]

Daar mis je juist de inhoud van het meest interessante tabblad: User Credentials :)
OK, die zijn leeg in mijn geval.
Wat zie je overigens in de log van je MQTT-server als Z2M probeert te verbinden?
Je laat nu een geslaagde poging van je pc zien, maar het is juist interessant om te zien wat je MQTT-server ervan vindt als Z2M probeert te verbinden.
Beide containers gestopt, en hierna als eerste MQTT server herstart.
Dan is dit de log van de server:
code:
1
2
3
4
1647971735: mosquitto version 2.0.14 starting
1647971735: Config loaded from /mosquitto/config/mosquitto.conf.
1647971735: Opening ipv4 listen socket on port 1883.
1647971735: mosquitto version 2.0.14 running
Waarom zie ik overigens niet gewoon de tijd in de eerste kolom? het is best lastig iets terug te zoeken zo.

Zibee2MQTT gestart, dit de log ervan:
code:
1
2
3
4
5
6
7
8
info  2022-03-22 17:59:24: Logging to console and directory: '/app/data/log/2022-03-22.17-59-23' filename: log.txt
info  2022-03-22 17:59:25: Starting Zigbee2MQTT version 1.24.0 (commit #7a2ddf2)
info  2022-03-22 17:59:25: Starting zigbee-herdsman (0.14.20)
info  2022-03-22 17:59:26: zigbee-herdsman started (resumed)
info  2022-03-22 17:59:26: Coordinator firmware version: '{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20211217,"transportrev":2},"type":"zStack3x0"}'
info  2022-03-22 17:59:26: Currently 0 devices are joined:
info  2022-03-22 17:59:26: Zigbee: disabling joining new devices.
info  2022-03-22 17:59:26: Connecting to MQTT server at 10.10.10.31:1883


In de log van de server geen verandering:
code:
1
2
3
4
1647971735: mosquitto version 2.0.14 starting
1647971735: Config loaded from /mosquitto/config/mosquitto.conf.
1647971735: Opening ipv4 listen socket on port 1883.
1647971735: mosquitto version 2.0.14 running
Zou je het nog eens kunnen proberen door in Z2M als MQTT-server 127.0.0.1:1883 in te stellen?
En dit zijn de logs als IP 127.0.0.1:1883 is.
Server:
code:
1
2
3
4
1647973299: mosquitto version 2.0.14 starting
1647973299: Config loaded from /mosquitto/config/mosquitto.conf.
1647973299: Opening ipv4 listen socket on port 1883.
1647973299: mosquitto version 2.0.14 running
Zelfde resultaat dus.

Z2M
code:
1
2
3
4
5
6
7
8
info  2022-03-22 18:21:59: Logging to console and directory: '/app/data/log/2022-03-22.18-21-58' filename: log.txt
info  2022-03-22 18:21:59: Starting Zigbee2MQTT version 1.24.0 (commit #7a2ddf2)
info  2022-03-22 18:21:59: Starting zigbee-herdsman (0.14.20)
info  2022-03-22 18:22:00: zigbee-herdsman started (resumed)
info  2022-03-22 18:22:00: Coordinator firmware version: '{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20211217,"transportrev":2},"type":"zStack3x0"}'
info  2022-03-22 18:22:00: Currently 0 devices are joined:
info  2022-03-22 18:22:00: Zigbee: disabling joining new devices.
info  2022-03-22 18:22:01: Connecting to MQTT server at 127.0.0.1:1883


Dit is trouwens de config file van mosquitto:
code:
1
2
3
4
5
6
persistence true
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log
#password_file /mosquitto/config/pwfile
allow_anonymous true
listener 1883 10.10.10.31
IP hier naar 127.0.0.1 wijzigen maakt geen verschil.

[ Voor 4% gewijzigd door Buffalo op 22-03-2022 19:31 ]


Acties:
  • +1 Henk 'm!

  • Buffalo
  • Registratie: Augustus 2005
  • Laatst online: 18-09 16:42
Ik heb het werkend gekregen :)
Het bleek iets heel lulligs.
In de configuration.yaml was ik mqtt vergeten toe te voegen voor het IP adres:
code:
1
server: 'mqtt://10.10.10.31:1883'


Echter komt daar specifiek geen foutmelding op. Eerder had ik wel mqtt ervoor gezet en werkte het ook niet, maar ik vermoed dat er toen ook andere instellingen niet klopten.
Pagina: 1