HowTo: ESPEasy – Voer opdrachten en acties uit via HTTP, MQTT, UDP en direct

Eén ding dat ESPEasy zo praktisch en universeel maakt, is de mogelijkheid om verschillende sensoren en actuatoren via commando’s te lezen en te besturen. Dit opent ongelooflijk veel mogelijkheden, vooral in combinatie met passende regels.

Er zijn verschillende mogelijkheden om individuele commando's te testen en/of algemeen uit te voeren.

Deze worden beschreven in het volgende artikel.


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:
Voordat u aan dit artikel begint, moet u de ESPEasy-firmware hebben geprogrammeerd op de ESP8266 die u gebruikt. Informatie hierover vind je in het volgende artikel.
ESPEasy - Firmware flashen en WLAN-toegangsgegevens configureren

Vereist gereedschap:
-Nee-

Benodigd materiaal:

In de volgende lijst vind je alle tools die je nodig hebt om dit artikel te implementeren.


Beschikbare opdrachten

U kunt opdrachten uit verschillende “bronnen” gebruiken om uw ESPEasy-apparaat te bedienen. Enerzijds zijn er systeemopdrachten die afkomstig zijn van het “ESPEasy-besturingssysteem” zelf. Hiermee kunt u algemene functies besturen, zoals het instellen van de WLAN-inloggegevens. Een lijst met deze mogelijke systeemopdrachten vindt u via de volgende link: https://www.letscontrolit.com/wiki/index.php/ESPEasy_Command_Reference

Bovendien kan elke plug-in extra opdrachten bieden. Er is geen centraal overzicht voor deze commando's. Ze moeten echter door de ontwikkelaar van de plug-in worden geleverd.

Voor plug-ins van Nerdiy.de kunt u deze informatie altijd vinden op de betreffende plug-inpagina op Nerdiy.de. U kunt alle beschikbare ESPEasy-plug-ins vinden op https://www.nerdiy.de/tag/ESPEasy-Plugin/


Voer opdrachten uit via de seriële poort

Als u lokaal – d.w.z. via USB – nog steeds verbonden bent met uw ESPEasy-apparaat, kunt u de seriële interface gebruiken om opdrachten snel en eenvoudig uit te voeren. Open hiervoor de seriële monitor van uw Arduino IDE of een ander terminalprogramma. Tips hierover vind je in het artikel Ardunio – Gebruik de seriële poort.

Als u de “Seriële Monitor” heeft geopend, kunt u opdrachten naar uw ESPEasy-apparaat sturen, zoals weergegeven. Het is belangrijk dat u het “line break character (CR)” heeft ingesteld.

Voer opdrachten uit vanuit het webmenu

Een andere manier om opdrachten te geven is via het webmenu van uw ESPEasy-apparaat. Ga hiervoor naar het webmenu en vervolgens naar het tabblad Extra.

Daar krijgt u in het bovenste gedeelte een invoerveld aangeboden waarmee u opdrachten kunt geven. Om de opdracht te verzenden, klikt u eenvoudig op "Verzenden".

Voer opdrachten uit via een URL-aanroep

Commando's kunnen ook worden uitgevoerd via een bijgevoegde URL-oproep. Hiervoor wordt het commando eenvoudigweg opgeroepen in combinatie met het IP-adres/de domeinnaam van het ESPEasy-apparaat.

Als uw ESPEasy-apparaat het IP-adres 192.168.0.15 heeft en u het commando “testcommand,1,2,3” wilt uitvoeren, ziet deze oproep er als volgt uit:

http://192.168.0.15/tools?cmd=testopdracht,1,2,3
Dit is nog een voorbeeld van hoe u een opdracht kunt uitvoeren via een URL-aanroep.

Voer opdrachten uit via UDP

Deze functie kan (tot nu toe) alleen worden gebruikt om opdrachten van het ene ESPEasy-apparaat naar het andere te verzenden. Het enige wat u hoeft te doen is de volgende opdracht uit te voeren op het verzendende ESPEasy-apparaat.

