mqtt client opzetten met Mosquitto en Zigbee2MQTT

mqtt client opzetten met Mosquitto en Zigbee2MQTT

24 april 2021 0 Door Ivo

Maak een mqtt-client!

Open de terminal en plak onderstaande codes.

sudo wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key

cd /etc/apt/sources.list.d/
sudo wget http://repo.mosquitto.org/debian/mosquitto-buster.list
cd
sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients
sudo apt-get install python-pip
sudo pip install paho-mqtt
sudo /etc/init.d/mosquitto stop

Configureer mosquitto.conf

sudo nano /etc/mosquitto/mosquitto.conf


Voeg de volgende 6 regels onderaan toe.

log_type error
log_type warning
log_type notice
log_type information

connection_messages true
log_timestamp true

Start de Mosquitto server

sudo /etc/init.d/mosquitto start

Test

Open een 2de terminal, in de eerste plak je:

mosquitto_sub -d -t hello/world

In de tweede terminal type:

mosquitto_pub -d -t hello/world -m "Hallo scherm 1!"

Het werkt!
Nu kun je met je Tasmota apparaten met je pi laten communiceren

De handmatige start-stop commando’s

sudo systemctl stop mosquitto.service
sudo systemctl start mosquitto.service
sudo systemctl restart mosquitto.service

Lukt dat niet door Mosquitto 2.0?

Downgrade naar Mosquitto 1.6.12

Zigbee2mqtt

Ik ga er van uit dat je een werkende Zigbee-USB-stick hebt.

Kijk of je USB-poort overeenkomt. met ls -l /dev/ttyACM0en ls -l /dev/serial/by-id

pi@raspberry:~ $ ls -l /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 May 16 19:15 /dev/ttyACM0  # <-- adapter (CC2531 in this case) on /dev/ttyACM0
pi@raspberry:/ $ ls -l /dev/serial/by-id
total 0
lrwxrwxrwx. 1 root root 13 Oct 19 19:26 usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018ED3DDF-if00 -> ../../ttyACM0

Installatie:

Je hebt node.js nodig, dit installeer je met onderstaande code.

sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs git make g++ gcc

Contoleer de versies van node en npm

node --version  # minimaal v10.X, v12.X, v14.X or v15.X
npm --version  # minimaal 6.X or 7.X

Clone koenkk’s github, en installeer.

sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
sudo chown -R pi:pi /opt/zigbee2mqtt
cd /opt/zigbee2mqtt
npm ci --production

Maak de key aan.

echo "\n\nadvanced:\n    network_key: GENERATE" >> /opt/zigbee2mqtt/data/configuration.yaml

Start Zigbee2mqtt op.

cd /opt/zigbee2mqtt
npm start

Zorg dat hij opstart met je pi

sudo nano /etc/systemd/system/zigbee2mqtt.service

Zet onderstaande erin

[Unit]
Description=zigbee2mqtt
After=network.target

[Service]
ExecStart=/usr/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
# Or use StandardOutput=null if you don't want Zigbee2MQTT messages filling syslog, for more options see systemd.exec(5)
StandardError=inherit
Restart=always
User=pi

[Install]
WantedBy=multi-user.target
Activeerde code
sudo systemctl enable zigbee2mqtt.service

Domoticz

cd domoticz/plugins
git clone https://github.com/stas-demydiuk/domoticz-zigbee2mqtt-plugin.git zigbee2mqtt

Restart domoticz
Zorg dat “Accept new Hardware Devices” is geactiveerd in Domoticz.
Ga naar “Hardware” en maak nieuwe hardware aan met type “Zigbee2MQTT”
Stel het IP van je MQTT server in, waarschijnlijk 127.0.0.1

Klaar!

mosquitto

Problemen met de nieuwste Mosquitto versie? Downgraden is mogelijk.