Installer Mosquitto MQTT-broker og Zigbee2mqtt

I denne artikel vil jeg gennemgå installationen af to komponenter – Mosquitto MQTT-broker og Zigbee2mqtt. Men inden vi kaster os ud i installationen, lad mig kort forklare hvad de forskellige applikationer/komponenter gør – og hvad deres formål er 😄

Zigbee2mqtt logo 🐝

Mosquitto MQTT broker

MQTT (Message Queuing Telemetry Transport) er en åben standard der meget kort fortalt transporterer meddelelser mellem enheder i et public-subscribe format (det kommer jeg ind på senere),. Og netop fordi det er en åben standard, betyder at der findes et hav af forskellige applikationer der understøtter MQTT.

Lidt historie om MQTT

Andy Stanford-Clark

Andy Stanford-Clark fra IBM og Arlen Nipper fra firmaet Cirrus Link byggede den første version af MQTT-protokollen tilbage i 1999. Den blev blev brugt til at overvåge en olieledning gennem ørkenen. Målet var at have en simpel og let protokol, der ikke krævede ret meget – hverken båndbredde eller strøm. Dengang var enhederne forbundet via en satellitforbindelse, og på det tidspunkt var det en meget bekostelig affære, så derfor var det vigtigt at kommunikationen fyldte så få bytes som muligt. MQTT er stadig meget brugt i dag, til at sende hurtige små beskeder på tværs af enheder, Zigbee bygger bl.a. på en variant af MQTT kaldet MQTT-SN, der er specielt bygget til IoT-enheder som ofte er batteridrevne og derfor strøm-følsomme.

MQTT består af 2 komponenter/niveauer, der er en sender (public) og en modtager (subscribe), hvilket gør MQTT til en såkaldt pub-sub protokol. En modtager (subscriber) kan lytte på en bestemt kanal, f.eks. “mqtt/lampe1”, og hver gang der sendes noget til den kanal, modtager lampen det – det kunne f.eks. være “turn_on”, “turn_off”, “dim” mv. Lige ligesom en walkie-talkie, hvor man indstiller begge walkie-talkies til f.eks. kanal 27, og så kan de snakke sammen, men kun en ad gangen kan snakke, mens den anden lytter.

Da vores Zigbee2mqtt system benytter MQTT til at sende signaler imellem enheder, skal vi bruge en MQTT-server, også kaldet en MQTT broker. Og Mosquitto er netop sådan en – en MQTT server som kan distribuere signaler mellem enheder som kobler sig ind på serveren.

Let’s install Mosquitto 🙂

Det er heldigvis super nemt at installere en MQTT-broker i Hass. Vi hopper under vores Add-on store, som vi har gennemgået flere gange tidligere, søger efter “mosq” for at installere den officielle MQTT Mosquitto broker:

Tryk på “Install” for at starte installationen:

Sæt hak i “Start on boot” og tryk på start, så tjenesten starter op og bliver grøn som vist her:

Da vores nye MQTT broker bruger Home Assistants indbyggede bruger-system til at autentificere brugere, laver vi en ny bruger specifikt til vores MQTT tjenester – jeg kalder min noget så simpelt som “mqtt”. Denne bruger skal vi taste ind i alle andre tjenester der skal kommunikere over vores MQTT-server, som bl.a. senere i denne artikel hvor vi installerer Zigbee2MQTT 🙂

👥 Se evt. min guide her om oprettelse nye brugere i Home Assistant her.

✅ Done! Så er vores MQTT-server klar til brug 🎉

Lad os installere zigbee2mqtt

Da Zigbee2mqtt er community-dreven software, skal vi først tilføje et nyt Repository til vores Home Assistant. Det gør vi ved at trykke ind i vores Supervisor i sidemenuen → vælge Add-on Store og så klikke ind på “:”-knappen i toppen og vælg “Repositories“:

Her skal du tilføje følgende repos til din Hass Add-on Store:

