Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. HowTo: Zusatz-Programme fuer jarvis v3

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    HowTo: Zusatz-Programme fuer jarvis v3

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

      @sigi234 Beim Horoskop gibt es bzgl 5.5.0 keine Probleme bei mir:
      1fe62470-cf0e-4399-aef4-abd19f7cb13d-image.png
      3c99dab7-dd18-4a8f-8595-e0e6989cfbfa-image.png
      b16fba90-7bcd-4e0e-a6b4-f7271d34f38e-image.png
      Vielleicht System neu starten? Upload?

      sigi234 1 Reply Last reply Reply Quote 0
      • sigi234
        sigi234 Forum Testing Most Active @MCU last edited by

        @mcu sagte in HowTo: Zusatz-Programme fuer jarvis v3:

        Beim Horoskop gibt es bzgl 5.5.0 keine Probleme bei mir:

        Jupp, bei mir auch nicht mehr.

        M 1 Reply Last reply Reply Quote 0
        • M
          MCU @sigi234 last edited by

          @sigi234
          DWD 2.8.2
          Nach Neustart vom System ist auch plötzlich die warning0 weg?
          401dd751-f011-4b30-ab4e-16fa4e6d3451-image.png

          sigi234 1 Reply Last reply Reply Quote 0
          • sigi234
            sigi234 Forum Testing Most Active @MCU last edited by sigi234

            @mcu sagte in HowTo: Zusatz-Programme fuer jarvis v3:

            Nach Neustart vom System ist auch plötzlich die warning0 weg?

            Bei mir auch, aber nach Adapterneustart wieder da.

            Vielleicht kann sich @apollon77 das mal ansehen.

            host.MedionHome)
            2022-03-23 15:17:56.017	info	host.Medion(Home) instance system.adapter.dwd.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
            
            dwd.0
            2022-03-23 15:17:55.381	info	Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
            
            dwd.0
            2022-03-23 15:17:55.381	debug	Plugin sentry destroyed
            
            dwd.0
            2022-03-23 15:17:55.363	debug	Add warning "dwd.0.warning9":
            
            dwd.0
            2022-03-23 15:17:55.324	debug	Write warnings for 9: dwd.0.warning9 = undefined
            
            dwd.0
            2022-03-23 15:17:55.298	debug	Add warning "dwd.0.warning8":
            
            dwd.0
            2022-03-23 15:17:55.271	debug	Write warnings for 8: dwd.0.warning8 = undefined
            
            dwd.0
            2022-03-23 15:17:55.255	debug	Add warning "dwd.0.warning7":
            
            dwd.0
            2022-03-23 15:17:55.229	debug	Write warnings for 7: dwd.0.warning7 = undefined
            
            dwd.0
            2022-03-23 15:17:55.214	debug	Add warning "dwd.0.warning6":
            
            dwd.0
            2022-03-23 15:17:55.189	debug	Write warnings for 6: dwd.0.warning6 = undefined
            
            dwd.0
            2022-03-23 15:17:55.172	debug	Add warning "dwd.0.warning5":
            
            dwd.0
            2022-03-23 15:17:55.146	debug	Write warnings for 5: dwd.0.warning5 = undefined
            
            dwd.0
            2022-03-23 15:17:55.130	debug	Add warning "dwd.0.warning4":
            
            dwd.0
            2022-03-23 15:17:55.105	debug	Write warnings for 4: dwd.0.warning4 = undefined
            
            dwd.0
            2022-03-23 15:17:55.091	debug	Add warning "dwd.0.warning3":
            
            dwd.0
            2022-03-23 15:17:55.041	debug	Write warnings for 3: dwd.0.warning3 = undefined
            
            dwd.0
            2022-03-23 15:17:55.024	debug	Add warning "dwd.0.warning2":
            
            dwd.0
            2022-03-23 15:17:54.996	debug	Write warnings for 2: dwd.0.warning2 = undefined
            
            dwd.0
            2022-03-23 15:17:54.979	debug	Add warning "dwd.0.warning1":
            
            dwd.0
            2022-03-23 15:17:54.949	debug	Write warnings for 1: dwd.0.warning1 = undefined
            
            dwd.0
            2022-03-23 15:17:54.933	debug	Add warning "dwd.0.warning": 2022-03-23T22:00:00.000Z
            
            dwd.0
            2022-03-23 15:17:54.904	debug	Write warnings for 0: dwd.0.warning = {"regionName":"Kreis und Stadt Passau","type":5,"state":"Bayern","end":1648105200000,"start":1648072800000,"level":2,"description":"Es tritt leichter Frost zwischen 0 °C und -4 °C auf. In Tal- und Muldenlagen sinken die Temperaturen auf Werte bis -6 °C.","instruction":"","stateShort":"BY","altitudeStart":null,"altitudeEnd":null,"headline":"Amtliche WARNUNG vor FROST","event":"FROST"}
            
            dwd.0
            2022-03-23 15:17:54.804	debug	Sorted Warnings: [{"regionName":"Kreis und Stadt Passau","type":5,"state":"Bayern","end":1648105200000,"start":1648072800000,"level":2,"description":"Es tritt leichter Frost zwischen 0 °C und -4 °C auf. In Tal- und Muldenlagen sinken die Temperaturen auf Werte bis -6 °C.","instruction":"","stateShort":"BY","altitudeStart":null,"altitudeEnd":null,"headline":"Amtliche WARNUNG vor FROST","event":"FROST"}]
            
            dwd.0
            2022-03-23 15:17:54.803	debug	Find Warnings for Region: Kreis und Stadt Passau
            

            Edit:

            Jetzt wieder weg.

            M apollon77 2 Replies Last reply Reply Quote 0
            • M
              MCU @sigi234 last edited by MCU

              @sigi234 Lade mal die DateWeatherDWD v1.0.6.
              https://mcuiobroker.gitbook.io/jarvis-infos/jarvis/besonderheiten-v3/module/statehtml/dateweatherdwd/javascript-dateweatherdwd

              sigi234 1 Reply Last reply Reply Quote 1
              • sigi234
                sigi234 Forum Testing Most Active @MCU last edited by sigi234

                @mcu sagte in HowTo: Zusatz-Programme fuer jarvis v3:

                @sigi234 Lade mal die DateWeatherDWD v1.0.6.
                https://mcuiobroker.gitbook.io/jarvis-infos/jarvis/besonderheiten-v3/module/statehtml/dateweatherdwd/javascript-dateweatherdwd

                Schaut Gut aus.

                16:48:15.105	info	javascript.0 (4156) Stop script script.js.Jarvis.DateWeather1
                16:48:38.683	info	javascript.0 (4156) Start javascript script.js.Jarvis.DateWeather1
                16:48:38.705	info	javascript.0 (4156) script.js.Jarvis.DateWeather1: Script "script.js.Jarvis.DateWeather1" wurde für DateWeatherDWD v1.0.6 gestartet!
                16:48:38.710	info	javascript.0 (4156) script.js.Jarvis.DateWeather1: registered 12 subscriptions and 1 schedule
                16:48:42.707	info	javascript.0 (4156) script.js.Jarvis.DateWeather1: html neu erstellen
                16:48:42.708	info	javascript.0 (4156) script.js.Jarvis.DateWeather1: DWD-Adapter ist installiert
                16:48:42.709	info	javascript.0 (4156) script.js.Jarvis.DateWeather1: Warnung vorhanden
                
                
                1 Reply Last reply Reply Quote 0
                • apollon77
                  apollon77 @sigi234 last edited by

                  @sigi234 Bitte GitHub version versuchen. Ists da weg?

                  sigi234 1 Reply Last reply Reply Quote 0
                  • sigi234
                    sigi234 Forum Testing Most Active @apollon77 last edited by sigi234

                    @apollon77 sagte in HowTo: Zusatz-Programme fuer jarvis v3:

                    @sigi234 Bitte GitHub version versuchen. Ists da weg?

                    Nein, warning0 wird nicht angelegt

                    dwd.0
                    2022-03-23 18:23:04.202	info	Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                    
                    dwd.0
                    2022-03-23 18:23:04.201	debug	Plugin sentry destroyed
                    
                    dwd.0
                    2022-03-23 18:23:04.186	debug	Add warning "dwd.0.warning9":
                    
                    dwd.0
                    2022-03-23 18:23:04.136	debug	Write warnings for 9: dwd.0.warning9 = undefined
                    
                    dwd.0
                    2022-03-23 18:23:04.119	debug	Add warning "dwd.0.warning8":
                    
                    dwd.0
                    2022-03-23 18:23:04.089	debug	Write warnings for 8: dwd.0.warning8 = undefined
                    
                    dwd.0
                    2022-03-23 18:23:04.072	debug	Add warning "dwd.0.warning7":
                    
                    dwd.0
                    2022-03-23 18:23:04.042	debug	Write warnings for 7: dwd.0.warning7 = undefined
                    
                    dwd.0
                    2022-03-23 18:23:04.025	debug	Add warning "dwd.0.warning6":
                    
                    dwd.0
                    2022-03-23 18:23:03.993	debug	Write warnings for 6: dwd.0.warning6 = undefined
                    
                    dwd.0
                    2022-03-23 18:23:03.975	debug	Add warning "dwd.0.warning5":
                    
                    dwd.0
                    2022-03-23 18:23:03.942	debug	Write warnings for 5: dwd.0.warning5 = undefined
                    
                    dwd.0
                    2022-03-23 18:23:03.924	debug	Add warning "dwd.0.warning4":
                    
                    dwd.0
                    2022-03-23 18:23:03.804	debug	Write warnings for 4: dwd.0.warning4 = undefined
                    
                    dwd.0
                    2022-03-23 18:23:03.788	debug	Add warning "dwd.0.warning3":
                    
                    dwd.0
                    2022-03-23 18:23:03.759	debug	Write warnings for 3: dwd.0.warning3 = undefined
                    
                    dwd.0
                    2022-03-23 18:23:03.741	debug	Add warning "dwd.0.warning2":
                    
                    dwd.0
                    2022-03-23 18:23:03.711	debug	Write warnings for 2: dwd.0.warning2 = undefined
                    
                    dwd.0
                    2022-03-23 18:23:03.696	debug	Add warning "dwd.0.warning1":
                    
                    dwd.0
                    2022-03-23 18:23:03.669	debug	Write warnings for 1: dwd.0.warning1 = undefined
                    
                    dwd.0
                    2022-03-23 18:23:03.653	debug	Add warning "dwd.0.warning": 2022-03-23T22:00:00.000Z
                    
                    dwd.0
                    2022-03-23 18:23:03.524	debug	Write warnings for 0: dwd.0.warning = {"regionName":"Kreis und Stadt Passau","type":5,"state":"Bayern","end":1648105200000,"start":1648072800000,"level":2,"description":"Es tritt leichter Frost zwischen 0 °C und -4 °C auf. In Tal- und Muldenlagen sinken die Temperaturen auf Werte bis -6 °C.","instruction":"","stateShort":"BY","altitudeStart":null,"altitudeEnd":null,"headline":"Amtliche WARNUNG vor FROST","event":"FROST"}
                    
                    dwd.0
                    2022-03-23 18:23:03.496	debug	Sorted Warnings: [{"regionName":"Kreis und Stadt Passau","type":5,"state":"Bayern","end":1648105200000,"start":1648072800000,"level":2,"description":"Es tritt leichter Frost zwischen 0 °C und -4 °C auf. In Tal- und Muldenlagen sinken die Temperaturen auf Werte bis -6 °C.","instruction":"","stateShort":"BY","altitudeStart":null,"altitudeEnd":null,"headline":"Amtliche WARNUNG vor FROST","event":"FROST"}]
                    
                    dwd.0
                    2022-03-23 18:23:03.495	debug	Find Warnings for Region: Kreis und Stadt Passau
                    
                    

                    Screenshot (4784).png

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      MCU @sigi234 last edited by MCU

                      @sigi234 Soll ja auch nicht. warning = "warning0". So war es ja vorher auch.

                      apollon77 1 Reply Last reply Reply Quote 0
                      • apollon77
                        apollon77 @MCU last edited by

                        @mcu Ja, Ich hab nicht aufgepasst ... kommt davon wenn man soviel an Adaptern rumfummelt die man selbst nicht geschrieben hat. Da kann man solche Kleinigkeiten übersehen 😞

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          MCU @apollon77 last edited by

                          @apollon77 Wir sind alle dankbar, dass du es kannst und machst. Da passieren auch mal Kleinigkeiten. Also DANKE.

                          1 Reply Last reply Reply Quote 2
                          • B
                            Bloody last edited by

                            @MCU
                            Ich hatte bereits Combined, feed und short probiert, funktioniert bei keinem Wert.

                            M 2 Replies Last reply Reply Quote 0
                            • M
                              MCU @Bloody last edited by

                              @bloody Falls es dir um die günstigste geht, ist im Adapter schon drin:

                              1a2a47d5-ee45-4fa7-939e-ed9510fcb3ee-image.png

                              1 Reply Last reply Reply Quote 0
                              • M
                                MCU @Bloody last edited by MCU

                                @bloody Also funktioniert bei mir mit dem feed-Wert. Du warst nicht gleichzeitig in der Bearbeitung von jarvis im FrontEnd?

                                statelistSort('0','13c88101-c6bb-48b6-9347-5122a3ef3bbe','number',false);
                                

                                de5aa287-2f2b-43ba-9de9-59267ba1691c-image.png

                                statelistSort('0','13c88101-c6bb-48b6-9347-5122a3ef3bbe','number',true);
                                

                                06e4e028-8ed3-4f1d-850f-4ce822efce00-image.png

                                Habe die Doku nochmal angepasst:
                                https://mcuiobroker.gitbook.io/jarvis-infos/jarvis/system-effektprog./v3-systemprogramme/statelistsort
                                evtl F5 drücken.

                                B 1 Reply Last reply Reply Quote 1
                                • B
                                  Bloody @MCU last edited by

                                  @mcu
                                  Danke für die Rückmeldung.
                                  Das Problem war, dass ich zwar den feed Datenpunkt benutzt habe aber noch in den Datenpunkt Eigenschaften gerundet hatte ({"value":"val => parseFloat(val).toFixed(2)"}).
                                  Keine Ahnung, wieso ich das so gemacht hatte, weil es ja den DP short auch gibt. Gabs den schon immer? Naja egal, es geht jetzt.
                                  Hab es jetzt so gelöst.
                                  https://forum.iobroker.net/topic/49776/jarvis-v3-0-0-just-another-remarkable-vis/2364

                                  Dankeschön.

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

                                    Moin @MCU,

                                    hab doch noch ein Problem.
                                    Es steht nicht immer der billigste Preis oben. Erst wenn ich das Skript neustarte, passt es wieder.
                                    Aber da ist doch ein Trigger drin, falls sich ein Preis ändert, soll sich die Reihenfolge anpassen
                                    oder liege ich falsch?

                                    M 1 Reply Last reply Reply Quote 0
                                    • M
                                      MCU @Bloody last edited by

                                      @bloody Das soll ja so. Soll der teuerste oben sein dann muss man false setzen.

                                      B 1 Reply Last reply Reply Quote 0
                                      • B
                                        Bloody @MCU last edited by

                                        @mcu
                                        Kann leider gerade kein Screenshot machen, da es aktuell mit der Reihenfolge passt (von klein nach groß). Hätte ich vielleicht dazu sagen sollen... Bei mir ist es dann nicht von klein nach groß oder von groß nach klein sortiert, sondern die Preise sind durcheinander gewürfelt.
                                        Beispielsweise so:

                                        1.91
                                        1.95
                                        1.98
                                        1.89
                                        1.70

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          MCU last edited by MCU

                                          @bloody Dann zeig mal bitte das Programm, welches du nutzt. Bitte in CodeTags (</>), also auf e07c2e6c-780f-4d2b-ba36-33ce9491c295-image.png klicken und den COde einfügen. Danke. Mir reicht der Trigger Teil, nicht die function().
                                          Kann es sein, dass du nur einmal um 01:00 Uhr die Funktion laufen lässt?

                                          B 1 Reply Last reply Reply Quote 0
                                          • B
                                            Bloody @MCU last edited by Bloody

                                            @mcu
                                            Hier nochmal, der aktuelle Stand.
                                            cb7c076f-cae9-4205-a1dc-070bae52e844-image.png

                                            Ich sehe gar keinen Trigger 😕

                                            // ************************
                                            // stateListSort 
                                            // ************************
                                            
                                            
                                            statelistSort('0','hier ist die id drin','number',true);
                                            
                                            function statelistSort(instance,widgetId,valType,sortUp){
                                                // insbesondere für trashschedule
                                                let widgetsDP = 'jarvis.' + instance + '.widgets';
                                                let widgets = getState(widgetsDP).val;
                                                widgets = JSON.parse(widgets);
                                                let arr = [];
                                                for (let id in widgets){
                                                    if (id == widgetId ){
                                                        for (let key in widgets[id].items){
                                                            // Type vom item prüfen
                                                            if (widgets[id].items[key].type == 'device'){
                                                                let objId =getStateFromDevice(instance, widgets[id].items[key].deviceId, widgets[id].items[key].primaryStateKey);
                                                                let objVal = getState(objId).val;
                                                                if (typeof(objVal) == valType){
                                                                    arr.push({'objVal':objVal,'key':key, 'all': widgets[id].items[key]});
                                                                }else{
                                                                    arr.push({'objVal':0,'key':key, 'all': widgets[id].items[key]});
                                                                    //log('Abbruch, da Wert nicht stimmt: objVal: '+ objVal +' - '+typeof(objVal));
                                                                    // arr= [];
                                                                    // break;
                                                                }
                                                            }else{
                                                                log('Liste nicht sinnvoll sortierbar, da divider vorhanden');
                                                                arr =[];
                                                                break;
                                                            }
                                                        }
                                                        // Sort arr
                                                        if (arr.length>0){
                                                            if (valType == 'boolean'){
                                                                if (sortUp || sortUp == undefined){
                                                                    arr.sort((a, b) => (toBoolean(a.objVal) > toBoolean (b.objVal)) ? 1 : -1);
                                                                }else{
                                                                    arr.sort((a, b) => (toBoolean(a.objVal) < toBoolean (b.objVal)) ? 1 : -1);
                                                                }
                                                            }
                                                             if (valType == 'number'){
                                                                if (sortUp || sortUp == undefined){
                                                                    arr.sort((a, b) => (a.objVal > b.objVal ) ? 1 : -1);
                                                                }else{
                                                                    arr.sort((a, b) => (a.objVal < b.objVal) ? 1 : -1);
                                                                }
                                                            }
                                                        }else{
                                                            log('Abbruch der Sortierung');
                                                        }
                                                        break;
                                                    }
                                                    
                                                }
                                                let widgetArr = [];
                                                for (let i=0;i<arr.length;i++){
                                                    log(i+' - '+arr[i].objVal+' - key: '+arr[i].key);
                                                    widgetArr.push(arr[i].all);
                                                }
                                                for (let id in widgets){
                                                    if (id == widgetId ){
                                                        widgets[id].items = widgetArr;
                                                        log ('Nachher:'+JSON.stringify(widgets[id].items));
                                                        break;
                                                    }
                                                }
                                                setState(widgetsDP,JSON.stringify(widgets),false);
                                            }
                                            
                                            function getStateFromDevice(instance, deviceId, devState){
                                                let devicesDP = 'jarvis.' + instance + '.devices';
                                                let devices = getState(devicesDP).val;
                                                devices = JSON.parse(devices);
                                                for (let key in devices){
                                                    let devicesArr = devices[key];
                                                    for (let key2 in devicesArr){
                                                        if (deviceId ==devicesArr[key2].id){
                                                            let devicesStates =devicesArr[key2].states;
                                                            for (let key3 in devicesStates){
                                                                if (devState == key3){
                                                                    return devicesStates[key3].state;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            

                                            Nachtrag:
                                            Ich habs jetzt. Hatte nicht gesehen, dass es bereits einen weiteren Eintrag und Trigger gibt.
                                            https://mcuiobroker.gitbook.io/jarvis-infos/jarvis/system-effektprog./v3-systemprogramme/statelistsort/javascript-zusatz-tankerkoenig

                                            Habs jetzt so:

                                            // ************************
                                            // stateListSort 
                                            // ************************
                                            
                                            
                                            statelistSort('0','id','number',true);
                                            
                                            function statelistSort(instance,widgetId,valType,sortUp){
                                                // insbesondere für trashschedule
                                                let widgetsDP = 'jarvis.' + instance + '.widgets';
                                                let widgets = getState(widgetsDP).val;
                                                widgets = JSON.parse(widgets);
                                                let arr = [];
                                                for (let id in widgets){
                                                    if (id == widgetId ){
                                                        for (let key in widgets[id].items){
                                                            // Type vom item prüfen
                                                            if (widgets[id].items[key].type == 'device'){
                                                                let objId =getStateFromDevice(instance, widgets[id].items[key].deviceId, widgets[id].items[key].primaryStateKey);
                                                                let objVal = getState(objId).val;
                                                                if (typeof(objVal) == valType){
                                                                    arr.push({'objVal':objVal,'key':key, 'all': widgets[id].items[key]});
                                                                }else{
                                                                    arr.push({'objVal':0,'key':key, 'all': widgets[id].items[key]});
                                                                    //log('Abbruch, da Wert nicht stimmt: objVal: '+ objVal +' - '+typeof(objVal));
                                                                    // arr= [];
                                                                    // break;
                                                                }
                                                            }else{
                                                                log('Liste nicht sinnvoll sortierbar, da divider vorhanden');
                                                                arr =[];
                                                                break;
                                                            }
                                                        }
                                                        // Sort arr
                                                        if (arr.length>0){
                                                            if (valType == 'boolean'){
                                                                if (sortUp || sortUp == undefined){
                                                                    arr.sort((a, b) => (toBoolean(a.objVal) > toBoolean (b.objVal)) ? 1 : -1);
                                                                }else{
                                                                    arr.sort((a, b) => (toBoolean(a.objVal) < toBoolean (b.objVal)) ? 1 : -1);
                                                                }
                                                            }
                                                             if (valType == 'number'){
                                                                if (sortUp || sortUp == undefined){
                                                                    arr.sort((a, b) => (a.objVal > b.objVal ) ? 1 : -1);
                                                                }else{
                                                                    arr.sort((a, b) => (a.objVal < b.objVal) ? 1 : -1);
                                                                }
                                                            }
                                                        }else{
                                                            log('Abbruch der Sortierung');
                                                        }
                                                        break;
                                                    }
                                                    
                                                }
                                                let widgetArr = [];
                                                for (let i=0;i<arr.length;i++){
                                                    log(i+' - '+arr[i].objVal+' - key: '+arr[i].key);
                                                    widgetArr.push(arr[i].all);
                                                }
                                                for (let id in widgets){
                                                    if (id == widgetId ){
                                                        widgets[id].items = widgetArr;
                                                        log ('Nachher:'+JSON.stringify(widgets[id].items));
                                                        break;
                                                    }
                                                }
                                                setState(widgetsDP,JSON.stringify(widgets),false);
                                            }
                                            
                                                // **********************************
                                            // tankerkoenig Zusatz
                                            // **********************************
                                            // Möchte man die Preis in einem Widget sortiert haben
                                            // kann man direkt nach Änderung der Preise für die Spritsorten
                                            // die Sortierung neu anstossen
                                            // Beide Script stateListSort und tankerkoenigSort muessen in einem Script zusammen sein
                                            
                                            // -> 
                                            // Spritart anpassen e10 , diesel oder e5
                                            //
                                            // Hier zurzeit e10 gezeigt
                                            //
                                            // Fall man möchte bei jeder Preisänderung eine Sortierung
                                            let tankerkoenigDPs = 'tankerkoenig.0.stations.*.e10.feed';
                                            
                                            $(tankerkoenigDPs).on(function (obj) {
                                                if (obj.deviceId != 'tankerkoenig.0.stations.cheapest'){
                                                    statelistSort('0','id','number',true)
                                                }
                                            });
                                            
                                            
                                            function getStateFromDevice(instance, deviceId, devState){
                                                let devicesDP = 'jarvis.' + instance + '.devices';
                                                let devices = getState(devicesDP).val;
                                                devices = JSON.parse(devices);
                                                for (let key in devices){
                                                    let devicesArr = devices[key];
                                                    for (let key2 in devicesArr){
                                                        if (deviceId ==devicesArr[key2].id){
                                                            let devicesStates =devicesArr[key2].states;
                                                            for (let key3 in devicesStates){
                                                                if (devState == key3){
                                                                    return devicesStates[key3].state;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                                
                                            
                                                
                                            }
                                            

                                            Sorry für die Umstände und Danke!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            762
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            31
                                            864
                                            168235
                                            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