Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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

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

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

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

HowTo: Zusatz-Programme fuer jarvis v3

Scheduled Pinned Locked Moved JavaScript
javascript
889 Posts 33 Posters 214.5k Views 37 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M MCU

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

    I Offline
    I Offline
    intruder7
    wrote on last edited by
    #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 Reply Last reply
    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 Offline
      I Offline
      intruder7
      wrote on last edited by
      #785

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

      M 1 Reply Last reply
      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 Online
        M Online
        MCU
        wrote on last edited by
        #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 Reply Last reply
        0
        • M MCU

          @uwe72 <br> fehlt aber noch im DP?

          U Offline
          U Offline
          uwe72
          wrote on last edited by
          #787

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

          M 1 Reply Last reply
          0
          • U uwe72

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

            M Online
            M Online
            MCU
            wrote on last edited by 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 Reply Last reply
            0
            • M MCU

              @uwe72 Jetzt mal ins LOG F12 schauen

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

              U Offline
              U Offline
              uwe72
              wrote on last edited by
              #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 Reply Last reply
              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
                wrote on last edited by
                #790

                hab noch nicht alle log-Ausgaben einkommentiert

                M 2 Replies Last reply
                0
                • U uwe72

                  hab noch nicht alle log-Ausgaben einkommentiert

                  M Online
                  M Online
                  MCU
                  wrote on last edited by
                  #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 Reply Last reply
                  1
                  • U uwe72

                    hab noch nicht alle log-Ausgaben einkommentiert

                    M Online
                    M Online
                    MCU
                    wrote on last edited by 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 Reply Last reply
                    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
                      wrote on last edited by
                      #793

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

                      M 1 Reply Last reply
                      0
                      • U uwe72

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

                        M Online
                        M Online
                        MCU
                        wrote on last edited by 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 Reply Last reply
                        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
                          wrote on last edited by
                          #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 Reply Last reply
                          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 Online
                            M Online
                            MCU
                            wrote on last edited by
                            #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 Reply Last reply
                            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
                              wrote on last edited by
                              #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 Reply Last reply
                              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 Online
                                M Online
                                MCU
                                wrote on last edited by 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 Reply Last reply
                                0
                                • M MCU

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

                                  U Offline
                                  U Offline
                                  uwe72
                                  wrote on last edited by
                                  #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 Reply Last reply
                                  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 Online
                                    M Online
                                    MCU
                                    wrote on last edited by
                                    #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 Reply Last reply
                                    1
                                    • M MCU

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

                                      U Offline
                                      U Offline
                                      uwe72
                                      wrote on last edited by
                                      #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 Reply Last reply
                                      0
                                      • U uwe72

                                        @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 Online
                                        M Online
                                        MCU
                                        wrote on last edited by MCU
                                        #802

                                        @uwe72 Du kannst dann das Logging abschalten.

                                        let loggingSLLC = false;
                                        

                                        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 Reply Last reply
                                        1
                                        • I intruder7

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

                                          M Online
                                          M Online
                                          MCU
                                          wrote on last edited by
                                          #803

                                          @intruder7 Die ankommenden JSON -> qJSON werden ja jetzt gelogggt. Ich sehe zu den normalen keinen Unterschied. Kannst du mal die qJSON vor dem Fehler vergleichen, mit dem direkt vor dem Fehler. Wenn der Aufbau gleich ist, kann ich es nicht beeinflussen, dann muss irgendwo in influxdb ein Problem vorliegen.
                                          Laufen zu dem Zeitpunkt irgendwelche anderen Abfragen auf die Datenbank?

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

                                          I 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          871

                                          Online

                                          32.4k

                                          Users

                                          81.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe