ESPEasy kan nu veel verschillende sensoren en/of regelactuatoren uitlezen (zie ook ESPEasy – sensoren & actuatoren). De "regels" kunnen dan worden gebruikt om lokaal te reageren op de ESP en dienovereenkomstig te 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.
Zodra je de configuratiewebsite hebt geopend, moet je overschakelen naar het tabblad "Controllers". Klik hiervoor op de knop "Controllers".
Klik nu op de knop "Toevoegen" in een van de lege rijen.
Hierdoor wordt u doorgestuurd naar een pagina met een vervolgkeuzemenu.
Open het vervolgkeuzemenu door erop te klikken en selecteer het item "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).
Je moet ook de aanmeldingsgegevens voor je MQTT-server invoeren als deze verificatie vereist. Om dit te doen, voer je de gebruikersnaam en het wachtwoord in de overeenkomstige velden in en vink je het vakje "Use Extended Credentials" aan.
U kunt de overige instellingen configureren zoals weergegeven. Voor de volledigheid volgt hieronder een korte beschrijving.
- "Controller Client ID": Hier kun je de naam/ID van je controller opgeven voor de MQTT-server.
- "Unique Client ID on Reconnect": Als dit vakje is aangevinkt, wordt er een willekeurige ID toegevoegd wanneer er een nieuwe verbinding wordt geprobeerd. Dit voorkomt (zeer waarschijnlijk) dat twee clients met hetzelfde ID worden verbonden.
- "Vlag behouden publiceren": als dit vinkje is ingeschakeld, worden gepubliceerde waarden inclusief de "Vlag behouden" verzonden.
- "Controller Subscribe": dit topic wordt door de controller geabonneerd. Via dit topic kunnen dan bijvoorbeeld commando's naar ESPEasy gestuurd worden. Informatie hierover vind je ook in het artikel ESPEasy – voer opdrachten en acties uit via HTTP, MQTT, UDP en rechtstreeks.
- "Controller Publiceren": hier wordt het onderwerp gedefinieerd waaronder sensorwaarden worden gepubliceerd (indien geactiveerd).
- "Controller LWT Topic": De MQTT-server kan rapporteren over de verbindingsstatus van de client via de LWT (="Last Will/Testament").
- "LWT-verbindingsbericht / verbrekingsbericht": Deze optie kan worden gebruikt om het bericht op te geven dat via het LWT-onderwerp wordt verzonden in het geval van een verbinding of verbreking van de verbinding.
- "Stuur LWT naar makelaar": activeert/deactiveert de LWT-functionaliteit
- "Will Retain": Stelt de "Retain Flag" in voor de berichten die worden verzonden via het LWT Topic.
- "Schone sessie": activeert / deactiveert een "schone sessie" login
- "Ingeschakeld": Activeert / deactiveert deze controller
Zodra je alle instellingen naar wens hebt geconfigureerd, kun je de instellingen toepassen door op "Submit" 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.
Ga hiervoor 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.
Klik hiervoor op de knop "Toevoegen" in de eerste lege regel op het tabblad "Apparaten".
Configureer vervolgens de optie voor "GPIO Data" en "Sensormodel" volgens je sensor.
Maar nu naar het MQTT-gedeelte:
Om ESPEasy de sensordata naar de MQTT-server te laten sturen, moet je het vinkje in de sectie "Send to Controller" activeren. Aangezien u de gegevens naar de Eerst controller is aangevinkt naast de "1".
Je kunt de optie "Interval" gebruiken om aan te geven hoe vaak de sensor wordt uitgelezen. De gegevens worden dan met hetzelfde interval verzonden. In het getoonde voorbeeld wordt de sensorwaarde elke seconde uitgelezen en verzonden via MQTT.
Sla deze instellingen opnieuw op door op "Submit" te klikken.
Terug op het tabblad "Apparaten" kun je nu ook de controller zien die je hebt ingevoerd.
Vervolgens kan met een externe MQTT-client worden gecontroleerd of de gegevens worden verzonden.
De afbeelding toont een deel van de "MQTT Explorer" weergave. Deze tool is gratis en is erg handig bij het omgaan met MQTT-berichten.
Maak een MQTT-apparaat om u te abonneren op een MQTT-onderwerp
Je kunt je ook abonneren op bepaalde andere onderwerpen met behulp van een ander virtueel "apparaat". De waarden die via dit apparaat worden ontvangen, kunnen dan verder worden verwerkt met regels, bijvoorbeeld.
Ga hiervoor terug naar het tabblad "Apparaten" door op de knop "Apparaten" te klikken.
Klik vervolgens op de knop "Toevoegen" in de eerste lege regel.
Je wordt dan doorverwezen naar een vervolgkeuzemenu. Selecteer hier het item "Generic - MQTT Import".
Je kunt je abonneren op maximaal vier onderwerpen in het menu dat dan verschijnt. Voer deze in onder "MQTT Topic 1 - 4".
Je kunt dan de namen van de variabelen definiëren in het gedeelte "Waarden". Deze variabelen zullen later de waarden bevatten die via MQTT worden ontvangen. Dit is bijvoorbeeld belangrijk als je op deze waarden wilt reageren met "Regels".
Als je alles naar wens hebt geconfigureerd, controleer dan nogmaals of je het vakje "Enabled" (Ingeschakeld) hebt aangevinkt en bevestig de instellingen door op "Submit" (Verzenden) te klikken.
Nu kun je reageren op de onderwerpen waarop je je hebt geabonneerd met behulp van regels. Hiervoor moet je eerst naar het tabblad "Regels" gaan.
Als dit niet zichtbaar is, moet u dit eerst activeren.
Klik op "Extra" om naar het tabblad "Extra" te gaan.
Klik daar op "Geavanceerd"...
...en vink de optie "Regels" aan.
Bevestig deze instelling vervolgens door op de knop "Submit" te klikken.
Het tabblad "Regels" zou nu zichtbaar moeten zijn.
Als dat niet het geval is, zou het uiterlijk zichtbaar moeten zijn na een "reload" van de pagina.
Op MQTT#Value_of_TestTopic1 doen
als [MQTT#Value_of_TestTopic1]=1,00
pbani,5,150,0,0,0,0,0,
laatste
eindigt op
Je kunt dan bijvoorbeeld de regels invoeren die worden weergegeven op het tabblad "Regels". Deze hebben tot gevolg dat telkens wanneer het onderwerp "Value_of_TestTopic1" een één wordt ontvangen, wordt de opdracht "pbani,5,150,0,0,0,0,0," wordt 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. 🙂