Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Funk-Display zur Anzeige von Werten

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Funk-Display zur Anzeige von Werten

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

      Hallo,

      ich würde mir gerne ein Funk-Display basteln, um die Werte der Stromerzeugung von BHKW und PV-Anlage sowie Bezug/Lieferung Netz anzuzeigen. Leider hab ich keinerlei Idee, wie ich das bewerkstelligen könnte.

      Erstmal Grundlegendes: Ich hab hier im Haus ein BHKW von Senertec (Gas-Dachs HKA mit MSR2), eine PV-Anlage (4kWp mit Kostal Piko 4.2) und einen Stromspeicher von SENEC (Home Li 10kW). Der Stromspeicher wird von der PV-Anlage und vom BHKW gespeist. Nun kommt noch eine Wallbox (bzw. CEE 32A) hinzu, um mein Elektro-Auto (Renault ZOE R240) auch mal daheim zu laden.

      Und hier möchte ich neben die Wallbox dieses Display montieren, das mir beim Anstecken und Laden Auskunft darüber gibt, welche Erzeuger wieviel Leistung erzeugen und wie der Bezug bzw. die Einspeisung gerade ist. Die Daten hab ich bis auf Bezug/Lieferung schon im iobroker anliegen.

      Jetzt geht es erstmal um die Hardware, die mir die Daten von iobroker anzeigen kann. Diese Hardware sollte natürlich im weiten Temperaturbereich funktionieren, da ja im Aussenbereich angebracht. Ich hab hier schon etwas von ESP8266 gelesen, das hört sich recht interessant an. Allerdings hab ich keinen Plan, was ich dazu alles benötige und wie ich hier beginnen soll.

      Wenn das Display funktioniert und relativ günstig ist, möchte ich an verschiedenen Stellen weitere kleine Anzeigen anbringen (wie zB. für Temperatur, Heizungs-Status, Garagentor-Status,…).

      Vielleicht kann mir jemand einen Link geben, wo so ein Projekt schon gemacht wurde!

      Gruß

      Jürgen

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

        Hallo Jürgen,

        ich habe so etwas schon gebaut.

        Wemos D1 mini oder NodeMCU (enthält ESP8266), sowie ein 4-zeiliges Display Typ 2004 mit I2C-Interface.

        Den Wemos mit ESP Easy bespielen, der Rest ist Einrichtungssache.

        Der Wemos wird über MQTT mit ioBroker verbunden.

        Ein kleines Script ist in ioBroker noch notwendig.

        Bei Interesse mache ich ein paar Screenshots von den Einstellungen.

        Grüße Ingo
        1519_20171008_080155_k.jpg

        1 Reply Last reply Reply Quote 0
        • J
          jgoller last edited by

          Danke Ingo,

          das ist ja super. Ich bestell das erstmal und schaue, wie ich zurecht komme. Vielleicht komm ich nochmal auf dich zurück, wenn ich Hilfe brauche.

          Weißt du vielleicht, wie sich das Display bei Kälte verhält? ist das recht träge oder noch flüssig in der Anzeige? Gibt es eventuell Alternativen?

          Schönen Sonntag noch

          Jürgen

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

            Hallo Jürgen,

            wg Kälte - keine Ahnung.

            Ich hab mal über Goggle ein Datenblatt runtergezogen, Display geht bis -20°C.

            Da ich das Display nur aktualisiere, wenn sich Vor- oder Rücklauftemperatur ändern, spielt das bei mir auch keine große Rolle.

            Ich könnte mir vorstellen, das bei Kälte die Helligkeit zurückgeht, aber dafür gibt es einen Regler an der Display-Rückseite.

            Alternativen, sicherlich, aber es sollte preiswert sein, die beiden Teile haben, aus China kommend, keine 10,-€ gekostet.

            Grüße Ingo

            1 Reply Last reply Reply Quote 0
            • J
              jgoller last edited by

              Hallo Ingo,

              ich habe soeben die ESP8266-Bausteine bekommen (3 Stück) und die Displays hab ich auch schon. Vielleicht magst du kurz erläutern, wie ich nun vorgehen muß. Bin ja leider totaler Anfänger, wobei ich mit Raspbi (also Linux) und mit dem Lötkolben schon umgehen kann.

              Welche Pins muss ich denn vom ESP8266 zum Display verbinden? Das konnte ich auf dem Bild nicht sehen. Und deine Einstellungen in ioBroker (MQTT) würde ich auch gerne so übernehmen!

              Vielen Dank schon mal im Voraus

              Gruß

              Jürgen

              EDIT: hab gerade das Quickstart-Guide eBook bei AZ-Delivery gefunden. Da les ich mich mal ein, ist einiges sehr gut erklärt. Für hilfreiche Tipps und Einstellungen bei ioBroker bin ich dennoch sehr dankbar !!

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

                Hallo Jürgen,

                sollst du haben.

                Du lädst dir bei

                https://github.com/letscontrolit/ESPEasy/releases

                das Release v2.0.0-dev12 herunter.

                https://github.com/letscontrolit/ESPEas … -dev12.zip

                Darin enthalten ist ein Flashtool und div. .bin-Dateien. Wenn du dir auch die Wemos D1 mini bestellt hast, nimmst du die Datei xxxxx_normal_4096.bin.

                Flashesp8266.exe starten, Com-Port und .bin-Datei auswählen, und Flashen.

                Der ESP baut jetzt einen eigenen AP ESP_0 auf. Mit diesem verbinden, PW: configesp

                Jetzt die IP 192.168.4.1 aufrufen.

                Die WiFi-Daten deines Wlan´s eingeben, 20 sec. warten, neue IP notieren.

                Über dein eigenes WLAN und der neuen IP mit dem Modul verbinden.

                Wenn alles geklappt hat, freuen.

                Du solltest dann das folgende Bild vor dir haben.

                Ich suche noch ein paar Bilder zusammen, dann geht's weiter.

                Grüße Ingo
                1519_2017-11-29__10_.png

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

                  Da bin ich wieder,

                  Jetzt installierst du in ioBroker den MQTT-Adapter (nicht den Client).

                  Einstellungen wie in den 2 Bildern.

                  Für die Bilder für die Config des ESP brauche ich jetzt ein Weilchen, schicke ich dir morgen.

                  Grüße Ingo
                  1519_mqtt_1.png
                  1519_mqtt_2.png

                  1 Reply Last reply Reply Quote 0
                  • J
                    jgoller last edited by

                    Wow, Ingo!

                    Das ist soweit genial und hat bis hierhin perfekt funktioniert. Nun brauche ich wohl nur noch ein Script, um bestimmte Werte an das Display zu schicken!

                    Ich danke dir wie verrückt. Ich probier jetzt selbst noch ein bisschen herum und schau, was geht! Kein studieren ohne probieren.

                    Danke

                    Gruß

                    jgoller

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

                      Gaaaanz ruhig, Jürgen,

                      da gibt es noch ein paar Fallstricke.

                      Bitte schreibe mir mal, welches ESP-Modul und welches Display du hast, mach mal ein Foto.

                      Du mußt jetzt nämlich erst mal ESP und Display konfigurieren.

                      Das Skript kommt zu Schluß.

                      Grüße Ingo

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

                        Weiter geht's,

                        in ESP Easy / Config Unit-Nr. wenn es dein erstes Modul ist, dann eine 1, muß eindeutig sein.

                        Sehr zu empfehlen ist eine feste IP, unten eingeben. Mit Submit abspeichern, dann unter Tools Reboot.

                        Danach mit der festen IP neu verbinden.

                        Dann unter Controllers OpenHAB MQTT einstellen, Controller IP ist dein ioBroker.

                        Unter Hardware liest du bei SDA und SDL die Anschlüsse für dein Display aus. (können geändert werden).

                        An diese Anschlüsse schließt du jetzt dein Display an. (plus 5V und GND)

                        Das Ganze wieder einschalten, und unter Tools I2C Scan drücken, damit wird die Adresse des Display-Interfaces ermittelt.

                        Jetzt in Devices, das Display einrichten. Unter I2C Adress stellst du die ermittelte Display-Adresse ein.

                        (kann sein nochmal Reboot ???)

                        Dann sollte der Schriftzug ESP Easy im Display erscheinen.

                        Den Rest dann morgen, jetzt gibt es was zu futtern.

                        Grüße Ingo
                        1519_config.png
                        1519_tools.png
                        1519_controllers_1.png
                        1519_controllers_2.png
                        1519_hardware.png
                        1519_devices_1.png
                        1519_devices_2.png
                        1519_foto_esp_easy_klein.jpg

                        1 Reply Last reply Reply Quote 0
                        • J
                          jgoller last edited by

                          Okay, also folgende Hardware habe ich: (nur Beschreibung, ohne Link)

                          per Amazon:

                          3x AZDelivery D1 Mini NodeMcu Lua ESP8266 ESP-12E WLAN WIFI Internet Module Entwicklungsboard für Arduino, 100% kompatibel mit WeMos D1 Mini (3x D1 Mini)

                          2x SunFounder IIC/I2C/TWI Serial 2004/20x4 LCD Display Module Shield for Arduino Uno/Mega2560

                          1x Gaoxing Tech. IIC / I2C / TWI Serie 2004 20x4 LCD Modul Schild Für Arduino UNO MEGA R3

                          Soweit erstmal zur Hardware. Das andere machen wir gerne später, hab heut noch Nachtschicht und leg mich jetzt erstmal noch ein bissl hin!

                          Danke nochmal für deine Mühe!

                          Gruß

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

                            Schreib mal morgen, wie weit du gekommen bist und ob alles geklappt hat, dann machen wir weiter.

                            Ich hab ja eigentlich Zeit, zur Arbeit brauch ich nicht mehr, muß mich bloß um einige anderen Sachen kümmern.

                            Der PC der Frau hat den Geist aufgegeben, morgen was Neues zusammenfrickeln.

                            Sonntag, (1.Advent) Weihnachtsmarkt mit Ausstellung unseres Modellbahn-Clubs.

                            Nebenbei noch eine Neue Digitalzentrale für den Club bauen….....

                            Ich bin seit 3 1/2 Jahren gesundheitshalber zu Hause, Langeweile hatte ich noch keinen Tag...

                            Grüße Ingo

                            1 Reply Last reply Reply Quote 0
                            • D
                              der_Auge last edited by

                              Hi

                              hört sich spannend an

                              wie ist das mit der Stromversongung?

                              Habe hier noch ein https://www.amazon.de/ELEGIANT-NodeMcu- … B018E741G4 und auch ein Display rumliegen.

                              Geht das damit auch ?

                              Gruß

                              Jürgen

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

                                Guten Morgen Jürgen,

                                Das Modul aus deinem letzten Beitrag geht auch, da dieses jedoch viel mehr Anschlüsse zur Verfügung stellt als das kleine Wemos, wäre es Verschwendung.

                                Die Stromversorgung habe ich vom Wemos angegriffen, siehe Foto. Wemos und Display nehmen ca 130 mA auf.

                                Grüße Ingo
                                1519_wemos.jpg

                                1 Reply Last reply Reply Quote 0
                                • J
                                  jgoller last edited by

                                  Hallo Ingo,

                                  bis jetzt hat alles so funktioniert, wie du es beschrieben hast. Ich kann das Display ansteuern und darauf einen Text ausgeben. Auch die Kommunikation vom ESP8266 zum ioBroker funktioniert. Dazu hab ich unter 'Devices' neben dem Display ein 'Dummy Device' mit SENSOR_TYPE_SINGLE angelegt. Dies erscheint sofort im ioBroker und mqtt.0 .

                                  Soweit, so gut. Wie geht es denn nun weiter?

                                  Gruß

                                  jgoller

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

                                    Hallo Jürgen,

                                    nun fehlt dir nur noch das Script.

                                    Da ich vom scripten eigentlich keine Ahnung habe, habe ich mit Blockly was gebastelt.

                                    Der Einfachheit halber spreche ich das Display mit Http-Requests an.

                                    Aus Blockly dann Javascript gemacht, übriggeblieben ist:

                                    // Heizung Keller
                                    on({id: new RegExp('mqtt\\.0\\.NodeMCU_Keller\\.Vorlauf\\.Temperature' + "|" + 'mqtt\\.0\\.NodeMCU_Keller\\.Ruecklauf\\.Temperature'), change: "ne"}, function (obj) {
                                        require("request")('http://192.168.2.170/control?cmd=lcdcmd,clear');
                                        require("request")('http://192.168.2.170/control?cmd=lcd,1,1,Heizung Keller');
                                        require("request")(['http://192.168.2.170/control?cmd=lcd,2,1,Vorlauf      ',getState("mqtt.0.NodeMCU_Keller.Vorlauf.Temperature").val,' C'].join(''));
                                        require("request")(['http://192.168.2.170/control?cmd=lcd,3,1,Ruecklauf    ',getState("mqtt.0.NodeMCU_Keller.Ruecklauf.Temperature").val,' C'].join(''));
                                        require("request")(['http://192.168.2.170/control?cmd=lcd,4,1,Aussen Temp  ',getState("rflink.0.channels.Baldr_1.TEMP").val,' C'].join(''));
                                    });
                                    
                                    

                                    Ein Bild vom ursprünglichen Blockly anbei.

                                    Es kommen jetzt einige Sachen zum Vorschein, die ich auf Grund mangelnder Ahnung nicht in den Griff bekommen habe.

                                    Siehe Bilder.

                                    So, jetzt gibt es Kaffee + Kuchen, nachher geht's weiter.

                                    Grüße Ingo
                                    1519_blockly.png
                                    1519_20171008_080330_k.jpg
                                    1519_20171009_091636_k.jpg

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

                                      Hi,

                                      was ich nicht hinbekommen habe, ist, ein ° vor dem C einzufügen und das Verrutschen der Anzeige bei einstelligen Temperaturen.

                                      Da fehlt mir eine Gehirnwindung.

                                      Ich hatte hier im Forum schon mal um Hilfe gebeten, habe auch eine Antwort mit einer Lösung aufgezeigt bekommen, wußte aber nicht,

                                      wie ich das anwenden sollte.

                                      Gestern habe ich auf Yuotube folgendes entdeckt:

                                      http://www.instructables.com/id/SOLAR-P … R-STATION/

                                      Mal den Quelltext vom Empfänger:

                                      `/*.............................................................
                                       Sending Multiple Variables Using VirtualWire. Receiver
                                       Author:Rodrigo Mompo Redoli http://controlrobotics.rodrigomompo.com
                                       modified by deba168 from INDIA on 06/09/2014
                                       ..............................................................*/
                                      
                                      #include <wire.h>// use Wire library for protocol i2c (A4 = SDA & A5 = SCL)
                                      #include <liquidcrystal_i2c.h>// use LiquidCrystal_I2C library for control LCD on i2c protocol
                                      #include <virtualwire.h>// use Virtual library for decode signal from Rx module
                                      
                                      byte thermometer[8] = //icon for thermometer
                                      {
                                        B00100,
                                        B01010,
                                        B01010,
                                        B01110,
                                        B01110,
                                        B11111,
                                        B11111,
                                        B01110
                                      };
                                      
                                      byte droplet[8] = //icon for droplet
                                      {
                                        B00100,
                                        B00100,
                                        B01010,
                                        B01010,
                                        B10001,
                                        B10001,
                                        B10001,
                                        B01110,
                                      };
                                      byte hi[8]=    //icon for heat index
                                      {
                                        0B00000,
                                        0B00000,
                                        0B10101,
                                        0B01110,
                                        0B11111,
                                        0B01110,
                                        0B10101,
                                        0B00000,
                                      };                 //(addr, EN,RW,RS,D4,D5,D6,D7,BL,BLpol)
                                      LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //change the address as per your I2C module
                                      // Sensors 
                                      int humidity=0;
                                      int temp=0;
                                      int heat_index=0;
                                      char MsgReceived[21]; 
                                      int led = 13; //pin for LED
                                      
                                      void setup() 
                                      {
                                        lcd.begin(20,4); // set up the LCD's number of columns and rows: 
                                        lcd.backlight(); //backlight is now ON
                                        pinMode(led, OUTPUT); 
                                      
                                        // VirtualWire 
                                        // Bits per sec
                                        vw_setup(2000);
                                        // set pin for connect receiver module 
                                        vw_set_rx_pin(11);  
                                        // Start the receiver PLL running
                                        vw_rx_start();       
                                      
                                        lcd.begin(20,4);   // initialize the lcd for 20 chars 4 lines, turn on backlight
                                        lcd.backlight(); // finish with backlight on  
                                        lcd.createChar(1, thermometer);
                                        lcd.createChar(2, droplet);
                                        lcd.createChar(3,hi);
                                        lcd.clear(); // clear the screen
                                      
                                      } // END void setup
                                      
                                      void loop()
                                      {
                                        uint8_t buf[VW_MAX_MESSAGE_LEN];
                                        uint8_t buflen = VW_MAX_MESSAGE_LEN;
                                        //Taking the data from the control base
                                        if (vw_get_message(buf, &buflen)) 
                                        {
                                          digitalWrite(led, HIGH);
                                          delay(100);
                                          int i;
                                          // Message with a good checksum received, dump it. 
                                          for (i = 0; i < buflen; i++)
                                          {            
                                            // Fill Msg Char array with corresponding 
                                            // chars from buffer.   
                                            MsgReceived[i] = char(buf[i]);
                                            //Serial.print(MsgReceived[i]);
                                          }
                                      
                                          sscanf(MsgReceived, "%d,%d,%d",&humidity, &temp,&heat_index); // Converts a string to an array
                                          digitalWrite(led, LOW); 
                                          lcd_display();
                                          memset( MsgReceived, 0, sizeof(MsgReceived));// This line is for reset the StringReceived
                                        }
                                      }
                                      void lcd_display()
                                      { lcd.setCursor(1,0);
                                        lcd.print(" WEATHER STATION ");
                                        lcd.setCursor(4,1);
                                        lcd.print("TEMP");
                                        lcd.setCursor(9, 1);
                                        lcd.write(1);
                                        lcd.setCursor(11, 1);
                                        lcd.print(temp);
                                        lcd.write(0b11011111);
                                        lcd.print("C");
                                        lcd.setCursor(4,2);
                                        lcd.print("HUM");
                                        lcd.setCursor(9, 2);
                                        lcd.write(2);
                                        lcd.setCursor(11, 2);
                                        lcd.print(humidity);
                                        lcd.print("%");
                                        lcd.setCursor(4,3);
                                        lcd.print("HI");
                                        lcd.setCursor(9, 3);
                                        lcd.write(3);
                                        lcd.setCursor(11, 3);
                                        lcd.print(heat_index);
                                        lcd.write(0b11011111);
                                        lcd.print("C");
                                      }</virtualwire.h></liquidcrystal_i2c.h></wire.h>` 
                                      
                                      Sieht dann wie auf dem Bild aus.
                                      
                                      Aber wie fügt man sowas in ein Script ein ?????
                                      
                                      Falls hier noch jemand mitliest und sich dazu in der Lage fühlt, es würde mich freuen !
                                      
                                      Grüße Ingo
                                        [1519_fis4e1aip2ufmbh.large.jpg](/assets/uploads/files/1519_fis4e1aip2ufmbh.large.jpg)  [/i][/i][/i]
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • J
                                        jgoller last edited by

                                        Hallo Ingo,

                                        nach einigem Probieren (manchmal lässt sich das Display nicht ansprechen, I2C-Bus nicht vorhanden), hab ich nun mein eigenes Script mit Blockly gebaut (auch absolutes Neuland). Läuft !!! DANKE für deine Unterstützung. Erfolgserlebnis macht Lust auf mehr, da kann ich jetzt drauf aufbauen, denke ich.

                                        Mein Script sieht nun erstmal so aus:

                                        schedule("*/10 * * * * *", function () {
                                          try {
                                            require("request")((['http://192.168.1.78/control?cmd=lcd,1,1,PV-Anlage: ',getState("javascript.0.Photovoltaik.WR3.Leistung_aktuell").val,' W'].join(''))).on("error", function () {console.error(e);});
                                          } catch (e) { console.error(e); }
                                          try {
                                            require("request")((['http://192.168.1.78/control?cmd=lcd,2,1,BHKW:      ',getState("javascript.0.BHKW.aktLeistung").val,' W'].join(''))).on("error", function () {console.error(e);});
                                          } catch (e) { console.error(e); }
                                        });
                                        
                                        

                                        Das Display und Blockly hab ich als Bild angehängt:
                                        3447_blockly-script_f_r_display.jpg
                                        3447_2017-12-01_19-14-06_img_20171201_191406.jpg

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

                                          Guten Morgen,

                                          war gestern bis spät im Modellbahn-Club, die morgige Adventsausstellung vorbereiten…..

                                          Das du manchmal das Display nicht ansprechen kannst, liegt (lag bei mir) an einer fehlerhaften Verbindung zwischen ESP-Modul

                                          und Display. Erst nachdem ich von diesen Steckstrippen auf eine gelötete Verbindung umgestiegen bin, war alles ok.

                                          Ansonsten schön, wenn es dir was gebracht hat.

                                          Grüße Ingo

                                          1 Reply Last reply Reply Quote 0
                                          • J
                                            jgoller last edited by

                                            Hallo Ingo,

                                            das Ansteuern der Display mit den ESP8266 D1 mini funktioniert nun problemlos dank deiner Hilfe. Ich hab nun auch die Sache mit dem Sonderzeichen (z.B. ° vor dem C) gelöst. In Blockly musst du für das °-Zeichen dein %DF setzen. Das sieht dann bei mir so aus: %DFC . Ich hab es mal als Bild angehängt!

                                            Bei google mal nach sonderzeichen javascript suchen (und ein bisschen probieren)!

                                            Gruß

                                            jgoller
                                            3447_blockly_sonderzeichen.jpg

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            529
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            20
                                            70
                                            21727
                                            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