Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. cw50

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    C
    • Profile
    • Following 0
    • Followers 0
    • Topics 5
    • Posts 22
    • Best 1
    • Groups 1

    cw50

    @cw50

    Starter

    1
    Reputation
    7
    Profile views
    22
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    cw50 Follow
    Starter

    Best posts made by cw50

    • RE: [Gelöst:] SHT35 in ESPeasy (Plugin in ESPEasy aktivieren)

      Aufgabe zunächst gelöst.
      Da ich ziemlich lange mir die Infos zusammen suchen musste, habe ich sie hier mal zusammengestellt.
      Vielleicht hat ja noch einmal jemand diese Aufgabe zu lösen.

      Prinzipiell muss dazu das zwar existierende, aber noch nicht als "stable" eingestufte Plugins "P_068_SHT3x.ino" in die ESPEasy Firmware eingebunden werden. Dazu ist es notwendig, diese selbst zu kompilieren.

      Hier kurz (m)ein Weg unter Verwendung der Arduino IDE:

      Vorbereitungen:

      1. Arduino IDE als portable Installation einrichten
      2. Boardverwalter um ESP Boards ergänzen
      3. ESPEasy mega aktuell aus Github herunterladen (in Github rechts oben Schaltfläche "Code" und dort "Download ZIP-Archiv") und an beliebiger Stelle entpacken
      4. Die Bibliotheken aus dem Ordner "lib" der heruntergeladenen ESPEasy in den Ordner "Libraries" unter Sketchbook der portablen Arduino IDE kopieren.
      5. Den (in der Hierarchie) höchsten Ordner "src" der heruntergeladenen ESPEasy in den Ordner "Sketchbook " unter der portablen Arduino IDE kopieren und dort in "ESPEasy" umbenennen.
      6. In dem umbenannten Ordner "ESPEasy" befindet sich ein weiterer Ordner mit identischem Namen "ESPEasy". Darin ist die Datei "ESPEasy.ino" zu finden. Diese muss eine Ebene nach oben, in den umbenannten Ordner "ESPEasy" kopiert werden, damit die Arduino IDE dann die in den Dateien verschiedentlich enthaltenen Pfadangaben passend vorfindet.
      7. Arduino IDE aus der portablen Umgebung starten und dann die eben umkopierte Datei "ESPEasy.ino" öffnen.
      8. In der Arduino IDE werden automatisch eine ganze Reihe weiterer Dateien als Tabs mit geöffnet.

      Plugin einbinden:
      9. Jetzt muss das zusätzliche Plugin "_P068_SHT3x.ino" eingebunden werden (dem Kompiler muss mittgeteilt werden, dass dieses Plugin beim nächsten Kompilierungslauf mit übersetzt werden soll). Dafür habe ich zwei Wege gefunden:
      a) Kompilierung unter Verwendung der Datei "Custom.h"
      Dazu muss in der "ESPEasy_common.h" ziemlich am Anfang der Datei der Eintrag #define USE_CUSTOM_H ent-kommentiert werden (die "//" am Zeilenanfang entfernen). Die mitgelieferte Datei "Custom-samlpe.h" muss für diesen Weg in "Custom.h" umbenannt werden, bevor die Datei "ESPEasy.ino" in der Arduino IDE geöffnet wird. In der unteren Hälfte der "Custom.h" finden sich dann alle Plugins als auskommentierte Einträge. Die gewünscht zu verwendenden Plugins müssen hier ent-kommentiert werden.
      (Diesen Weg habe ich nicht gewählt, da ich die Notwendigkeit der einzelnen Plugins nicht beurteilen kann)
      b) Kompilierung unter Verwendung der als "stable" eingestuften Plugins
      Standardmäßig werden wohl alle als "stable" eingestuften Plugins mitkompiliert, auch wenn es den entsprechenden Eintrag in der "ESPEasy-Globals.h" wohl nicht mehr gibt. Wenn man nun das gewünschte Plugin selbst zu den als "stable" eingestuften Plugins hinzufügt, wird es bei einer nachfolgenden Kompilierung mit übersetzt.
      Dazu muss in der Datei „define_plugin_sets.h“ aus ...\sketchbook\ESPEasy\src\CustomBuild\define_plugin_sets.h der Abschnitt

      // TESTING #####################################
      #ifdef PLUGIN_SET_TESTING
      

      gesucht und der dort enthaltene Eintrag

      #define USES_P068   // SHT3x
      

      herauskopiert und im Bereich

      // STABLE #####################################
      #ifdef PLUGIN_SET_STABLE
      

      eingefügt werden. Da diese Datei in der Arduino IDE nicht automatisch mit geöffnet wird, habe ich sie mit einem Texteditor separat bearbeitet.

      1. Danach kann testweise in der Arduino IDE eine Kompilierung gestartet werden. Wenn diese wie erwartet erfolgreich durchläuft, kann dort
      2. anschließen unter "Sketch" der Eintrag"Kompilierte Binärdatei exportieren" ausgewählt werden. Das Ergebnis ist dann als "ESPEasy.ino.generic.bin" im Ordner "ESPEasy" des übergeordneten Ordners "Sketchbook" zu finden.
      3. Diese *.bin kann dann auf beliebigen Wege auf das Zielsystem übertragen werden, d.h. entweder per USB-Kabel wenn direkt angeschlossen oder wie bei mir auch problemlos OTA über die Funktion "Update Firmware" aus dem Reiter "Tools" der ESPEasy Firmware.
      4. Danach läst sich in der ESPEasy Firmware des geflashten Systems unter "Device" ein neues hinzufügen und der gewünschte Sensor SHT35 kann als "Environment - SHT30/31/35 [TESTING" ausgewählt werden und lieferte sofort Werte.
      5. In ioBroker musste dann nur der Baum der Objekte einmal aktualisiert werden und auch dort waren die Werte für Temperatur und Luftfeuchtigkeit dann verfügbar.

      Hilfreich waren für mich dabei auch die guten und weitgehend aktuellen Beschreibungen unter:

      • Anhang "Arduino IDE" der ESPEasy-Doku https://espeasy.readthedocs.io/en/latest/Participate/ArduinoIDE.html und
      • https://waschto.eu/2018/08/19/espeasy-eigene-oder-zusaetzliche-plugins-einbinden/

      Das hier beschriebene Vorgehen hat in meinem Fall auf einem "Wemos D1 mini pro" zum Erfolg geführt. Da ich aber ziemlicher Neuling hier bin kann es sehr wathscheinlich auch andere / effektivere Wege geben. Daher bin ich für Verbesserungen / Ergänzungen natürlich dankbar.

      posted in ioBroker Allgemein
      C
      cw50

    Latest posts made by cw50

    • RE: Sonoff und MQTT Aktualisierung bleibt aus

      Inzwischen habe ich den Hinweis erhalten, dass routinemäßig nur aller 300s die Werte gesendet werden. Mittels Kommando "Teleperiod" ließe sich das zwar verkürzen, würde dann aber generell zu einer hohen Anzahl von in der Regel nicht benötigten Meldungen führen. Ist also nicht die optimale Lösung.

      Meine Überlegung geht nun dahin, bei in einer Situation gegebenem Interesse gezielt den momentanen Status eines Sensors in Blockly abzufragen und auszuwerten. Das soll auch mittels URL-Request oder MQTT-Kommando möglich sein. Allerdings scheitere ich da momentan leider an der praktischen Umsetzung...

      Braucht man im Falle des MQTT-Weges dann eine weitere Instanz des MQTT-Adapters, aber dafür als Client konfiguriert? Wie kann man in Blockly ein MQTT-Kommando absetzen? Wäre es über URL-Request möglicherweise wesentlich einfacher?

      Kann mir hier bitte wieder einmal jemand auf die Sprünge helfen?

      Danke allseits und ein schönes Wochenende!

      posted in ioBroker Allgemein
      C
      cw50
    • RE: Sonoff und MQTT Aktualisierung bleibt aus

      Vielen Dank für die Hinweise, werde ich testen. Leider komme ich nicht sofort dazu.
      Sobald ich mehr weiß, werde ich mich wieder melden.

      Danke nochmal!

      posted in ioBroker Allgemein
      C
      cw50
    • RE: Sonoff und MQTT Aktualisierung bleibt aus

      @mickym
      Ja. am MQTT-Adapter sind die ESPEasy-Geräte dran. Die Tasmotas sind automatisch alle im Sonoff-Adapter gelandet.

      posted in ioBroker Allgemein
      C
      cw50
    • Sonoff und MQTT Aktualisierung bleibt aus

      Hallo,
      mal wieder eine Frage an die Erfahrungsträger:

      Ich schalte eine Steckdose (geflasht mit Tasmota) über einen Zeitplan in einem Blockly-Script. Das funktioniert soweit.

      Nun ist diese Steckdose aber auch mit der Möglichkeit der Leistungsmessung ausgestattet. Die entsprechenden Einträge werden in der Instanz des Sonoff-Adapters auch angezeigt und gelegentlich (zufällig?) mal aktualisiert.
      Wenn die Seeckdose eingeschaltet ist, sehe ich in der Tasmota-Oberfläche sofort auch dieaktuellen Messwerte Spannung / Strom/ Leistung / usw. Im ioBroker wird allerdings immer ausschließlich der Schaltzustand des Relais aktualisiert, die Messwerte im ioBroker bleiben bei Null. Irgendwann, wenn diese "zufällige" Auffrischung ausgeführt wird, werden dann auch die neuen Verbrauchsdaten übertragen, da die Steckdose aber inzwischen längst wieder ausgeschaltet ist, bleiben die aktuellen Werte alle Null.
      Da ich aber den eigentlich nur nach Zeitplan einschalten und danach in Abhängigkeit von der aktuellen Leistungsaufnahme weiter handeln will, würde ich dort aktuelle Rückmeldungen brauchen.

      Kann mir hier jemand sagen, warum nicht alle Datenpunkte im ioBroker regelmäßig aufgefrischt werden? Oder lässt sich ein festes Intervall dafür irgendwo einstellen?

      Eigentlich will ich erreichen, dass nur während die Steckdose eingeschaltet ist, regelmäßig, z.B. alle 1s, die aktuellen Messwerte abgefragt / übertragen werden. Wenn sie ausgeschaltet ist, könnte die Abfrgae der Messwerte ruhig pausieren.

      Danke!

      posted in ioBroker Allgemein
      C
      cw50
    • RE: [Gelöst:] ESP8266 Ausgänge aus ioBroker schalten

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

      posted in ioBroker Allgemein
      C
      cw50
    • RE: [Gelöst:] ESP8266 Ausgänge aus ioBroker schalten

      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 .

      posted in ioBroker Allgemein
      C
      cw50
    • RE: [Gelöst:] ESP8266 Ausgänge aus ioBroker schalten

      @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!

      posted in ioBroker Allgemein
      C
      cw50
    • RE: [Gelöst:] ESP8266 Ausgänge aus ioBroker schalten

      @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!

      posted in ioBroker Allgemein
      C
      cw50
    • RE: [Gelöst:] ESP8266 Ausgänge aus ioBroker schalten

      @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!

      posted in ioBroker Allgemein
      C
      cw50
    • [Gelöst:] ESP8266 Ausgänge aus ioBroker schalten

      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!

      posted in ioBroker Allgemein
      C
      cw50
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo