Configurare MQTT în Home Assistant
Mosquitto Broker este un add-on din HOME ASSISTANT prin care se instalează broker-ul de MQTT. Nu este folosit pentru comunicarea HA cu broker-ul, scopul acestui add-on este doar de a crea broker-ul, la care se poate conecta orice client, HA fiind un client. Pentru a conecta HA la broker se folosește integrarea MQTT.
După ce Home Assistant este conectat la broker (add-on) prin integrare, folosește MQTT pentru a expune entități pentru a fi folosite de alte integrări sau de a adăuga entități primite de la alte integrări.
În principal poți expune entități într-un anumit topic și te poți abona la anumite topic-uri pentru a primi update-uri despre entități.

Configurare Add-on Mosquitto Broker
După ce se instalează se merge la Configuration și se adaugă în config username-ul și parola cu care te vei putea conecta la Broker, în secțiunea Options:
logins:
– username: Choose_username
password: Choose_password
Acest username trebuie să existe și în HA, deci trebuie creat contul înainte în HA.
Se salvează setările și apoi se pun porturile în secțiunea Network. Se salvează și aceste setări. Pe urma se merge la tab-ul Info unde se bifează doar Start on boot și Watchdog. Apoi se da Start (se verifica în tab-ul de logs să nu fie erori după pornire).
Mod funcționare Home Assistant cu MQTT
Home Assistant permite adăugarea de entități printr-un mesaj MQTT discovery, de un anumit format, pe un topic la care HA este abonat să asculte. Pe baza acestor informații primite în mesaje, HA știe să-și creeze entitățile. Pentru acest lucru este necesar ca HA să aibă o comunicare setata cu add-on-ul de broker cat și să permită Discovery la device-uri.

Configurare integrare MQTT
Pentru a expune entitățile de HA în Mosquitto Broker este nevoie de un client de MQTT. Pentru acest lucru în HA exista integrarea MQTT. Se instalează integrarea MQTT și se configurează astfel:

Broker: core-mosquitto
- În cazul în care nu funcționează numele container-ului sau broker-ul se află pe altă mașina poți pune adresa IP a acestuia
Port: 1883
Username: username-ul setat la configurarea add-on-ului
Password: parola setata la configurarea add-on-ului
În următorul ecran la MQTT Options se setează următoarele lucruri:
- se bifează Enable Discovery. Acest lucru permite HA să adauge entitățile noi pe baza mesajelor MQTT discovery trimise la Broker de alte integrări.
- se bifează Enable birth message. Acest lucru înseamnă ca la conectarea la Broker, HA va trimite un mesaj standard de început prin care anunța ca este online. Folosit de alte integrări să știe când HA este up and running. Acest mesaj de Birth se va publica în topicul dorit, default fiind /homeassistant/status, dar pentru când există mai multe mașini cu Home Assistant în rețea (master/slaves) este posibil să configureze alt topic.
- Birth message paylod: online
- QoS: nimic
- Se setează Birth message retain
- se bifează Will message retain. Acest lucru înseamnă ca la deconectare se va publica mesajul de la Will message paylod pe topic-ul Will message topic. Acest mesaj are rolul de a anunța alți clienți ca HA-ul este offline
- Configurările de la Will se fac similar cu cele de la Birth cu mențiunea ca la payload este valoarea
Configurarea mesajele de Birth și Will sunt trimise de Home Assistant către Broker pentru a-l instrui ce să facă dacă de ex HA se deconectează brusc de la Broker. În acest caz Broker-ul a primit instrucțiunea de Will (pe ce topic și ce să publice) și știe că dacă dispare brusc HA-ul (se deconectează) să publice payload-ul pe topic-ul specificat. Astfel dacă a picat brusc un HA ceilalți clienți vor fi anunțați de Broker de acest lucru.
Mesajele de Birth și Will prefer să le pun retained pentru că nu se pierd când se restarteaza Broker-ul. Ele oricum sunt configurate iar când se conectează HA la broker, dar dacă s-ar reseta doar Broker-ul (nu și HA) atunci nu ar mai știi instrucțiunile de Birth și Will până nu se restartează și HA-ul, ca să le retransmită.
Work hard, play hard, be Smart!