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. Tester
  4. jarvis v3.1.x - just another remarkable vis

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    21
    1
    952

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

jarvis v3.1.x - just another remarkable vis

Geplant Angeheftet Gesperrt Verschoben Tester
jarvismaterialmaterial uimaterialdesignvisvisualisierungvisualization
1.8k Beiträge 92 Kommentatoren 733.0k Aufrufe 77 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.
  • G Grml

    @mcu said in jarvis v3.1.0-beta - just another remarkable vis:

    @Grml Scheinbar ein Uploadproblem.
    Auf der console durchführen

    iob upload jarvis
    

    Es gibt allerding noch ein Speicherproblem. Wenn du also das Bild direkt nach der Eingabe gemacht haben solltest, dann schau nochmal in den DP, ob "min" und "max" überhaupt drin stehen.

    iob upload jarvis
    

    hat nichts geändert.

    Die Werte/der JSON-String im DP steht drin, ist also gespeichert.
    Adapter habe ich neu gestartet.

    Problem bleibt.

    M Online
    M Online
    MCU
    schrieb am zuletzt editiert von MCU
    #238

    @grml Web-Adapter mal neu starten?
    bd49601e-a49f-4e0c-b906-8128641096bb-image.png
    f0e16945-1740-413b-96a3-6caa50b79b3f-image.png

    NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
    Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

    G 1 Antwort Letzte Antwort
    0
    • M MCU

      @grml Web-Adapter mal neu starten?
      bd49601e-a49f-4e0c-b906-8128641096bb-image.png
      f0e16945-1740-413b-96a3-6caa50b79b3f-image.png

      G Offline
      G Offline
      Grml
      schrieb am zuletzt editiert von
      #239

      @mcu Auch probiert, hat auch nichts geholfen. Ich starte morgen mal das ganze System durch und berichte. Erstmal danke für die Hilfe bis hierher.

      G 1 Antwort Letzte Antwort
      1
      • G Grml

        @mcu Auch probiert, hat auch nichts geholfen. Ich starte morgen mal das ganze System durch und berichte. Erstmal danke für die Hilfe bis hierher.

        G Offline
        G Offline
        Grml
        schrieb am zuletzt editiert von Grml
        #240

        @mcu Mir fällt gerade was auf: Wenn ich die "Detailansicht" im Frontend öffne, sind da min/max-Werte. Nur bei der "Übersicht" nicht.

        Übersicht:
        cc9e4ea6-0243-41c2-9f64-94548d9be389-image.png

        Detailansicht:
        ff097eb9-5014-4fec-8883-6f89861134c0-image.png

        Sorry, dass mir das jetzt erst auffällt. Ist also "nur" die Frage, warum min/max nur in der Detailansicht korrekt sind bzw. wo das für die "Übersicht" geändert werden müsste.

        M 1 Antwort Letzte Antwort
        0
        • G Grml

          @mcu Mir fällt gerade was auf: Wenn ich die "Detailansicht" im Frontend öffne, sind da min/max-Werte. Nur bei der "Übersicht" nicht.

          Übersicht:
          cc9e4ea6-0243-41c2-9f64-94548d9be389-image.png

          Detailansicht:
          ff097eb9-5014-4fec-8883-6f89861134c0-image.png

          Sorry, dass mir das jetzt erst auffällt. Ist also "nur" die Frage, warum min/max nur in der Detailansicht korrekt sind bzw. wo das für die "Übersicht" geändert werden müsste.

          M Online
          M Online
          MCU
          schrieb am zuletzt editiert von MCU
          #241

          @grml Welche Version hast du v3.1.2? Ja.
          Browserdaten mal gelöscht?

          NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
          Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

          G 1 Antwort Letzte Antwort
          0
          • M MCU

            @johannes1702
            Neustart iobroker?
            Was hast du denn schon alles gemacht?
            Was ist wo , wie eingestellt?

            • Browser-Cache von allen Geräten löschen
            • WEB - Instanz neu starten
            • jarvis - Instanz neu starten
            • ioBroker komplett neu starten
            J Offline
            J Offline
            johannes1702
            schrieb am zuletzt editiert von johannes1702
            #242

            @mcu

            Eigentlich alles :-)

            0e3e0571-b5f7-4b2a-b6d5-80b9c1ab9a02-grafik.png

            Einstellungen geändert, JarVIS neugestartet, Web neugestartet, Browserdaten gelöscht, iobroker stop, iobroker start und gewartet, bis alle Instanzen wieder geladen waren. Verschiedene Browser.

            Rufe ich die alte Adresse auf, dann kommt das:
            12d48872-f7fa-4185-93d6-0a4d66d8a097-grafik.png

            Rufe ich die neue Adresse auf, dann kommt gar nichts.

            M 1 Antwort Letzte Antwort
            0
            • M MCU

              @grml Welche Version hast du v3.1.2? Ja.
              Browserdaten mal gelöscht?

              G Offline
              G Offline
              Grml
              schrieb am zuletzt editiert von
              #243

              @mcu said in jarvis v3.1.0-beta - just another remarkable vis:

              @grml Welche Version hast du v3.1.2? Ja.
              Browserdaten mal gelöscht?

              Ja, 3.1.2.
              Browserdaten habe ich gelöscht, sogar eine Linux VM gestartet, die Jarvis noch nie geöffnet hatte. Problem bleibt. Im Popup sind min/max korrekt, auf der "Hauptseite" wird min/max ignoriert und steht - wie in den Screenshots oben - bei 0 - 100.

              M 1 Antwort Letzte Antwort
              0
              • G Grml

                @mcu said in jarvis v3.1.0-beta - just another remarkable vis:

                @grml Welche Version hast du v3.1.2? Ja.
                Browserdaten mal gelöscht?

                Ja, 3.1.2.
                Browserdaten habe ich gelöscht, sogar eine Linux VM gestartet, die Jarvis noch nie geöffnet hatte. Problem bleibt. Im Popup sind min/max korrekt, auf der "Hauptseite" wird min/max ignoriert und steht - wie in den Screenshots oben - bei 0 - 100.

                M Online
                M Online
                MCU
                schrieb am zuletzt editiert von
                #244

                @grml Dann bitte ein Issue aufmachen.

                NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                G 1 Antwort Letzte Antwort
                0
                • J johannes1702

                  @mcu

                  Eigentlich alles :-)

                  0e3e0571-b5f7-4b2a-b6d5-80b9c1ab9a02-grafik.png

                  Einstellungen geändert, JarVIS neugestartet, Web neugestartet, Browserdaten gelöscht, iobroker stop, iobroker start und gewartet, bis alle Instanzen wieder geladen waren. Verschiedene Browser.

                  Rufe ich die alte Adresse auf, dann kommt das:
                  12d48872-f7fa-4185-93d6-0a4d66d8a097-grafik.png

                  Rufe ich die neue Adresse auf, dann kommt gar nichts.

                  M Online
                  M Online
                  MCU
                  schrieb am zuletzt editiert von
                  #245

                  @johannes1702 Du musst die IP Adresse eingeben.

                  NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                  Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                  J 1 Antwort Letzte Antwort
                  0
                  • M MCU

                    @johannes1702 Du musst die IP Adresse eingeben.

                    J Offline
                    J Offline
                    johannes1702
                    schrieb am zuletzt editiert von
                    #246

                    @mcu Leider genau das selbe, auch mit eingetragener IP :-(

                    M 1 Antwort Letzte Antwort
                    0
                    • M MCU

                      @grml Dann bitte ein Issue aufmachen.

                      G Offline
                      G Offline
                      Grml
                      schrieb am zuletzt editiert von
                      #247

                      @mcu Ich habe jetzt gerade die komplette ioBroker-Installation durchgestartet und nochmal iob upload jarvis gemacht. Jetzt passt es auf einmal. Frag mich bitte nicht warum...

                      1 Antwort Letzte Antwort
                      0
                      • J johannes1702

                        @mcu Leider genau das selbe, auch mit eingetragener IP :-(

                        M Online
                        M Online
                        MCU
                        schrieb am zuletzt editiert von
                        #248

                        @johannes1702 Häkchen vor Automatische Verbindungseinstellungen bringt was?

                        NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                        Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                        J 1 Antwort Letzte Antwort
                        1
                        • M MCU

                          @johannes1702 Häkchen vor Automatische Verbindungseinstellungen bringt was?

                          J Offline
                          J Offline
                          johannes1702
                          schrieb am zuletzt editiert von
                          #249

                          @mcu Vielleicht liege ich falsch, aber mein Verständnis ist, dass wenn der Haken gesetzt ist, dann JarVIS das automatisch macht. Wenn ich ihn wegmache, dann muss ich was in die Felder eintragen bzw. kann es dann auch ändern. Oder liege ich da falsch?

                          M 1 Antwort Letzte Antwort
                          0
                          • J johannes1702

                            @mcu Vielleicht liege ich falsch, aber mein Verständnis ist, dass wenn der Haken gesetzt ist, dann JarVIS das automatisch macht. Wenn ich ihn wegmache, dann muss ich was in die Felder eintragen bzw. kann es dann auch ändern. Oder liege ich da falsch?

                            M Online
                            M Online
                            MCU
                            schrieb am zuletzt editiert von
                            #250

                            @johannes1702 Ja. Du willst ja wieder arbeiten können.

                            NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                            Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                            J 1 Antwort Letzte Antwort
                            0
                            • M MCU

                              @johannes1702 Ja. Du willst ja wieder arbeiten können.

                              J Offline
                              J Offline
                              johannes1702
                              schrieb am zuletzt editiert von
                              #251

                              @mcu Ach so :-) Ja, hatte es schon wieder zurückgestellt, als es nicht wie gewünscht ging. Aber trotzdem danke für den Hinweis :-):+1:

                              1 Antwort Letzte Antwort
                              0
                              • M MCU

                                @dering Würde mit v3.1.3-beta2 so aussehen.
                                jarvis v313-beta2 Beispiel Autmatische Umschaltung DarkModeConfig.gif
                                Beendet man die Konfiguration dauert es ein wenig, bis umgeschaltet wird (je nach System?).

                                D Offline
                                D Offline
                                dering
                                schrieb am zuletzt editiert von
                                #252

                                @mcu
                                Das würde mir absolut ausreichen. Generell wäre es ja so, auf meinem PC arbeite ich an der Visualisierung und auf dem Tablet wirds angezeigt. Wenn ich mir auf dem PC die Visualisierung ansehe, mach ich das auf einem zweiten Bildschirm.

                                M 1 Antwort Letzte Antwort
                                0
                                • D dering

                                  @mcu
                                  Das würde mir absolut ausreichen. Generell wäre es ja so, auf meinem PC arbeite ich an der Visualisierung und auf dem Tablet wirds angezeigt. Wenn ich mir auf dem PC die Visualisierung ansehe, mach ich das auf einem zweiten Bildschirm.

                                  M Online
                                  M Online
                                  MCU
                                  schrieb am zuletzt editiert von
                                  #253

                                  @dering
                                  https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/besonderheiten-v3/scripts-3.1.x-pro/darkmodespecial

                                  NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                                  Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                                  D 1 Antwort Letzte Antwort
                                  0
                                  • M MCU

                                    @dering
                                    https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/besonderheiten-v3/scripts-3.1.x-pro/darkmodespecial

                                    D Offline
                                    D Offline
                                    dering
                                    schrieb am zuletzt editiert von
                                    #254

                                    @mcu
                                    Coole Sache, danke schön :). Ich hab noch keine Pro Lizenz, bin im Moment noch am ausprobieren, was ich brauche wie ich es umgesetzt bekomme.

                                    1 Antwort Letzte Antwort
                                    0
                                    • D Offline
                                      D Offline
                                      dering
                                      schrieb am zuletzt editiert von
                                      #255

                                      Gibt es die Möglichkeit an Themen mitzuentwickeln oder ist das eher nicht gewünscht?
                                      Eine große Sache die mir fehlt sind Gauges (https://github.com/Zefau/ioBroker.jarvis/issues/119). Mit eCharts kann man ja alles umsetzen, was das Herz begehrt :D.

                                      Ich hab auch bereits deine Doku zu Gauges gesehen :https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/besonderheiten-v3/module/statehtml/gauge-dp/gauge-einzel-dp
                                      Ich wollte es auch mit einem Wert testen, jedoch zeigt er mir nichts an. Kann es sein, dass dafür auch die Pro benötigt wird?

                                      Aber ehrlich gesagt würde ich für jedes Gauge diesen Aufwand nicht betreiben. Dann warte ich lieber noch.

                                      1 Antwort Letzte Antwort
                                      0
                                      • Michael SauerM Offline
                                        Michael SauerM Offline
                                        Michael Sauer
                                        schrieb am zuletzt editiert von
                                        #256

                                        @mcu sagte in jarvis v3.1.0-beta - just another remarkable vis:

                                        @michael-sauer
                                        Dann müsste man dies anpassen?
                                        https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/system-effektprog./v3-systemprogramme/setdropdown

                                        Das obige Bild kommt aus VIS? Oder eine andere?

                                        Hab mir das Script angepasst:

                                        // ***************************
                                        // setDropDown v1.0.0
                                        // Copyright ©MCU
                                        // ***************************
                                        //
                                        // Dieses Programm setzt in einem oder mehreren festgelegten Device mit deviceId und 
                                        // bestimmtem stateKey eine vorgefertige DropDownListe
                                        // 
                                        //
                                        
                                        
                                        let devicesDP = '0_userdata.0.jarvis.setDropDown';
                                        let deviceIDJarvisArrDP = devicesDP + '.jarvisDeviceIDArr';
                                        let dropDownListFolderDP = devicesDP + '.dropDownLists'; // Ordner
                                        let setDeviceDP = devicesDP + '.set';
                                        let setInstanceDP = devicesDP + '.instance';
                                        let loggingDP =  devicesDP + '.logging'; // boolean
                                        let setDevicesDP = devicesDP + '.devicesSET';
                                        
                                        let deviceIDJarvisArray = [
                                            {
                                                "id": "3294002f-c8e2-49b5-bfcb-098a54a31554",
                                                "statekey": "Raum",
                                                "dropDownListKey" : "UsedRooms"
                                            }
                                        ];
                                        
                                        let version = 'v1.0.0';
                                        log('Script "' + scriptName + '" wurde für setDropDown '+version+' gestartet!');
                                        
                                        
                                        createStateAsync(deviceIDJarvisArrDP, {read: true, write: true, name: 'Jarvis Device ID Array with stateKey' , type: "string", role: "", def: JSON.stringify([])});
                                        createStateAsync(loggingDP, {read: true, write: true, name: 'Logging On' , type: "boolean", role: "", def: true });
                                        createStateAsync(setDevicesDP, {read: true, write: true, name: 'Devices ändern On' , type: "boolean", role: "", def: false });
                                        createStateAsync(setDeviceDP, {read: true, write: true, name: 'Set Devices with DevStates' , type: "boolean", role: "button", def: false });
                                        createStateAsync(setInstanceDP, {read: true, write: true, name: 'Instance of jarvis' , type: "string", role: "", def: "0" });
                                        createStateAsync(dropDownListFolderDP, {read: true, write: true, name: 'DropDownListe' , type: "", role: "", def: "" });
                                        
                                        
                                        
                                        
                                        //setDevice([{"id":"5210cf66-e17e-4353-bd77-aeced4dc1d94","statekey":"progNo"},{"id":"5210cf66-e17e-4353-bd77-aeced4dc1d94","statekey":"IR_Steuerung"}],JSON.parse(dropDownList));
                                        
                                        
                                        on({id: setDeviceDP, change: "any"}, function (obj) {
                                            let value = obj.state.val;
                                            let logging = getState(loggingDP).val;
                                            let deviceIdArray = [];
                                        
                                            if (value){
                                                log('SetDropDown wurde ausgelöst');
                                                //let dropDownList = JSON.parse(getState(dropDownListDP).val);
                                                if (typeof deviceIDJarvisArray === 'undefined'){
                                                    
                                                    deviceIdArray = JSON.parse(getState(deviceIDJarvisArrDP).val);
                                        
                                                }else{
                                                    deviceIdArray = deviceIDJarvisArray;
                                                }
                                                
                                                if (logging){
                                                    //log('SetDropDown - DropDownListe: ' + JSON.stringify(dropDownList));
                                                    log('SetDropDown - DeviceIDArray: ' + JSON.stringify(deviceIdArray));
                                                }
                                            
                                                
                                                setDevices(deviceIdArray,dropDownListFolderDP);
                                                setState(setDeviceDP,false,false);
                                            }
                                        });
                                        
                                        
                                        
                                        function setDevices(deviceIdArr, dropDownListFolderDP){
                                            let logging = getState(loggingDP).val;
                                            let instance = getState(setInstanceDP).val;
                                            let newSet = getState(setDevicesDP).val;
                                            let devices = getState('jarvis.'+ instance +'.devices').val;
                                            let devicesAll = JSON.parse(devices);
                                            devices = JSON.parse(devices).devices;
                                            //log(deviceIdArr);
                                            //log(dropDownList);
                                            for ( let key in devices){
                                                
                                                let deviceIdArr_key  = inDeviceArr(deviceIdArr,key)
                                                
                                                if (deviceIdArr_key !== false){
                                                    
                                                    let dropDownListKey = deviceIdArr[deviceIdArr_key].dropDownListKey;
                                        
                                                    let dropDownList = JSON.parse(getState(dropDownListFolderDP+'.'+dropDownListKey).val);
                                                    
                                        
                                                    // log('Key: ' + key + ' Device[key]: '+JSON.stringify(devices[key]));
                                                    // let statekeyId = getStateKeyFromDeviceArr(deviceIdArr,key);
                                                    // log('StateKey: ' + statekeyId);
                                                    // if (logging){
                                                    //     log('States Before: '+ JSON.stringify(devices[key].states));
                                                    // }
                                        
                                                    for (let statekey in devices[key].states){
                                                        //log(statekey);
                                                        if (getStateKeyFromDeviceArr(deviceIdArr,key,statekey)){
                                                            // before
                                                            //log('Before: '+ JSON.stringify(devices[key].states[stateKEY]));
                                                            let stateKeyVar = devices[key].states[statekey];
                                                            if (logging){
                                                                log('StateKey: '+stateKeyVar.stateKey);
                                                                log('Old display: '+ JSON.stringify(stateKeyVar.display));
                                                            }
                                                            if (stateKeyVar.display == null || stateKeyVar.display == undefined){
                                                                // Neu anlegen
                                                                stateKeyVar.display = dropDownList;
                                                                //stateKeyVar.actionElement = 'DropDownAction';
                                                                //stateKeyVar.DropDownActionConfig = {};
                                                            }else{
                                                                if (dropDownList == '' || dropDownList == null || dropDownList == undefined){
                                                                    dropDownList = {};
                                                                }
                                                                stateKeyVar.display = dropDownList;
                                                            }
                                                            if (logging){
                                                                log('New display: '+ JSON.stringify(stateKeyVar.display));
                                                            }
                                                            devices[key].states[statekey] = stateKeyVar;
                                                        }
                                                    }
                                                    if (logging){
                                                        log('States After: '+ JSON.stringify(devices[key].states));
                                                    }
                                                    //break;
                                                }
                                            }
                                            // log('Fertig');
                                            if (newSet){
                                                devicesAll.devices = devices;
                                                setState('jarvis.'+ instance +'.devices',JSON.stringify(devicesAll),false);
                                            }
                                        }
                                        
                                        
                                        function inDeviceArr(deviceIdArr,deviceId){
                                            for (let i = 0; i<deviceIdArr.length;i++){
                                                if (deviceId == deviceIdArr[i].id){
                                                    return i;
                                                }
                                            }
                                            return false;
                                        }
                                        
                                        
                                        function getStateKeyFromDeviceArr(deviceIdArr,deviceId,statekey){
                                            for (let i = 0; i<deviceIdArr.length;i++){
                                                if (deviceId == deviceIdArr[i].id && statekey == deviceIdArr[i].statekey){
                                                    return true;
                                                }
                                            }
                                            return false;
                                        }
                                        
                                        

                                        @Dominik-F Und das ist mein Script um die Datenpunkte aus dem VIS Adapter des Heating Controll Adapter zu konvertieren.

                                        let userdata = "0_userdata.0.jarvis.setDropDown.dropDownLists.",
                                            ObjectArray_Heatingcontrol = [
                                                {
                                                    "JarvisDatenpunkt":{id:'UsedRooms', initial: 0, forceCreation: false, common: { read: true, write: true, name: "Raeume Json", type: "string",role: "", def: JSON.stringify({}) }},
                                                    "HeatingcontrolDatenpunkt_Text":"heatingcontrol.0.info.UsedRooms",
                                                    "HeatingcontrolDatenpunkt_Value":"heatingcontrol.0.info.UsedRooms"
                                                },
                                                {
                                                    "JarvisDatenpunkt":{id:'OverrideTempValueList', initial: 0, forceCreation: false, common: { read: true, write: true, name: "OverrideTemp", type: "string",role: "", def: JSON.stringify({}) }},
                                                    "HeatingcontrolDatenpunkt_Text":"heatingcontrol.0.vis.OverrideTempValueListText",
                                                    "HeatingcontrolDatenpunkt_Value":"heatingcontrol.0.vis.OverrideTempValueListValue"
                                                }
                                            ];
                                        
                                        CreateJarvisJson_Heatingcontroller();
                                        
                                        
                                        function CreateJarvisJson_Heatingcontroller(){
                                        
                                            
                                        
                                        
                                            ObjectArray_Heatingcontrol.forEach(function(Datenpunkt){
                                        
                                        
                                                CreateDPObject(Datenpunkt.JarvisDatenpunkt, function(){
                                                    
                                                    let temp_Array = {};
                                        
                                                    let HeatingcontrolDatenpunkt_Value__Array = getState(Datenpunkt.HeatingcontrolDatenpunkt_Value).val.split(/;/);
                                        
                                                    getState(Datenpunkt.HeatingcontrolDatenpunkt_Text).val.split(/;/).forEach(function(dat,index){
                                                        //console.log(HeatingcontrolDatenpunkt_Value__Array[index]);
                                                        if(dat !== ""){
                                                            temp_Array[HeatingcontrolDatenpunkt_Value__Array[index]] = dat;
                                                        }
                                                        
                                                        
                                                    });
                                        
                                                    setState(
                                                        userdata+Datenpunkt.JarvisDatenpunkt.id,
                                                        JSON.stringify(temp_Array),
                                                        true
                                                        );
                                        
                                                });
                                                
                                        
                                            });
                                        
                                        }
                                        
                                        
                                        function CreateDPObject(DP_state,init){
                                                    
                                            createState(userdata+DP_state.id, DP_state.initial, DP_state.forceCreation, DP_state.common, function () {
                                                
                                                    //console.log('Datenpunkte sind angelegt');
                                                    init();
                                            });
                                        
                                        }
                                        
                                        Dominik F.D M 2 Antworten Letzte Antwort
                                        0
                                        • Michael SauerM Michael Sauer

                                          @mcu sagte in jarvis v3.1.0-beta - just another remarkable vis:

                                          @michael-sauer
                                          Dann müsste man dies anpassen?
                                          https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/system-effektprog./v3-systemprogramme/setdropdown

                                          Das obige Bild kommt aus VIS? Oder eine andere?

                                          Hab mir das Script angepasst:

                                          // ***************************
                                          // setDropDown v1.0.0
                                          // Copyright ©MCU
                                          // ***************************
                                          //
                                          // Dieses Programm setzt in einem oder mehreren festgelegten Device mit deviceId und 
                                          // bestimmtem stateKey eine vorgefertige DropDownListe
                                          // 
                                          //
                                          
                                          
                                          let devicesDP = '0_userdata.0.jarvis.setDropDown';
                                          let deviceIDJarvisArrDP = devicesDP + '.jarvisDeviceIDArr';
                                          let dropDownListFolderDP = devicesDP + '.dropDownLists'; // Ordner
                                          let setDeviceDP = devicesDP + '.set';
                                          let setInstanceDP = devicesDP + '.instance';
                                          let loggingDP =  devicesDP + '.logging'; // boolean
                                          let setDevicesDP = devicesDP + '.devicesSET';
                                          
                                          let deviceIDJarvisArray = [
                                              {
                                                  "id": "3294002f-c8e2-49b5-bfcb-098a54a31554",
                                                  "statekey": "Raum",
                                                  "dropDownListKey" : "UsedRooms"
                                              }
                                          ];
                                          
                                          let version = 'v1.0.0';
                                          log('Script "' + scriptName + '" wurde für setDropDown '+version+' gestartet!');
                                          
                                          
                                          createStateAsync(deviceIDJarvisArrDP, {read: true, write: true, name: 'Jarvis Device ID Array with stateKey' , type: "string", role: "", def: JSON.stringify([])});
                                          createStateAsync(loggingDP, {read: true, write: true, name: 'Logging On' , type: "boolean", role: "", def: true });
                                          createStateAsync(setDevicesDP, {read: true, write: true, name: 'Devices ändern On' , type: "boolean", role: "", def: false });
                                          createStateAsync(setDeviceDP, {read: true, write: true, name: 'Set Devices with DevStates' , type: "boolean", role: "button", def: false });
                                          createStateAsync(setInstanceDP, {read: true, write: true, name: 'Instance of jarvis' , type: "string", role: "", def: "0" });
                                          createStateAsync(dropDownListFolderDP, {read: true, write: true, name: 'DropDownListe' , type: "", role: "", def: "" });
                                          
                                          
                                          
                                          
                                          //setDevice([{"id":"5210cf66-e17e-4353-bd77-aeced4dc1d94","statekey":"progNo"},{"id":"5210cf66-e17e-4353-bd77-aeced4dc1d94","statekey":"IR_Steuerung"}],JSON.parse(dropDownList));
                                          
                                          
                                          on({id: setDeviceDP, change: "any"}, function (obj) {
                                              let value = obj.state.val;
                                              let logging = getState(loggingDP).val;
                                              let deviceIdArray = [];
                                          
                                              if (value){
                                                  log('SetDropDown wurde ausgelöst');
                                                  //let dropDownList = JSON.parse(getState(dropDownListDP).val);
                                                  if (typeof deviceIDJarvisArray === 'undefined'){
                                                      
                                                      deviceIdArray = JSON.parse(getState(deviceIDJarvisArrDP).val);
                                          
                                                  }else{
                                                      deviceIdArray = deviceIDJarvisArray;
                                                  }
                                                  
                                                  if (logging){
                                                      //log('SetDropDown - DropDownListe: ' + JSON.stringify(dropDownList));
                                                      log('SetDropDown - DeviceIDArray: ' + JSON.stringify(deviceIdArray));
                                                  }
                                              
                                                  
                                                  setDevices(deviceIdArray,dropDownListFolderDP);
                                                  setState(setDeviceDP,false,false);
                                              }
                                          });
                                          
                                          
                                          
                                          function setDevices(deviceIdArr, dropDownListFolderDP){
                                              let logging = getState(loggingDP).val;
                                              let instance = getState(setInstanceDP).val;
                                              let newSet = getState(setDevicesDP).val;
                                              let devices = getState('jarvis.'+ instance +'.devices').val;
                                              let devicesAll = JSON.parse(devices);
                                              devices = JSON.parse(devices).devices;
                                              //log(deviceIdArr);
                                              //log(dropDownList);
                                              for ( let key in devices){
                                                  
                                                  let deviceIdArr_key  = inDeviceArr(deviceIdArr,key)
                                                  
                                                  if (deviceIdArr_key !== false){
                                                      
                                                      let dropDownListKey = deviceIdArr[deviceIdArr_key].dropDownListKey;
                                          
                                                      let dropDownList = JSON.parse(getState(dropDownListFolderDP+'.'+dropDownListKey).val);
                                                      
                                          
                                                      // log('Key: ' + key + ' Device[key]: '+JSON.stringify(devices[key]));
                                                      // let statekeyId = getStateKeyFromDeviceArr(deviceIdArr,key);
                                                      // log('StateKey: ' + statekeyId);
                                                      // if (logging){
                                                      //     log('States Before: '+ JSON.stringify(devices[key].states));
                                                      // }
                                          
                                                      for (let statekey in devices[key].states){
                                                          //log(statekey);
                                                          if (getStateKeyFromDeviceArr(deviceIdArr,key,statekey)){
                                                              // before
                                                              //log('Before: '+ JSON.stringify(devices[key].states[stateKEY]));
                                                              let stateKeyVar = devices[key].states[statekey];
                                                              if (logging){
                                                                  log('StateKey: '+stateKeyVar.stateKey);
                                                                  log('Old display: '+ JSON.stringify(stateKeyVar.display));
                                                              }
                                                              if (stateKeyVar.display == null || stateKeyVar.display == undefined){
                                                                  // Neu anlegen
                                                                  stateKeyVar.display = dropDownList;
                                                                  //stateKeyVar.actionElement = 'DropDownAction';
                                                                  //stateKeyVar.DropDownActionConfig = {};
                                                              }else{
                                                                  if (dropDownList == '' || dropDownList == null || dropDownList == undefined){
                                                                      dropDownList = {};
                                                                  }
                                                                  stateKeyVar.display = dropDownList;
                                                              }
                                                              if (logging){
                                                                  log('New display: '+ JSON.stringify(stateKeyVar.display));
                                                              }
                                                              devices[key].states[statekey] = stateKeyVar;
                                                          }
                                                      }
                                                      if (logging){
                                                          log('States After: '+ JSON.stringify(devices[key].states));
                                                      }
                                                      //break;
                                                  }
                                              }
                                              // log('Fertig');
                                              if (newSet){
                                                  devicesAll.devices = devices;
                                                  setState('jarvis.'+ instance +'.devices',JSON.stringify(devicesAll),false);
                                              }
                                          }
                                          
                                          
                                          function inDeviceArr(deviceIdArr,deviceId){
                                              for (let i = 0; i<deviceIdArr.length;i++){
                                                  if (deviceId == deviceIdArr[i].id){
                                                      return i;
                                                  }
                                              }
                                              return false;
                                          }
                                          
                                          
                                          function getStateKeyFromDeviceArr(deviceIdArr,deviceId,statekey){
                                              for (let i = 0; i<deviceIdArr.length;i++){
                                                  if (deviceId == deviceIdArr[i].id && statekey == deviceIdArr[i].statekey){
                                                      return true;
                                                  }
                                              }
                                              return false;
                                          }
                                          
                                          

                                          @Dominik-F Und das ist mein Script um die Datenpunkte aus dem VIS Adapter des Heating Controll Adapter zu konvertieren.

                                          let userdata = "0_userdata.0.jarvis.setDropDown.dropDownLists.",
                                              ObjectArray_Heatingcontrol = [
                                                  {
                                                      "JarvisDatenpunkt":{id:'UsedRooms', initial: 0, forceCreation: false, common: { read: true, write: true, name: "Raeume Json", type: "string",role: "", def: JSON.stringify({}) }},
                                                      "HeatingcontrolDatenpunkt_Text":"heatingcontrol.0.info.UsedRooms",
                                                      "HeatingcontrolDatenpunkt_Value":"heatingcontrol.0.info.UsedRooms"
                                                  },
                                                  {
                                                      "JarvisDatenpunkt":{id:'OverrideTempValueList', initial: 0, forceCreation: false, common: { read: true, write: true, name: "OverrideTemp", type: "string",role: "", def: JSON.stringify({}) }},
                                                      "HeatingcontrolDatenpunkt_Text":"heatingcontrol.0.vis.OverrideTempValueListText",
                                                      "HeatingcontrolDatenpunkt_Value":"heatingcontrol.0.vis.OverrideTempValueListValue"
                                                  }
                                              ];
                                          
                                          CreateJarvisJson_Heatingcontroller();
                                          
                                          
                                          function CreateJarvisJson_Heatingcontroller(){
                                          
                                              
                                          
                                          
                                              ObjectArray_Heatingcontrol.forEach(function(Datenpunkt){
                                          
                                          
                                                  CreateDPObject(Datenpunkt.JarvisDatenpunkt, function(){
                                                      
                                                      let temp_Array = {};
                                          
                                                      let HeatingcontrolDatenpunkt_Value__Array = getState(Datenpunkt.HeatingcontrolDatenpunkt_Value).val.split(/;/);
                                          
                                                      getState(Datenpunkt.HeatingcontrolDatenpunkt_Text).val.split(/;/).forEach(function(dat,index){
                                                          //console.log(HeatingcontrolDatenpunkt_Value__Array[index]);
                                                          if(dat !== ""){
                                                              temp_Array[HeatingcontrolDatenpunkt_Value__Array[index]] = dat;
                                                          }
                                                          
                                                          
                                                      });
                                          
                                                      setState(
                                                          userdata+Datenpunkt.JarvisDatenpunkt.id,
                                                          JSON.stringify(temp_Array),
                                                          true
                                                          );
                                          
                                                  });
                                                  
                                          
                                              });
                                          
                                          }
                                          
                                          
                                          function CreateDPObject(DP_state,init){
                                                      
                                              createState(userdata+DP_state.id, DP_state.initial, DP_state.forceCreation, DP_state.common, function () {
                                                  
                                                      //console.log('Datenpunkte sind angelegt');
                                                      init();
                                              });
                                          
                                          }
                                          
                                          Dominik F.D Offline
                                          Dominik F.D Offline
                                          Dominik F.
                                          schrieb am zuletzt editiert von
                                          #257

                                          @michael-sauer

                                          und das müsste ich für jede einzelne DropdownListe anpassen?

                                          Michael SauerM 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

                                          382

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          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