Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Wemos EasyESP Homematic

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Wemos EasyESP Homematic

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

      kann ich bei mir nicht feststellen, ich betreibe momentan 3 NodeMCU´s und einen Wemos, alle in ioBroker eingebunden.

      Eine NodeMCU sogar 2 Etagen tiefer, habe dort eine alte Fritzbox als AP sitzen, mit der sich die NodeMCU einbindet.

      Da alle Teile statische IP´s haben, kann ich durch Eingabe der IP im Browser mich schnell mal einloggen, um zu testen oder

      was zu ändern.

      Die Verbindung ist jedes mal blitzartig da.

      Kannst du Skripten ???? In der Richtung bin ich hilflos. Ich brauche eigentlich nur ein winziges Skript, in der Richtung:

      Wenn dieser Wert seinen Zustand ändert, schalte jenen Wert auf 1.

      Habe schon mit Blockly probiert, aber irgendwie passen bei mir die Teile nie zusammen.

      Ich vermute mal, wenn ich im Forum anfrage, werde ich auf die Anleitung verwiesen, und bis ich das begriffen habe…...

      Grüße Ingo

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        @Ingo:

        Wenn dieser Wert seinen Zustand ändert, schalte jenen Wert auf 1. `

        var idDieserWert = '...';
        var idJenerWert = '...';
        
        on(idDieserWert, function() {  // triggern bei Wertänderung
            setState(idJenerWert, 1);
        });
        
        1 Reply Last reply Reply Quote 0
        • I
          Ingo last edited by

          Hallo Paul53,

          ist das schön, wenn einem jemand hilft…..

          var NodeMCU_Keller/Kondensat/Kondensat = '...';
          var WEMOS-Keller/GPIO/16 = '...';
          
          on(/NodeMCU_Keller/Kondensat/Kondensat, function() {  // triggern bei Wertänderung
              setState(WEMOS-Keller/GPIO/16, 1);
          });
          

          schau doch bitte mal.

          Zur Erklärung:

          seit April neue Heizung, mit einer Mini-Kondensatpumpe. Diese hat einen Alarmkontakt. Dieser wird mit den Temperatur-Sensoren über einen NodeMCU in ioBroker eingelesen.

          D.h., im Alarmfall ändert sich der Status von Kondensat von 1 auf 0. (Ich kanns auch umdrehen, erst mal egal). In der Vis kriege ich das durch 2 übereinandergelegte Widgets

          (rot/grün) angezeigt.

          Ich hätte aber gern noch ein akustisches Signal. (wir hatten gerade genug Wasser im Keller)

          Dies soll ein Wemos sein, dessen GPIO sich im Alarmfall ändert und irgendwas aktiviert. Erweiterbar auch als Sammelalarm für andere Wassersensoren, Alarmanlage, Rauchmelder usw.

          Ich habe mal die ID´s eingetragen, soweit korrekt ?

          Was muß in die Hochkommas rein ???

          Von der Logik her weis ich was ich will, aber der Syntax, dafür fehlt mir eine Gehirnwindung.

          Danke schonmal und Grüße

          Ingo

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            Variablennamen sollten (dürfen) keine Schrägstriche enthalten ! Die ID der beiden Datenpunkte enthalten sicher auch keine Schrägstriche, sondern eher Punkte. Du kannst die Datenpunkt-ID über "ID Einfügen" (oben rechts) auswählen.

            on("eingefügte ID Kondensat", function(dp) {  // triggern bei Wertänderung
                if(dp.state.val) setState("eingefügte ID GPIO16", true);  // wenn Kondensat-Wert true oder 1, dann GPIO16 Ein
                else setState("eingefügte ID GPIO16", false);
            });
            
            1 Reply Last reply Reply Quote 0
            • I
              Ingo last edited by

              das kommt heraus, wenn ich über ID einfügen gehe.

              Die beiden var-Zeilen werden nicht gebraucht ?

              on(""mqtt.0.NodeMCU_Keller.Kondensat.Kondensat"/*/NodeMCU_Keller/Kondensat/Kondensat*/", function(dp) {  // triggern bei Wertänderung
                  if(dp.state.val) setState(""mqtt.0.WEMOS-Keller.GPIO.16"/*WEMOS-Keller/GPIO/16*/", true);  // wenn Kondensat-Wert true oder 1, dann GPIO16 Ein
                  else setState("on("eingefügte ID Kondensat", function(dp) {  // triggern bei Wertänderung
                  if(dp.state.val) setState("eingefügte ID GPIO16", true);  // wenn Kondensat-Wert true oder 1, dann GPIO16 Ein
                  else setState("eingefügte ID GPIO16", false);
              });", false);
              });
              

              sind mir irgendwo zu viele ",

              Grüße Ingo

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 last edited by

                @Ingo:

                Die beiden var-Zeilen werden nicht gebraucht ? `
                Wenn die ID direkt in die Funktionen eingegeben wird, werden keine Skriptvariablen benötigt. Skriptvariablen machen das Programm besser lesbar.
                @Ingo:

                sind mir irgendwo zu viele ", `
                Richtig ! Es sollte so aussehen:

                on("mqtt.0.NodeMCU_Keller.Kondensat.Kondensat", function(dp) {  // triggern bei Wertänderung
                    if(dp.state.val) setState("mqtt.0.WEMOS-Keller.GPIO.16", true);  // wenn Kondensat-Wert true oder 1, dann GPIO16 Ein
                    else setState("mqtt.0.WEMOS-Keller.GPIO.16", false);
                });
                
                /*/NodeMCU_Keller/Kondensat/Kondensat*/
                und 
                /*WEMOS-Keller/GPIO/16*/
                

                sind die Namen der Datenpunkte als Kommentar und können weggelassen werden.

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 last edited by

                  Übersichtlicher und einfacher zu handhaben ist es mit Skriptvariablen:

                  var idKondensat = "mqtt.0.NodeMCU_Keller.Kondensat.Kondensat"/*/NodeMCU_Keller/Kondensat/Kondensat*/;
                  var idGPIO16 = "mqtt.0.WEMOS-Keller.GPIO.16"/*WEMOS-Keller/GPIO/16*/;
                  
                  on(idKondensat, function(dp) {                  // triggern bei Wertänderung
                      if(dp.state.val) setState(idGPIO16, true);  // wenn Kondensat-Wert true oder 1, dann GPIO16 Ein
                      else setState(idGPIO16, false);
                  });
                  
                  1 Reply Last reply Reply Quote 0
                  • I
                    Ingo last edited by

                    Paul, danke für deine Hilfe,

                    bei mir sind jetzt einige Lichtlein angegangen.

                    Ich werde morgen mal damit herumspielen.

                    Ein Anfang ist gemacht.

                    Schön erklärt.

                    Grüße Ingo

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 last edited by

                      @Ingo:

                      Erweiterbar auch als Sammelalarm für andere Wassersensoren, Alarmanlage, Rauchmelder usw. `
                      Dann geht es nicht ganz so einfach, weil eine Oder-Verknüpfung der Einzelalarme benötigt wird. Prinzip mit 3 Alarmquellen:

                      ! ````
                      // '...' ist durch die ID des jeweiligen Alarmdatenpunktes zu ersetzen
                      var idAlarm1 = '...';
                      var idAlarm2 = '...';
                      var idAlarm3 = '...';
                      var idSammelalarm = '...';
                      ! var alarm1 = getState(idAlarm1).val;
                      var alarm2 = getState(idAlarm2).val;
                      var alarm3 = getState(idAlarm3).val;
                      ! function sammelalarm() {
                      if(alarm1 || alarm2 || alarm3) setState(idSammelalarm, true);
                      else setState(idSammelalarm, false);
                      }
                      ! sammelalarm(); // Script start
                      ! on(idAlarm1, function(dp) {
                      alarm1 = dp.state.val;
                      sammelalarm();
                      });
                      ! on(idAlarm2, function(dp) {
                      alarm2 = dp.state.val;
                      sammelalarm();
                      });
                      ! on(idAlarm3, function(dp) {
                      alarm3 = dp.state.val;
                      sammelalarm();
                      });

                      1 Reply Last reply Reply Quote 0
                      • I
                        Ingo last edited by

                        den "Sammelalarm" in einem Script abzuarbeiten, ist natürlich eleganter, aber man muß die Fähigkeit haben. 😉

                        Ich hätte jetzt mehrere Scripte wie "Kondensat" erstellt, dann aber z.B. "Alarm Kellerfenster" als Aktor genommen, aber als Ausgabegerät ebenfalls den Wemos.

                        An einigen anderen GPIO´s evtl. noch LED´s gehängt zur Unterscheidung, was jetzt den Alarm ausgelöst hat.

                        Oder habe ich jetzt irgendwo einen Denkfehler ?

                        Ich werde wahrscheinlich auch 2 oder 3 Alarmboxen im Haus platzieren. (großes 2-Familienhaus)

                        Ich glaub, wir werden bald ermahnt, weil wir vom Thema abweichen…. 😮

                        Grüße Ingo

                        1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 last edited by

                          @Ingo:

                          An einigen anderen GPIO´s evtl. noch LED´s gehängt zur Unterscheidung, was jetzt den Alarm ausgelöst hat. `
                          @Ingo:

                          Ich hätte aber gern noch ein akustisches Signal. `
                          Und die Oder-Verknüpfung für das akustische Signal wolltest Du per Hardware vornehmen ? Oder gehst Du davon aus, dass nie 2 Alarmzustände gleichzeitig vorhanden sein können ?

                          1 Reply Last reply Reply Quote 0
                          • I
                            Ingo last edited by

                            Guten Morgen, Paul,

                            Mein Gedanke war, mehrere Scripte, unterschiedliche Auslöser, aber immer geht der selbe akustische Alarm los.

                            Für einen schnellen Überblick, was los ist, mehrere LED´s. Hauptsache man weis, das Handlungsbedarf besteht.

                            Hardwaremäßig kriege ich da was gebaut, damit habe ich keine Probleme. Ich habe vor ca. 45 Jahren mal

                            Elektromonteur mit Spezialisierung Instandhaltung gelernt, die letzten 25 Jahre habe ich als Servicetechniker

                            für Tankstellen Elektro / Elektronik gearbeitet. Aber eben nie was mit Software zu tun gehabt, außer der

                            Konfiguration von fertiger Software.

                            2 Alarme können sehr leicht auftreten, Kondensatpumpe defekt heißt nach kurzer Zeit "Wasser im Keller".

                            2 Brennwertthermen produzieren pro Tag zusammen ca. 10 Ltr. Wasser.

                            Wir hatten vor kurzem reichlich Wasser im Keller, aber bedingt durch einen sehr hohen Grundwasserspiegel.

                            (und die Kernbohrung durch das Fundament für den Potentialausgleichs-Erder war noch offen) Na toll.

                            Ich habe daher eine flachsaugende Tauchpumpe im Auge, die an der tiefsten Stelle montiert wird, evtl.

                            gesteuert durch einen weiteren GPIO des Wemos. (Wenn "Wasser im Keller" dann "Sammelalarm", "LED x" und "Pumpe" on)

                            Ist bis jetzt erst mal nur ein Gedankenspiel, aber irgendwas muß ich da machen.

                            Und du hast mir dabei schon schön auf die Sprünge geholfen !

                            Danke dafür !

                            Grüße Ingo

                            1 Reply Last reply Reply Quote 0
                            • N
                              nelzon last edited by

                              @Ingo:

                              Moin, Moin zusammen,

                              ich hatte vor einer Weile auch so meine Schwierigkeiten, habe aber tolle Hilfe hier im Forum gefunden.

                              Ich vermute mal, ESPEasy läuft.

                              In ioBroker brauchst du den MQTT-Adapter.

                              Meine Einstellungen sehen so aus:

                              (Ich verwende NodeMCU´s mit ESPEasy Mega)

                              Dann einfach einen Sensor an den Wemos, und schon erscheint unter Objecte unter MQTT dein Wemos.

                              Grüße Ingo `

                              Hey Leute

                              sorry, hat bissel gedauert das ich wieder testen konnte. F

                              olgenes:

                              1. Kannst du Ingo noch bitte deine Einstellungen unter "Advanced" im ESP zeigen

                              2. Brauchen die einzelnen Devices nicht jeweils eine eigene IDX? (@Ple: bei dir steht da gar nix drin)

                              3. So bald ich MQTT starte kommt im LOG "kein MQTT Server gefunden" und der WEMOS wird extrem langsam. Weclche EspEasy Version nutzt ihr?

                              Vielleicht kann der Ple ja auch mal seine ganzen Einstellungen durchgeben 😉

                              btw: ich habe den Wemos testenderweise schon mit einem anderen Sketch (für CuxD) bespielt und erfolgreich in der CCU meine temp+hum des DHT22 anzeigen lassen können. Und dies teilweise mit iobroker auslesen können.Teilweise deswegen, weil nur die Temp ankam . Hum blieb auf der Strecke 😞 Warum weiß ich auch nicht

                              VG

                              nelzon

                              1 Reply Last reply Reply Quote 0
                              • I
                                Ingo last edited by

                                Hallo Nelzon,

                                ja, wir sind auch zwischendurch etwas vom Thema abgewichen, hat mir aber allerhand gebracht. (nochmal Danke, Paul)

                                unter "Advanced" hab ich nie was angefasst oder geändert.

                                unter "Devices" IDX hab ich auch nie was eingetragen, scheint so zu gehen.

                                wichtig ist, dem Teil unter Config eine eindeutige Unit-Nr. zu verpassen.

                                Ich verwende ESP Easy Mega als auch die "normale" R148, beide laufen problemlos.

                                Hast du das mit dem seriellen Monitor probiert ?

                                oder erscheint dort dieses "kein MQTT Server gefunden" ?

                                Abhilfe bei meinen anfänglichen Schwierigkeiten haben mir mehrere Tips von Starfish (auch hier nochmal Danke, wäre ich von allein nie drauf gekommen)

                                Starfish hat geschrieben (geringfügig abgeändert):

                                ` > ArduinoIDE herunterladen (1.8.3) (jenachdem welche aktuell ist), ich lade mir immer die ZIP Datei herunter, damit ich aus dieser Version dann eine Standalone mache nur für den ESP bzw. das Projekt

                                Arduino ZIP entpacken, nicht starten !

                                neuen Ordner mit Namen portable im Verzeichnis von ArduinoIDE anlegen

                                neuen Ordner mit Namen sketchbook im Verzeichnis portable anlegen

                                Verzeichnis ESPEasy und libraries aus http://www.letscontrolit.com/downloads/ESPEasy_R148.zip

                                kopieren nach c:\arduino-1.8.1\portable\sketchbook\

                                ArduinoIDE öffnen, Datei –> Voreinstellungen und unter „Zusätzliche Boardverwalter-URLs:“ des pfad zum esp8266com eintragen: http://arduino.esp8266.com/stable/packa … index.json mit OK abspeichern

                                Danach den Boardverwalter aufrufen und die esp8266 -Boards suchen und installieren, die Daten sollten um die 150MB groß sein

                                Nach ein paar Minuten sollten nun die Boards verfügbar sein und die Grundeinrichtung zum Betreiben eines ESP8266 Board ist abgeschlossen

                                Danach keine (KEINE !!!) Updates der IDE, oder irgendwelcher Biliotheken oder Boards mehr machen !!!

                                Zum Testen kann man nun eins der Beispiele nehmen (zB. Hello Server vom ESP8266WebServer-Menü). `

                                Seitdem ich dies so handhabe, gibt es keine Probleme mehr, vorher machten meine Wemos, was sie wollten.

                                Ich habe mehrere Arduino-Installationen auf meinem Rechner, eine für ESP-Easy MEGA, eine für ESP-Easy R148, die ich nie verändere.

                                Dann halt eine normale Installation der IDE für den Rest.

                                Grüße Ingo

                                1 Reply Last reply Reply Quote 0
                                • N
                                  nelzon last edited by

                                  Hi

                                  im Anhang mal Screenshots, wie es bei mir aussieht.

                                  Als wenn er connectet und sofort wieder beendet?! iobroker findet den wemos.. aber "connection lost" 😞
                                  3247_unbenannt.png
                                  3247_unbenannt2.png
                                  3247_unbenannt3.png

                                  1 Reply Last reply Reply Quote 0
                                  • I
                                    Ingo last edited by

                                    ich vermute mal, das ich mit meinem Latein am Ende bin.

                                    Tut mir leid, das ich nicht helfen konnte.

                                    Vielleicht fällt mir noch was ein.

                                    Grüße Ingo

                                    1 Reply Last reply Reply Quote 0
                                    • N
                                      nelzon last edited by

                                      Problem gelöst: ich hatte omv, lxccu und danach noch iobroker zusammen auf einem Pi. Nun alles einmal neu: Pi1 raspberrymatic und Pi 2 iobrokerimage + omv3 hinterher und nun läuft es wunderbar. Jetzt geht es los blocky zu lernen..

                                      Es gab bestimmt portprobleme untereinander.

                                      1 Reply Last reply Reply Quote 0
                                      • I
                                        Ingo last edited by

                                        Herzlichen Glückwunsch zur Problemlösung !

                                        Grüße Ingo

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          marce802 last edited by

                                          Hi,

                                          wie macht ihr das wenn ihr z.B. ein Relais das am wemos/Nodemcu angeschlossen ist, steuern wollt?

                                          Der Input funktioniert soweit gut, aber wie kann ich jetzt etwas steuern?

                                          MfG marce802

                                          1 Reply Last reply Reply Quote 0
                                          • I
                                            Ingo last edited by

                                            Aus deinen 2 Sätzen kann man leider nicht viel herauslesen…....

                                            Über MQTT angebunden ?

                                            Ich hatte mal sowas gebaut, verstaubt aber gerade irgendwo.

                                            Das Relais hängt ja an einem GPIO, die du in ESP Easy auch einrichten mußt.

                                            Hast du in ioBroker unter Objekte einen State für diesen GPIO, vermutlich nicht.

                                            Diesen mußt du mit MQTTfx (für Windows) erst anlegen. Siehe Bild.

                                            Ansonsten im Forum nach "Scrolling Display" suchen, Starfish hat die ganze Sache dort hervorragend erklärt.

                                            Grüße Ingo
                                            1519_2017-03-27__5_.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            866
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            77
                                            13886
                                            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