Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Frage zum Script

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

Frage zum Script

Geplant Angeheftet Gesperrt Verschoben JavaScript
14 Beiträge 2 Kommentatoren 3.8k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • BluefoxB Offline
    BluefoxB Offline
    Bluefox
    schrieb am zuletzt editiert von
    #4

    @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 Antwort Letzte Antwort
    0
    • B Offline
      B Offline
      bku
      schrieb am zuletzt editiert von
      #5

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

      1 Antwort Letzte Antwort
      0
      • B Offline
        B Offline
        bku
        schrieb am zuletzt editiert von
        #6

        @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 Antwort Letzte Antwort
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          schrieb am zuletzt editiert von
          #7

          @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 Antwort Letzte Antwort
          0
          • B Offline
            B Offline
            bku
            schrieb am zuletzt editiert von
            #8

            @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 Antwort Letzte Antwort
            0
            • BluefoxB Offline
              BluefoxB Offline
              Bluefox
              schrieb am zuletzt editiert von
              #9

              @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 Antwort Letzte Antwort
              0
              • B Offline
                B Offline
                bku
                schrieb am zuletzt editiert von
                #10

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

                1 Antwort Letzte Antwort
                0
                • BluefoxB Offline
                  BluefoxB Offline
                  Bluefox
                  schrieb am zuletzt editiert von
                  #11

                  @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 Antwort Letzte Antwort
                  0
                  • B Offline
                    B Offline
                    bku
                    schrieb am zuletzt editiert von
                    #12

                    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 Antwort Letzte Antwort
                    0
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      schrieb am zuletzt editiert von
                      #13

                      @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 Antwort Letzte Antwort
                      0
                      • B Offline
                        B Offline
                        bku
                        schrieb am zuletzt editiert von
                        #14

                        Danke - irgendwann hab ichs raus … ;)

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        359

                        Online

                        32.4k

                        Benutzer

                        81.5k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe