Het MQTT protocol is ontworpen voor snelle en lichtgewicht communicatie tussen iot apparaten. Je kunt het gebruiken om bijvoorbeeld je ESPeasy devices te laten praten met domoticz. Het MQTT protocol is sneller en eenvoudiger dan http. In deze blogpost lees je hoe je een MQTT broker installeert en gebruikt met domoticz.
Mijn Domoticz draait op een Synology NAS. Daarom ga ik ook de MQTT broker op de NAS installeren. We maken daarvoor gebruik van het Mosquitto package uit het DSM Package center. Nadat Mosquitto geïnstalleerd is, gaan we de broker instellen in domoticz.
MQTT installeren op Synology NAS
Het Mosquitto package wordt niet geleverd door Synology en staat dus niet tussen de standaard packages van het Package Center in DSM. Je kunt zelf extra repositories toevoegen die je vertrouwd. Met het toevoegen van een extra repo kun je het aantal installeerbare pakketten aanzienlijk uitbreiden. Een repo die goed bekend staat is die van de Synocommunity.
Synocommunity toevoegen aan Package center
Benodigde tijd: 5 minuten
Hieronder staat een stappenplan hoe je de extra repository Synocommunity kunt toevoegen aan het Synology Package Center.
- Log in op je NAS
Log in bij Disk Station Manager van je Synology NAS. Meestal te bereiken door het ip-adres in je browser in te typen gevolgd door het poortnummer.
- Open het Package Center
Klik in het hoofdmenu op Package Center
- Vertrouwensniveau
In het Package Center klik je op instellingen. Kies bij Vertrouwensniveau voor ‘Elke uitgever’.
- Pakketbronnen
Onder het tabje ‘Pakketbronnen’ kun je extra repositories toevoegen. Klik op toevoegen en voer een naam in. Vul de url http://packages.synocommunity.com/ in bij locatie.
- Beschikbare pakketten bekijken
In het Package Center is er nu een nieuwe tab verschenen. Klik op de nieuwe tab ‘Gemeenschap’. Alle pakketten die nu verschijnen kun je installeren.
Mosquitto installeren op Synology NAS
Klik op de knop installeren van het pakket Mosquitto. Een installatie wizard volgt. Alle standaard opties zijn goed. Wanneer de wizard is voltooid draait Mosquiito op je Synology NAS. Nu kunnen we de koppeling naar domoticz gaan maken.
In domoticz ga je naar Hardware via het menu Instellingen. Kies uit het dropdown menu de optie ‘MQTT client Gateway with LAN interface’. Als je MQTT server (broker) op hetzelfde apparaat draait als domoticz, kun je bij ‘Remote adress’ ‘localhost’ invullen. Draait de MQTT server op een ander apparaat, dan vul je hier het ip adres in van dat apparaat. Vul voor de poort 1883 in. De gebruikersnaam en wachtwoord worden standaard niet gebruikt. Voor het publish topic heb je een aantal keuzes. Ik heb voor de simpelste gekozen, gewoon ‘out’.
Publish en Subscribe
Op de ‘topics’ waarmee MQTT werkt, kunnen apparaten zich abonneren. Domoticz publiceert zijn wijzigingen in het topic domoticz/out. Zo weet ieder apparaat wat zich geabonneerd heeft op domoticz/out van de statuswijziging. Op die manier schakelt bijvoorbeeld een ESPeasy apparaat in of uit. ESPeasy apparaten publiceren naar domoticz/in, waar domoticz zelf op geabonneerd is, zodat domoticz reageert op de wijziging, bijvoorbeeld bij een update van een temperatuursensor.
Updates ontvangen van sensoren via MQTT
Nu het instellen gereed is, kunnen we zien of het werkt. Log in bij een apparaat dat kan communiceren via MQTT. Als voorbeeld zal ik ESPeasy nemen, bijvoorbeeld als je een WiFi thermometer hebt gemaakt.
Log in op je device door naar het ip-adres van het apparaat te browsen. Onder de tab ‘Controllers’ kun je instellen hoe ESPeasy communiceert met domoticz. Klik bij regel 1 op Edit en kies in het menu voor ‘Domoticz MQTT’
In het volgende scherm kun je nu het ip-adres en poort opgeven van je Mosquitto MQTT broker. Als je Mosquitto hebt draaien op hetzelfde apparaat als domoticz vul je het ip-adres in wat je ook voor domoticz gebruikt. De controller port is weer 1883. Het subscribe topic is ‘domoticz/out’, het publish topic is domoticz/in.
Wanneer er nu een update van de sensor wordt gegeven door ESPeasy, komt dat via MQTT aan bij domoticz. Domoticz luistert naar alle berichten in het topic domoticz/in. Kijk in je log of je de berichten ook ziet binnenkomen.
Wat vond je van dit artikel?
Geef hieronder je stem via de sterren. Laat weten wat je vindt van het artikel en stel je vragen in de reacties!
Heel interessant deze methode.
Ik heb de door jou beschreven watermeter ook toegevoegd aan mijn Domoticz welke op een raspberry draaid.
Om te communiceren gebruik ik dus ook de ESPeasy maar dan met het HTTP protocol
Ik zou dus de broker op mijn raspberry moeten zetten om dit ook via MQTT te laten lopen ???
Hoi Nico,
Ja vaak installeer je mqtt en Domoticz op hetzelfde apparaat. Maar het maakt niet zoveel uit waar de broker op draait. Wanneer je de mqtt broker op een ander apparaat draait dan waar domoticz op draait moet je het ip adres gebruiken van de broker in alle mqtt communicatie. Dus ook in de mqtt plugin van domoticz ipv localhost.
Groet Wouter
Heb je hiermee geen zigbee2mgtt plugin meer nodig op je synology?
Ik ben een totale newbie in deze domotica wereld en wil het graag leren.
Heb Domotica (zonder Docker) op een mijn synology kunnen installeren maar ik ben nog zoekende hoe ik mijn zigbee apparaten (Hue, Trådfri) met elkaar kan koppelen.
Kan je me op weg helpen?
Hoi Ronny,
Goed dat je even reageert. Zigbee2mqtt is namelijk iets anders dan mqtt. Mqtt opzich is een communicatieprotocol, een taal zeg maar, voor apparaten. Zigbee2mqtt is een zigbee coördinator, een zigbee zender en ontvanger zeg maar. Het speciale aan zigbee2mqtt is dat het de zigbee taal vertaalt naar mqtt. Daardoor is het in veel gevallen inzetbaar, omdat veel apparaten de mqtt taal spreken. Daarnaast is het gebaseerd op zeer goedkope hardware en redelijk eenvoudig te installeren op een pi. Het is mij niet gelukt het op de synology nas aan de gang te krijgen.
Wanneer je met tradfri of hue aan de slag wilt in combinatie met domoticz heb je een zigbee coördinator nodig. Een ‘tolk’ die de zigbee taal omzet naar een taal die domoticz spreekt. Dat kan zijn een hue bridge, ikea trådfri hub, zigbee2mqtt of een zigate. Ikzelf draai ook domoticz zonder docker op de nas en gebuik een zigate. Deze heeft doormiddel van de Zigate plugin een zeer goede implementatie in domoticz. Lees daarvoor mijn blog zigate installeren op synology nas.
In mijn huis gebruik ik zo’n 15 zigbee lampen en sensoren van diverse merken zoals ikea en xiaomi. Werkt allemaal perfect in combinatie met zigate en Domoticz.
Zo kun je wel weer verder denk ik.
Groet Wouter
Ben ook bezig om zigbee2mqtt op mijn nas te plaatsen (DS-216j), ook bij gaat het niet.
ben nu bezig om Zigate te installeren via jou gegevens, als USB-stick heb ik een CC2531 en Conbee 2 , met die krijg ik het niet werkend , gaat het alleen maar met die stick in jou blok
Hoi John,
De Zigbee2mqtt software heb ik nooit werkend gekregen op de nas. Daarom heb ik een zigate gekocht.
De Zigate werkt alleen met de Zigate plugin voor domoticz. De Conbee is volgens mij ook zo’n zelfde stick als een zigate maar vereist wel een andere plugin voor domoticz. Hoe je de Zigate aan de praat krijgt op de nas lees je in
https://www.twoenter.nl/blog/domotica/zigbee-gateway-gebruiken-met-synology-nas-en-domoticz-zigate/
Groet Wouter
Wouter,
Welke pakketten heb jij op je nas (ds-216j) geïnstalleerd.buiten Domoticz
Hoi John,
Niet zo veel.
Mqtt (mosquitto)
Domoticz
Git server
Node js
Ds photo, video
Python
Misschien nog wel wat 😬
Groet Wouter
Prima artikel Wouter!
Ik heb de MQTT plugin direct onder de Domoticz-Hardware kunnen installeren.
Ik wil dit gebruiken om mijn Tasmota wcd vanuit Domoticz te bedienen en krijg de volgende log melding.
Status: MQTT: Connecting to localhost:1883
Error: MQTT: Failed to start, return code: 14 (Check IP/Port)
=> Dien ik éérst nog MQTT op mijn SD kaartje te installeren, óf is dit standaard al aanwezig bij de laatste Domoticz update?
Problem Solved! 😉 én “weer een boel geleerd”.
Na weer verder/dieper zoeken op Google een MQTT install op mijn SD kaartje gezet.
Waar liep ik zoal nog tegen aan? “Broken installs”, “Are you Root?”, maar deze allemaal “geslecht en nu is m’n Tasmota wcd ook vanuit Domitcz te bedienen.
Nogmaals bedankt voor je keurige artikelen steeds!
Hoi Thomas,
Aan je reacties te zien van de afgelopen dagen ben je weer lekker aan het knutselen geweest. Blijkbaar ben je een trede gestegen in je permissies mbt reacties geven, want ik krijg geen bericht meer als je reageert. Jouw reacties worden automatisch goedgekeurd. Goed gedaan :-)! Ik zal vaker kijken of er nieuwe reacties zijn die automatisch zijn goedgekeurd 😉
Mooi dat intussen alles gelukt is, je bent weer heel wat wijzer! Leuk dat je hier blijft rondneuzen en blijft reageren, dat houdt mij ook enthousiast!
Om nog inhoudelijk te reageren: je moet inderdaad eerst Mosquitto installeren om de plugin in domoticz te kunnen gebruiken. Wanneer Mosquitto niet draait, kan domoticz de poort met de MQTT service niet vinden en gebruiken.
Veel plezier met weer een mooier smarthome
Groet Wouter
Beste….
Leuk artikel maar helaas klopt de link (bij 4 pakket bronnen) niet meer… moet zijn…https: ipv http:
dus https://packages.synocommunity.com/
.
het werkt bij mij nog niet maar dat zal vast ergens anders aan liggen.
Vriendelijke groeten Ton
Hoi Wouter, heb je ook node red geïnstalleerd? Mijn beeld is dat nodered (simpelprogrammeren) in combinatie met mosquito (berichten heen en weer naar domoticz) een goede methode is om simpel wat complexere scripts te bouwen. Ben benieuwd naar je reactie.
Hoi marvin,
Ja node red draait ook op mijn nas. Klopt, je kunt op een overzichtelijke manier aardig complexe scripts bouwen. Ik heb bijvoorbeeld een script wat domoticz laat communiceren met Google assistant. Met node red en paar blokjes in de juiste volgorde schuiven en het werkt. Met dzvents of Python zou ik niet weten waar te beginnen. Het staat nog op de agenda om daar eens een artikel over te schrijven.
Groet Wouter
Dag Wouter,
Ook ik wil graag aan de slag met MQTT. Heb daartoe de uitleg van je artikel getracht uit te rollen op mijn DS-718 waar Domoticz en Mosquitto op draaien. Tevens op een ESP8266 met de volgende software het tabblad Controllers de uitvoer geregeld:
Build Time:⋄ Dec 27 2020 11:35:51
Binary Filename:⋄ ESP_Easy_mega_20201227_normal_ESP8266_4M1M
Build Platform:⋄ Linux-4.19.104-microsoft-standard-x86_64-with-glibc2.29
Git HEAD:⋄ mega-20201227_b706392
Op de ESP zijn 2 DS18B20 aangesloten voor de invoer- en retour temperatuur van de CV. Die data komt wel keurig binnen via HTTP in Domoticz en dat is te zien in de logfile. Maar ik krijg geen logregels te zien van MQTT zoals je hierboven in het artikel toont. Moet ik daarvoor misschien een instelling wijzigen in Domoticz? Draai momenteel nog versie 2020.1.
Bij de Instellingen van de Hardware van MQTT is tegenwoordig ook een optie Prevent Loop. Bij mij staat die op True..
Heel benieuwd naar oplossing.
Hoi Pieter,
Als ik het zo lees lijkt het in orde te zijn. Staan de ip adressen en poorten goed ingesteld in ESPeasy? Is de mqtt controller enabled? Zie tabje controllers. In domoticz staat ook het vinkje aan bij actief van mqtt in hardware overzicht?
Succes
Wouter
Ik heb oplossing inmiddels in het Domoticz-forum gevonden en MQTT vanaf een ESP naar Domoticz ook werkend gekregen. Ik moet natuurlijk wel naar goede ip-adres van broker in mijn netwerk verwijzen… De data van een ESP werkt nu ook de virtual sensors in Domoticz bij. Kennelijk is de weergave in de logfile versie-gevoelig. Er schijnt in configuratiefile domoticz.sh een toevoeging gedaan te moeten worden waardoor er een tabblad in het logvenster bijkomt waarin de MQTT-meldingen getoond worden.
Zie https://www.domoticz.com/forum/viewtopic.php?f=6&t=36171&p=274250&hilit=MQTT#p274250
Met dank voor je hints.