MQTT

MQTT = Message Queuing Telemetry Transport en wordt gebruikt door apparaten die berichten versturen. Dit bericht wordt dan verstuurd met behulp van MQTT waarin o.a. een id staat. Indien het device een id heeft voor AAN en een ander id voor UIT, dan worden dus twee verschillende berichten gestuurd, afhankelijk van de status van het device. Dit is dus uitermate handig voor het ‘slimme huis’!

Nu dienen deze MQTT-berichten dus allereerst opgevangen te worden en daarvoor kan een Raspberry Pi gebruikt worden waarop een ‘MQTT Broker‘ wordt geïnstalleerd. Als alternatief kan bv. een Intel NUC gebruikt worden waar een Linux OS op draait.

Een MQTT-Broker is een stukje software dat berichten kan ontvangen en opslaat in een ‘topic‘. Dat ‘topic’ kan uitgelezen worden door een ‘MQTT-Client‘ die de rechten heeft om hetzelfde ‘topic’ te lezen. Een MQTT broker voor Linux is ‘Mosquitto‘.

Mosquitto

De installatie van Mosquitto gaat het eenvoudigs via een Add-on in de Supervisor optie in Home Assistant. Na de installatie volgt de configuratie waarin ook een gebruikersnaam en wachtwoord aangemaakt kan worden.

Heb je niet de mogelijkheid om Mosquitto als add-on te installeren, dan kan het ook met apt geïnstalleerd worden:

$ sudo apt update
$ sudo apt install mosquitto
$ sudo systemctl enable --now mosquitto

Hiermee draait de MQTT broker met anonymous toegang en om dat uit te zetten zodat een username/password vereist is, wordt het bestand /etc/mosquitto/mosquitto.conf aangepast met extra regels:

allow_anonymous false
password_file /etc/mosquitto/passwordfile

Het password-bestand wordt alsvolgt aangemaakt waarbij voor de eerste user een password wordt gevraagd:

$ cd /etc/mosquitto
$ sudo mosquitto_passwd -c passwordfile mqtt_user1
...
$ sudo mosquitto_passwd -b passwordfile mqtt_user2 password
$ sudo systemctl restart mosquitto

RF-Bridge

De RF-accessoires die gebruikt worden in het ‘slimme huis’ kunnen niet zelf MQTT berichten versturen maar doen dat via een RF-Bridge. De RF-apparaten versturen een signaal via 433MHz en de RF-Bridge vangt dit op. Vervolgens stuurt de RF-Bridge een aangepast signaal door naar de MQTT-Broker met hierin het id van het apparaat. Een goedkope RF-Bridge voor Sonoff devices is bv. deze: https://www.sonoff.nl/a-52550339/accessoires/sonoff-rf-bridge-433-controller/#description

Om deze RF-Bridge te kunnen gebruiken zonder een cloud-abonnement dient deze ge-flashed te worden met andere firmware en om deze met Home Assistant te kunnen gebruiken is Tasmota het best geschikt. Op de Tasmota-pagina lees je hoe dit flashen gedaan kan worden. Eenmaal geflashed en opnieuw gestart kan de RF-Bridge geconfigureerd worden voor het doorgeven van berichten naar MQTT Broker. Op het Console van de RF-Bridge kun je de berichten voorbij zien komen:

Wat we nu willen gebruiken in de topic ‘tele/rf-bridge/RESULT’ is de inhoud van ‘Data’ in ‘RFReceived’. In dit voorbeeld ‘ABC123’:

10:08:58 MQT: tele/rf-bridge/RESULT = {"Time":"2021-10-08T10:08:58","RfReceived":{"Sync":12520,"Low":420,"High":1210,"Data":"ABC123","RfKey":"None"}}

Die code ‘ABC123’ wordt verstuurd door één van de RF-Sensors en is uniek dus hiermee wordt bepaald welke sensor dit verstuurd. Dit kan dan een bewegingsmelder of een deur/raam-sensor zijn.

Voorbeelden voor Home Assistant zijn hier te vinden.