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

Eine Sache die ESPEasy so praktisch und universell macht ist die Möglichkeit verschiedene Sensoren und Aktoren über Befehle auslesen und steuern zu können. Gerade in Kombination mit entsprechenden Rules ergeben sich dadurch unheimlich viele Möglichkeiten.

Um einzelne Befehle zu testen und/oder generell ausführen zu können, gibt es mehrere Möglichkeiten.

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

Zur Steuerung Eures ESPEasy-Geräts könnt Ihr Befehle aus verschiedenen “Quellen” nutzen. Zum einen gibt es System-Befehle die vom “ESPEasy-Betriebssystem” selber stammen. Mit diesen könnt Ihr allgemeine Funktionen steuern wie zum Beispiel das setzen der WLAN-Logindaten. Eine Liste dieser möglichen System-Befehle findet Ihr unter folgendem Link: https://www.letscontrolit.com/wiki/index.php/ESPEasy_Command_Reference

Darüberhinaus kann jedes Plugin zusätzliche Befehle mitbringen. Zu diesen Befehlen gibt es keine Zentrale Übersicht. Sie sollten aber vom Entwickler des Plugins zur Verfügung gestellt werden.

Bei Plugins von Nerdiy.de findet Ihr diese Informationen immer auf der jeweiligen Plugin-Seite auf Nerdiy.de. Alle verfügbaren ESPEasy-Plugins findet Ihr unter https://www.nerdiy.de/tag/ESPEasy-Plugin/


Befehle über die serielle Schnittstelle ausführen

Wenn Ihr noch lokal – also über USB – mit Eurem ESPEasy-device verbunden seid, könnt Ihr die serielle Schnittstelle nutzen um schnell und unkompliziert Befehle auszuführen. Öffnet dazu den seriellen Monitor Eurer Arduino-IDE oder ein anderes Terminalprogramm. Tipps dazu findet Ihr im Artikel Ardunio – Die serielle Schnittstelle verwenden.

Habt ihr den “Seriellen Monitor” geöffnet könnt Ihr wie abgebildet Befehle an Euer ESPEasy-device senden. Dabei ist es wichtig, dass Ihr das “Zeilenumbruchzeichen (CR)” gesetzt habt.

Befehle über das Webmenü ausführen

Eine weitere Möglichkeit Befehle abzusetzen habt Ihr über das Webmenü Eures ESPEasy-devices. Wechselt dazu in das Webmenü und dann in den Reiter Tools.

Dort wird euch im oberen Bereich ein Eingabefeld angeboten mithilfe dessen Ihr Befehle absetzen könnt. Zum Absetzen des Befehls reicht dann ein klick auf “Submit”.

Befehle über einen URL-Aufruf ausführen

Befehle können auch über einen angehängten URL-Aufruf ausgeführt werden. Dazu wird der Befehl einfach in Kombination mit der IP-Adresse/Domainnamen des ESPEasy-devices aufgerufen.

Hat Eurer ESPEasy-device die IP-Adresse 192.168.0.15 und Ihr wollt den Befehl “testbefehl,1,2,3” ausführen, würde dieser Aufruf wie folgt aussehen:

http://192.168.0.15/tools?cmd=testopdracht,1,2,3
Dies ist ein weiteres Beispiel wie Ihr einen Befehl per URL-Aufruf ausführen könnt.

Befehle über UDP ausführen

Diese Funktion lässt sich wohl (bisher) nur zum versenden von Befehlen von einem ESPEasy-Gerät zu einem anderen nutzen. Dazu reicht es auf dem sendenden ESPEasy-Gerät folgenden Befehl auszuführen.

Verzenden naar, COMMANDO,

Befehle über Rules ausführen

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


Befehle über MQTT ausführen

Befehle lassen sich auch über eine bestehende MQTT-Verbindung posten und vom verbundenen ESPEasy-Gerät ausführen.

Dazu müsst Ihr auf dem ESPEasy-Gerät einen MQTT-Controller konfigurieren. Dieser muss auch auf dem ersten “Slot” der Controller liegen. Außerdem sollte der OpenHAB MQTT-Controller genutzt werden. Mit den anderen klappt die Befehlsausführung (soweit bekannt) leider nicht.

Konfiguriert dazu Euren MQTT-Controller wie abgebildet. Natürlich müsst Ihr den Controller Hostnamen dazu noch an Euren Server anpassen und ggf. auch Benutzername und Passwort angeben.

Wichtig ist hierbei auch, dass unter “Controller Subscribe” folgendes Eingetragen ist:

/%sysnaam%/#

%sysname% steht dabei für den Namen Eures ESPEasy-Geräts. Wenn Euer ESPEasy-Gerät z.B. den Namen “pxlBlckWohnzimmer” trägt bewirkt diese Kombination also, dass der MQTT-Controller alle Topics ab “/pxlBlckWohnzimmer/” aboniert. Damit empfängt der Controller also auch Nachrichten über “/pxlBlckWohnzimmer/cmd” welches sich nutzen lässt um die gewünschten Befehle auszuführen.

Zusammengefasst: Wenn Euer ESPEasy-Gerät also “pxlBlckWohnzimmer” heißt reicht es den gewünschten Befehl an das Topic “/pxlBlckWohnzimmer/cmd” zu senden.


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 reacties

  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.