https://github.com/danielwelch/hassio-zigbee2mqtt

Efter det er tilføjet, får du to nye software-komponenter i din Add-on store, zigbee2mqtt og zigbee2mqtt-edge. Vi installerer zigbee2mqtt versionen, edge-versionen er den nyeste test/beta-version, men jeg anbefaler at holde sig til den stabile og lidt mere gennemtestede version, fremfor de seneste udviklingsversioner 😎 Men er du modig (eller oplever nogle mærkelige fejl, kan du altid prøve -edge versionen).

Efter installationen af Zigbee2mqtt, skal du hoppe under fanen “Configuration” og indsætte det brugernavn og kodeord, som vi lavede før til vores MQTT broker server.

I “server:” udfylder du også som vist på billedet herunder: mqtt://core-mosquitto:1883 og i user: og pass: udfylder du hhv. dit brugernavn mqtt og dit password som forhåbentlig er lidt mere komplekst end 123456 😄

Efter du har rettet konfigurationen og trykket “Save” for at gemme ændringerne, kan du nu starte din nye Zigbee2mqtt tjeneste. Husk at sikre “Start on boot” er slået til.

Når du har trykket på “Start”, er det altid en god idé at trykke ind i fanen “Log” for at sikre sig, at tjenesten starter korrekt op. Bemærk at vores “Log” ikke opdateres automatisk, derfor skal vi klikke på den lille “Refresh”-knap i bunden af siden, for at opdatere log-filen løbende.

Hvis du ikke får nogle fejl, men en masse grønne linjer som her, er alt godt. Hvis du får en rød linje, er du nødt til at læse hvad fejlen er, og rette op på det den brokker sig over. Typisk vil fejlen være, at den ikke kan få forbindelse til din MQTT-server, hvis du f.eks. har indtastet forkert servernavn, brugernavn eller password:

Tjek evt. også loggen på vores MQTT addon for at bekræfte i dennes log, at din Zigmee2mqtt er forbundet med success:

✅ Done! Vi har nu installeret zigbee2mqtt og forbundet denne med vores MQTT-broker 🎉

Sammenkobl MQTT med Home Assistant

Nu hvor vores to nye add-ons er kørende og spinder derudaf, skal vi integrere vores MQTT broker ind i vores Home Assistant Installation.

Dette gør vi, for at kunne finde alle de enheder der kobles ind på vores MQTT via i dette tilfælde zigbee2mqtt.

Der findes mange andre enheder udover denne Zigbee-installation der benytter MQTT, f.eks. er det muligt at custom flashe rigtig mange smart-plugs (bl.a. Sonoff) med open-source firmwaren Tasmota som også benytter MQTT, alt dette kan du koble ind i samme MQTT-broken, og så vil enhederne automatisk poppe ind i dine Home Assistant, klar til brug 🍭 Kort fortalt én MQTT-broken kan bruges til mange ting – ikke kun denne Zigbee2mqtt.

Åben Integrationer

Hop ind i Indstillinger -> Integrationer for at starte en ny integration med vores nye MQTT-broker:

Her trykker du på ( + ) ikonet i bunden og søger efter “mqtt” for at oprette en ny integration:

På samme vis som tidligere, skal vi udfylde server-navn, brugernavn og kodeord. Værdierne udfyldes som her, dog med dit eget Brugernavn og Password, som du oprettede tidligere:

Hvis alt går godt… så får du denne besked, og integrationen er gennemført:

Tillykke 🙂 Du har nu gennemført denne guide og forhåbentlig har du en kørende MQTT og Zigbee2mqtt kørende nu. Zigbee2mqtt har intet UI, derfor anbefaler jeg alle der starter ud med MQTT og Zigbee2mqtt at installere en ekstra komponent kaldetZigbee2mqtt Assistant, som kort fortalt er en brugergrænseflade til Zigbee2mqtt 🙂

Det kan du læse mere om i min næste artikel: Zigbee2mqtt Assistant.