Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Frage zum Script

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Frage zum Script

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

      @bku:

      @ bluefox:

      Danke - funktioniert super. Hab sogar von "events.push" auf "events.unshift" (gefunden!) umgestellt. Nun ist die neueste Meldung oben.

      @Bluefox:

      beliebiges Widget abhängig von einem anderem Zustand anzeigen oder verbergen Das klingt super!

      Muss es dann statt "shift"````
      if (events.length > 5) events.shift();

      nicht "pop" sein?
      

      if (events.length > 5) events.pop();

      
      Ich hoffe es ist klar, dass man beliebig viele Events so darstellen kann und nicht nur 5? ;)
      1 Reply Last reply Reply Quote 0
      • B
        bku last edited by

        Ja ist klar. "pop" habe ich auch schon gefunden…. Danke!

        1 Reply Last reply Reply Quote 0
        • B
          bku last edited by

          @Bluefox:

          Dann sollte so was möglich sein:

          CODE:

          createState('BewegungsmeldungAck', false);

          createState('EreignisListe', '');

          var events = [];

          // Liste aus maximal 5 Ereignissen

          function getEventsList() {

          var text = '';

          for (var i = 0; i < events.length; i++) {

          text += (text ? <u>'
          \n'</u>
          : '') + events__;

          }

          return text;

          …__ __@bluefox:

          Läuft soweit gut, nur die "
          " sind noch in der Ereignisliste. Bekomme ich die weg, oder kannst Du da noch was machen?

          –------------------------------------------

          Dann noch eine zweite Geschichte, möchte einen Wert (Temperatur) in ein Script einlesen und dann prüfen. Klappt nicht (weil ich die Syntax/Parameter nicht kenne...... )

          Wie bekomme ich die Temperatur eingelesen?_

          log("===> Start TempTruhe","info");
          createState('TruheZuWarm', 'false');
          
          on("hm-rpc.0.GEQ0020381.1.TEMPERATURE"/*Gefriertruhentemperatur.TEMPERATURE*/, function(obj) {
              if (obj.newState.val > "-20") {
                  setState('TruheZuWarm', 'true'); 
          		log("---> Truhe zu warm: ", +obj.newState.val,"info");
              } else { 
                  setState('TruheZuWarm', 'false');
          		log("---> Truhe i.O.: ", +obj.newState.val,"info");        
              }    
          });
          
          

          Danke und Gruß

          Bernd_ `

          1 Reply Last reply Reply Quote 0
          • Bluefox
            Bluefox last edited by

            @bku:

            @bluefox:

            Läuft soweit gut, nur die "
            " sind noch in der Ereignisliste. Bekomme ich die weg, oder kannst Du da noch was machen? `
            Dafür gibt es zwei Möglichkeiten:
            einfach löschen, oder "Basic - String (unescaped)" nutzen.

            @bku:

            Dann noch eine zweite Geschichte, möchte einen Wert (Temperatur) in ein Script einlesen und dann prüfen. Klappt nicht (weil ich die Syntax/Parameter nicht kenne…... )

            Wie bekomme ich die Temperatur eingelesen?

            log("===> Start TempTruhe","info");
            createState('TruheZuWarm', 'false');
            
            on("hm-rpc.0.GEQ0020381.1.TEMPERATURE"/*Gefriertruhentemperatur.TEMPERATURE*/, function(obj) {
                if (obj.newState.val > "-20") {
                    setState('TruheZuWarm', 'true'); 
            		log("---> Truhe zu warm: ", +obj.newState.val,"info");
                } else { 
                    setState('TruheZuWarm', 'false');
            		log("---> Truhe i.O.: ", +obj.newState.val,"info");        
                }    
            });
            
            

            Danke und Gruß

            Bernd `

            log("===> Start TempTruhe","info");
            createState('TruheZuWarm', 'false');
            
            on("hm-rpc.0.GEQ0020381.1.TEMPERATURE"/*Gefriertruhentemperatur.TEMPERATURE*/, function(obj) {
                var temp = parseFloat(obj.newState.val);
                if (temp > -20) {
                    setState('TruheZuWarm', 'true'); 
            		log("---> Truhe zu warm: ", +obj.newState.val,"info");
                } else { 
                    setState('TruheZuWarm', 'false');
            		log("---> Truhe i.O.: ", +obj.newState.val,"info");        
                }    
            });
            
            
            1 Reply Last reply Reply Quote 0
            • B
              bku last edited by

              @Bluefox:

              log("===> Start TempTruhe","info");

              createState('TruheZuWarm', 'false');

              on("hm-rpc.0.GEQ0020381.1.TEMPERATURE"/Gefriertruhentemperatur.TEMPERATURE/, function(obj) {

              var temp = parseFloat(obj.newState.val);

              if (temp > -20) {

              setState('TruheZuWarm', 'true');

              log("–-> Truhe zu warm: ", +obj.newState.val,"info");

              } else {

              setState('TruheZuWarm', 'false');

              log("---> Truhe i.O.: ", +obj.newState.val,"info");

              }

              }); `
              @bluefox:

              Klappt leider noch nicht, bekomme Fehler "….object is not a function"
              304_sc-fehler.png
              147_getting_started_3_de.png

              1 Reply Last reply Reply Quote 0
              • Bluefox
                Bluefox last edited by

                @bku:

                @Bluefox:

                log("===> Start TempTruhe","info");

                createState('TruheZuWarm', 'false');

                on("hm-rpc.0.GEQ0020381.1.TEMPERATURE"/Gefriertruhentemperatur.TEMPERATURE/, function(obj) {

                var temp = parseFloat(obj.newState.val);

                if (temp > -20) {

                setState('TruheZuWarm', 'true');

                log("–-> Truhe zu warm: ", +obj.newState.val,"info");

                } else {

                setState('TruheZuWarm', 'false');

                log("---> Truhe i.O.: ", +obj.newState.val,"info");

                }

                }); `
                @bluefox:

                Klappt leider noch nicht, bekomme Fehler "….object is not a function" `
                Der stützt bei````
                log("---> Truhe zu warm: ", +obj.newState.val,"info");

                
                Muss so sein:
                

                log("---> Truhe zu warm: " + obj.newState.val);

                log("---> Truhe zu warm: " + obj.newState.val, "info");

                
                EDIT: Und danke. Du hast Fehler gefunden. :)
                1 Reply Last reply Reply Quote 0
                • B
                  bku last edited by

                  noch nicht ganz richtig?
                  304_sc2.png
                  304_sc1.png

                  1 Reply Last reply Reply Quote 0
                  • Bluefox
                    Bluefox last edited by

                    @bku:

                    noch nicht ganz richtig? `
                    Komma zu viel:

                    log("–-> Truhe zu warm: ", + temp, "info");

                    if (temp > '-10')
                    

                    Schlecht:

                    Es muss sein:

                    if (temp > -10)
                    
                    1 Reply Last reply Reply Quote 0
                    • B
                      bku last edited by

                      Danke, läuft jetzt aber warum ist zwischen "Truhe 1" und "Truhe 2" immer eine Differenz ??

                      Der richtige Wert steht in "Truhe 1"
                      304_t2.png
                      304_t1.png

                      1 Reply Last reply Reply Quote 0
                      • Bluefox
                        Bluefox last edited by

                        @bku:

                        Danke, läuft jetzt aber warum ist zwischen "Truhe 1" und "Truhe 2" immer eine Differenz ??

                        Der richtige Wert steht in "Truhe 1" `
                        Weil du

                        var temp = parseFloat(obj.oldState.val);

                        oldState nimmst. Und oldState das ist genau Zustand vor newState.

                        Richtig währe immer newState zu verwenden.

                        1 Reply Last reply Reply Quote 0
                        • B
                          bku last edited by

                          Danke - irgendwann hab ichs raus … 😉

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          791
                          Online

                          31.8k
                          Users

                          80.0k
                          Topics

                          1.3m
                          Posts

                          2
                          14
                          3624
                          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