Verzenden naar, COMMANDO,

Voer opdrachten uit via regels

Bijna alle commando's kunnen ook binnen regels worden gebruikt. Deze en algemene informatie over regels zal ik in een apart artikel beschrijven.


Voer opdrachten uit via MQTT

Commando's kunnen ook via een bestaande MQTT-verbinding worden gepost en worden uitgevoerd vanaf het aangesloten ESPEasy-apparaat.

Om dit te doen, moet u een MQTT-controller op het ESPEasy-apparaat configureren. Deze moet ook in het eerste “slot” van de controller zitten. De OpenHAB MQTT-controller moet ook worden gebruikt. Helaas werkt de uitvoering van opdrachten niet bij de andere (voor zover wij weten).

Om dit te doen, configureert u uw MQTT-controller zoals weergegeven. Uiteraard moet u ook de hostnaam van de controller aan uw server aanpassen en, indien nodig, ook de gebruikersnaam en het wachtwoord opgeven.

Verder is het van belang dat onder “Controller Subscribe” het volgende wordt ingevuld:

/%sysnaam%/#

%sysname% staat voor de naam van uw ESPEasy-apparaat. Als uw ESPEasy-apparaat bijvoorbeeld de naam “pxlBlckWohnzimmer” heeft, zorgt deze combinatie ervoor dat de MQTT-controller zich abonneert op alle onderwerpen van “/pxlBlckWohnzimmer/”. Dit betekent dat de controller ook berichten ontvangt via “/pxlBlckWohnzimmer/cmd” waarmee de gewenste commando’s kunnen worden uitgevoerd.

Samenvattend: Als uw ESPEasy-apparaat “pxlBlckWohnzimmer” heet, is het voldoende om het gewenste commando naar het onderwerp “/pxlBlckWohnzimmer/cmd” te sturen.


Meer informatie

https://www.letscontrolit.com/wiki/index.php/ESPEasy_Command_Reference


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. 🙂

Koop Me a Coffee op ko-fi.com       

6 comments

  1. HOI,
    Bedankt voor je beschrijving!
    Ik sleutel meer aan de hardwarekant en gebruik geen automatiseringssoftware a la open Hab of IO Broker. Dus mijn vraag is, is het mogelijk voor een apparaat dat met Tasmota is geflitst om UDP-gegevens naar een specifiek IP-adres te sturen? Ik heb een slim stopcontact met energiemeter gekocht. Ik wil deze energiegegevens via UDP naar een andere ESP-server sturen.
    Kunt u mij verder helpen, d.w.z. van de kant van Tasmota? 😉 🙂

    Bedankt en groeten
    MAT

    1. hallo mat,
      Voor zover ik weet kan dit niet met UDP. Moet het UDP zijn?
      Het zou eigenlijk moeten werken met MQTT. 🙂
      Hartelijke groeten
      Fabian

  2. Hallo, heel erg bedankt voor dit artikel. Het is erg nuttig omdat er een zeer slechte documentatie is voor espeasy op het web. Dankzij jullie kon ik mijn commando's via MQTT naar Espeasy sturen. Er is nergens geschreven dat we de OpenHAB-controller moeten gebruiken voor het verzenden van commando's via MQTT...

    1. Hallo Kankrola,
      Graag gedaan. Had hetzelfde probleem toen ik het probeerde te repareren en dacht dat het de moeite waard was om het te documenteren. Ik denk dat de jongens achter ESPEasy al behoorlijk druk bezig zijn met het onderhouden van de ontwikkeling, dus ik ben blij om de documentatiekloof hiermee een beetje op te vullen. 🙂
      hartelijke groeten
      Fab

Kommentar hinterlassen

Het e-mailadres wordt niet gepubliceerd. Erforderliche Felder sind mit * markiert

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.