HowTo: ESPEasy – Execute commands and actions via HTTP, MQTT, UDP and directly

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.

Diese sind im folgendem Artikel beschrieben.


Safety instructions

I know the following notes are always kind of annoying and seem unnecessary. Unfortunately, many people who knew "better" have lost eyes, fingers or other things due to carelessness or injured themselves. Data loss is almost negligible in comparison, but even these can be really annoying. Therefore, please take five minutes to read the safety instructions. Because even the coolest project is not worth injury or other trouble.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links/advertising links

The links to online shops listed here are so-called affiliate links. If you click on such an affiliate link and make a purchase via this link, Nerdiy.de will receive a commission from the relevant online shop or provider. The price does not change for you. If you make your purchases via these links, you support Nerdiy.de in being able to offer other useful projects in the future. 🙂 


Requirements

Helpful articles:
Bevor ihr mit diesem Artikel startet solltet Ihr die ESPEasy Firmware auf dem von Euch verwendeten ESP8266 programmiert haben. Informationen dazu findet Ihr in den folgenden Artikel.
ESPEasy – Firmware flashen und WLAN Zugangsdaten konfigurieren

Required tool:
-no-

Required material:

In the following list you will find all the tools you need to implement this article.


Available Commands

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=testbefehl,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.

SendTo,COMMAND,

Befehle über Rules ausführen

Almost all commands can also be used within Rules. I will describe this and general information about Rules in a separate article.


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:

/%sysname%/#

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


Further information

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


Have fun with the project

I hope everything worked as described for you. If not or you have questions or suggestions please let me know in the comments. I will then add this to the article if necessary.
Ideas for new projects are always welcome. 🙂

PS Many of these projects - especially the hardware projects - cost a lot of time and money. Of course I do this because I enjoy it, but if you think it's cool that I share the information with you, I would be happy about a small donation to the coffee fund. 🙂

Buy Me a Coffee at ko-fi.com       

6 comments

  1. HI,
    thank you very much for your description!
    I tinker more on the hardware side and don't use any automation software a la open Hab or IO Broker. So my question is this, is it possible to send a device flashed with Tasmota UDP data to a specific IP? I bought a smart socket with energy meter. I want to send this energy data via UDP to another ESP server.
    Can you help me with this, so on the side of Tasmota 😉 🙂 .

    Many thanks and greetings
    MAT

    1. Hi Mat,
      as far as I know, this cannot be done with UDP. Does it have to be UDP?
      It should actually work via MQTT 🙂 .
      Best regards
      Fabian

  2. Hi, thanks a lot for this article. It is very helpfull because there is a very poor documentation for espeasy on the web. Thanks to you I was able to send my commands via MQTT to Espeasy. It was write nowhere that we have to use the OpenHAB controller for sendig command via MQTT....

    1. Hi kankrola,
      you are welcome. Had the same problem when I tried to fix it and tought it's worth documenting it. I guess the guys behind ESPEasy are already pretty busy at maintaining the development so I'm happy to fill the documentation gap with this a bit. 🙂
      Best regards
      Fab

  3. Ein kleines Tutorial oder Beispiel wie MQTT Befehle funktionieren wäre top. Ich bekmome es einfach nicht zum Laufen.

    1. Hi Simon,
      den Abschnitt “Befehle über MQTT ausführen” hast du gesehen?
      Was funktioniert bei dir denn nicht? 🙂
      Best regards
      Fabian

Kommentar hinterlassen

Your email address will not be published. Erforderliche Felder sind mit * markiert

This site uses Akismet to reduce spam. Learn how your comment data is processed.