Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. HowTo: Zusatz-Programme fuer jarvis v3

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    5
    1
    183

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    199

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    885

HowTo: Zusatz-Programme fuer jarvis v3

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
894 Beiträge 33 Kommentatoren 234.1k Aufrufe 37 Beobachtet
  • Ä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.
  • U uwe72

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

    @uwe72 Das ist kein normaler Device-Popup?
    8cbdbed6-207d-4485-b335-c56743262e85-image.png

    In der function mal die console.log aktivieren und mit F12 im log schauen

    function changeLabelPopup(deviceId, deviceItem, txt){
    	//console.log('ChangeLabelDevicePopup')
    	let doc = document.getElementsByClassName('jarvis-device-'+deviceId);
    	if(doc.length >0){
    		//console.log('Device gefunden')
    		let popup = doc[0].getElementsByClassName('jarvis-popup')
    		if(popup.length>0){
    			//console.log('Popup gefunden')
    			let deviceItems = popup[0].getElementsByClassName('jarvis-StateListItem-Popup')
    			let device = deviceItems[deviceItem]
    			let body = device.getElementsByClassName('jarvis-StateListItem-Body')
    			if(body.length >0){
    				let label = body[0].getElementsByClassName('q-item__label')
    				label[0].innerHTML = txt
    			}
    		}
    	}
    }
    

    482ae709-088f-415d-975e-933a59d41926-image.png

    4e4c716a-e244-41e7-b50c-2fc411469974-image.png

    M Offline
    M Offline
    MCU
    schrieb am zuletzt editiert von MCU
    #782

    @uwe72

    item :0,
    deviceItem:1
    

    cca0a497-9316-4c0e-8d10-4f4a23618219-image.png

    Du wllst aber sehr wahrscheinlich im Widget keine Anpassung?

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

    U I 2 Antworten Letzte Antwort
    0
    • M MCU

      @uwe72

      item :0,
      deviceItem:1
      

      cca0a497-9316-4c0e-8d10-4f4a23618219-image.png

      Du wllst aber sehr wahrscheinlich im Widget keine Anpassung?

      U Offline
      U Offline
      uwe72
      schrieb am zuletzt editiert von uwe72
      #783

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

      @uwe72

      item :0,
      deviceItem:1
      

      cca0a497-9316-4c0e-8d10-4f4a23618219-image.png

      Du wllst aber sehr wahrscheinlich im Widget keine Anpassung?

      Jetzt hat sich was getan.
      Aber genau, möchte im Widget keine Anpassung, sondern nur im Popup:
      5bb82614-b463-4c26-812e-4798baa7fb89-image.png

      M 1 Antwort Letzte Antwort
      0
      • M MCU

        @intruder7 Du hast im Programm console.warn(qJSON) genutzt?

        I Online
        I Online
        intruder7
        schrieb am zuletzt editiert von
        #784

        @mcu jap, da in der LOG Datei gerade irgendwie nur ab Warn aufgezeichnet wird obwohl ich hier auf Info umgestellt hatte.
        e91c25c9-c9d5-4e18-8ead-d714cbb5cd86-image.png

        1 Antwort Letzte Antwort
        0
        • M MCU

          @uwe72

          item :0,
          deviceItem:1
          

          cca0a497-9316-4c0e-8d10-4f4a23618219-image.png

          Du wllst aber sehr wahrscheinlich im Widget keine Anpassung?

          I Online
          I Online
          intruder7
          schrieb am zuletzt editiert von
          #785

          @mcu aber hab gerade gesehen, hätte dies diekt am Host umstellen müssen

          M 1 Antwort Letzte Antwort
          0
          • U uwe72

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

            @uwe72

            item :0,
            deviceItem:1
            

            cca0a497-9316-4c0e-8d10-4f4a23618219-image.png

            Du wllst aber sehr wahrscheinlich im Widget keine Anpassung?

            Jetzt hat sich was getan.
            Aber genau, möchte im Widget keine Anpassung, sondern nur im Popup:
            5bb82614-b463-4c26-812e-4798baa7fb89-image.png

            M Offline
            M Offline
            MCU
            schrieb am zuletzt editiert von
            #786

            @uwe72 <br> fehlt aber noch im DP?

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

            U 1 Antwort Letzte Antwort
            0
            • M MCU

              @uwe72 <br> fehlt aber noch im DP?

              U Offline
              U Offline
              uwe72
              schrieb am zuletzt editiert von
              #787

              @mcu ja, habe ich nun angepasst, und oben Screenshot ausgetauscht

              M 1 Antwort Letzte Antwort
              0
              • U uwe72

                @mcu ja, habe ich nun angepasst, und oben Screenshot ausgetauscht

                M Offline
                M Offline
                MCU
                schrieb am zuletzt editiert von MCU
                #788

                @uwe72 Jetzt mal ins LOG F12 schauen

                console.log() aktivieren -> // davor entfernen

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

                U 1 Antwort Letzte Antwort
                0
                • M MCU

                  @uwe72 Jetzt mal ins LOG F12 schauen

                  console.log() aktivieren -> // davor entfernen

                  U Offline
                  U Offline
                  uwe72
                  schrieb am zuletzt editiert von
                  #789

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

                  @uwe72 Jetzt mal ins LOG F12 schauen

                  console.log() aktivieren -> // davor entfernen

                  772d3327-913f-4a75-8cba-a860cb6e522e-image.png

                  U 1 Antwort Letzte Antwort
                  0
                  • U uwe72

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

                    @uwe72 Jetzt mal ins LOG F12 schauen

                    console.log() aktivieren -> // davor entfernen

                    772d3327-913f-4a75-8cba-a860cb6e522e-image.png

                    U Offline
                    U Offline
                    uwe72
                    schrieb am zuletzt editiert von
                    #790

                    hab noch nicht alle log-Ausgaben einkommentiert

                    M 2 Antworten Letzte Antwort
                    0
                    • U uwe72

                      hab noch nicht alle log-Ausgaben einkommentiert

                      M Offline
                      M Offline
                      MCU
                      schrieb am zuletzt editiert von
                      #791

                      @uwe72 Mache gerade neue Version

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

                      1 Antwort Letzte Antwort
                      1
                      • U uwe72

                        hab noch nicht alle log-Ausgaben einkommentiert

                        M Offline
                        M Offline
                        MCU
                        schrieb am zuletzt editiert von MCU
                        #792

                        @uwe72 Dies sollte jetzt mit der neuen Version im LOG erscheinen

                        6d30e177-3add-4777-9139-e9222f67bd96-image.png

                        Du kannst jetzt WidgetId und item weglassen, wenn du dort keine Änderung haben willst

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

                        U 1 Antwort Letzte Antwort
                        0
                        • M MCU

                          @uwe72 Dies sollte jetzt mit der neuen Version im LOG erscheinen

                          6d30e177-3add-4777-9139-e9222f67bd96-image.png

                          Du kannst jetzt WidgetId und item weglassen, wenn du dort keine Änderung haben willst

                          U Offline
                          U Offline
                          uwe72
                          schrieb am zuletzt editiert von
                          #793

                          @mcu babb2cc1-f61f-40d9-b9a1-f4f4ac249cdb-image.png

                          M 1 Antwort Letzte Antwort
                          0
                          • U uwe72

                            @mcu babb2cc1-f61f-40d9-b9a1-f4f4ac249cdb-image.png

                            M Offline
                            M Offline
                            MCU
                            schrieb am zuletzt editiert von MCU
                            #794

                            @uwe72 Was steht jetzt im Objekt vom widgetArr?

                            Einmal die Zeile let dp = -> // deaktivieren
                            2476f030-8b9d-4d55-a0d7-44bdefcee8fc-image.png
                            Bei Dir Zeile 54

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

                            U 1 Antwort Letzte Antwort
                            0
                            • M MCU

                              @uwe72 Was steht jetzt im Objekt vom widgetArr?

                              Einmal die Zeile let dp = -> // deaktivieren
                              2476f030-8b9d-4d55-a0d7-44bdefcee8fc-image.png
                              Bei Dir Zeile 54

                              U Offline
                              U Offline
                              uwe72
                              schrieb am zuletzt editiert von
                              #795

                              @mcu

                              ich starte nun mal so:

                              // ***************************
                              // stateListLabelChange v1.0.3
                              // ***************************
                              // Copyright ©MCU
                              // v1.0.1 - Korrektur Tabwechsel
                              // v1.0.2 - für Device-Popup erweitert
                              // v1.0.3 - Widget oder Device optional, Logging Test
                              
                              let widgetArr = [
                              					{
                              						dp:'0_userdata.0.DP.dp1',
                              						deviceId: 'device_HG015',
                              						deviceItem: 2
                              					}
                              				]
                              
                              let loggingSLLC = true;
                              
                              let valueSLLCObj = {}
                              
                              docReady(function() {
                              	if (isConfig()){
                              	}else{
                              		console.log('%cStart stateListLabelChange.js','color:yellow;');
                              		setTimeout(function(){
                              			setSubscriptionDPs(widgetArr)
                              		},100)
                              		document.addEventListener("click", function (event) {
                              			if (isConfig()){
                              			}else{
                              				console.log('%cKlick stateListLabelChange','color:orange');
                              				setTimeout(function(){
                              					
                              					for(let i=0;i<widgetArr.length;i++){
                              						if(valueSLLCObj[widgetArr[i].dp]){
                              							if(widgetArr[i].widgetId && widgetArr[i].item != undefined){
                              								changeLabel(widgetArr[i].widgetId, widgetArr[i].item, valueSLLCObj[widgetArr[i].dp])
                              							}
                              							setTimeout(function(){
                              								if(widgetArr[i].deviceId && widgetArr[i].deviceItem != undefined){
                              									changeLabelPopup(widgetArr[i].deviceId, widgetArr[i].deviceItem, valueSLLCObj[widgetArr[i].dp] )
                              								}
                              							},500)
                              						}
                              					}
                              				},100)
                              			}
                              		});
                              	}
                              });
                              
                              function setSubscriptionDPs(arr){
                              	for(let obj in arr){
                              		console.log(arr[dp])
                              		//let dp = Object.keys(arr[obj])[0]
                              		 console.log(dp)
                              		window.Socket.subscribeState(arr[obj].dp, ({ err, state }) => {
                              			valueSLLCObj[arr[obj].dp] = state.val;
                              			if(arr[obj].widgetId && arr[obj].item!= undefined){
                              				changeLabel(arr[obj].widgetId, arr[obj].item,state.val )
                              			}
                              			if(arr[obj].deviceId && arr[obj].deviceItem!= undefined){
                              				changeLabelPopup(arr[obj].deviceId,arr[obj].deviceItem, state.val)
                              			}
                              		});
                              		
                              	}
                              }
                              
                              
                              
                              function changeLabel(widgetId,item, txt){
                              	console.log('WidgetId: '+widgetId + ' Item: '+item )
                              	let doc = document.getElementsByClassName('jarvis-widget-'+widgetId);
                              	let dpVal;
                              	console.log('ChangeLabel')
                              	if(doc.length>0){
                              		let stateList = doc[0].getElementsByClassName('jarvis-StateList');
                              		if(stateList.length > 0){
                              			let slItems = stateList[0].getElementsByClassName('jarvis-StateListItem');
                              			if(slItems.length >0){
                              				let slBody = slItems[item].getElementsByClassName('jarvis-StateListItem-Body')
                              				if(slBody.length > 0){
                              					console.log('gefunden ')
                              					let slLabel = slBody[0].getElementsByClassName('q-item__label')
                              					console.log(slLabel)
                              					slLabel[0].innerHTML = txt
                              				}
                              			}
                              			
                              		}
                              	}
                              }
                              
                              function changeLabelPopup(deviceId, deviceItem, txt){
                              	console.log('ChangeLabelDevicePopup')
                              	let doc = document.getElementsByClassName('jarvis-device-'+deviceId);
                              	if(doc.length >0){
                              		if(loggingSLLC) console.log('Device gefunden')
                              		let popup = doc[0].getElementsByClassName('jarvis-popup')
                              		if(popup.length>0){
                              			if(loggingSLLC) console.log('Popup gefunden')
                              			let deviceItems = popup[0].getElementsByClassName('jarvis-StateListItem-Popup')
                              			if(loggingSLLC) console.log(deviceItems)
                              			let device = deviceItems[deviceItem]
                              			if(loggingSLLC) console.log(device)
                              			let body = device.getElementsByClassName('jarvis-StateListItem-Body')
                              			if(body.length >0){
                              				if(loggingSLLC) console.log('Body gefunden')
                              				let label = body[0].getElementsByClassName('q-item__label')
                              				label[0].innerHTML = txt
                              			}
                              		}
                              	}
                              }
                              
                              
                              
                              
                              function isConfig(){
                              	console.log(document.baseURI);
                              	if (document.baseURI.indexOf('configuration') >=0){
                              		console.log('Konfig aktiv');
                              		return true;
                              		
                              	}else{
                              		console.log('Konfig nicht aktiv');
                              		return false;		
                              	}
                              }
                              
                              function docReady(fn) {
                                  // see if DOM is already available
                                  if (document.readyState === "complete" || document.readyState === "interactive") {
                                      // call on next available tick
                                      setTimeout(fn, 1000);
                                  } else {
                                      document.addEventListener("DOMContentLoaded", fn);
                                  }
                              }
                              
                              M 1 Antwort Letzte Antwort
                              1
                              • U uwe72

                                @mcu

                                ich starte nun mal so:

                                // ***************************
                                // stateListLabelChange v1.0.3
                                // ***************************
                                // Copyright ©MCU
                                // v1.0.1 - Korrektur Tabwechsel
                                // v1.0.2 - für Device-Popup erweitert
                                // v1.0.3 - Widget oder Device optional, Logging Test
                                
                                let widgetArr = [
                                					{
                                						dp:'0_userdata.0.DP.dp1',
                                						deviceId: 'device_HG015',
                                						deviceItem: 2
                                					}
                                				]
                                
                                let loggingSLLC = true;
                                
                                let valueSLLCObj = {}
                                
                                docReady(function() {
                                	if (isConfig()){
                                	}else{
                                		console.log('%cStart stateListLabelChange.js','color:yellow;');
                                		setTimeout(function(){
                                			setSubscriptionDPs(widgetArr)
                                		},100)
                                		document.addEventListener("click", function (event) {
                                			if (isConfig()){
                                			}else{
                                				console.log('%cKlick stateListLabelChange','color:orange');
                                				setTimeout(function(){
                                					
                                					for(let i=0;i<widgetArr.length;i++){
                                						if(valueSLLCObj[widgetArr[i].dp]){
                                							if(widgetArr[i].widgetId && widgetArr[i].item != undefined){
                                								changeLabel(widgetArr[i].widgetId, widgetArr[i].item, valueSLLCObj[widgetArr[i].dp])
                                							}
                                							setTimeout(function(){
                                								if(widgetArr[i].deviceId && widgetArr[i].deviceItem != undefined){
                                									changeLabelPopup(widgetArr[i].deviceId, widgetArr[i].deviceItem, valueSLLCObj[widgetArr[i].dp] )
                                								}
                                							},500)
                                						}
                                					}
                                				},100)
                                			}
                                		});
                                	}
                                });
                                
                                function setSubscriptionDPs(arr){
                                	for(let obj in arr){
                                		console.log(arr[dp])
                                		//let dp = Object.keys(arr[obj])[0]
                                		 console.log(dp)
                                		window.Socket.subscribeState(arr[obj].dp, ({ err, state }) => {
                                			valueSLLCObj[arr[obj].dp] = state.val;
                                			if(arr[obj].widgetId && arr[obj].item!= undefined){
                                				changeLabel(arr[obj].widgetId, arr[obj].item,state.val )
                                			}
                                			if(arr[obj].deviceId && arr[obj].deviceItem!= undefined){
                                				changeLabelPopup(arr[obj].deviceId,arr[obj].deviceItem, state.val)
                                			}
                                		});
                                		
                                	}
                                }
                                
                                
                                
                                function changeLabel(widgetId,item, txt){
                                	console.log('WidgetId: '+widgetId + ' Item: '+item )
                                	let doc = document.getElementsByClassName('jarvis-widget-'+widgetId);
                                	let dpVal;
                                	console.log('ChangeLabel')
                                	if(doc.length>0){
                                		let stateList = doc[0].getElementsByClassName('jarvis-StateList');
                                		if(stateList.length > 0){
                                			let slItems = stateList[0].getElementsByClassName('jarvis-StateListItem');
                                			if(slItems.length >0){
                                				let slBody = slItems[item].getElementsByClassName('jarvis-StateListItem-Body')
                                				if(slBody.length > 0){
                                					console.log('gefunden ')
                                					let slLabel = slBody[0].getElementsByClassName('q-item__label')
                                					console.log(slLabel)
                                					slLabel[0].innerHTML = txt
                                				}
                                			}
                                			
                                		}
                                	}
                                }
                                
                                function changeLabelPopup(deviceId, deviceItem, txt){
                                	console.log('ChangeLabelDevicePopup')
                                	let doc = document.getElementsByClassName('jarvis-device-'+deviceId);
                                	if(doc.length >0){
                                		if(loggingSLLC) console.log('Device gefunden')
                                		let popup = doc[0].getElementsByClassName('jarvis-popup')
                                		if(popup.length>0){
                                			if(loggingSLLC) console.log('Popup gefunden')
                                			let deviceItems = popup[0].getElementsByClassName('jarvis-StateListItem-Popup')
                                			if(loggingSLLC) console.log(deviceItems)
                                			let device = deviceItems[deviceItem]
                                			if(loggingSLLC) console.log(device)
                                			let body = device.getElementsByClassName('jarvis-StateListItem-Body')
                                			if(body.length >0){
                                				if(loggingSLLC) console.log('Body gefunden')
                                				let label = body[0].getElementsByClassName('q-item__label')
                                				label[0].innerHTML = txt
                                			}
                                		}
                                	}
                                }
                                
                                
                                
                                
                                function isConfig(){
                                	console.log(document.baseURI);
                                	if (document.baseURI.indexOf('configuration') >=0){
                                		console.log('Konfig aktiv');
                                		return true;
                                		
                                	}else{
                                		console.log('Konfig nicht aktiv');
                                		return false;		
                                	}
                                }
                                
                                function docReady(fn) {
                                    // see if DOM is already available
                                    if (document.readyState === "complete" || document.readyState === "interactive") {
                                        // call on next available tick
                                        setTimeout(fn, 1000);
                                    } else {
                                        document.addEventListener("DOMContentLoaded", fn);
                                    }
                                }
                                
                                M Offline
                                M Offline
                                MCU
                                schrieb am zuletzt editiert von
                                #796

                                @uwe72 Passt,

                                //console.log(arr[dp])
                                		//let dp = Object.keys(arr[obj])[0]
                                //		 console.log(dp)
                                

                                Die beiden console.log auch deaktivieren

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

                                U 1 Antwort Letzte Antwort
                                0
                                • M MCU

                                  @uwe72 Passt,

                                  //console.log(arr[dp])
                                  		//let dp = Object.keys(arr[obj])[0]
                                  //		 console.log(dp)
                                  

                                  Die beiden console.log auch deaktivieren

                                  U Offline
                                  U Offline
                                  uwe72
                                  schrieb am zuletzt editiert von
                                  #797

                                  @mcu

                                  // ***************************
                                  // stateListLabelChange v1.0.3
                                  // ***************************
                                  // Copyright ©MCU
                                  // v1.0.1 - Korrektur Tabwechsel
                                  // v1.0.2 - für Device-Popup erweitert
                                  // v1.0.3 - Widget oder Device optional, Logging Test
                                  
                                  let widgetArr = [
                                  					{
                                  						dp: '0_userdata.0.DP.dp1',
                                  						deviceId: 'device_HG015',
                                  						deviceItem: 2
                                  					}
                                  				]
                                  
                                  let loggingSLLC = true;
                                  
                                  let valueSLLCObj = {}
                                  
                                  docReady(function() {
                                  	if (isConfig()){
                                  	}else{
                                  		console.log('%cStart stateListLabelChange.js','color:yellow;');
                                  		setTimeout(function(){
                                  			setSubscriptionDPs(widgetArr)
                                  		},100)
                                  		document.addEventListener("click", function (event) {
                                  			if (isConfig()){
                                  			}else{
                                  				console.log('%cKlick stateListLabelChange','color:orange');
                                  				setTimeout(function(){
                                  					
                                  					for(let i=0;i<widgetArr.length;i++){
                                  						if(valueSLLCObj[widgetArr[i].dp]){
                                  							if(widgetArr[i].widgetId && widgetArr[i].item != undefined){
                                  								changeLabel(widgetArr[i].widgetId, widgetArr[i].item, valueSLLCObj[widgetArr[i].dp])
                                  							}
                                  							setTimeout(function(){
                                  								if(widgetArr[i].deviceId && widgetArr[i].deviceItem != undefined){
                                  									changeLabelPopup(widgetArr[i].deviceId, widgetArr[i].deviceItem, valueSLLCObj[widgetArr[i].dp] )
                                  								}
                                  							},500)
                                  						}
                                  					}
                                  				},100)
                                  			}
                                  		});
                                  	}
                                  });
                                  
                                  function setSubscriptionDPs(arr){
                                  	for(let obj in arr){
                                  		//console.log(arr[dp])
                                  		//let dp = Object.keys(arr[obj])[0]
                                  //		 console.log(dp)
                                  		window.Socket.subscribeState(arr[obj].dp, ({ err, state }) => {
                                  			valueSLLCObj[arr[obj].dp] = state.val;
                                  			if(arr[obj].widgetId && arr[obj].item!= undefined){
                                  				changeLabel(arr[obj].widgetId, arr[obj].item,state.val )
                                  			}
                                  			if(arr[obj].deviceId && arr[obj].deviceItem!= undefined){
                                  				changeLabelPopup(arr[obj].deviceId,arr[obj].deviceItem, state.val)
                                  			}
                                  		});
                                  		
                                  	}
                                  }
                                  
                                  
                                  
                                  function changeLabel(widgetId,item, txt){
                                  	console.log('WidgetId: '+widgetId + ' Item: '+item )
                                  	let doc = document.getElementsByClassName('jarvis-widget-'+widgetId);
                                  	let dpVal;
                                  	console.log('ChangeLabel')
                                  	if(doc.length>0){
                                  		let stateList = doc[0].getElementsByClassName('jarvis-StateList');
                                  		if(stateList.length > 0){
                                  			let slItems = stateList[0].getElementsByClassName('jarvis-StateListItem');
                                  			if(slItems.length >0){
                                  				let slBody = slItems[item].getElementsByClassName('jarvis-StateListItem-Body')
                                  				if(slBody.length > 0){
                                  					console.log('gefunden ')
                                  					let slLabel = slBody[0].getElementsByClassName('q-item__label')
                                  					console.log(slLabel)
                                  					slLabel[0].innerHTML = txt
                                  				}
                                  			}
                                  			
                                  		}
                                  	}
                                  }
                                  
                                  function changeLabelPopup(deviceId, deviceItem, txt){
                                  	console.log('ChangeLabelDevicePopup')
                                  	let doc = document.getElementsByClassName('jarvis-device-'+deviceId);
                                  	if(doc.length >0){
                                  		if(loggingSLLC) console.log('Device gefunden')
                                  		let popup = doc[0].getElementsByClassName('jarvis-popup')
                                  		if(popup.length>0){
                                  			if(loggingSLLC) console.log('Popup gefunden')
                                  			let deviceItems = popup[0].getElementsByClassName('jarvis-StateListItem-Popup')
                                  			if(loggingSLLC) console.log(deviceItems)
                                  			let device = deviceItems[deviceItem]
                                  			if(loggingSLLC) console.log(device)
                                  			let body = device.getElementsByClassName('jarvis-StateListItem-Body')
                                  			if(body.length >0){
                                  				if(loggingSLLC) console.log('Body gefunden')
                                  				let label = body[0].getElementsByClassName('q-item__label')
                                  				label[0].innerHTML = txt
                                  			}
                                  		}
                                  	}
                                  }
                                  
                                  
                                  
                                  
                                  function isConfig(){
                                  	console.log(document.baseURI);
                                  	if (document.baseURI.indexOf('configuration') >=0){
                                  		console.log('Konfig aktiv');
                                  		return true;
                                  		
                                  	}else{
                                  		console.log('Konfig nicht aktiv');
                                  		return false;		
                                  	}
                                  }
                                  
                                  function docReady(fn) {
                                      // see if DOM is already available
                                      if (document.readyState === "complete" || document.readyState === "interactive") {
                                          // call on next available tick
                                          setTimeout(fn, 1000);
                                      } else {
                                          document.addEventListener("DOMContentLoaded", fn);
                                      }
                                  }
                                  

                                  00861089-288a-4847-8548-ebbf3203d9aa-image.png

                                  M 1 Antwort Letzte Antwort
                                  0
                                  • U uwe72

                                    @mcu

                                    // ***************************
                                    // stateListLabelChange v1.0.3
                                    // ***************************
                                    // Copyright ©MCU
                                    // v1.0.1 - Korrektur Tabwechsel
                                    // v1.0.2 - für Device-Popup erweitert
                                    // v1.0.3 - Widget oder Device optional, Logging Test
                                    
                                    let widgetArr = [
                                    					{
                                    						dp: '0_userdata.0.DP.dp1',
                                    						deviceId: 'device_HG015',
                                    						deviceItem: 2
                                    					}
                                    				]
                                    
                                    let loggingSLLC = true;
                                    
                                    let valueSLLCObj = {}
                                    
                                    docReady(function() {
                                    	if (isConfig()){
                                    	}else{
                                    		console.log('%cStart stateListLabelChange.js','color:yellow;');
                                    		setTimeout(function(){
                                    			setSubscriptionDPs(widgetArr)
                                    		},100)
                                    		document.addEventListener("click", function (event) {
                                    			if (isConfig()){
                                    			}else{
                                    				console.log('%cKlick stateListLabelChange','color:orange');
                                    				setTimeout(function(){
                                    					
                                    					for(let i=0;i<widgetArr.length;i++){
                                    						if(valueSLLCObj[widgetArr[i].dp]){
                                    							if(widgetArr[i].widgetId && widgetArr[i].item != undefined){
                                    								changeLabel(widgetArr[i].widgetId, widgetArr[i].item, valueSLLCObj[widgetArr[i].dp])
                                    							}
                                    							setTimeout(function(){
                                    								if(widgetArr[i].deviceId && widgetArr[i].deviceItem != undefined){
                                    									changeLabelPopup(widgetArr[i].deviceId, widgetArr[i].deviceItem, valueSLLCObj[widgetArr[i].dp] )
                                    								}
                                    							},500)
                                    						}
                                    					}
                                    				},100)
                                    			}
                                    		});
                                    	}
                                    });
                                    
                                    function setSubscriptionDPs(arr){
                                    	for(let obj in arr){
                                    		//console.log(arr[dp])
                                    		//let dp = Object.keys(arr[obj])[0]
                                    //		 console.log(dp)
                                    		window.Socket.subscribeState(arr[obj].dp, ({ err, state }) => {
                                    			valueSLLCObj[arr[obj].dp] = state.val;
                                    			if(arr[obj].widgetId && arr[obj].item!= undefined){
                                    				changeLabel(arr[obj].widgetId, arr[obj].item,state.val )
                                    			}
                                    			if(arr[obj].deviceId && arr[obj].deviceItem!= undefined){
                                    				changeLabelPopup(arr[obj].deviceId,arr[obj].deviceItem, state.val)
                                    			}
                                    		});
                                    		
                                    	}
                                    }
                                    
                                    
                                    
                                    function changeLabel(widgetId,item, txt){
                                    	console.log('WidgetId: '+widgetId + ' Item: '+item )
                                    	let doc = document.getElementsByClassName('jarvis-widget-'+widgetId);
                                    	let dpVal;
                                    	console.log('ChangeLabel')
                                    	if(doc.length>0){
                                    		let stateList = doc[0].getElementsByClassName('jarvis-StateList');
                                    		if(stateList.length > 0){
                                    			let slItems = stateList[0].getElementsByClassName('jarvis-StateListItem');
                                    			if(slItems.length >0){
                                    				let slBody = slItems[item].getElementsByClassName('jarvis-StateListItem-Body')
                                    				if(slBody.length > 0){
                                    					console.log('gefunden ')
                                    					let slLabel = slBody[0].getElementsByClassName('q-item__label')
                                    					console.log(slLabel)
                                    					slLabel[0].innerHTML = txt
                                    				}
                                    			}
                                    			
                                    		}
                                    	}
                                    }
                                    
                                    function changeLabelPopup(deviceId, deviceItem, txt){
                                    	console.log('ChangeLabelDevicePopup')
                                    	let doc = document.getElementsByClassName('jarvis-device-'+deviceId);
                                    	if(doc.length >0){
                                    		if(loggingSLLC) console.log('Device gefunden')
                                    		let popup = doc[0].getElementsByClassName('jarvis-popup')
                                    		if(popup.length>0){
                                    			if(loggingSLLC) console.log('Popup gefunden')
                                    			let deviceItems = popup[0].getElementsByClassName('jarvis-StateListItem-Popup')
                                    			if(loggingSLLC) console.log(deviceItems)
                                    			let device = deviceItems[deviceItem]
                                    			if(loggingSLLC) console.log(device)
                                    			let body = device.getElementsByClassName('jarvis-StateListItem-Body')
                                    			if(body.length >0){
                                    				if(loggingSLLC) console.log('Body gefunden')
                                    				let label = body[0].getElementsByClassName('q-item__label')
                                    				label[0].innerHTML = txt
                                    			}
                                    		}
                                    	}
                                    }
                                    
                                    
                                    
                                    
                                    function isConfig(){
                                    	console.log(document.baseURI);
                                    	if (document.baseURI.indexOf('configuration') >=0){
                                    		console.log('Konfig aktiv');
                                    		return true;
                                    		
                                    	}else{
                                    		console.log('Konfig nicht aktiv');
                                    		return false;		
                                    	}
                                    }
                                    
                                    function docReady(fn) {
                                        // see if DOM is already available
                                        if (document.readyState === "complete" || document.readyState === "interactive") {
                                            // call on next available tick
                                            setTimeout(fn, 1000);
                                        } else {
                                            document.addEventListener("DOMContentLoaded", fn);
                                        }
                                    }
                                    

                                    00861089-288a-4847-8548-ebbf3203d9aa-image.png

                                    M Offline
                                    M Offline
                                    MCU
                                    schrieb am zuletzt editiert von MCU
                                    #798

                                    @uwe72 Du muss Deinen dp eintragen
                                    16ae347d-2a3b-4d09-aad4-1b71e124cbb0-image.png
                                    deviceItem: 1

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

                                    U 1 Antwort Letzte Antwort
                                    0
                                    • M MCU

                                      @uwe72 Du muss Deinen dp eintragen
                                      16ae347d-2a3b-4d09-aad4-1b71e124cbb0-image.png
                                      deviceItem: 1

                                      U Offline
                                      U Offline
                                      uwe72
                                      schrieb am zuletzt editiert von
                                      #799

                                      @mcu sorry, mein Fehler. hatte ich bei irgendeinem Update überschrieben. Funktioniert nun! D.h. deviceitem müssen die ausgeblendeten nicht mitgezählt werden!?

                                      518fc886-1966-4751-866f-a9e2be1e6d51-image.png

                                      M 1 Antwort Letzte Antwort
                                      0
                                      • U uwe72

                                        @mcu sorry, mein Fehler. hatte ich bei irgendeinem Update überschrieben. Funktioniert nun! D.h. deviceitem müssen die ausgeblendeten nicht mitgezählt werden!?

                                        518fc886-1966-4751-866f-a9e2be1e6d51-image.png

                                        M Offline
                                        M Offline
                                        MCU
                                        schrieb am zuletzt editiert von
                                        #800

                                        @uwe72 Prima, nur die zählen, die man sieht, ab 0.

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

                                        U 1 Antwort Letzte Antwort
                                        1
                                        • M MCU

                                          @uwe72 Prima, nur die zählen, die man sieht, ab 0.

                                          U Offline
                                          U Offline
                                          uwe72
                                          schrieb am zuletzt editiert von
                                          #801

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

                                          @uwe72 Prima, nur die zählen, die man sieht, ab 0.

                                          Ganz großen und herzlichen DANK!!

                                          M 1 Antwort Letzte Antwort
                                          0

                                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                          Registrieren Anmelden
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          496

                                          Online

                                          32.8k

                                          Benutzer

                                          82.7k

                                          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