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.
    • M
      MCU @intruder7 last edited by

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

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

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

        @uwe72 deviceItem muss 1 sein.
        Langsames Frontend-System Tablet?

        4c9b2b94-249c-4984-a01e-908fa3dbb49f-image.png
        Passt nicht zur Anzeige?
        Ist da irgendetwas ausgeblendet?

        9ace2183-cc58-4994-9b0e-3dd07ea60135-image.png

        rechte Maustaste auf HG 15 Zeile -> untersuchen
        ab jarvis-popup inkl jarvis-StateListItem-Popup
        cf7dafa9-90a4-4f35-adf0-a9d8f81dc40e-image.png

        Ja, sind Zeilen ausgeblendet.

        Passt dies so?
        cf5d4a36-8059-4550-bf0f-7ca1b7d1a26e-image.png

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

          @uwe72 Wie kommen der Sache evtl näher, console.log angepasst was steht im LOG?
          f06a31c6-1bf9-4397-a1c9-914f39a0abf7-image.png

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

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

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

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

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

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

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

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

              @uwe72

              item :0,
              deviceItem:1
              

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

              Du wllst aber sehr wahrscheinlich im Widget keine Anpassung?

              U I 2 Replies Last reply Reply Quote 0
              • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            868
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            31
                                            864
                                            174695
                                            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