Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. [Projekt] Scrolling OLED-display und Sonoff-Relais für iobroker via MQTT

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.9k

[Projekt] Scrolling OLED-display und Sonoff-Relais für iobroker via MQTT

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
131 Beiträge 23 Kommentatoren 41.0k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • EisbaeeerE Offline
    EisbaeeerE Offline
    Eisbaeeer
    Developer
    schrieb am zuletzt editiert von
    #94

    @Spike08122:

    Aber ich weiß nicht, wie ich die Werte von einem Gerät automatisch in den MQTT Adapter vom ioBroker bekomme. `

    Du kannst den Datenpunkt, den du manuell gefüttert hast, z.B. mit dem js-adapter füttern. Dazu brauchst du kein javascript können. Verwende blockly und baue dir dein Programm zusammen. Mach ein einfaches Programm, z.B. alle 30 Sekunden eine Temperatur in den Datenpunkt schreiben. Dazu gibt es jede Menge Beispiele hier im Forum.

    So wie ich das sehe, geht das dann in deinem Beispiel nur mit Zahlenwerten!?

    Eisbaeeer

    Kein support per PM. Bitte im Forum Fragen stellen!

    1 Antwort Letzte Antwort
    0
    • A Offline
      A Offline
      alexmosel
      schrieb am zuletzt editiert von
      #95

      Hallo, bin noch neu in dem ganzen Thema und lese schon seit einigen Wochen fleißig mit.

      Ich möchte mir ein Display bauen, was die Werte meiner PV-Anlage anzeigt, welche ich bereits per Modbus in ioBroker bekommen habe.

      Es stellt sich mir die Frage ob es ggf. auch mit dem Epaper Display von Squix.org ginge.

      Ich will eigentlich ein Magnetisches Gehäuse haben, was ich ggf. an den Kühlschrank klatsche. Das macht allerdings nur Sinn, wenn der Akku darin (powerbank?) eine Weile durchhält…ggf. kann das Display ja auch automatisch an und abschalten (morgens an, abends aus)

      Habe mir jetzt zum Testen erst mal die OLED Komponenten bestellt...mal sehn...

      1 Antwort Letzte Antwort
      0
      • EisbaeeerE Offline
        EisbaeeerE Offline
        Eisbaeeer
        Developer
        schrieb am zuletzt editiert von
        #96

        @Eisbaeeer:

        So wie ich das sehe, geht das dann in deinem Beispiel nur mit Zahlenwerten!?

        Eisbaeeer `

        Also ich habe jetzt herausgefunden, wie ich die Werte per HTTP Get setzen kann. Ich fülle alle 30 Minuten die Zeilen, in der Hoffnung, dass der Flash das aushält.

        Syntax: "http://<ip-adresse>/control?cmd=<name-von-oled>,<zeile>,<text>"

        Das benötigte binary (firmware für den ESP) bekommt ihr von "starfish".

        Quick-and-dirty code für javascript ;-)

        ! ````
        var befehl = "http://192.168.1.108/control?cmd=Display,"; //hier deine url eingeben
        var request_oled = require('request');
        var einheit1 = " Grad";
        var einheit2 = " km/h";
        ! var zeile1 = "1,";
        var zeile2 = "2,";
        var zeile3 = "3,";
        var zeile4 = "4,";
        var zeile5 = "5,";
        var zeile6 = "6,";
        var zeile7 = "7,";
        var zeile8 = "8,";
        var zeile9 = "9,";
        var zeile10 = "10,";
        var zeile11 = "11,";
        var zeile12 = "12,";
        ! function sendData () {

        var data1 = getState("hm-rpc.0.HEQ0237810.1.TEMPERATURE").val;
        var data2 = getState("yr.0.forecast.day0.text").val;
        var data3 = getState("yr.0.forecast.day0.temperature_max").val;
        var data4 = getState("yr.0.forecast.day0.wind_direction").val;
        var data5 = getState("yr.0.forecast.day0.wind_speed").val;

        ! request_oled(befehl+zeile2+data2,function (error, response, body) {
        log('error: ' +error); // Print the error if one occurred
        });
        request_oled(befehl+zeile4+data1+einheit1,function (error, response, body) {
        log('error: ' +error); // Print the error if one occurred
        });
        request_oled(befehl+zeile6+data3+einheit1,function (error, response, body) {
        log('error: ' +error); // Print the error if one occurred
        });
        request_oled(befehl+zeile8+data4+"-"+data5+einheit2,function (error, response, body) {
        log('error: ' +error); // Print the error if one occurred
        });

        }
        

        schedule("*/30 * * * *", function () { //oder!! soll entweder ausgelöst werden alle 30 Minuten
        log("===>Will be triggered every 30 minutes!");
        sendData();
        });
        sendData();

        
        –- EDIT --- 15.10.2017
        
        * Code fängt nun auch "host not reachable" ab und startet nicht die ganze Javascript Instanz neu ;-)
        
        Grüße Eisbaeeeer</text></zeile></name-von-oled></ip-adresse>

        Kein support per PM. Bitte im Forum Fragen stellen!

        1 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          alexmosel
          schrieb am zuletzt editiert von
          #97

          Hallo, kann mir jemand sagen ob das mit dem Epaper Display auch ginge ??

          gerne mit Link….

          mein Spielzeug kam heute an, das oled ist schon sehr klein...

          1 Antwort Letzte Antwort
          0
          • EisbaeeerE Offline
            EisbaeeerE Offline
            Eisbaeeer
            Developer
            schrieb am zuletzt editiert von
            #98

            @alexmosel:

            Hallo, kann mir jemand sagen ob das mit dem Epaper Display auch ginge ??

            gerne mit Link….

            mein Spielzeug kam heute an, das oled ist schon sehr klein... `

            Hallo alexmosel

            Grundsätzlich sollte das gehen, aber wohl nicht ohne Anpassung der Firmware. Es gibt zwar E-Paper Module mit SPI Schnittstelle, aber der Controller ist mit Sicherheit ein anderer und versteht die Befehle so nicht.

            Link, gerne: google.de oder z.B. hier: https://hackaday.io/project/20466-wifi-epaper

            Kein support per PM. Bitte im Forum Fragen stellen!

            1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              alexmosel
              schrieb am zuletzt editiert von
              #99

              So ein Epaper Display mit Solar wäre natürlich cool….auf der Squix Seite habe ich die gesehen, die haben dann das Wifi Modul schon drin oder verstehe ich das falsch ?

              Jetzt aber erstmal zum ersten PRoblem....

              habe heute folgendes erhalten:

              http://www.ebay.de/itm/0-96-OLED-Displa ... 2749.l2649

              und

              http://www.ebay.de/itm/WeMos-D1-mini-ES ... 2749.l2649

              Bin jetzt schon zu blöd die beiden Teile miteinander zu verbinden. Was muss denn wo dran, finde da leider auch nirgends eine Anleitung für..

              ... und ohne löten stimmt ja auch nicht, da das Wlan ding vollkommen nackig daher kommt und die Steckbrücken auch erst angelötet werden müssen....ich versuche das nachher dann mal wobei ichs bestimmt eh kaputt brate (bin nich ganz so talentiert bei den kleinen lötpünktchen

              Danke schonmal :mrgreen:

              1 Antwort Letzte Antwort
              0
              • K Offline
                K Offline
                knopers1
                schrieb am zuletzt editiert von
                #100

                die Pin-Headers anlöten und nach Bild das Display an den Wemo angeschlossen..

                GPIO 4 und GPIO 5 entstrechen dem D1 und D2 Pin. Kannst Du mir folgen Kollege? :mrgreen: Rest ist klar hoffe ich… VCC und GND solltest Du schon alleine hinkriegen.
                1526_easy_wemo_2_.png
                1526_esp8266-wemos-d1-mini-pinout.png

                HP Microserver Gen8, RPI-4, IoBroker,

                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  alexmosel
                  schrieb am zuletzt editiert von
                  #101

                  Super, das habe ich soweit, VCC kommt dann auf 5 V, richtig ? Das Display hat eine Betriebsspannung von 3.3 bis 7 V

                  Ich scheitere jetzt am aufspielen der Firmware, habe versucht die Anleitungen zu befolgen, komme aber irgendwie nicht weiter .

                  Habe diesen portable ordner angelegt, der ESPEasy Ordner, der da erscheinen sollte ist nicht in dem besagten Archiv.

                  Irgendwo stand doch, dass jemand ne fertig kompilierte Variante für das Wemos D1 Mini hat, es wäre super, wenn ich die bekommen könnte ;-)

                  …Ich habe das aber schon richtig verstanden, dass nicht erst das expeasy installiert wird und dann der Rest nachinstalliert, sondern die Firmware angepasst und dann draufgebügelt wird , oder ?

                  1 Antwort Letzte Antwort
                  0
                  • EisbaeeerE Offline
                    EisbaeeerE Offline
                    Eisbaeeer
                    Developer
                    schrieb am zuletzt editiert von
                    #102

                    @alexmosel:

                    Super, das habe ich soweit, VCC kommt dann auf 5 V, richtig ? Das Display hat eine Betriebsspannung von 3.3 bis 7 V

                    …Ich habe das aber schon richtig verstanden, dass nicht erst das expeasy installiert wird und dann der Rest nachinstalliert, sondern die Firmware angepasst und dann draufgebügelt wird , oder ? `

                    Hallo alexmosel

                    Respekt, dass du dich da einarbeitest. Man lernt dazu, wenn man das selbst zusammenbaut. Für das nächste Projekt kannst du auch einfach so was hier nehmen: http://www.ebay.de/itm/D-Duino-v3-esp82 … Swg7VZoxrW. Nur noch ein USB-Kabel dran, an den PC anschließen und die Firmware hochladen. Ganz ohne löten ;-)

                    Ok, du bist ja schon so weit, dass du die Firmware auf das Modul laden willst. Zu deiner Frage. Du brauchst NUR das ESP-Easy in der Verison 148, falls du MQTT nutzen möchtest. Starfish hat für die 148er einen Download. Schicke ihm doch einfach eine PM. In dem Download ist ein kleines Tool enthalten, mit dem du die Firmware über den USB-Anschluss hochlädst. Beim Anstecken des Moduls sollte auf deinem Rechner eine neue "COM" Schnittstelle erscheinen. Diese COM muss bei dem Tool mit angegeben werden. Hier genau beschrieben: https://www.letscontrolit.com/wiki/inde … are_Upload. Anschließend die Einstellungen über die Web-Oberfläche wie hier im Forum beschrieben, vornehmen.

                    Hoffe das hilft dir. Eisbaeeer

                    Kein support per PM. Bitte im Forum Fragen stellen!

                    1 Antwort Letzte Antwort
                    0
                    • A Offline
                      A Offline
                      alexmosel
                      schrieb am zuletzt editiert von
                      #103

                      Hallo, habe ihn angetextet, ist sein Image dann komplett?

                      Man muss doch oled Treiber usw einbinden , oder?

                      5v ist korrekt oder? Weil am Anfang des Themas was von 3.3 v Wandler geschrieben wurde…?

                      Gesendet von meinem SM-G900F mit Tapatalk

                      1 Antwort Letzte Antwort
                      0
                      • K Offline
                        K Offline
                        knopers1
                        schrieb am zuletzt editiert von
                        #104

                        @alexmosel:

                        ist sein Image dann komplett? `
                        ja

                        @alexmosel:

                        Man muss doch oled Treiber usw einbinden , oder? `
                        nein

                        @alexmosel:

                        5v ist korrekt oder? Weil am Anfang des Themas was von 3.3 v Wandler geschrieben wurde…? `

                        3.3V - 6V. Schon mal auf die Idee gekommen einfach mal das Datenblatt vom Display durchzulesen?

                        HP Microserver Gen8, RPI-4, IoBroker,

                        1 Antwort Letzte Antwort
                        0
                        • A Offline
                          A Offline
                          alexmosel
                          schrieb am zuletzt editiert von
                          #105

                          @knospers,

                          du schriebst dass du das Display nicht über MQTT ansteuerst sondern eine einfachere Lösung hast.

                          Mein Vorhaben ist eigentlich recht simpel. Ich habe Werte die über Modbus in IObroker landen und die wiederum sollen auf dem Display möglichst groß angezeigt werden.

                          Hast du da ne Anleitung ?

                          Danke schonmal

                          1 Antwort Letzte Antwort
                          0
                          • K Offline
                            K Offline
                            knopers1
                            schrieb am zuletzt editiert von
                            #106

                            meine Lösung ist nicht unbedingt einfacher. Ich habe es deshalb über den Weg gemacht, weil ich das Display nach der Beschreibung aus der ersten Seite nicht zum Laufen gebracht habe… Bei den anderen, scheint es aber zu laufen... keine Ahnung....

                            In meinem Fall greife ich die Daten direkt aus der CCU heraus! Das Addon XML.api muß installiert sein.

                            Mit einem passenden Sketch für Wemo, wodran ein Display angeschlossen ist, greife ich die Daten von der CCU ab und gebe sie auf das Display weiter...

                            kurz und knapp. Du braucht dafür eine CCU mit Addon XML.api . Hast Du eine CCU? Tauchen die Werte irgendwo auf der CCU auf, die Du auf das Display ausgeben willst? Wenn nicht, dann brauchen wir garnicht weiter zu machen...

                            HP Microserver Gen8, RPI-4, IoBroker,

                            1 Antwort Letzte Antwort
                            0
                            • A Offline
                              A Offline
                              alexmosel
                              schrieb am zuletzt editiert von
                              #107

                              Habe ccu eben mal gegoogelt, verstehe nur Bahnhof

                              Habe ne Windows PC mit iobroker was später mal auf ne n raspberry soll. Das d1mini mit dem Display .

                              Sonst hab ich nix

                              Fragliche grüße

                              Gesendet von meinem SM-G900F mit Tapatalk

                              1 Antwort Letzte Antwort
                              0
                              • K Offline
                                K Offline
                                knopers1
                                schrieb am zuletzt editiert von
                                #108

                                ah ja… CCU ist die Zentrale von der Homematic.

                                dann hat sich das schon mal erledigt. Dann bleibt Dir nichts anderes über als die Lösung über den MQTT Adapter in Verbindung mit ESPEasy.
                                1526_103584_w01_ccu.jpg

                                HP Microserver Gen8, RPI-4, IoBroker,

                                1 Antwort Letzte Antwort
                                0
                                • A Offline
                                  A Offline
                                  alexmosel
                                  schrieb am zuletzt editiert von
                                  #109

                                  Ah ok, habe ein knx System und kein homematic. …Dann werde ich mal versuchen.

                                  Display geht , jetzt muss es nur noch werte anzeigen

                                  Gesendet von meinem SM-G900F mit Tapatalk

                                  1 Antwort Letzte Antwort
                                  0
                                  • EisbaeeerE Offline
                                    EisbaeeerE Offline
                                    Eisbaeeer
                                    Developer
                                    schrieb am zuletzt editiert von
                                    #110

                                    @alexmosel:

                                    Ah ok, habe ein knx System und kein homematic. …Dann werde ich mal versuchen.

                                    Display geht , jetzt muss es nur noch werte anzeigen

                                    Gesendet von meinem SM-G900F mit Tapatalk ` Wenn es nur um die Anzeige der Werte auf dem Display Geht, kannst du die auch per Http GET an das Display schicken. Weiter oben hab ich dir ein fix und fertiges Script als Beispiel genannt. JavaScript Adapter installieren und fertig.

                                    Eisbaeeer

                                    Kein support per PM. Bitte im Forum Fragen stellen!

                                    1 Antwort Letzte Antwort
                                    0
                                    • A Offline
                                      A Offline
                                      alexmosel
                                      schrieb am zuletzt editiert von
                                      #111

                                      Hallo nochmal,

                                      sorry für die vielen blöden Fragen…

                                      schedule("*/30 * * * *",  function () { // alle 30 Minuten - für Tests ggf auskommentieren
                                      
                                      setState("mqtt.0.easy_wemo.cmd","wemo,1,T_aussen"); // Beschriftungszeilen setzen  via MQTT
                                      setState("mqtt.0.easy_wemo.cmd","wemo,3,Wohnzimmer");
                                      setState("mqtt.0.easy_wemo.cmd","wemo,5,Keller");
                                      var temp=getState("hm-rpc.2.IEQ0020678.1.TEMPERATURE").val; // HM-Datenpunkte auslesen und in Variablen schreiben
                                      var wz_t=getState("hm-rpc.2.MEQ0476362.1.TEMPERATURE").val;
                                      var wz_h=getState("hm-rpc.2.MEQ0476362.1.HUMIDITY").val;
                                      var k_t=getState("hm-rpc.2.MEQ0477427.1.TEMPERATURE").val;
                                      var k_h=getState("hm-rpc.2.MEQ0477427.1.HUMIDITY").val;
                                      setState("mqtt.0.easy_wemo.cmd","wemo,2,"+temp+" °C"); // Variablen nach ESP8266 schreiben  via MQTT
                                      setState("mqtt.0.easy_wemo.cmd","wemo,4,"+wz_t+" °C / "+wz_h+" %rH");
                                      setState("mqtt.0.easy_wemo.cmd","wemo,6,"+k_t+" °C / "+k_h+" %rH");
                                      
                                      }); // für Tests ggf auskommentieren
                                      

                                      meinst du das Script ? Das basiert doch auch auf mqtt ?

                                      Habe eben ein bisschen damit rum probiert, passiert aber leider auf dem Display nüscht

                                      1 Antwort Letzte Antwort
                                      0
                                      • A Offline
                                        A Offline
                                        alexmosel
                                        schrieb am zuletzt editiert von
                                        #112

                                        Hallo nochmal,

                                        ich gehe davon aus, das ist der Quellcode:

                                            var befehl = "http://192.168.1.108/control?cmd=Display,"; //hier deine url eingeben
                                            var request_oled = require('request');
                                            var einheit1 = " Grad";
                                            var einheit2 = " km/h";
                                        
                                            var zeile1 = "1,";
                                            var zeile2 = "2,";
                                            var zeile3 = "3,";
                                            var zeile4 = "4,";
                                            var zeile5 = "5,";
                                            var zeile6 = "6,";
                                            var zeile7 = "7,";
                                            var zeile8 = "8,";
                                            var zeile9 = "9,";
                                            var zeile10 = "10,";
                                            var zeile11 = "11,";
                                            var zeile12 = "12,";
                                        
                                            function sendData () {
                                        
                                            var data1 = getState("hm-rpc.0.HEQ0237810.1.TEMPERATURE").val;
                                            var data2 = getState("yr.0.forecast.day0.text").val;
                                            var data3 = getState("yr.0.forecast.day0.temperature_max").val;
                                            var data4 = getState("yr.0.forecast.day0.wind_direction").val;
                                            var data5 = getState("yr.0.forecast.day0.wind_speed").val;
                                        
                                                  request_oled(befehl+zeile2+data2,function (error, response, body) {
                                                        log('error: ' +error); // Print the error if one occurred
                                                  }); 
                                                  request_oled(befehl+zeile4+data1+einheit1,function (error, response, body) {
                                                        log('error: ' +error); // Print the error if one occurred
                                                  });
                                                  request_oled(befehl+zeile6+data3+einheit1,function (error, response, body) {
                                                        log('error: ' +error); // Print the error if one occurred
                                                  });
                                                  request_oled(befehl+zeile8+data4+"-"+data5+einheit2,function (error, response, body) {
                                                        log('error: ' +error); // Print the error if one occurred
                                                  });
                                        
                                                }
                                        
                                            schedule("*/30 * * * *", function () {                                  //oder!! soll entweder ausgelöst werden alle 30 Minuten
                                               log("===>Will be triggered every 30 minutes!"); 
                                               sendData();
                                            });
                                            sendData();
                                        
                                        

                                        Habe den Javascript adapter installiert und Script 1 den Text reinkompiert….

                                        Wenn ich den Befehl 192.168.1.53/control?cmd=Anzeige,1,Hallo

                                        in die Adresszeile meines Browers schreibe, dann gibt das Display das in Zeile 1 wieder, das klappt...

                                        Ich denke um auf den Modbus-Wert zuzugreifen müsste dann modbus.0.inputRegisters.30775_PV-Erzeugung in dem Script stehen.

                                        Ich schaffe es aber nicht, dass das Script überhaupt irgendwas tut.

                                        In Zeile 1 soll z.b. stehen PV Aktuell

                                        und in zeile 2 eben der Modbus-Wert

                                        Wie oft kann man das denn aktualisieren, ohne dass der Flash-Speicher abraucht....die PV Werte ändern sich ja regelmäßig, also würde ein Intervall von sagen wir mal 5-10 min schon Sinn machen...geht das überhaupt ?

                                        1 Antwort Letzte Antwort
                                        0
                                        • A Offline
                                          A Offline
                                          alexmosel
                                          schrieb am zuletzt editiert von
                                          #113

                                          schonwieder ich :mrgreen:

                                          Habe den Fehler gefunden, hatte zwar das Script gestartet, den Java-Adapter allerdings nicht….

                                          Es zeigt jetzt einen Wert an....

                                          Soweit so gut..

                                          Fragen gibts, immernoch...

                                          Wie kann man oben den Empfangsbalken, Uhrzeit (0:00 -- ich finde nirgends eine NTP einstellung für die Zeit) und D1-mini Name abschalten und dafür die 2 Zeilen groß auf dem Display darstellen ?

                                          Vielen Dank bis hier hin....MFG

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          796

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe