Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. ESP Matrix Anzeige fully IoBroker steuerbar

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    ESP Matrix Anzeige fully IoBroker steuerbar

    This topic has been deleted. Only users with topic management privileges can see it.
    • metaxa
      metaxa @wuchy last edited by metaxa

      @wuchy Bist du danach vorgegangen?

      1. https://github.com/liv-in-sky/MatrixDisplayESP8266
      2. MQTT Adapter hast du installiert?a0eecc9b-142e-43c9-a0f8-be75b40c4bd2-grafik.png
      1 Reply Last reply Reply Quote 0
      • joergeli
        joergeli @wuchy last edited by joergeli

        @wuchy
        Hi,
        ich habe die Laufschrift ebenfalls nachgebaut, allerdings werden die Daten mit meinem Sketch mittels UDP an den WEMOS "gepushed" und nicht "abgeholt". Das ist aber für Dein Problem nebensächlich.
        Guckst Du: ioBroker DOT Matrix Laufschrift
        Dort speziell den Absatz Software.

        Ich nehme an, Dir fehlt der Datenpunkt, in dem die Daten für die Laufschrift stehen?
        Schau Dir diesbzgl. mal das Script "Matrix-Laufschrift.js" ganz unten auf meiner Seite an.
        Ich habe vorher manuell einen Datenpunkt "ausgabe_datenpunkt = 'javascript.0.Laufschrift' " (Typ = Zeichenkette") erstellt.
        Das Script füllt diesen Datenpunkt dann zyklisch mit den gewünschten Werten (durch Semikolon getrennt).
        Dazu werden im Script zuerst alle gewünschten Daten gesammelt mit getState(xxx) .
        Dann werden ggf. einige Umrechnungen vorgenommen ( z.B. windspeed -> bft).
        Anschl. if-Abfragen wie z.B.

                if (gelb_sack_heute == true) {
                    var GelbSackHeute = 'Heute Gelber Sack;'
                }
                else { var GelbSackHeute = '' }
        

        Das bewirkt, daß wenn heute der Gelbe Sack abgeholt wird, die Variable var GelbSackHeute = 'Heute Gelber Sack;' gesetzt wird (beachte das Semikolon am Ende, was als Feldtrenner für die Matrix benötigt wird).
        Ist heute kein Abholtermin, ist die Variable var GelbSackHeute = '' leer, bzw. ein leerer String.

        Wenn alle gewünschten Variablen erzeugt sind, wird daraus damit die Variable "ausgabe" gefüllt:

        var ausgabe     =  Service + DutyCycle + Badezimmer +  tf_aussen +  tf_wohnzimmer + .......
        

        Darin sind dann alle Werte enthalten (auch die Leerstrings, die aber auf der Matrix nicht angezeigt werden).
        Die "ausgabe" wird dann in den oben erwähnten "ausgabe_datenpunkt" geschrieben:

            var pfad = ausgabe_datenpunkt
            setState(pfad , ausgabe, true);
        

        Dieser Datenpunkt ist dann die URL, die vom Matrixdisplay benötigt wird.

        Ich hoffe, ich konnte das einigemaßen rüberbringen und es hilft Dir weiter?

        Gruß
        Jörg

        liv-in-sky 1 Reply Last reply Reply Quote 0
        • W
          wuchy last edited by

          @joergeli

          Riesen Dank für deine Antwort und deine Erklärungen. Ich glaube ich hab's gerafft.
          Na dann werde ich mich über's Wochenende mal damit auseinandersetzen.

          LG wuchy

          1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @joergeli last edited by

            @joergeli

            du hast da viel arbeit reingesteckt und das mit dem push der daten ist definitiv eine gute verbesserung - soll ich dein project in den ersten post mit aufnehmen ? ich werde meinen sketch nicht weiterentwickeln - ich überlege selber schon, eines meiner zwei matrixen mal mit deinem sketch zu testen.
            möchtest du einen eigenen thread aufmachen (oder hast du schon einen), um auf updates aufmerksam zu machen - den könnte ich auch verlinken - es wird schwierig für neue user, zuerst meinen thread durchzulesen und anschliessend deine version zu finden

            @wuchy je nachdem , welchen sketch du verwendest - bitte schreibe den ansprechpartner in deinen post - @joergeli oder @liv-in-sky damit wir wissen, was du letztendlich benutzt

            joergeli 1 Reply Last reply Reply Quote 0
            • joergeli
              joergeli @liv-in-sky last edited by

              @liv-in-sky
              Jo, Du kannst gerne einen Link auf meine Seite setzen, eigener Thread muss nicht sein.
              Evtl. mit dem Hinweis, daß man sich ein wenig mit Arduino, libraries, etc. auskennen sollte.

              Ich habe ebenfalls nicht vor, Änderungen im Sketch vorzunehmen, da bei mir alles problemlos läuft.

              Falls Du testweise mal meine Version flashen willst, beachte bitte:
              1.) Ich bin ein Freund fester IP-Adressen --> die Netzwerkparameter müssen daher manuell im Sketch eingetragen werden.
              2.) Ich habe einige Sonderzeichen (z.B. Umlaute) anders als bei Dir definiert --> evtl. werden dann Ausgaben bei Dir nicht richtig dargestellt.
              3.) Ich habe zusätzlich einen LDR an PIN A0 zur Helligkeitssteuerung verwendet, ohne den funktioniert die Schaltung evtl. nicht. Falls kein LDR zur Hand ist, einfach mit einem Festwiderstand (~ 10k) ersetzen.

              Have Fun
              Jörg

              1 Reply Last reply Reply Quote 1
              • W
                wuchy last edited by

                @joergeli

                ich habe heute die Hardware aufgebaut und den Sketch aufgespielt. Läuft alles einwandfrei. In den kommenden Tagen ist dann die Verbindung zu iobroker dran. Kann man deinen Skript irgendwie in iobroker importieren? Meine kurzen Versuche mit dem erstellen eines neuen Skriptes scheiterten beim copy/paste.

                LG wuchy

                joergeli 1 Reply Last reply Reply Quote 0
                • joergeli
                  joergeli @wuchy last edited by

                  @wuchy
                  Sollte aber gehen.
                  Neues Javascript anlegen - korrekt.
                  Meinen Code mit CTRL + c aus dem Browser in die Zwischenablage übernehmen.
                  Im neuen Script mit dem Cursor in die 1. Zeile gehen, dann CTRL + v

                  Gruß
                  Jörg

                  1 Reply Last reply Reply Quote 0
                  • W
                    wuchy last edited by

                    @joergeli
                    diese Vorgehensweise funktioniert bei mir leider nicht. Wenn's nicht geht, muss ich wohl teile deiner Datei "abtippern"

                    joergeli 2 Replies Last reply Reply Quote 0
                    • joergeli
                      joergeli @wuchy last edited by joergeli

                      @wuchy
                      Mmmmh, komisch .....
                      Ich habe es gerade bei mir noch mal getestet mit Firefox unter WIN7:
                      Mein Script im Browser aufrufen --> Ctrl + a (alles auswählen)
                      Dann Ctrl + v (kopieren)
                      Dann in ioBroker --> Scripte auswählen.
                      Anschl. Dein neu erstelltes, leeres JavaScript auswählen (Doppelclick)
                      Dann den Cursor mit der Maus in Zeile 1 des leeren Scriptes setzen.
                      Dann Ctrl + v (einfügen). Hinweis: rechte Maustaste --> Einfügen funktioniert im JS-Editor nicht !!!

                      Ich gehe mal davon aus, daß Du unter Windows arbeitest?
                      Klappt es denn, wenn Du das Script in eine beliebige Text-Datei in Windows kopierst?
                      Schreib doch mal genau, wo es nicht funktioniert.

                      Alternativ kannst Du zum Testen, ob Deine Matrix irgendwas ausgibt, mal folgendes machen:
                      1.) Neuen Datenpunkt javascript.0 --> Laufschrift (Typ Zeichenkette) manuell anlegen.
                      ( Objekte javascript.0 markieren, dann + Symbol anclicken, in neuem Fenster "Neues Objekt hinzufügen:.." --> Name: Laufschrift)

                      2.) Manuell irgendwas in den Datenpunkt Laufschrift reinschreiben, z.B: Morgen: Bio-Abfall;3 offene Fenster;Nur ein Test;
                      (Beachte, daß jeder Einzeltext mit Semikolon abgeschlossen ist!)

                      3.)Wenn Du den WEMOS mit meinem Sketch geflashed hast, sollten spätestens nach 45 Sekunden die Texte nacheinander in der Matrix auftauchen.

                      Gruß
                      Jörg

                      1 Reply Last reply Reply Quote 1
                      • joergeli
                        joergeli @wuchy last edited by joergeli

                        @wuchy
                        Noch was:
                        Mein Script dient lediglich zur Veranschaulichung, wie man den Datenpunkt für die Matrix füllen kann.
                        Du kannst das nicht 1:1 übernehmen, da Du ja ganz andere Gegebenheiten hast, sprich andere Sensoren/Aktoren betreibst. Deshalb musst Du natürlich im Script sämtliche Einlesepunkte und if-Abfragen anpassen!

                        Versuch erst mal zu Testen, ob Deine Matrix überhaupt Daten bekommt, wie ich bereits bei "Alternativ kannst Du testen...." beschrieben habe.
                        Gruß
                        Jörg

                        1 Reply Last reply Reply Quote 0
                        • W
                          wuchy last edited by

                          @joergeli

                          ich habe den Inhalt Deiner Datei importiert bekommen ( unter win10 mit firefox, chrome geht nicht) und das Skript schaufelt artig Daten in den neuen Datenpunkt.
                          Leider bekomme ich die Daten nicht zum Wemos. Die Matrix meldet " warte auf Daten vom iobroker ". Muss ich evtl. noch etwas in der simple-api einstellen? Der Port steht wie in der ino auf 8087. Der Serielle Monitor zeigt mir die Verbindung zum Router und die aktuelle ntp Uhrzeit ( wird ständig aktualisiert )an. Mehr ist auf dem Seriellen Monitor nicht zu sehen. Hast du evtl. noch eine Idee?

                          LG wuchy

                          joergeli 1 Reply Last reply Reply Quote 0
                          • joergeli
                            joergeli @wuchy last edited by joergeli

                            @wuchy
                            simple-api Port 8087 ist bei mir auch eingestellt.

                            Könnte es evtl. ein Problem mit den IP-Adressen sein?
                            Überprüfe bitte mal, ob die jeweiligen IP-Adressen "zusammenpassen":

                            1.) Stimmt im JavaScript die IP-Adresse des WEMOS:

                                //Wemos IP-Adresse
                                var udpIP = '192.168.192.19'
                            

                            mit der IP-Adresse im Sketch:

                            IPAddress ip(192, 168, 192, 19);      //### local ip-address
                            

                            überein (natürlich mit Deiner eigenen Netzwerkadresse)?

                            2.) Stimmen im Javascript der UDP-Port (6610):

                                // "update" an WEMOS senden (pushen), damit dort die Laufschrift sofort aktualisiert wird
                                const dgram = require('dgram');
                                var udpPort = 6610
                                var udpMessage = "update"
                                var client = dgram.createSocket('udp4');
                                client.send(udpMessage, 0, udpMessage.length, udpPort, udpIP, function(err, bytes) {
                                    if (err) throw err;
                                    client.close();
                                })
                            

                            und der UDP-Port im Sketch:

                            // UDP
                            WiFiUDP NTPudp;
                            int localCNTRLport = 6610;
                            char incomingPacket[255];
                            WiFiUDP CNTRLudp;
                            

                            überein?

                            3.) Letztendlich im Sketch noch überprüfen, ob dort der richtige Datenpunkt eingetragen ist
                            (die IP-Adresse 192.168.192.29:8087 muss durch die IP-Adresse Deines ioBrokers ersetzt werden!)

                            // Laufschrift initialisieren
                            char url[255]             = "http://192.168.192.29:8087/getPlainValue/javascript.0.Laufschrift"; //###### Datenpunkt in ioBroker, der abgefragt werden soll ####
                            char scrollPause[10]      = "2.5";   // Anzeigedauer
                            char scrollSpeed[10]      = "13";    // Scrollgeschwindigkeit (0-xx): je hoeher der Wert, desto langsamer die Geschwindigkeit 
                            int effekt_nr             = 6;       // Start mit Effekt Nr.6 (0-8)
                            

                            4.) Im Browser mal die Datenpunkt-Adresse direkt eingeben:

                            http://192.168.192.29:8087/getPlainValue/javascript.0.Laufschrift
                            

                            dann sollte im Browser so etwas ähnliches angezeigt werden:

                            "Au`en   6.3$C   81 %;Wohnz.  22.7$C   40 %;1003 hPa  33 km  5 Bft;Heute: Bio-Abfall;2 offene Fenster;Wasserverbr.  15 l;;;"
                            

                            Wichtig sind dabei die Semikola zwischen den einzelnen Werten und die Gänsefüßchen am Anfang und Ende.

                            Gruß
                            Jörg

                            1 Reply Last reply Reply Quote 0
                            • W
                              wuchy last edited by

                              @joergeli

                              sollte meiner Meinung nach alles stimmen. Leider komme ich erst morgen dazu, das zu überprüfen.
                              Jedenfalls jetzt schon einmal vielen Dank für deine Hilfe.

                              Gruß wuchy

                              W 1 Reply Last reply Reply Quote 0
                              • W
                                wuchy @wuchy last edited by

                                @joergeli

                                habe alle Ports usw. überprüft, alles so wie von dir angegeben. Im Browser erhalte ich auch die Daten.
                                Mir kommt das Verhalten meines wemos komisch vor. Beim Drücken der Taste für die Modi erhalte ich nur Sinnfreies im Seriellen Monitor. Lasse ich den wemos nach einem Neustart etwas laufen, bleibt nach einer Weile die Lautschrift stehen und der wemos friert ein. Ich bin fast der Meinung, das beim kompilieren schon etwas schief geht. (obwohl beim Kompilieren keine Fehler ausgegeben werden und der wemos dann auch startet) Ich habe den Boardverwalter 2.4.1 und die Lib's von liv-in-sky in Benutzung.

                                Gruß wuchy

                                joergeli 1 Reply Last reply Reply Quote 0
                                • joergeli
                                  joergeli @wuchy last edited by

                                  @wuchy
                                  Hi,
                                  ich habe meine Matrix jetzt noch mal an den PC gehängt.
                                  Der serielle Monitor zeigt folgendes an:
                                  matrix.jpg

                                  Was mich stutzig gemacht hat, ist Deine Aussage "Beim Drücken der Taste für die Modi erhalte ich nur Sinnfreies im Seriellen Monitor"

                                  Ich habe daraufhin noch mal den Schaltplan von meiner WEB-Seite mit dem Sketch verglichen.
                                  Dabei ist mir aufgefallen, daß ich wohl im Schaltplan den "Effekte-Taster" fälschlicherweise mit PIN D4 verbunden habe.
                                  Im Sketch ist er - korrekt - mit PIN D1 verbunden ( Asche auf mein Haupt 😰 )
                                  An D4 hängt aber auch die interne, blaue Board-LED des WEMOS
                                  Kontrolliere bei Dir, ob der Effekte-Taster an D1 hängt.

                                  Ich habe auch noch mal versucht, meinen WEMOS neu zu flashen, aber das Kompilieren bricht mit Fehlermeldungen ab.
                                  Jetzt muß ich bei mir erst mal nachforschen, woran das liegt.

                                  Ansonsten habe ich jetzt auch keine richtige Idee mehr, warum bei Dir die Daten vom ioBroker nicht am WEMOS ankommen.
                                  Bitte berichte, ob es evtl. am falschen PIN des Effekt-Tasters gelegen hat.

                                  Gruß
                                  Jörg

                                  liv-in-sky joergeli 2 Replies Last reply Reply Quote 0
                                  • liv-in-sky
                                    liv-in-sky @joergeli last edited by liv-in-sky

                                    @joergeli ganz andere frage - würdest du mir bitte erklären: wie machst du das mit dem roten text und auch noch in fettschrift

                                    sorry vergiß die frage - jetzt hab ich es gesehen

                                    joergeli 1 Reply Last reply Reply Quote 0
                                    • joergeli
                                      joergeli @joergeli last edited by

                                      @wuchy
                                      Ich habe den Schaltplan auf meiner WebSeite korrigiert.
                                      Wie ist der Stand der Dinge bei Dir?

                                      Gruß
                                      Jörg

                                      1 Reply Last reply Reply Quote 0
                                      • joergeli
                                        joergeli @liv-in-sky last edited by

                                        @liv-in-sky
                                        Ja, hat bei mir auch etwas gedauert, bis ich es herausgefunden habe :-))

                                        1 Reply Last reply Reply Quote 0
                                        • W
                                          wuchy last edited by

                                          @joergeli

                                          nach Umbau auf D1 werden mir jetzt im Seriellen Monitor die Effekte nacheinander angezeigt. Ansonsten bin ich leider noch nicht weiter.
                                          Ich habe in der IDE bereits div. ESP8266-12 Boards ausprobiert, entweder ließ sich der Sketch nach dem kompilieren Hochladen, oder es wurde der Vorgang abgebrochen. Nodemcu und wemos Adapter zeigen das gleiche Verhalten. ( Matrix startet jetzt komischerweise mit wirr laufenden einzelnen Punkten in der oberen Zeile ( manchmal startet der wemos auch mit "starte" ) und nach Erhalt der Uhrzeit wartet der wemos auf die Daten von iobroker)
                                          Vielleicht ist ja etwas mit dem wemos nicht in Ordnung. Ich werde morgen mal einen komplett neuen wemos probieren.

                                          Gruß wuchy

                                          joergeli 2 Replies Last reply Reply Quote 0
                                          • joergeli
                                            joergeli @wuchy last edited by joergeli

                                            @wuchy
                                            "Wirre Zeichen" der Matrix lassen eher ein Problem mit den Displays vermuten.
                                            Ich hatte ja auf meiner Webseite auch beschrieben, daß ich beim Anfassen meiner Displays plötzlich "komische" Effekte hatte. Das lag aber an den Displays, bzw. an den mangelhaften Platinen.
                                            --> Scherheitshalber mal alle Daten-/Spannungsversorgungsleitungen zu den Einzel-Displays mit einem Ohmmeter durchmessen ( auch zwischen den einzelnen Modulen ! )
                                            Auch mal die Module leicht!!! durchbiegen und beobachten, ob irgendwelche Effekte auftreten.

                                            NodeMCU und WEMOS mini D1 sind im Prinzip das Gleiche, bis auf die Anzahl der verfügbaren IOs.
                                            In der Arduino IDE muss aber trotzdem das jeweils das richtige Board eingetragen werden, also
                                            NodeMCU 1.0(ESP-12E Module), bzw. LOLIN(WEMOS) D1 R2 & mini.

                                            Das löst aber alles nicht das Problem mit den nicht ankommenden Daten von iobroker.
                                            Ich bin mir nicht sicher, ob es evtl. mit dem NPM Modul "dgram" zusammenhängen könnte,
                                            welches im Javascript verwendet wird:

                                               // "update" an WEMOS senden (pushen), damit dort die Laufschrift sofort aktualisiert wird
                                                const dgram = require('dgram');
                                                var udpPort = 6610
                                                var udpMessage = "update"
                                                var client = dgram.createSocket('udp4');
                                                client.send(udpMessage, 0, udpMessage.length, udpPort, udpIP, function(err, bytes) {
                                                    if (err) throw err;
                                                    client.close();
                                            

                                            Ist bei Dir im Script unter dem "require('dgram');" eine Wellenlinie, was evtl. auf des Fehlen dieses Moduls hinweisen könnte?

                                            Ich mache mal einen neuen Thread diesbzgl. auf, evtl. können die "Cracks" was dazu sagen,
                                            siehe hier: NPM-Modul dgram
                                            --> Habe schon Anwort bekommen: Daran kann es auch nicht liegen.

                                            Könntest Du Dein JavaScript mal hier als Text-Datei anhängen, dann schaue ich es mir mal an?

                                            Gruß
                                            Jörg

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            esp8266 matrix display max 7219
                                            31
                                            460
                                            84759
                                            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