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. Werteliste auslesen und beschreiben für VIS

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    936

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Werteliste auslesen und beschreiben für VIS

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
13 Beiträge 4 Kommentatoren 1.3k Aufrufe 3 Watching
  • Ä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.
  • arteckA arteck

    @Zippolighter such nach JSON

    Z Offline
    Z Offline
    Zippolighter
    schrieb am zuletzt editiert von
    #3

    @arteck Danke für den Hinweis.

    Bin allerdings bei Javascript Rookie, ich brauche immer ein Beispiel um es dann für mich anpassen zu können.
    Habe jetzt die ganze Zeit im Forum und Web gesucht, aber entweder fehlen mir die RAW daten oder der Bezug zu iobroker.

    Wäre nett wenn mir einer ein Stück Javascript schreibt, wo ich aus den RAW Daten in eine Javascript Variable "Urlaub" den Wert aus ValueList habe. Denke dann habe ich es verstanden wie ich es dann für alle Punkte umsetzen kann.

    Habe jetzt wirklich alle möglichen Beispiele mit angeschaut, ich verstehe es nicht.

    Vielleicht mag hier noch einer etwas ausführlicher erklären.

    Vielen Dank
    Gruß Zippolighter

    1 Antwort Letzte Antwort
    0
    • Z Zippolighter

      Hallo,
      habe schon einen Eintrag im VIS Bereich gemacht, allerdings scheint es da keine Lösung zu geben.
      Vielleicht hat hier noch jemand eine Idee

      Ich habe eine Homematic Werteliste
      iobroker_werteliste.jpg

      Im native Bereich wird ValueList angezeigt mit Semikolon als Trenner.

      Irgend jemand von Euch eine Idee wie ich mit dem Wert folgendes machen kann

      • den Wert in eine Variable schreiben oder diese Variable auslesen kann für ein VIS Widget

      • in VIS in einem Widget anzeigen lassen kann

      • in VIS ein Widget in der Form beschreiben kann

      Vielen Dank
      Gruß Zippolighter

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #4

      @Zippolighter sagte:

      den Wert in eine Variable schreiben

      const idSV = 'hm-rega.0.9605';
      const idText = '0_userdata.0.urlaub'; // anpassen
      
      schedule('3 0 * * *', function() {
         let urlaub = getObject(idSV).common.states[getState(idSV).val)];
         setState(idText, urlaub, true);
      });
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      Z 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @Zippolighter sagte:

        den Wert in eine Variable schreiben

        const idSV = 'hm-rega.0.9605';
        const idText = '0_userdata.0.urlaub'; // anpassen
        
        schedule('3 0 * * *', function() {
           let urlaub = getObject(idSV).common.states[getState(idSV).val)];
           setState(idText, urlaub, true);
        });
        
        Z Offline
        Z Offline
        Zippolighter
        schrieb am zuletzt editiert von Zippolighter
        #5

        @paul53 Hallo Paul, danke

        Hatte Fehler, deswegen in folgender Art angepasst

        const idSV = 'hm-rega.0.9605';
        const idText = 'javascript.0.Manuell.Systemvariable.Allgemein.Werteliste_Urlaub';
        schedule('* * * * *', function() {
        
           let Werteliste_Urlaub = getObject(idSV).native.ValueList[getState(idSV).val];
        
           setState(idText, Werteliste_Urlaub, true);
           console.log (Werteliste_Urlaub);
        });
        

        Allerdings bekomme ich immer nur das erste Zeichen angezeigt. Also

        14:03:00.003	info	javascript.0 (24296) script.js.Tests.Werteliste_auslesen: 0
        14:03:00.008	info	javascript.0 (24296) script.js.Tests.Werteliste_auslesen: 0
        
        In der Variablen Werteliste_Urlaub steht auch nur 0 drin
        

        Nur zur Erklärung Werteliste_Urlaub ist eine Stringvariable. Möchte ja den Inhalt von ValueList als Text haben

        Danke Gruß Zippolighter

        paul53P 1 Antwort Letzte Antwort
        0
        • Z Zippolighter

          @paul53 Hallo Paul, danke

          Hatte Fehler, deswegen in folgender Art angepasst

          const idSV = 'hm-rega.0.9605';
          const idText = 'javascript.0.Manuell.Systemvariable.Allgemein.Werteliste_Urlaub';
          schedule('* * * * *', function() {
          
             let Werteliste_Urlaub = getObject(idSV).native.ValueList[getState(idSV).val];
          
             setState(idText, Werteliste_Urlaub, true);
             console.log (Werteliste_Urlaub);
          });
          

          Allerdings bekomme ich immer nur das erste Zeichen angezeigt. Also

          14:03:00.003	info	javascript.0 (24296) script.js.Tests.Werteliste_auslesen: 0
          14:03:00.008	info	javascript.0 (24296) script.js.Tests.Werteliste_auslesen: 0
          
          In der Variablen Werteliste_Urlaub steht auch nur 0 drin
          

          Nur zur Erklärung Werteliste_Urlaub ist eine Stringvariable. Möchte ja den Inhalt von ValueList als Text haben

          Danke Gruß Zippolighter

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #6

          @Zippolighter sagte:

          Inhalt von ValueList als Text

          Der Zugriff auf native.ValueList funktioniert so nicht, da es kein Objekt ist. Du möchtest den gesamten Text ? Dann so:

             let Werteliste_Urlaub = getObject(idSV).native.ValueList;
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          Z 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @Zippolighter sagte:

            Inhalt von ValueList als Text

            Der Zugriff auf native.ValueList funktioniert so nicht, da es kein Objekt ist. Du möchtest den gesamten Text ? Dann so:

               let Werteliste_Urlaub = getObject(idSV).native.ValueList;
            
            Z Offline
            Z Offline
            Zippolighter
            schrieb am zuletzt editiert von
            #7

            @paul53 Danke, damit bin ich weiter gekommen

            const idSV = 'hm-rega.0.9605';
            const idText = 'javascript.0.Manuell.Systemvariable.Allgemein.Werteliste_Urlaub';
            const idText0 = 'javascript.0.Manuell.Systemvariable.Allgemein.Urlaub0';
            const idText1 = 'javascript.0.Manuell.Systemvariable.Allgemein.Urlaub1';
            const idText2 = 'javascript.0.Manuell.Systemvariable.Allgemein.Urlaub2';
            const idText3 = 'javascript.0.Manuell.Systemvariable.Allgemein.Urlaub3';
            
            schedule('* * * * *', function() {
            
               let Werteliste_Urlaub = getObject(idSV).native.ValueList;
               
               let Urlaub0 = getObject(idSV).common.states[0];
               let Urlaub1 = getObject(idSV).common.states[1];
               let Urlaub2 = getObject(idSV).common.states[2];
               let Urlaub3 = getObject(idSV).common.states[3];
            
               setState(idText, Werteliste_Urlaub, true);
               console.log ("Werteliste Urlaub " + Werteliste_Urlaub);
               setState(idText0, Urlaub0, true);
               console.log ("Urlaub0 " + Urlaub0);
               setState(idText1, Urlaub1, true);
               console.log ("Urlaub1 " + Urlaub1);
               setState(idText2, Urlaub2, true);
               console.log ("Urlaub2 " + Urlaub2);     
               setState(idText3, Urlaub3, true);
               console.log ("Urlaub3 " + Urlaub3);
            });
            
            16:14:00.014	info	javascript.0 (2820) script.js.Tests.Werteliste_auslesen: Werteliste Urlaub 18.12.-31.12.;01.01.-03.01.;;01.04.-15.04.
            16:14:00.015	info	javascript.0 (2820) script.js.Tests.Werteliste_auslesen: Urlaub0 18.12.-31.12.
            16:14:00.016	info	javascript.0 (2820) script.js.Tests.Werteliste_auslesen: Urlaub1 01.01.-03.01.
            16:14:00.018	info	javascript.0 (2820) script.js.Tests.Werteliste_auslesen: Urlaub2
            16:14:00.019	info	javascript.0 (2820) script.js.Tests.Werteliste_auslesen: Urlaub3 01.04.-15.04.
            

            Das Thema auslesen, ist für mich damit klar und ich kann es verwenden

            Vielleicht hat noch jemand eine Idee, wie ich in die Werteliste einen Wert setzen kann.
            Für mich wäre interessant die ValueList zu beschreiben oder die States.

            Vielen Dank
            Gruß Zippolighter

            OliverIOO paul53P 2 Antworten Letzte Antwort
            0
            • Z Zippolighter

              @paul53 Danke, damit bin ich weiter gekommen

              const idSV = 'hm-rega.0.9605';
              const idText = 'javascript.0.Manuell.Systemvariable.Allgemein.Werteliste_Urlaub';
              const idText0 = 'javascript.0.Manuell.Systemvariable.Allgemein.Urlaub0';
              const idText1 = 'javascript.0.Manuell.Systemvariable.Allgemein.Urlaub1';
              const idText2 = 'javascript.0.Manuell.Systemvariable.Allgemein.Urlaub2';
              const idText3 = 'javascript.0.Manuell.Systemvariable.Allgemein.Urlaub3';
              
              schedule('* * * * *', function() {
              
                 let Werteliste_Urlaub = getObject(idSV).native.ValueList;
                 
                 let Urlaub0 = getObject(idSV).common.states[0];
                 let Urlaub1 = getObject(idSV).common.states[1];
                 let Urlaub2 = getObject(idSV).common.states[2];
                 let Urlaub3 = getObject(idSV).common.states[3];
              
                 setState(idText, Werteliste_Urlaub, true);
                 console.log ("Werteliste Urlaub " + Werteliste_Urlaub);
                 setState(idText0, Urlaub0, true);
                 console.log ("Urlaub0 " + Urlaub0);
                 setState(idText1, Urlaub1, true);
                 console.log ("Urlaub1 " + Urlaub1);
                 setState(idText2, Urlaub2, true);
                 console.log ("Urlaub2 " + Urlaub2);     
                 setState(idText3, Urlaub3, true);
                 console.log ("Urlaub3 " + Urlaub3);
              });
              
              16:14:00.014	info	javascript.0 (2820) script.js.Tests.Werteliste_auslesen: Werteliste Urlaub 18.12.-31.12.;01.01.-03.01.;;01.04.-15.04.
              16:14:00.015	info	javascript.0 (2820) script.js.Tests.Werteliste_auslesen: Urlaub0 18.12.-31.12.
              16:14:00.016	info	javascript.0 (2820) script.js.Tests.Werteliste_auslesen: Urlaub1 01.01.-03.01.
              16:14:00.018	info	javascript.0 (2820) script.js.Tests.Werteliste_auslesen: Urlaub2
              16:14:00.019	info	javascript.0 (2820) script.js.Tests.Werteliste_auslesen: Urlaub3 01.04.-15.04.
              

              Das Thema auslesen, ist für mich damit klar und ich kann es verwenden

              Vielleicht hat noch jemand eine Idee, wie ich in die Werteliste einen Wert setzen kann.
              Für mich wäre interessant die ValueList zu beschreiben oder die States.

              Vielen Dank
              Gruß Zippolighter

              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von OliverIO
              #8

              @Zippolighter
              Beim Beschreiben des Native-Astes startet iobroker den Adapter automatisch neu.

              Mehr zur Adapterkonfiguration hier:
              https://github.com/ioBroker/ioBroker/wiki/Adapter-Development-Documentation#instance-configuration

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              Z 1 Antwort Letzte Antwort
              0
              • OliverIOO OliverIO

                @Zippolighter
                Beim Beschreiben des Native-Astes startet iobroker den Adapter automatisch neu.

                Mehr zur Adapterkonfiguration hier:
                https://github.com/ioBroker/ioBroker/wiki/Adapter-Development-Documentation#instance-configuration

                Z Offline
                Z Offline
                Zippolighter
                schrieb am zuletzt editiert von
                #9

                @OliverIO Danke für den Hinweis, dann bleiben ja nur die States

                1 Antwort Letzte Antwort
                0
                • Z Zippolighter

                  @paul53 Danke, damit bin ich weiter gekommen

                  const idSV = 'hm-rega.0.9605';
                  const idText = 'javascript.0.Manuell.Systemvariable.Allgemein.Werteliste_Urlaub';
                  const idText0 = 'javascript.0.Manuell.Systemvariable.Allgemein.Urlaub0';
                  const idText1 = 'javascript.0.Manuell.Systemvariable.Allgemein.Urlaub1';
                  const idText2 = 'javascript.0.Manuell.Systemvariable.Allgemein.Urlaub2';
                  const idText3 = 'javascript.0.Manuell.Systemvariable.Allgemein.Urlaub3';
                  
                  schedule('* * * * *', function() {
                  
                     let Werteliste_Urlaub = getObject(idSV).native.ValueList;
                     
                     let Urlaub0 = getObject(idSV).common.states[0];
                     let Urlaub1 = getObject(idSV).common.states[1];
                     let Urlaub2 = getObject(idSV).common.states[2];
                     let Urlaub3 = getObject(idSV).common.states[3];
                  
                     setState(idText, Werteliste_Urlaub, true);
                     console.log ("Werteliste Urlaub " + Werteliste_Urlaub);
                     setState(idText0, Urlaub0, true);
                     console.log ("Urlaub0 " + Urlaub0);
                     setState(idText1, Urlaub1, true);
                     console.log ("Urlaub1 " + Urlaub1);
                     setState(idText2, Urlaub2, true);
                     console.log ("Urlaub2 " + Urlaub2);     
                     setState(idText3, Urlaub3, true);
                     console.log ("Urlaub3 " + Urlaub3);
                  });
                  
                  16:14:00.014	info	javascript.0 (2820) script.js.Tests.Werteliste_auslesen: Werteliste Urlaub 18.12.-31.12.;01.01.-03.01.;;01.04.-15.04.
                  16:14:00.015	info	javascript.0 (2820) script.js.Tests.Werteliste_auslesen: Urlaub0 18.12.-31.12.
                  16:14:00.016	info	javascript.0 (2820) script.js.Tests.Werteliste_auslesen: Urlaub1 01.01.-03.01.
                  16:14:00.018	info	javascript.0 (2820) script.js.Tests.Werteliste_auslesen: Urlaub2
                  16:14:00.019	info	javascript.0 (2820) script.js.Tests.Werteliste_auslesen: Urlaub3 01.04.-15.04.
                  

                  Das Thema auslesen, ist für mich damit klar und ich kann es verwenden

                  Vielleicht hat noch jemand eine Idee, wie ich in die Werteliste einen Wert setzen kann.
                  Für mich wäre interessant die ValueList zu beschreiben oder die States.

                  Vielen Dank
                  Gruß Zippolighter

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #10

                  @Zippolighter sagte:

                  beschreiben oder die States.

                  Dafür gibt es extendObject().

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  Z 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @Zippolighter sagte:

                    beschreiben oder die States.

                    Dafür gibt es extendObject().

                    Z Offline
                    Z Offline
                    Zippolighter
                    schrieb am zuletzt editiert von
                    #11

                    @paul53 Ok
                    Die Beschreibung von getObjekt oder extendObject ist mir nicht ganz klar.

                    Vielleicht habe ich aber auch schlecht beschrieben was ich möchte
                    Aktuell sind die Werte in der Urlaubsliste vorhanden
                    iobroker_Systemvariable_Urlaubstage1.jpg

                    State0, State1, State2, State3 sind vorhanden, wobei State2 leer ist..

                    Folgende Beispiele würden mir bitte helfen oder Erklärungen (ich bin für jedes einzelne Beispiel dankbar, auch wenn nicht alle beschrieben werden)

                    • Für Überschreiben von State0 mit 24.12.-29.12.

                    • Für Schreiben in State2 (oder ist das genau so wie oben??)

                    • Für einfügen vor State 1 mit 31.12.

                    • Für löschen von State 0 und alle anderen States gehen eins nacht unten (also State 1 wird State 0)

                    • Und hinzufügen von 03.10. am Ende der Liste

                    Ganz ganz vielen Dank
                    für jeden der hierzu noch einen Beitrag schreiben mag

                    Viele Grüße Andreas

                    paul53P 2 Antworten Letzte Antwort
                    0
                    • Z Zippolighter

                      @paul53 Ok
                      Die Beschreibung von getObjekt oder extendObject ist mir nicht ganz klar.

                      Vielleicht habe ich aber auch schlecht beschrieben was ich möchte
                      Aktuell sind die Werte in der Urlaubsliste vorhanden
                      iobroker_Systemvariable_Urlaubstage1.jpg

                      State0, State1, State2, State3 sind vorhanden, wobei State2 leer ist..

                      Folgende Beispiele würden mir bitte helfen oder Erklärungen (ich bin für jedes einzelne Beispiel dankbar, auch wenn nicht alle beschrieben werden)

                      • Für Überschreiben von State0 mit 24.12.-29.12.

                      • Für Schreiben in State2 (oder ist das genau so wie oben??)

                      • Für einfügen vor State 1 mit 31.12.

                      • Für löschen von State 0 und alle anderen States gehen eins nacht unten (also State 1 wird State 0)

                      • Und hinzufügen von 03.10. am Ende der Liste

                      Ganz ganz vielen Dank
                      für jeden der hierzu noch einen Beitrag schreiben mag

                      Viele Grüße Andreas

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #12

                      @Zippolighter sagte:

                      Für Überschreiben von State0 mit 24.12.-29.12.

                      extendObject(id, {common: {states: {0: '24.12.-29.12.'}}});
                      

                      Für Einfügen, Löschen und Anfügen muss common.states eingelesen, bearbeitet und mit extendObject() zurück geschrieben werden.

                      let states = getObject(id).common.states;
                      // states-Objekt bearbeiten
                      extendObject(id, {common: {states: states}});
                      

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Antwort Letzte Antwort
                      0
                      • Z Zippolighter

                        @paul53 Ok
                        Die Beschreibung von getObjekt oder extendObject ist mir nicht ganz klar.

                        Vielleicht habe ich aber auch schlecht beschrieben was ich möchte
                        Aktuell sind die Werte in der Urlaubsliste vorhanden
                        iobroker_Systemvariable_Urlaubstage1.jpg

                        State0, State1, State2, State3 sind vorhanden, wobei State2 leer ist..

                        Folgende Beispiele würden mir bitte helfen oder Erklärungen (ich bin für jedes einzelne Beispiel dankbar, auch wenn nicht alle beschrieben werden)

                        • Für Überschreiben von State0 mit 24.12.-29.12.

                        • Für Schreiben in State2 (oder ist das genau so wie oben??)

                        • Für einfügen vor State 1 mit 31.12.

                        • Für löschen von State 0 und alle anderen States gehen eins nacht unten (also State 1 wird State 0)

                        • Und hinzufügen von 03.10. am Ende der Liste

                        Ganz ganz vielen Dank
                        für jeden der hierzu noch einen Beitrag schreiben mag

                        Viele Grüße Andreas

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #13

                        @Zippolighter sagte:

                        Für löschen von State 0 und alle anderen States gehen eins nacht unten (also State 1 wird State 0)
                        Und hinzufügen von 03.10. am Ende der Liste

                        let states = getObject(id).common.states;
                        let cnt = Object.keys(states).length;
                        for(let i = 1; i < cnt; i++) {
                            states[i - 1] = states[i];
                        }
                        states[cnt - 1] = '03.10';
                        extendObject(id, {common: {states: states}});
                        

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        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

                        334

                        Online

                        32.6k

                        Benutzer

                        82.2k

                        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