Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. HowTo: Zusatz-Programme fuer jarvis v3

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    HowTo: Zusatz-Programme fuer jarvis v3

    This topic has been deleted. Only users with topic management privileges can see it.
    • U
      uwe72 @MCU last edited by uwe72

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

      @uwe72

      item :0,
      deviceItem:1
      

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

      Du wllst aber sehr wahrscheinlich im Widget keine Anpassung?

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

      M 1 Reply Last reply Reply Quote 0
      • I
        intruder7 @MCU last edited by

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

        1 Reply Last reply Reply Quote 0
        • I
          intruder7 @MCU last edited by

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

          M 1 Reply Last reply Reply Quote 0
          • M
            MCU @uwe72 last edited by

            @uwe72 <br> fehlt aber noch im DP?

            U 1 Reply Last reply Reply Quote 0
            • U
              uwe72 @MCU last edited by

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

              M 1 Reply Last reply Reply Quote 0
              • M
                MCU @uwe72 last edited by MCU

                @uwe72 Jetzt mal ins LOG F12 schauen

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

                U 1 Reply Last reply Reply Quote 0
                • U
                  uwe72 @MCU last edited by

                  @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 Reply Quote 0
                  • U
                    uwe72 @uwe72 last edited by

                    hab noch nicht alle log-Ausgaben einkommentiert

                    M 2 Replies Last reply Reply Quote 0
                    • M
                      MCU @uwe72 last edited by

                      @uwe72 Mache gerade neue Version

                      1 Reply Last reply Reply Quote 1
                      • M
                        MCU @uwe72 last edited by 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 1 Reply Last reply Reply Quote 0
                        • U
                          uwe72 @MCU last edited by

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

                          M 1 Reply Last reply Reply Quote 0
                          • M
                            MCU @uwe72 last edited by 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 1 Reply Last reply Reply Quote 0
                            • U
                              uwe72 @MCU last edited by

                              @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 Reply Quote 1
                              • M
                                MCU @uwe72 last edited by

                                @uwe72 Passt,

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

                                Die beiden console.log auch deaktivieren

                                U 1 Reply Last reply Reply Quote 0
                                • U
                                  uwe72 @MCU last edited by

                                  @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 Reply Quote 0
                                  • M
                                    MCU @uwe72 last edited by MCU

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

                                    U 1 Reply Last reply Reply Quote 0
                                    • U
                                      uwe72 @MCU last edited by

                                      @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 Reply Quote 0
                                      • M
                                        MCU @uwe72 last edited by

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

                                        U 1 Reply Last reply Reply Quote 1
                                        • U
                                          uwe72 @MCU last edited by

                                          @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 Reply Quote 0
                                          • M
                                            MCU @uwe72 last edited by MCU

                                            @uwe72 Du kannst dann das Logging abschalten.

                                            let loggingSLLC = false;
                                            
                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            870
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            31
                                            864
                                            173597
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo