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.
    • 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
                                          • joergeli
                                            joergeli @wuchy last edited by

                                            @wuchy
                                            Hallo,
                                            ich habe meinen Sketch jetzt wieder zum Kompilieren und Hochladen bekommen 😊
                                            Es lag bei mir an den verwendeten Libraries MD_MAX72xx und MD_Parola.
                                            Ich hatte zwischenzeitlich mal (für andere Projekte) andere Library-Versionen verwendet, deshalb gab es bei mir Probleme.

                                            Wenn Du jetzt Dein Javascript hier mal einstellst, kann ich es direkt bei mir testen.
                                            Nun bin ich guten Mutes, daß wir dem Problem auf die Schliche kommen 😉

                                            Gruß
                                            Jörg

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            568
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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