Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Gelöst:] ESP8266 Ausgänge aus ioBroker schalten

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Gelöst:] ESP8266 Ausgänge aus ioBroker schalten

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      cw50 last edited by cw50

      Hallo und frohe Ostern allseits!

      Falls dennoch jemand hier ins Forum schaut:
      Ich möchte Ausgänge, die ein Wemos D1 mini lokal steuert, zusätzlich auch über Blockly aus ioBroker heraus schalten können. Wie muss ich die Ausgänge dazu auf dem D1 mini konfigurieren (dort läuft die ESPeasy Firmware)?
      Mit Zwischensteckdosen, auf die ich Tasmota geflasht habe, funktioniert das problemlos, d.h. die kann ich aus dem ioBroker schalten.

      Die Zwischenstecker liefern aber ohne mein Zutun in den Objekten des Sonoff-Adapters ein Element namens "...Power", der Rolle "Switch" und den möglichen Zuständen "true" und "false". Diese kann ich mit Blockly einfach steuern.

      Der D1 mini ist über den MQTT Adapter angebunden und liefert mir zunächst von selbst keine solchen Elemente frei Haus. Ich finde auch in der ESPeasy Firmware kein Device, von dem ich die gewünschte Funktion erwarten würde. In den dortigen Rules nutze ich zwei virtuelle Geräte vom Typ "Switch Input -Switch" zur Beobachtung des aktuellen Status von Ausgängen, um in den Rules darauf reagieren zu können. Diese sehe ich auch im ioBroker als Elemente namens "...State", der Rolle "Variable" und den möglichen Zuständen "1" und "0".
      Beim Versuch diese Elemente aus Blockly heraus zu schreiben erhalte ich immer eine Warnmeldung:
      "javascript.0 (1147) at Object.<anonymous> (script.js.Skript_1:16:5)"

      Und in den Foren bin ich bisher nicht fündig geworden, daher die Frage hier. Ich vermute, dass die Ursache in den unterschiedlichen Typen der Elemente im ioBroker liegt...

      Kann mir hier jemand sagen, wo mein Fehler liegt? Danke!

      falke69 1 Reply Last reply Reply Quote 0
      • falke69
        falke69 @cw50 last edited by

        @cw50

        Schau mal, ob Die das vielleicht etwas weiter hilft.

        2021-04-05_065530.jpg

        2021-04-05_065617.jpg

        diesen Datenpunkt kannst Du mit Blockly auf 1 oder 0 setzen um den entsprechenden GPIO zu steuern.
        2021-04-05_065700.jpg

        C 2 Replies Last reply Reply Quote 0
        • C
          cw50 @falke69 last edited by

          @falke69
          Vielen Dank für den Hinweis, werde ich gleich ausprobieren!

          Da ich die Antwort leider nicht gleich mitbekommen hatte, habe ich in der Zwischenzeit einen anderen, möglichen (Um-) Weg gefunden:
          Mittels "request"-Element aus dem "Aktionen"-Breich in Blockly kann man ein Kommando an den D1 mini senden:
          124e70cc-3801-4c1c-b0f9-8dfdacb2584d-grafik.png
          Wenn für <espeasyip> die IP-Adresse des gewünschten D1 mini o.ä. eingesetzt wird, kann auf diesem Wege im Beispiel der GPIO 4, der im D1 mini als Ausgang verwendet wird, auf EIN=1 gesetzt werden. Ausschalten funktioniert genauso nur mit Status "0", also "http://<espeasyip>/control?cmd=GPIO,4,0".

          Der oben vorgeschlagene Weg von @falke69 würde mir aber besser gefallen, also teste ich dort weiter. Danke!

          1 Reply Last reply Reply Quote 0
          • C
            cw50 @falke69 last edited by

            @falke69
            zur Information hier mal mein aktueller Stand des D1 mini in den Objekten des ioBrokers:
            068e8f8b-ef63-4ddc-9d73-42f26efdead4-grafik.png
            Das sieht für mich als Einsteiger sehr ähnlich aus wie Deine "BWM".
            Unterschiede finde ich aber in der MQTT-Konfiguration des D1 mini. Meine sieht derzeit so aus (und die Datenpunkte lassen sich aus Blockly NICHT schreiben):
            39aa55c7-7f6e-4186-b000-409244110ded-grafik.png
            Diese Konfiguration ist die Standardkonfiguartion nach Aktivierung von MQTT auf dem D1 mini gewesen, da ich die Bedeutung dereinzelnen Einträge nicht kenne, habe ich mich gehütet, daran etwas zu ändern.

            Kannst Du mir hier weiterhelfen? Danke!

            falke69 2 Replies Last reply Reply Quote 0
            • falke69
              falke69 @cw50 last edited by falke69

              @cw50

              Die Bedeutung kenne ich ehrlich gesagt auch nicht.
              Habe diese mir auch im Internet zusammen gesucht und es funktioniert halt.
              Durch diese Einstellungen werden halt mehr Infos aus dem ESPeasy an iobroker übermittelt. Wo Du dann verschiedene Datenpunkte hast, die Du über iobroker ansteuern kannst.

              Schau mal hier oder hier. Vielleicht hilft Dir das noch ein wenig weiter.

              1 Reply Last reply Reply Quote 0
              • falke69
                falke69 @cw50 last edited by

                @cw50

                Das wäre mein Blockly für an und nach 15 Sekunden wiede aus.
                Geht scheinbar nur über URL zu schalten, egal, wieviele Datenpunkte Du in iobroker siehst.
                Zumindest habe ich noch keinen anderen Weg gefunden.

                Vorteil der Datenpunkte ist aber, dass Du damit Zustände auswerten kannst und dann weiterbearbeiten kannst.
                2021-04-05_131349.jpg

                Sollte jemand eine andere Lösung haben, dann gerne her damit. 🙂

                C 1 Reply Last reply Reply Quote 0
                • C
                  cw50 @falke69 last edited by

                  @falke69
                  So ist mein Stand ja bisher auch, also Datenpunkte nur zur Auswertung der aktuellen Zustände und Weiterverarbeitung zu gebrauchen (="Eingang") aber aktives Schalten funktioniert nur über URL (="Ausgang")

                  Bei Tasmota-Geräten kann man die Datenpunkte, die den aktuellen Zustand anzeigen, aber ganz einfach auch aus Blockly/ioBroker heraus steuern (=schalten), siehe Fragestellung vom Anfang des Themas...

                  Die direkte Verwendung der Datenpunkte wäre für mich insofern interessant, dass ich später, wenn man da mal wieder ran muss, nicht irgendeine Zahlenkombination im Blockly stehen habe, sondern (bei sinnvoller Benennung) den Klarnamen des geschalteten Gerätes bzw. GPIOs.

                  Also bleiben wir mal gemeinsam auf der Suche, vielleicht fällt ja jemandem noch 3ein eleganterer Weg ein, dann gerne hier ergänzen. Danke!

                  1 Reply Last reply Reply Quote 0
                  • C
                    cw50 last edited by cw50

                    Folgende Ergänzung habe ich jetzt noch zu bieten:

                    Um Ausgänge des mit ESP Easy geflashten D1 mini vom ioBroker über MQTT schalten zu können, können die automatisch erzeugten Datenpunkte nach meiner bisherigen Erfahrung (s. auch vorangegangene Beiträge dieses Threads) NICHT genutzt werden.

                    Stattdessen muss man im ioBroker in der Objekte-Ansicht das Element auswählen, dessen Ausgänge geschaltet werden sollen. Durch Betätigung des "+"-Icons oberhalb des Elemente-Baumes können neue Unterelemente generiert werden, in deren Einstellungen kann dann wieder gewählt werden, ob es sich um eine Gruppe von Elementen handeln soll (=Kanal) oder nur um einen einzelnen Eintrag (=Datenpunkt).
                    9f7cbc6a-09a5-426e-912a-5ffd8bf6fb0f-grafik.png

                    2d23a7d5-58a5-410f-9be4-49459f5a0d6d-grafik.png
                    Für dieses so erzeugte Element steht daneben in der Spalte "Name" das MQTT-Topic für dieses Element.

                    In ESP Easy muss nun ein neues Device angelegt werden vom Typ "Generic - MQTT Import".
                    e6465497-ed10-4e62-88bf-39b459768006-grafik.png
                    Dieses Device empfängt 4 verschiedene MQTT-Topics, die in seinen Einstellungen definiert werden müssen.
                    Dazu im ESP Easy unter "Devices" bei "Generic - MQTT Import" auf "Edit" klicken und dann im oberen Bereich unter "Task settings" die "MQTT Topic 1" bis nach Bedarf maximal "MQTT Topic 4" manuell eintragen. Dabei ist exakt der Name zu verwenden, wie er im ioBroker angezeigt wurde.
                    389b3053-4fd6-422f-b233-6591a9b63695-grafik.png
                    Achtung - in ESP Easy darf ein MQTT-Topic maximal 40 Zeichen lang sein, also im ioBroker entsprechend kurze Namen vergeben. Auch die Verwendung der Systemvariable %sysname% als Alternative für einen langen Gerätenamen ist möglich, das Ergebnis ist identisch wie bei dem ausgeschriebenen Namen.
                    Wenn der Haken oben bei "Enabled" noch gesetzt und dann unten "Submit" geklickt wird, sollte das Gerät mit der ESP Easy Firmware automatisch von nun an auf Nachrichten zu den eingetragenen MQTT Topics lauschen.

                    Wenn nun eine Nachricht der Art:
                    ...topic/GPIO/2
                    erkannt wird, schaltet das ESP Easy Gerät den Ausgang GPIO 2 auf den Wert, der mit diesem Topic gesendet wurde. Getestet habe ich das mit "0" und "1". Man kann dann im ioBroker den Wert des Eintrags ändern und nach Absendung durch Klick auf den Haken neben der Werteingabe diesen versenden.

                    Das ESP Easy Gerät reagiert dann sofort darauf, die Anzeige im "Devices" Menü erst etwas verzögert, da diese nur in größeren Abständen aufgefrischt wird (= mehrere Sekunden, ist nach Auskunft von TD-er [https://www.letscontrolit.com/forum/viewtopic.php?f=4&t=8458&sid=431143e625cc9b9bf4a0128e8df36dce#p51690] abhängig von der minimal eingestellten Refresh-Zeit eines Devices) .

                    Bei einem Test mit GPIO 2 sollte sich so die blaue LedBuiltIn auf dem D1 mini schalten lassen.

                    Diese so manuell im ioBroker erstellten Datenpunkte konnten dann auch im Blockly erfolgreich zum Schalten von Ausgängen des ESP Easy Geräts verwendet werden.

                    Vieleicht hilft das ja mal jemandem weiter...

                    Prinzipiell sollen sich auf diesem Wege übrigens alle in ESP Easy definierten HTTP-Kommandos für den Aufruf über URL nutzen lassen, also z.B. auch das Toggeln, Dimmen, ... . Dafür ist der URL-Teil durch den Namen des MQTT-Topics zu ersetzen und dann der Befehl nachdem Muster der HTTP-Kommandos anzufügen, also z.B. das /GPIO/2.
                    Details dazu gibt es unter https://espeasy.readthedocs.io/en/latest/Reference/Command.html .

                    falke69 1 Reply Last reply Reply Quote 0
                    • falke69
                      falke69 @cw50 last edited by

                      @cw50

                      Danke Dir für Deine Ausführungen! 🙂
                      Werde ich beim nächsten Projekt mal mit testen.👍

                      C 1 Reply Last reply Reply Quote 0
                      • C
                        cw50 @falke69 last edited by

                        @falke69
                        Ja bitte. Es wäre interessant, ob es bei Dir auch so funktioniert.

                        Bei mir gibt es gelegentlich immer mal einen Hänger, wo die MQTT-Befehle aus ioBroker dann keine Reaktion auf dem D1 mini auslösen. Aktualisieren des Verzeichnisbaumes des Objekte-Ansicht, des Browserfensters vom ioBroker und erneutes "Submit" ohne geänderte Einstellungen im ESP Easy Gerät haben dann wieder zur gewünschten Funktion geführt.

                        Entweder ist das ein Problem der Sendehäufigkeit der MQTT-Nachrichten (bei mir ist "Publish nur bei Änderung" in den Instanzeneinstellungen des MQTT-Adapters aktiviert), der "Service-Qualität", die für den MQTT-Adapter eingestellt ist (bei mir 1 - at least once) oder des Sendens eines Befehls mit oder ohne "Bestätigung", das habe ich noch nicht ganz herausgefunden. Also 100% stabil funktioniert das bei mir noch nicht, das dargestellte Prinzip sollte aber nach meinem Kenntnisstand so passen.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        724
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        2
                        10
                        1122
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo