Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. 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.7k

  • 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

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
889 Beiträge 33 Kommentatoren 214.3k Aufrufe 37 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • U uwe72

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

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

    @uwe72 Jetzt mal ins LOG F12 schauen

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

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

    U 1 Antwort Letzte Antwort
    0
    • M MCU

      @uwe72 Jetzt mal ins LOG F12 schauen

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

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

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

      @uwe72 Jetzt mal ins LOG F12 schauen

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

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

      U 1 Antwort Letzte Antwort
      0
      • U uwe72

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

        @uwe72 Jetzt mal ins LOG F12 schauen

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

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

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

        hab noch nicht alle log-Ausgaben einkommentiert

        M 2 Antworten Letzte Antwort
        0
        • U uwe72

          hab noch nicht alle log-Ausgaben einkommentiert

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

          @uwe72 Mache gerade neue Version

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

          1 Antwort Letzte Antwort
          1
          • U uwe72

            hab noch nicht alle log-Ausgaben einkommentiert

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

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

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

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

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

            U 1 Antwort Letzte Antwort
            0
            • M MCU

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

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

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

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

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

              M 1 Antwort Letzte Antwort
              0
              • U uwe72

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

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

                @uwe72 Was steht jetzt im Objekt vom widgetArr?

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

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

                U 1 Antwort Letzte Antwort
                0
                • M MCU

                  @uwe72 Was steht jetzt im Objekt vom widgetArr?

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

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

                  @mcu

                  ich starte nun mal so:

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

                    @mcu

                    ich starte nun mal so:

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

                    @uwe72 Passt,

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

                    Die beiden console.log auch deaktivieren

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

                    U 1 Antwort Letzte Antwort
                    0
                    • M MCU

                      @uwe72 Passt,

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

                      Die beiden console.log auch deaktivieren

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

                      @mcu

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

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

                      M 1 Antwort Letzte Antwort
                      0
                      • U uwe72

                        @mcu

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

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

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

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

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

                        U 1 Antwort Letzte Antwort
                        0
                        • M MCU

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

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

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

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

                          M 1 Antwort Letzte Antwort
                          0
                          • U uwe72

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

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

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

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

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

                            U 1 Antwort Letzte Antwort
                            1
                            • M MCU

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

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

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

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

                              Ganz großen und herzlichen DANK!!

                              M 1 Antwort Letzte Antwort
                              0
                              • 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
                                schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                1
                                • I intruder7

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

                                  M Offline
                                  M Offline
                                  MCU
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  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
                                    schrieb am zuletzt editiert von
                                    #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 Antwort Letzte Antwort
                                    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
                                      schrieb am zuletzt editiert von MCU
                                      #805

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

                                      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 Antwort Letzte Antwort
                                      0
                                      • M MCU

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

                                        I Offline
                                        I Offline
                                        intruder7
                                        schrieb am zuletzt editiert von
                                        #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 Antwort Letzte Antwort
                                        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
                                          schrieb am zuletzt editiert von
                                          #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 ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                                          Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                                          I 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          904

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe