ESPEasy kan nu veel verschillende sensoren en/of regelactuatoren uitlezen (zie ook ESPEasy – sensoren & actuatoren). Met behulp van de “Regels” kun je hier vervolgens lokaal op de ESP op reageren en overeenkomstig handelen.
Maar de verzamelde sensordata kunnen ook verzonden worden. Deze gegevens kunnen bijvoorbeeld in het SmartHome-systeem worden verzameld of verder verwerkt. Verzenden via het MQTT-protocol is hiervoor ideaal.
In het volgende artikel wordt beschreven hoe u uw ESPEasy-instantie registreert bij een MQTT-server.
Veiligheidsinstructies
Ik weet dat de volgende opmerkingen altijd een beetje vervelend zijn en onnodig lijken. Helaas hebben veel mensen die "beter" wisten door onvoorzichtigheid ogen, vingers of andere dingen verloren of zichzelf verwond. Gegevensverlies is in vergelijking bijna te verwaarlozen, maar zelfs dit kan erg vervelend zijn. Neem daarom vijf minuten de tijd om de veiligheidsinstructies te lezen. Omdat zelfs het coolste project geen blessure of andere problemen waard is.
https://www.nerdiy.de/sicherheitshinweise/
Affiliate links / reclame links
De hier vermelde links naar online winkels zijn zogenaamde affiliate-links. Als u op zo'n affiliate-link klikt en via deze link een aankoop doet, ontvangt Nerdiy.de een commissie van de betreffende onlineshop of aanbieder. De prijs verandert voor jou niet. Als u via deze links uw aankopen doet, steunt u Nerdiy.de om in de toekomst andere nuttige projecten aan te kunnen bieden. 🙂
Eisen
Handige artikelen:
Aanvullende tips over ESPEasy vindt u in de volgende artikelen.
- ESPEasy - Voer opdrachten en acties uit via HTTP, MQTT, UDP en rechtstreeks
- ESPEasy – Firmware compileren en flashen en WiFi-toegangsgegevens configureren
- Categorie – ESPEasy
Vereist gereedschap:
- Nee -
Benodigd materiaal:
Welke MQTT-server gebruiken?
Er zijn nu verschillende MQTT-servers die u kunt gebruiken. Er zijn bijvoorbeeld ook openbare MQTT-servers die via internet toegankelijk zijn.
Persoonlijk wil ik hier geen gebruik van maken omdat het naar mijn mening twee nadelen heeft:
- Mijn gegevens verlaten mijn netwerk en komen op een buitenlandse server terecht. Hoewel de normen voor gegevensbescherming nu erg hoog zijn, kunnen aanvallen/fouten er nog steeds toe leiden dat mijn gegevens worden gepubliceerd.
- De openbare MQTT-server is alleen te bereiken als er een internetverbinding met deze server is. Als dit niet lukt, mislukt ook het doorsturen van de gegevens daarheen. Dit kan ook betekenen dat eventuele gerelateerde automatiseringen niet meer werken.
Beide nadelen zijn eenvoudig te voorkomen door gebruik te maken van uw eigen MQTT-server. Deze kan bijvoorbeeld op een Raspberry Pi worden geïnstalleerd. Informatie hierover vindt u in het artikel RaspberryPi - MQTT-server installeren op de RaspberryPi.
Configureer aanmelding bij de MQTT-server
Om ervoor te zorgen dat u de MQTT-server in uw ESPEasy-instantie kunt invoeren, moet de ESPEasy-firmware al op de ESP8266 zijn geïnstalleerd en toegankelijk zijn. Informatie hierover vindt u ook in het artikel ESPEasy – Firmware compileren en flashen en WiFi-toegangsgegevens configureren.
Open eerst de configuratiewebsite van uw ESP8266 geprogrammeerd met ESPEasy door het IP-adres in uw webbrowser in te voeren. Informatie over hoe u het IP-adres kunt achterhalen, staat ook in het artikel Toon/ontdek het IP-adres van de apparaten in het netwerk samengevat.
Nadat u de configuratiewebsite heeft geopend, moet u overschakelen naar het tabblad “Controllers”. Om dit te doen, klikt u op de knop "Controllers".
Klik nu op de knop “Toevoegen” in een van de nog lege regels.
Hierdoor wordt u doorgestuurd naar een pagina met een vervolgkeuzemenu.
Open het vervolgkeuzemenu door erop te klikken en selecteer de vermelding "Home Assistant (openHAB) MQTT".
U wordt dan doorgestuurd naar de configuratiepagina van deze controller (=MQTT-server). Eerst kunt u hier kiezen of u het adres van de MQTT-server als hostnaam of IP-adres wilt opgeven.
In het hier getoonde voorbeeld gebruik ik een hostnaam. Maar je kunt ook een IP-adres gebruiken. Als u dit doet, moet u uw router zo configureren dat het IP-adres permanent wordt ingesteld.
U kunt de andere instellingen accepteren zoals weergegeven.
Het is belangrijk dat de poort is ingesteld op de geconfigureerde poort van uw MQTT-server (standaard 1883).
U moet ook de inloggegevens voor uw MQTT-server opgeven als authenticatie vereist is. Om dit te doen, voert u uw gebruikersnaam en wachtwoord in de daarvoor bestemde velden in en vinkt u het vakje “Gebruik uitgebreide referenties” aan.
U kunt de overige instellingen configureren zoals weergegeven. Voor de volledigheid volgt hieronder een korte beschrijving.
- “Controller Client ID”: Hier kunt u de naam/ID van uw controller voor de MQTT-server opgeven.
- “Unieke client-ID bij opnieuw verbinden”: Als dit selectievakje is aangevinkt, wordt er een willekeurige ID toegevoegd wanneer er wordt geprobeerd een nieuwe verbinding te maken. Dit voorkomt (zeer waarschijnlijk) dat twee clients met dezelfde ID worden verbonden.
- “Publish Retain Flag”: Als dit selectievakje is geactiveerd, worden gepubliceerde waarden inclusief de “Retain Flag” verzonden.
- “Controller Subscribe”: Op dit onderwerp is de controller geabonneerd. Via dit onderwerp kunnen dan bijvoorbeeld opdrachten naar ESPEasy worden verzonden. Informatie hierover vindt u ook in het artikel ESPEasy – voer opdrachten en acties uit via HTTP, MQTT, UDP en rechtstreeks.
- “Controller Publish”: Hier wordt het onderwerp gedefinieerd waaronder sensorwaarden (indien geactiveerd) worden gepubliceerd.
- “Controller LWT Topic”: De MQTT-server kan via de LWT (“Last Will/Testament”) rapporteren over de verbindingsstatus van de client.
- “LWT Connect / Disconnect Message”: Met deze optie kan worden aangegeven welk bericht via het LWT-topic wordt verzonden bij een verbinding of bij het wegvallen van de verbinding.
- “Send LWT to broker”: Schakelt de LWT-functionaliteit in/uit
- “Will Retain”: Stelt de “Retain Flag” in voor berichten verzonden via het LWT-onderwerp.
- “Schone sessie”: Schakelt een “schone sessie”-aanmelding in/uit
- “Ingeschakeld”: Schakelt deze controller in/uit
Zodra u alle instellingen naar wens heeft geconfigureerd, kunt u de instellingen toepassen door op “Verzenden” te klikken.
Uw controller zou dan in het controlleroverzicht moeten staan.
Als u meer dan één controller hebt geconfigureerd, moet u het aantal onderdelen onthouden waarin de MQTT-server is geconfigureerd. In dit voorbeeld is de MQTT-server de Eerst controleurs.
Configureer het verzenden van sensorgegevens
Nadat de MQTT-server is geconfigureerd, kunt u nu de gegevens van een aangesloten sensor via MQTT naar uw eerder geconfigureerde MQTT-server sturen.
Om dit te doen, gaat u eerst naar het tabblad “Apparaten” door op de knop “Apparaten” te klikken.
Als u dit nog niet heeft gedaan, moet u eerst een sensor configureren.
In dit voorbeeld wordt de DHT11 gebruikt.
Om dit te doen, klikt u op de knop “Toevoegen” in de eerste lege regel van het tabblad “Apparaten”.
Configureer vervolgens de optie voor “GPIO Data” en “Sensormodel” volgens uw sensor.
Maar nu naar het MQTT-gedeelte:
Om ervoor te zorgen dat ESPEasy de sensorgegevens naar de MQTT-server verzendt, moet u het vinkje in de sectie "Verzenden naar controller" activeren. Omdat u de gegevens naar de Eerst Als u de controller wilt verzenden, staat het vinkje naast “1”.
Met de optie “Interval” kunt u opgeven hoe vaak de sensor wordt uitgelezen. De gegevens worden vervolgens met hetzelfde interval verzonden. In het getoonde voorbeeld wordt de sensorwaarde elke seconde uitgelezen en via MQTT verzonden.
Sla deze instellingen opnieuw op door op “Verzenden” te klikken.
Terug op het tabblad ‘Apparaten’ zie je nu ook de ingevoerde controller.
Vervolgens kan met een externe MQTT-client worden gecontroleerd of de gegevens worden verzonden.
Op de afbeelding ziet u een fragment uit de weergave van de “MQTT Explorer”. Deze tool is gratis en is zeer nuttig bij het omgaan met MQTT-berichten.
Maak een MQTT-apparaat om u te abonneren op een MQTT-onderwerp
U kunt zich ook op bepaalde andere onderwerpen abonneren via een ander virtueel “apparaat”. De ontvangen waarden kunnen vervolgens aan de hand van bijvoorbeeld regels verder worden verwerkt.
Om dit te doen, schakelt u terug naar het tabblad “Apparaten” door op de knop “Apparaten” te klikken.
Klik vervolgens op de knop “Toevoegen” in de eerste lege regel.
Vervolgens wordt u doorgestuurd naar een vervolgkeuzemenu. Selecteer hier de vermelding "Generiek – MQTT-import".
In het menu dat verschijnt kun je je op maximaal vier onderwerpen abonneren. Vul dit in onder “MQTT Topic 1 – 4”.
In het gedeelte “Waarden” kunt u vervolgens de namen van de variabelen opgeven. Deze variabelen bevatten later de via MQTT ontvangen waarden. Dit is bijvoorbeeld van belang als je met ‘Regels’ op deze waarden wilt reageren.
Nadat u alles naar wens heeft geconfigureerd, controleert u nogmaals of u “Ingeschakeld” heeft aangevinkt en bevestigt u de instellingen door op “Verzenden” te klikken.
Nu kunt u met behulp van regels reageren op de geabonneerde onderwerpen. Om dit te doen, moet u eerst naar het tabblad “Regels” gaan.
Als dit niet zichtbaar is, moet u dit eerst activeren.
Om dit te doen, klikt u op “Extra” om naar het tabblad “Extra” te gaan.
Klik op “Geavanceerd”…
...en vink de optie “Regels” aan.
Bevestig vervolgens deze instelling door op de knop “Verzenden” te klikken.
Het tabblad ‘Regels’ zou nu zichtbaar moeten zijn.
Als dit niet het geval is, moet dit uiterlijk na het “herladen” van de pagina zichtbaar worden.
Op MQTT#Value_of_TestTopic1 doen
als [MQTT#Value_of_TestTopic1]=1,00
pbani,5,150,0,0,0,0,0,
laatste
eindigt op
Op het tabblad ‘Regels’ kunt u vervolgens bijvoorbeeld de getoonde regels invoeren. Deze veroorzaken elke keer dat het onderwerp “Value_of_TestTopic1'Er wordt er één ontvangen, het commando'pbani,5,150,0,0,0,0,0," is uitgevoerd.
Deze opdracht maakt deel uit van de pxlBlck-plug-in. Ook hierover kunt u hier informatie vinden pxlBlck - Opdrachten voor het configureren van de pxlBlck
Meer sensoren om aan te sluiten op de ESP8266 / ESP32
Een overzicht van andere artikelen voor het aansluiten van sensoren en actuatoren op ESPEasy vindt u in de volgende categorie.
Veel plezier met het project
Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn altijd welkom. 🙂
PS Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik dit omdat ik het leuk vind, maar als je het cool vindt dat ik de informatie met je deel, dan zou ik blij zijn met een kleine donatie aan het koffiefonds. 🙂