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.
    • JB_Sullivan
      JB_Sullivan @liv-in-sky last edited by

      @liv-in-sky vielen Dank nochmal für das nette Gespräch und vor allen Dingen die erfolgreiche Lösung der vielen kleinen Problemchen 😉

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

        @JB_Sullivan
        Sorry für die späte Antwort, ich war unterwegs.

        Ich vermute, dass der Wemos korrekt geflasht wurde, da die Anzeige "... warte auf Daten von ioBroker" angezeigt wird.
        Wahrscheinlich liegt das Problem im JS-Script.

        Ich habe Dir deshalb mal ein Test-Script angehängt, mit dem nur 4 Strings in den Ausgabe-Datenpunkt geschrieben werden.
        Es werden also keine realen Meßwerte, bzw. Datenpunkte benötigt.

        
        //##########################################
        // Beispiel ioBroker Matrix-Laufschrift Test
        //##########################################
        
        
        //________________________________________________________________
        //Script jede 47te Sekunde ausfuehren
        schedule('47 * * * * *', Laufschrift_Aktualisieren);
        //________________________________________________________________
        
        function Laufschrift_Aktualisieren() {
        
        //______________________________________________________________________________________  
        
            //Wemos IP-Adresse
            var udpIP = '192.168.192.19'                            // lokale IP-Adresse des Wemos
        
            //Ausgabe-Datenpunkt
            var ausgabe_datenpunkt  = 'javascript.0.Laufschrift';   // Ausgabe-DP muss mit der URL im Wemos übereinstimmen!
        
        //______________________________________________________________________________________
        
            //Test-Datenpunkte
            var test1           = "Das ist Teststring 1;" ; 
            var test2           = "Jetzt kommt Nr. 2;" ; 
            var test3           = "Aller guten Dinge sind 3;" ;
        
            var test4           = "... und noch Nr. 4;" ;    
        
        
        // z.B. Teststrings 1-3 zusammenfassen_______________________________
            var test    = test1 + test2 + test3
        
        //______________________________________________________________________________________
        
            // Ausgabestring aus den EinzelStrings zusammensetzen:
            var ausgabe     =  test + test4 + "Test-Ende;"
        
        //______________________________________________________________________________________
        
            // kpl. Ausgabestring in Datenpunkt schreiben
            var pfad = ausgabe_datenpunkt
            setState(pfad , ausgabe, true);
            //log('----' + ausgabe + '----');
                      
        
        //______________________________________________________________________________________
        
            // "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();
            })
        
        //______________________________________________________________________________________
        
        
        }  //Ende function Laufschrift_Aktualisieren
        
        

        Damit werden nur 4 Teststrings auf der Laufschrift ausgegeben.
        Es muss natürlich sichergestellt sein, dass die IP-Adresse im WEMOS mit dieser hier im Script übereinstimmt.

        var udpIP = '192.168.192.19' 
        

        Musst Du natürlich auf Deine Netzwerkumgebung anpassen!

        Gruß
        Jörg

        P.S.
        Ich sehe gerade, daß Du den Wemos jetzt mit @liv-in-sky - Sketch geflashed hast und ihr eine Lösung gefunden habt.
        Rein interessehalber: Lag das Problem an JS-Script, oder woanders?

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

          @joergeli - ja wir hatten das Problem lösen können - ich bin immer noch am fummeln, denn jetzt geht es darum den "Master" Datenpunkt mit Inhalten zu füllen. Dafür müsste doch auch dein javascript geeignet sein - oder? Wenn die Daten alle zusammen gesammelt sind, werden die ja auch in einen Datenpunkt geschrieben, den liv-in-sky ja auch abholt.

          Das Problem bei liv-insky, war, das dass Sketch einen Zeitserver im Internet abfragen wollte. Da keine Freigabe ins Web besteht, ist das Programm dann einfach stecken geblieben. Knackpunkt war das, die Fritzbox als Zeitserver eintragen werden musste.

          Ich habe dein Skript schon etwas zusammen gestrichen, aber ich bekomme immer eine Fehlermeldung wegen POST IST DA.

          //
          //##################################
          // ioBroker Matrix-Laufschrift
          //##################################
          
          
          //________________________________________________________________
          //Script jede 30te Sekunde ausfuehren
          schedule('30 * * * * *', Laufschrift_Aktualisieren);
          //________________________________________________________________
          
           //Laufschrift_Aktualisieren();  // nur! wenn manuell getestet werden soll
          
          
          function Laufschrift_Aktualisieren() {
          
          //______________________________________________________________________________________  
          
              //Wemos IP-Adresse
              var udpIP = '10.122.60.99'                            // IP-Adresse des Wemos, bzw. der DOT Matrix Laufschrift
          
              //Ausgabe-Datenpunkt
              var ausgabe_datenpunkt  = 'javascript.0.MATRIX.Matrix';   // Ausgabe-Datenpunkt muss mit der URL im Arduino-Sketch des Wemos übereinstimmen!
          
          //______________________________________________________________________________________
          
              //Einlese-Datenpunkte - müssen natürlich an die eigene Konstellation angepasst werden!
              var temp_basic          = getState('sonoff.0.Pool Basic.DS18B20_Temperature').val ;           // Aussen Temp am Pool
              var wind_speed          = getState('rflink.0.channels.LaCrosseV3_1.WINSP').val ;             // Windgeschwindigkeit
              var ludru               = getState('rflink.0.channels.LaCrosseV3_4.BARO').val ;               // Luftdruck
              var post_ist_da         = getState('innogy-smarthome.0.Garten.Bodenfeuchte.IsOpen').val ;         // Post ist da
          //______________________________________________________________________________________
          
              //Windgeschwindigkeit (km/h) in Windstärke (Bft) umrechnen
                   if(wind_speed <= 1)                         {   var bft = 0 }
              else if(wind_speed >  1   && wind_speed <= 5)    {   var bft = 1 }
              else if(wind_speed >  5   && wind_speed <= 11)   {   var bft = 2 }
              else if(wind_speed >  11  && wind_speed <= 19)   {   var bft = 3 }
              else if(wind_speed >  19  && wind_speed <= 28)   {   var bft = 4 }
              else if(wind_speed >  28  && wind_speed <= 38)   {   var bft = 5 }
              else if(wind_speed >  38  && wind_speed <= 49)   {   var bft = 6 }    
              else if(wind_speed >  49  && wind_speed <= 61)   {   var bft = 7 }    
              else if(wind_speed >  61  && wind_speed <= 74)   {   var bft = 8 }   
              else if(wind_speed >  74  && wind_speed <= 88)   {   var bft = 9 }  
              else if(wind_speed >  88  && wind_speed <= 102)  {   var bft = 10 } 
              else if(wind_speed >  102  && wind_speed <= 117) {   var bft = 11 } 
              else if(wind_speed >  117   ) {   var bft = 12 } 
          
          //______________________________________________________________________________________
          //Luftdruck runden
          var luftdr = round (ludru,0)
          
          //Windgeschwindigkeit runden
          var windgeschw = round (wind_speed,0)
          
          //Wohnzimmer Feuchte runden
          //var wohnzfeuchte = round (feuchte_wohnz,0)
          //______________________________________________________________________________________
          
          
          /*
          // Nur zur Info Sonderzeichen:
          
          $ = degC
          - = line
              = plus
          _ = rechteck-block
          ! = ü
          ? = ö
          ^ = ä
          ` = ß
          */
          
          //______________________________________________________________________________________
          
          
          //______________________________________________________________________________________
          
          
              // Ausgabestring aus den EinzelStrings zusammensetzen:
              //_____________________________________________________
              // Wenn RaspberryMatic DutyCycle >= 49%, nur! den DutyCycle ausgeben.
              // Wenn Post da ist, nur! den "Post ist da-String" ausgeben, ggf. zusaetzlich den DutyCycle,
              // ansonsten komplette Ausgabe aller Variablen
          
              if (post_ist_da == true) {
                  var ausgabe     =  PostIstDa
              }
              else{
              var ausgabe     = PostIstDa + temp_basic + wind_speed + ludru
             }
          
          //______________________________________________________________________________________
          
              // Ausgabestring in Datenpunkt schreiben
              var pfad = ausgabe_datenpunkt
              setState(pfad , ausgabe, true);
              log('----' +   ausgabe      +'  ----');
                        
          
          //______________________________________________________________________________________
          
              // "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();
              })
          //______________________________________________________________________________________
          
          
          }  //Ende function Laufschrift_Aktualisieren
          
          
          
          
          
          
          // Funktion zum Runden von Zahlen
          function round(wert, dez) {
                  wert = parseFloat(wert);
                  if (!wert) return 0;
                  dez = parseInt(dez);
                  if (!dez) dez=0;
                  var umrechnungsfaktor = Math.pow(10,dez);
                  return Math.round(wert * umrechnungsfaktor) / umrechnungsfaktor;
          }  //Ende function round
          
          
          
          
          JB_Sullivan 1 Reply Last reply Reply Quote 0
          • JB_Sullivan
            JB_Sullivan @JB_Sullivan last edited by

            Ich habe jetzt immer noch das Sketch von liv-in-sky drauf. Unabhängig davon müsste doch auch dein Testscript etwas in den Datenpunkt hinein schreiben - das macht es aber nicht.

            Wenn sich der Inhalt des Datenpunktes ändert, würde in diesem Fall nicht dein Skript etwas an den WEMOS senden, sonder liv-in-sky würde den Inhalt des Datenpunktes abholen.

            Wie gesagt, der Pferdefuss ist, das dein Skript den Datenpunkt nicht beschreibt.

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

              @joergeli Weil du dir soviel Arbeit gemacht hast, habe ich jetzt dein Arduino Sketch nochmal geflasht - allerdings auch hier mit der Änderung, das der Zeitserver auf die IP Adresse der FritzBox verweist.

              Was soll ich sagen, Das Test Skript funktioniert !!!! Allerdings dein Ursprungs Skript geht leider nicht 😞

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

                @JB_Sullivan
                Ich weiß nicht, wie @liv-in-sky sein Ausgabe-Datenpunkt heißt.

                Mach mak folgendes:
                1.) Lege manuell einen Datenpunkt javascript.0.Laufschrift an ( Typ Zeichenkette, Haken bei "Lesen erlaubt" und "Schreiben erlaubt setzen)

                2.) Kopier Dir mein Test-Script "Beispiel ioBroker Matrix-Laufschrift Test"-( 2 Posts weiter oben).

                3.) Starte das Beispiel.Script.

                4.) Dann sollten die 4 Teststrings jede 47te Sekunde in den Datenpunkt javascript.0.Laufschrift geschrieben werden.

                Du hat richtig erkannt, daß das Testscript auch mit @liv-in-sky's Wemos funktionieren müsste.

                Wenn der Datenpunkt korrekt beschrieben wird, sehen wir weiter.

                Gruß
                Jörg

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

                  @joergeli lies mal meine letzte Antwort über deiner hier 😉

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

                    @JB_Sullivan
                    ... jepp, ich war 2 Minuten zu spät 😧

                    Ich schreibe gleich noch was ....

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

                      @joergeli JA, das Javascript von deiner Homepage ist Mega umfangreich. Wenn man da mal eben seine eigenen paar Datenpunkte einsetzen will um zu sehen das es geht, vergalloppiert man sich sehr schnell.

                      Was ich bei fly-in-sky seinem Sketch/Skript gut finde, ist die Möglichkeit via Datenpunkte die Modi, Leuchtstärke und Geschwindigkeit zu ändern ohne das man einen Hardware Knopf drücken muss.

                      2020-09-05 21_59_59-objects - ioBroker.png

                      2020-09-05 22_02_34-javascript - ioBroker.png

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

                        @JB_Sullivan

                        Zitat "Allerdings dein Ursprungs Skript geht leider nicht"
                        Ich hatte ja geschrieben, dass mein Script nur als "Gerüst" dienen soll, Du kannst das nicht 1:1 übernehmen,
                        da Du ja andere Sensoren/Aktoren/Datenpunkte als ich verwendest.

                        Was ist denn der zu var post_ist_da zugehörige
                        Datenpunkt getState('innogy-smarthome.0.Garten.Bodenfeuchte.IsOpen').val ; für ein Typ?
                        Er darf m.E. nur true/false werden.
                        Ansonsten lösch temporär vorerst mal alles raus, was mit "Post ist da" zu tun hat.

                        @JB_Sullivan sagte in ESP Matrix Anzeige fully IoBroker steuerbar:

                        Was ich bei fly-in-sky seinem Sketch/Skript gut finde, ist die Möglichkeit via Datenpunkte die Modi, Leuchtstärke und Geschwindigkeit zu ändern ohne das man einen Hardware Knopf drücken muss.

                        Das geht bei mir leider nicht.
                        Ich lasse bloß die Helligkeit mit einem LDR (lichtabhängiger Widerstand, s. Schaltplan) automatisch ein wenig an die Umgebungshelligkeit anpassen.
                        Mit den Modi/Geschwindigkeit habe ich anfangs auch ein wenig rumgespielt, allerdings läuft meine Laufschrift jetzt nur noch im Modus "von rechts nach links".

                        Gruß
                        Jörg

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

                          @joergeli Danke für deine Erklärungen. Ich muss sagen, nach viel hin und her probieren das ganze Wochenende über, habe ich mich letztendlich für die Variante von @liv-in-sky entschieden. Diese bietet einfach mehr optische Reize und ist für meinen Geschmack leichter zu administrieren.

                          @liv-in-sky Wir müssen uns Bitte nochmal über deine Alarmeinblendungen unterhalten.

                          ich habe jetzt meine Datenpunkt Auswertung mit Blockly soweit fertig (siehe unten). Ist um einiges einfacher gestrickt als deine Variante. Zusätzlich schalte ich das Matrix Display über einen Xiaomi BWM ein und aus und passe die Helligkeit gemäß Xioami BWM Lux Wert an.

                          Was ich aber doch wohl noch nicht so verstanden habe, sind die priorisierten Alarmmeldungen.

                          Wie du am Skript sehen kannst, wird ein ganzer "Sack voll" Datenpunkte nacheinander aus gegeben. Nun hätte ich es aber gerne, das verschiedene Alarmwerte (z.B. Luftffeuchtigkeit im Bad) priorisiert und ggf. länger anstehend angezeigt werden.

                          Ich meine in unserem Gespräch hattest du sowas erwähnt, das du das bei dir so machst. Im Moment fehlt mir da noch der Gedankliche Ansatz wie du das umgesetzt hast. Kannst du mich da nochmal an die Hand nehmen?

                          <xml xmlns="https://developers.google.com/blockly/xml">
                            <block type="on_ext" id=",?4oVi@F:ip8WKv_/fpX" x="-3263" y="-1987">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" items="10"></mutation>
                              <field name="CONDITION">ne</field>
                              <field name="ACK_CONDITION"></field>
                              <value name="OID0">
                                <shadow type="field_oid" id="Y_ESYXqY#b1]JIVczU~Q">
                                  <field name="oid">sonoff.0.Pool Basic.DS18B20_Temperature</field>
                                </shadow>
                              </value>
                              <value name="OID1">
                                <shadow type="field_oid" id="z.pJ(oq9}5:QEU@0J_Vj">
                                  <field name="oid">mqtt.0.statPoolsteuerung.SENSOR2</field>
                                </shadow>
                              </value>
                              <value name="OID2">
                                <shadow type="field_oid" id="{kRie$#hIz0A..n=?.-e">
                                  <field name="oid">mqtt.0.statPoolsteuerung.TEMP1</field>
                                </shadow>
                              </value>
                              <value name="OID3">
                                <shadow type="field_oid" id="[Ky7o3Sf9P;*An47wt$9">
                                  <field name="oid">mqtt.0.statPoolsteuerung.TEMP3</field>
                                </shadow>
                              </value>
                              <value name="OID4">
                                <shadow type="field_oid" id="UV]DRL%%pacT;^w}_F7.">
                                  <field name="oid">rflink.0.channels.Mebus_1.TEMP</field>
                                </shadow>
                              </value>
                              <value name="OID5">
                                <shadow type="field_oid" id="92Q]^Y++krWr?1PWX$s!">
                                  <field name="oid">tankerkoenig.0.stations.0.e5.feed</field>
                                </shadow>
                              </value>
                              <value name="OID6">
                                <shadow type="field_oid" id="6{aZz_m`uy:htl|DXXGz">
                                  <field name="oid">rflink.0.channels.LaCrosseV3_1.WINSP</field>
                                </shadow>
                              </value>
                              <value name="OID7">
                                <shadow type="field_oid" id="I)me0Zr~uOd5PdQt2N=_">
                                  <field name="oid">discovergy.0.60868258.Power_Consumption</field>
                                </shadow>
                              </value>
                              <value name="OID8">
                                <shadow type="field_oid" id="RiU:U_FzW8ldi)HTr*gB">
                                  <field name="oid">discovergy.0.60868258.Power_Delivery</field>
                                </shadow>
                              </value>
                              <value name="OID9">
                                <shadow type="field_oid" id="},Ht$~lvG4sWRG@1rC{O">
                                  <field name="oid">trashschedule.0.next.typestext</field>
                                </shadow>
                              </value>
                              <statement name="STATEMENT">
                                <block type="control" id="sY.P4X:H*u!i~z1-N25j">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                  <field name="OID">javascript.0.MATRIX.Matrix</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="text_join" id="P))2Ss5RT3?V$S^D;LnZ">
                                      <mutation items="39"></mutation>
                                      <value name="ADD0">
                                        <block type="text" id="C|rryUj_$!9_6`Rk{vD%">
                                          <field name="TEXT">Müll: #right </field>
                                        </block>
                                      </value>
                                      <value name="ADD1">
                                        <block type="get_value" id="1;^j|+h#8Cs,Cg;DM+vH">
                                          <field name="ATTR">val</field>
                                          <field name="OID">trashschedule.0.next.typestext</field>
                                        </block>
                                      </value>
                                      <value name="ADD2">
                                        <block type="text" id=":zUi;F.]uiA$D$=i0@$1">
                                          <field name="TEXT">;</field>
                                        </block>
                                      </value>
                                      <value name="ADD3">
                                        <block type="text" id="|P)hq}F+5q];DMV^yu+K">
                                          <field name="TEXT">Außentemperatur: </field>
                                        </block>
                                      </value>
                                      <value name="ADD4">
                                        <block type="get_value" id="!D)5;mq$c;)dAM2SaD[L">
                                          <field name="ATTR">val</field>
                                          <field name="OID">sonoff.0.Pool Basic.DS18B20_Temperature</field>
                                        </block>
                                      </value>
                                      <value name="ADD5">
                                        <block type="text" id="VbyL*_^[xMF)2I*Z_yu~">
                                          <field name="TEXT"> °C</field>
                                        </block>
                                      </value>
                                      <value name="ADD6">
                                        <block type="text" id="zWhY@/$wBjwj=6M+,vQF">
                                          <field name="TEXT">;</field>
                                        </block>
                                      </value>
                                      <value name="ADD7">
                                        <block type="text" id="qXSbFHb$}?FVzbn,j3)0">
                                          <field name="TEXT">Pool Temperatur: </field>
                                        </block>
                                      </value>
                                      <value name="ADD8">
                                        <block type="get_value" id="2fuj`X{S!Quq:^OZG7?%">
                                          <field name="ATTR">val</field>
                                          <field name="OID">rflink.0.channels.Mebus_1.TEMP</field>
                                        </block>
                                      </value>
                                      <value name="ADD9">
                                        <block type="text" id="?$?M3yii5K1OUi43oe/0">
                                          <field name="TEXT"> °C</field>
                                        </block>
                                      </value>
                                      <value name="ADD10">
                                        <block type="text" id="`,Kl4^dcZ,IH`W~WpX~C">
                                          <field name="TEXT">;</field>
                                        </block>
                                      </value>
                                      <value name="ADD11">
                                        <block type="text" id="S#[V3*wTZOs@,)=EgvS7">
                                          <field name="TEXT">Wind Speed: </field>
                                        </block>
                                      </value>
                                      <value name="ADD12">
                                        <block type="get_value" id="oHnLzsR0jklwVA:UZy0$">
                                          <field name="ATTR">val</field>
                                          <field name="OID">rflink.0.channels.LaCrosseV3_1.WINSP</field>
                                        </block>
                                      </value>
                                      <value name="ADD13">
                                        <block type="text" id="2B@Sx#^Ku,U?nnFGdX1U">
                                          <field name="TEXT"> km/h</field>
                                        </block>
                                      </value>
                                      <value name="ADD14">
                                        <block type="text" id="=-MR;zh6E.s*Kfy(ygXv">
                                          <field name="TEXT">;</field>
                                        </block>
                                      </value>
                                      <value name="ADD15">
                                        <block type="text" id="mmbyX5Etl/2d6^=e+TUi">
                                          <field name="TEXT">Energie Bezug: </field>
                                        </block>
                                      </value>
                                      <value name="ADD16">
                                        <block type="get_value" id="c/pIc#ln15cGzARg0PH?">
                                          <field name="ATTR">val</field>
                                          <field name="OID">discovergy.0.60868258.Power_Consumption</field>
                                        </block>
                                      </value>
                                      <value name="ADD17">
                                        <block type="text" id="#fG[`(ytlHc[1?OOw`1?">
                                          <field name="TEXT"> Watt</field>
                                        </block>
                                      </value>
                                      <value name="ADD18">
                                        <block type="text" id="ougLmw9ub34#jUzzZP%5">
                                          <field name="TEXT">;</field>
                                        </block>
                                      </value>
                                      <value name="ADD19">
                                        <block type="text" id="{REIz+.~t]otelu{zH,^">
                                          <field name="TEXT">#left Energie: </field>
                                        </block>
                                      </value>
                                      <value name="ADD20">
                                        <block type="get_value" id="Y!WpMsrloaEI]:gy5R,o">
                                          <field name="ATTR">val</field>
                                          <field name="OID">discovergy.0.60868258.Power_Delivery</field>
                                        </block>
                                      </value>
                                      <value name="ADD21">
                                        <block type="text" id="}*3I}5IN]C]7G.W-v=hH">
                                          <field name="TEXT"> Watt</field>
                                        </block>
                                      </value>
                                      <value name="ADD22">
                                        <block type="text" id="CZMv)2XLD?}3NUE-V7D^">
                                          <field name="TEXT">;</field>
                                        </block>
                                      </value>
                                      <value name="ADD23">
                                        <block type="text" id="Jjg9)cxH31FcW!8I!IW3">
                                          <field name="TEXT">Benzinpreis E5: </field>
                                        </block>
                                      </value>
                                      <value name="ADD24">
                                        <block type="get_value" id="Wn?3m{c{}+aYQ)kOD#A9">
                                          <field name="ATTR">val</field>
                                          <field name="OID">tankerkoenig.0.stations.0.e5.feed</field>
                                        </block>
                                      </value>
                                      <value name="ADD25">
                                        <block type="text" id="_UuCq}N{/YY_}4HYZsy[">
                                          <field name="TEXT"> €</field>
                                        </block>
                                      </value>
                                      <value name="ADD26">
                                        <block type="text" id="la.3S,eAda)9N$Zx+kBA">
                                          <field name="TEXT">;</field>
                                        </block>
                                      </value>
                                      <value name="ADD27">
                                        <block type="text" id=".gpVx:]p|n-i/f4E:Ln7">
                                          <field name="TEXT">Absorber Temp.: </field>
                                        </block>
                                      </value>
                                      <value name="ADD28">
                                        <block type="get_value" id=";UDI_$yZ^p/66%/F/Fj]">
                                          <field name="ATTR">val</field>
                                          <field name="OID">mqtt.0.statPoolsteuerung.TEMP2</field>
                                        </block>
                                      </value>
                                      <value name="ADD29">
                                        <block type="text" id="0pAa.aY#ek-q]`q+r1o:">
                                          <field name="TEXT"> °C</field>
                                        </block>
                                      </value>
                                      <value name="ADD30">
                                        <block type="text" id="!HrT+v6$H(dM?I1NrO%|">
                                          <field name="TEXT">;</field>
                                        </block>
                                      </value>
                                      <value name="ADD31">
                                        <block type="text" id="9f^gnW4]!clglz#F+v$L">
                                          <field name="TEXT">Vorlauf Temp.: </field>
                                        </block>
                                      </value>
                                      <value name="ADD32">
                                        <block type="get_value" id="8o^zL]-lC3?,yM+ye~Kb">
                                          <field name="ATTR">val</field>
                                          <field name="OID">mqtt.0.statPoolsteuerung.TEMP1</field>
                                        </block>
                                      </value>
                                      <value name="ADD33">
                                        <block type="text" id="GtMH5m/Z,Oc-26Y8~CdQ">
                                          <field name="TEXT"> °C</field>
                                        </block>
                                      </value>
                                      <value name="ADD34">
                                        <block type="text" id="SXi=w)Q0vYa$/lvRThp,">
                                          <field name="TEXT">;</field>
                                        </block>
                                      </value>
                                      <value name="ADD35">
                                        <block type="text" id="?L:l$G27qLwCV}W*%o]o">
                                          <field name="TEXT">Rücklauf Temp.: </field>
                                        </block>
                                      </value>
                                      <value name="ADD36">
                                        <block type="get_value" id="p5my8[tH[lth3h(mOA%p">
                                          <field name="ATTR">val</field>
                                          <field name="OID">mqtt.0.statPoolsteuerung.TEMP3</field>
                                        </block>
                                      </value>
                                      <value name="ADD37">
                                        <block type="text" id="!bUFzb{-N}E$`m]VT4%o">
                                          <field name="TEXT"> °C</field>
                                        </block>
                                      </value>
                                      <value name="ADD38">
                                        <block type="text" id="(cm!c|=aq4RKEBOF6i[z">
                                          <field name="TEXT">;</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="control" id="YX*t.J/j1=~?AUO.JX/]" disabled="true">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                      <field name="OID">javascript.0.MATRIX.Matrix</field>
                                      <field name="WITH_DELAY">TRUE</field>
                                      <field name="DELAY_MS">4</field>
                                      <field name="UNIT">sec</field>
                                      <field name="CLEAR_RUNNING">FALSE</field>
                                      <value name="VALUE">
                                        <block type="get_value" id="_NGww}3hUKiydX/L;V-Z">
                                          <field name="ATTR">val</field>
                                          <field name="OID">javascript.0.MATRIX.Matrix</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="debug" id="K([X)t1~qwIrk@~YKYJz" disabled="true">
                                          <field name="Severity">error</field>
                                          <value name="TEXT">
                                            <shadow type="text" id="0up#dUO|iKd`cC2m;hGr">
                                              <field name="TEXT">MODE GesamtSettings erstellen</field>
                                            </shadow>
                                          </value>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </statement>
                            </block>
                            <block type="on_ext" id="cw%j)s9XX~t{2TOk)+((" x="-2137" y="-2013">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                              <field name="CONDITION">ne</field>
                              <field name="ACK_CONDITION"></field>
                              <value name="OID0">
                                <shadow type="field_oid" id="_pIwd;IJST`tL+b{2]a+">
                                  <field name="oid">deconz.0.Sensors.40.presence</field>
                                </shadow>
                              </value>
                              <statement name="STATEMENT">
                                <block type="controls_if" id="nd^5ygu@k*v#c-Cg}IZ+">
                                  <mutation else="1"></mutation>
                                  <value name="IF0">
                                    <block type="logic_compare" id="8Kq;p`dCvI=%H%nbiJ60">
                                      <field name="OP">EQ</field>
                                      <value name="A">
                                        <block type="get_value" id="?!S.y~I+~1rd:X1D.Xt0">
                                          <field name="ATTR">val</field>
                                          <field name="OID">deconz.0.Sensors.40.presence</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="logic_boolean" id="MuiL@e9*ndYT2ue#T`3p">
                                          <field name="BOOL">FALSE</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <statement name="DO0">
                                    <block type="control" id="cD$Wf0Xv}Vm;c]iCrDGx">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">javascript.0.MATRIX.MatrixMode</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="math_number" id="}q(/~!Pj;#p4npapploN">
                                          <field name="NUM">9</field>
                                        </block>
                                      </value>
                                    </block>
                                  </statement>
                                  <statement name="ELSE">
                                    <block type="control" id="l4T6HVk7G42qHTGrnpq[">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">javascript.0.MATRIX.MatrixMode</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="math_number" id="qrA8XyTycm;(taMs%(+C">
                                          <field name="NUM">12</field>
                                        </block>
                                      </value>
                                    </block>
                                  </statement>
                                  <next>
                                    <block type="controls_if" id="nNw78QE`^[Hc4Vvjbv8s">
                                      <mutation else="1"></mutation>
                                      <value name="IF0">
                                        <block type="logic_operation" id="FZ`fR[x/kl027j5sG-zh">
                                          <field name="OP">AND</field>
                                          <value name="A">
                                            <block type="logic_compare" id="]0c@}t01=jCKnLc+3yuG">
                                              <field name="OP">GTE</field>
                                              <value name="A">
                                                <block type="get_value" id=".|`)i:DT,UB?}_^7P-uN">
                                                  <field name="ATTR">val</field>
                                                  <field name="OID">deconz.0.Sensors.39.lux</field>
                                                </block>
                                              </value>
                                              <value name="B">
                                                <block type="math_number" id="~PBWYSh|o4#D*R+0+?h-">
                                                  <field name="NUM">200</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <value name="B">
                                            <block type="logic_compare" id=")W7/7OufPvJ_C_5eeyKG">
                                              <field name="OP">EQ</field>
                                              <value name="A">
                                                <block type="get_value" id="1s=|5-#92AVqk1rjG;^`">
                                                  <field name="ATTR">val</field>
                                                  <field name="OID">deconz.0.Sensors.40.presence</field>
                                                </block>
                                              </value>
                                              <value name="B">
                                                <block type="logic_boolean" id="P*gKrn0PfS^UaDI_Y;QE">
                                                  <field name="BOOL">TRUE</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <statement name="DO0">
                                        <block type="control" id="#*)Un$*Om6O)9T0V1asI">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                          <field name="OID">javascript.0.MATRIX.MatrixIntensity</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE">
                                            <block type="math_number" id="P2-/]Yo]O_jM3O6qytH;">
                                              <field name="NUM">10</field>
                                            </block>
                                          </value>
                                        </block>
                                      </statement>
                                      <statement name="ELSE">
                                        <block type="control" id="r_(H-rKa`_+k4wx!G$:s">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                          <field name="OID">javascript.0.MATRIX.MatrixIntensity</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE">
                                            <block type="math_number" id="Ki@oq*43f|9J.O%8^N2%">
                                              <field name="NUM">1</field>
                                            </block>
                                          </value>
                                        </block>
                                      </statement>
                                    </block>
                                  </next>
                                </block>
                              </statement>
                            </block>
                          </xml>
                          
                          liv-in-sky joergeli 2 Replies Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky @JB_Sullivan last edited by

                            @JB_Sullivan

                            wenn etwas länger stehen bleiben soll, mache ich einen mode wechsel (ohne uhrzeit - z.b mode 7 oder 11)

                            der mode wechsel dauert solang e an, bis ein timer abgelaufen ist, oder du durch das script diesen mode wieder beendest

                            wenn das nicht klarheit bringt - ruf einfach durch - bin noch ein wenig zuhause

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

                              @liv-in-sky Ich bin auf der Arbeit, da geht leider nicht so viel mit telefonieren. - OK, das mit dem Mode Wechsel macht SInn, aber was machst du in deinem Skript mit den "AlarmModeMatrix (0,1)" datenpunkten?

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

                                @JB_Sullivan

                                aber sollte eigentlich verständlich sein - du änderst den mode auf z.b 7 und schreibst das, was du anzeigen willst, in den Laufschriftdatenpunkt-

                                dann steht das da - wann du dann wieder in den alten mode gehst und den dp Laufschrift änderst obliegt dann dir - also timer gesteuert (was wenig bringt, da du ja nicht weißt, ob jemand das display angesehen hat) oder ein teil deines blocklys reagiert auf einen anderen trigger

                                bei mir:

                                wenn ein whatsapp kommt, wird im mode 7 "whatsapp message" angezeigt (das handy setzt einen dp in iobroker) - wenn ich dann irgendwann, die whatsapp am handy öffne, sendet das handy ein ok und ich steuere dadurch, dass die matix wieder in den standard-mode geht mit dem standard text

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

                                  @JB_Sullivan
                                  AlarmModeMatrix :
                                  verschiedene alarme

                                  entweder wird der alarm an den standard text angehängt oder wenn wichtiger alarm, dann so wie eben beschrieben mit modewechsel

                                  alarmmodematrix braucht mein blocky um zu wissen,: ist das ein hochprio alarm oder ein "kleiner alarm(info)

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

                                    @liv-in-sky OK - alles klar, dann habe ich es verstanden. Jetzt muss ich nur noch schnell die Gedanken ordnen, wie ich das am besten "Ver-Blockly" 😉

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

                                      @JB_Sullivan wie schon erwähnt - meiun blockly ist so groß, dass ich es nicht mehr "posten darf" - wegen größe

                                      man kann da viiiiiel "ver-blocklien" 🙂

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

                                        @JB_Sullivan sagte in ESP Matrix Anzeige fully IoBroker steuerbar:

                                        @joergeli Danke für deine Erklärungen. Ich muss sagen, nach viel hin und her probieren das ganze Wochenende über, habe ich mich letztendlich für die Variante von @liv-in-sky entschieden. Diese bietet einfach mehr optische Reize und ist für meinen Geschmack leichter zu administrieren.

                                        Kein Problem!

                                        Nebenbei:
                                        Ich lasse Alarm-, bzw. Prioritätsmeldungen so anzeigen, daß bei Auftreten solch einer Meldung, nur diese Meldung im Wechsel mit der aktuellen Uhrzeit angezeigt wird und alle anderen Meldungen unterdrückt werden:

                                            if (post_ist_da == true) {
                                                var ausgabe     =  PostIstDa
                                            }
                                        
                                            else{
                                            var ausgabe     =  anr + Service + DutyCycle  + Badezimmer  + load +  tf_aussen +  tf_wohnzimmer  + ....
                                           }
                                        

                                        Also wenn Post da ist, wird nur "Post ist da" in den Ausgabe-Datenpunkt geschrieben, bzw. angezeigt.
                                        Ansonsten werden alle anderen Meldungen in den Ausgabe-Datenpunkt geschrieben.

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          Steff123 last edited by

                                          Hallo ich wollte das Projekt von joergeli nachbauen aber beim hochladen kommt die Fehlermeldung und komme nicht weiter.

                                          ioBroker_Laufschrift:19:21: fatal error: TimeLib.h: No such file or directory
                                          #include <TimeLib.h>
                                          compilation terminated.
                                          exit status 1
                                          TimeLib.h: No such file or directory

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

                                            @steff123
                                            Liest sich so, als ob die TimeLib.h nicht vorhanden ist.

                                            Hast Du Dir denn auch alle benötigten libraries aus dem Internet heruntergeladen? :

                                            #include <MD_Parola.h>
                                            #include <MD_MAX72xx.h>
                                            #include <TimeLib.h>
                                            #include <WiFiUdp.h>
                                            #include <ESP8266WiFi.h>
                                            #include <ESP8266HTTPClient.h>
                                            #include <ArduinoJson.h>
                                            #include <FS.h>
                                            #include <ArduinoOTA.h> // for flashing OTA = Over The Air
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            999
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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