Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. HowTo: Zusatz-Programme fuer jarvis v3

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    12
    2
    271

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

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

HowTo: Zusatz-Programme fuer jarvis v3

HowTo: Zusatz-Programme fuer jarvis v3

Scheduled Pinned Locked Moved JavaScript
javascript
889 Posts 33 Posters 211.1k 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

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

        @uwe72 Mache gerade neue Version

        NUC i7 64GB mit Proxmox ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
        Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

        1 Reply Last reply
        1
        • U uwe72

          hab noch nicht alle log-Ausgaben einkommentiert

          M Offline
          M Offline
          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 ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
          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 Offline
              M Offline
              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 ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
              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 Offline
                  M Offline
                  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 ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
                  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 Offline
                      M Offline
                      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 ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
                      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 Offline
                          M Offline
                          MCU
                          wrote on last edited by
                          #800

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

                          NUC i7 64GB mit Proxmox ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
                          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 Offline
                              M Offline
                              MCU
                              wrote on last edited by MCU
                              #802

                              @uwe72 Du kannst dann das Logging abschalten.

                              let loggingSLLC = false;
                              

                              NUC i7 64GB mit Proxmox ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
                              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 Offline
                                M Offline
                                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 ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
                                Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                                I 1 Reply Last reply
                                0
                                • M MCU

                                  @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?

                                  I Offline
                                  I Offline
                                  intruder7
                                  wrote on last edited by
                                  #804

                                  @mcu verfolge gerade einen anderen Weg. Ich habe festgestellt dass es manchmal aus irgendwelchen Gründen zu etlichen Anfragen zum selben Widget (also auch DP) innerhalb von Millisekunden kommt. Dies führte zum "aufhängen" von InfluxDB. Ich habe gerade im Skript eChartsHistoryGetData eine Prüfung eingebaut die eine Abfrage an InfluxDb verhindert wenn es das selbe Widget ist und die Zeit zur letzten Abfrage weniger als eine Sekunde ist.
                                  Das lasse ich jetzt mal laufen und will hoffen das es daran gelegen hat.

                                  M 1 Reply Last reply
                                  0
                                  • I intruder7

                                    @mcu verfolge gerade einen anderen Weg. Ich habe festgestellt dass es manchmal aus irgendwelchen Gründen zu etlichen Anfragen zum selben Widget (also auch DP) innerhalb von Millisekunden kommt. Dies führte zum "aufhängen" von InfluxDB. Ich habe gerade im Skript eChartsHistoryGetData eine Prüfung eingebaut die eine Abfrage an InfluxDb verhindert wenn es das selbe Widget ist und die Zeit zur letzten Abfrage weniger als eine Sekunde ist.
                                    Das lasse ich jetzt mal laufen und will hoffen das es daran gelegen hat.

                                    M Offline
                                    M Offline
                                    MCU
                                    wrote on last edited by MCU
                                    #805

                                    @intruder7 Zeig mal bitte, vielleicht baue ich mit ein.

                                    NUC i7 64GB mit Proxmox ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
                                    Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                                    I 1 Reply Last reply
                                    0
                                    • M MCU

                                      @intruder7 Zeig mal bitte, vielleicht baue ich mit ein.

                                      I Offline
                                      I Offline
                                      intruder7
                                      wrote on last edited by
                                      #806

                                      @mcu
                                      geht bestimmt eleganter 😉

                                      let getDataDP = historyAdaptDP + '.getData';
                                      let lastTime = new Date()
                                      let aktTime = new Date()
                                      let lastWidget = ""
                                      //createStateAsync(queryDPsDP,     {read: true, write: false, name: "Abfrage-DP", desc:"Abfrage-DP", type: "string", role: "", def: "" });
                                      createStateAsync(queryJSONDP, { read: true, write: true, name: "Abfrage-JSON-DP", desc: '{dp:"",type:"",cnt:"",start:"",end:"",adapt:""}', type: "string", role: "text", def: JSON.stringify({}) });
                                      createStateAsync(dataResultDP, { read: true, write: true, name: "Daten-Ergebnis", desc: "Abfrage-Ergebnis", type: "string", role: "", def: JSON.stringify([]) });
                                      
                                      
                                      on({ id: queryJSONDP, change: "any" }, function (obj) {
                                          let value = obj.state.val;
                                          // console.log('Anfrage um: '+ formatDate(new Date(),'DD.MM.YYYY hh:mm:ss') +' für DP '+JSON.parse(value).dp )
                                          aktTime = new Date()
                                          let differenz = (aktTime.getTime() - lastTime.getTime())
                                      
                                          var Seconds_from_T1_to_T2 = differenz / 1000;
                                          var Seconds_Between_Dates = Math.abs(Seconds_from_T1_to_T2);
                                          //console.log('aktTime: ' + aktTime)
                                          //console.log('lastTime: ' + lastTime)
                                      
                                          if (JSON.parse(value).widgetId == lastWidget && Seconds_Between_Dates <= 1) {
                                              //console.log('gleiches widget und zu häufige Anfrage ')
                                              //console.log('last widgetId: ' + lastWidget)
                                              //console.log('akt widgetId: ' + JSON.parse(value).widgetId)
                                              //console.log('dif: ' + Seconds_Between_Dates)
                                          } else {
                                              getHist(JSON.parse(value));
                                              lastTime = new Date()
                                              lastWidget = JSON.parse(value).widgetId
                                          }
                                      });
                                      
                                      
                                      M 1 Reply Last reply
                                      0
                                      • I intruder7

                                        @mcu
                                        geht bestimmt eleganter 😉

                                        let getDataDP = historyAdaptDP + '.getData';
                                        let lastTime = new Date()
                                        let aktTime = new Date()
                                        let lastWidget = ""
                                        //createStateAsync(queryDPsDP,     {read: true, write: false, name: "Abfrage-DP", desc:"Abfrage-DP", type: "string", role: "", def: "" });
                                        createStateAsync(queryJSONDP, { read: true, write: true, name: "Abfrage-JSON-DP", desc: '{dp:"",type:"",cnt:"",start:"",end:"",adapt:""}', type: "string", role: "text", def: JSON.stringify({}) });
                                        createStateAsync(dataResultDP, { read: true, write: true, name: "Daten-Ergebnis", desc: "Abfrage-Ergebnis", type: "string", role: "", def: JSON.stringify([]) });
                                        
                                        
                                        on({ id: queryJSONDP, change: "any" }, function (obj) {
                                            let value = obj.state.val;
                                            // console.log('Anfrage um: '+ formatDate(new Date(),'DD.MM.YYYY hh:mm:ss') +' für DP '+JSON.parse(value).dp )
                                            aktTime = new Date()
                                            let differenz = (aktTime.getTime() - lastTime.getTime())
                                        
                                            var Seconds_from_T1_to_T2 = differenz / 1000;
                                            var Seconds_Between_Dates = Math.abs(Seconds_from_T1_to_T2);
                                            //console.log('aktTime: ' + aktTime)
                                            //console.log('lastTime: ' + lastTime)
                                        
                                            if (JSON.parse(value).widgetId == lastWidget && Seconds_Between_Dates <= 1) {
                                                //console.log('gleiches widget und zu häufige Anfrage ')
                                                //console.log('last widgetId: ' + lastWidget)
                                                //console.log('akt widgetId: ' + JSON.parse(value).widgetId)
                                                //console.log('dif: ' + Seconds_Between_Dates)
                                            } else {
                                                getHist(JSON.parse(value));
                                                lastTime = new Date()
                                                lastWidget = JSON.parse(value).widgetId
                                            }
                                        });
                                        
                                        
                                        M Offline
                                        M Offline
                                        MCU
                                        wrote on last edited by
                                        #807

                                        @intruder7 Gut dann warten wir mal ab.
                                        Ich würde es dann etwas anders mit einbauen. Entscheidend wäre hier der dp, da man von dem die Daten holt.

                                        NUC i7 64GB mit Proxmox ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
                                        Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                                        I 1 Reply Last reply
                                        0
                                        • M MCU

                                          @intruder7 Gut dann warten wir mal ab.
                                          Ich würde es dann etwas anders mit einbauen. Entscheidend wäre hier der dp, da man von dem die Daten holt.

                                          I Offline
                                          I Offline
                                          intruder7
                                          wrote on last edited by
                                          #808

                                          @mcu ja das Problem ist aber nicht der DP. Man kann den DP ja auch in z.B. 2 Widgets haben und deswegen hatte ich auf das Widget getestet.

                                          M 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

                                          166

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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