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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. jarvis v3.2.x - just another remarkable vis

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

jarvis v3.2.x - just another remarkable vis

Scheduled Pinned Locked Moved Tester
947 Posts 46 Posters 271.4k Views 44 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D der-eine

    @MCU hast Du ne Idee wo ich schauen könnte, wieso bei mir Jarvis immer nen Reload macht wenn ich in der Konfiguration nur auf speichern drücke?

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

    @der-eine Wenn scripts eingestellt sind muss er automatisch ein Reload durchführen.

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

    D 1 Reply Last reply
    0
    • M MCU

      @der-eine Wenn scripts eingestellt sind muss er automatisch ein Reload durchführen.

      D Offline
      D Offline
      der-eine
      wrote on last edited by
      #774

      @mcu ah ok das ist dann quasi normal. :+1:

      M 1 Reply Last reply
      0
      • D der-eine

        @mcu ah ok das ist dann quasi normal. :+1:

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

        @der-eine Ja genau. Das wird sich evtl mal ändern, aber dauert noch sehr sehr lange.
        Hat einen technischen Hintergrund, mit dem man dann scripts direkt im Speicher ändert. (v4, v5??)

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

        D 1 Reply Last reply
        0
        • M MCU

          @der-eine Ja genau. Das wird sich evtl mal ändern, aber dauert noch sehr sehr lange.
          Hat einen technischen Hintergrund, mit dem man dann scripts direkt im Speicher ändert. (v4, v5??)

          D Offline
          D Offline
          der-eine
          wrote on last edited by
          #776

          @mcu hab mich nur gewundert weil es nicht von Anfang an so war. Hab nicht bemerkt das es erst seitdem ich Skripts nutze ist.

          M 1 Reply Last reply
          0
          • D der-eine

            @mcu hab mich nur gewundert weil es nicht von Anfang an so war. Hab nicht bemerkt das es erst seitdem ich Skripts nutze ist.

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

            @der-eine Dafür gibt es diesen Hinweis
            1e65980e-e10b-4201-b5cc-f1c26d088c33-image.png

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

            1 Reply Last reply
            0
            • M MCU

              @muhlatte

              Habe einfach die Version von github geladen, ich hoffe das passt.

              Ja, das passt.

              Zeig mal die DPs so dass man version und signature sehen kann.

              • Upload von jarvis (console ioBroker) -> iob upload jarvis
              • Sicherung vom System (jarvis) machen
              • einmal das Verzeichnis löschen /opt/iobroker/iobroker-data/jarvis
                -> jarvis neu starten
              M Offline
              M Offline
              muhlatte
              wrote on last edited by
              #778

              @mcu
              Alles gemacht, leider ohne Erfolg. Datenpunkte vor dem Prozedere

              f00201e7-ca14-4ef1-931e-1342a5b90f21-image.png

              und dann noch danach
              cbacefd3-ea4a-4320-9cea-6d9ab79073cb-image.png

              mit jarvis neu starten meinst du den Adapter neu starten, richtig? Dank dir für all die Tipps!

              M 2 Replies Last reply
              0
              • M Offline
                M Offline
                muhlatte
                wrote on last edited by muhlatte
                #779

                sorry doppelpost aufgrund overload

                M 1 Reply Last reply
                0
                • M muhlatte

                  @mcu
                  Alles gemacht, leider ohne Erfolg. Datenpunkte vor dem Prozedere

                  f00201e7-ca14-4ef1-931e-1342a5b90f21-image.png

                  und dann noch danach
                  cbacefd3-ea4a-4320-9cea-6d9ab79073cb-image.png

                  mit jarvis neu starten meinst du den Adapter neu starten, richtig? Dank dir für all die Tipps!

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

                  @muhlatte Ja Adapter / Instanz neu starten.
                  Wie sieht der Inhalt vom DP scripts aus? -> code-tags
                  Kannst du mal die Notifications auslagern, bzw. löschen falls sie nicht mehr gebraucht werden.

                  Die beiden DPs wurden nicht von Jarvis bestätigt -> sind rot nicht weiß

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

                  1 Reply Last reply
                  0
                  • M muhlatte

                    @mcu
                    Alles gemacht, leider ohne Erfolg. Datenpunkte vor dem Prozedere

                    f00201e7-ca14-4ef1-931e-1342a5b90f21-image.png

                    und dann noch danach
                    cbacefd3-ea4a-4320-9cea-6d9ab79073cb-image.png

                    mit jarvis neu starten meinst du den Adapter neu starten, richtig? Dank dir für all die Tipps!

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

                    Doppelt Post Overload

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

                    1 Reply Last reply
                    0
                    • M muhlatte

                      sorry doppelpost aufgrund overload

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

                      @muhlatte Und immer Cache löschen auf allen benutzten / aktiven Geräten!

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

                      1 Reply Last reply
                      1
                      • M Offline
                        M Offline
                        muhlatte
                        wrote on last edited by muhlatte
                        #783

                        @MCU
                        DP scripts sieht folgendermaßen aus

                        {
                          "version": 3.2,
                          "signature": 7813676603462119,
                          "scripts": {}
                        }
                        

                        Ich habe immer den Cache des einen Gerätes gelöscht auf dem ich gerade war, hatte aber nacheinander auch schon die anderen gelöscht gehabt im Rahmen meines Umstiegs auf rc12 (weil die Verbindung eh gestreikt hat).

                        die 5 archivierten notifications hab ich gelöscht, klammer ist jetzt leer (trotzdem rot).

                        UPDATE:
                        Ich werd' verrückt, es hat tatsächlich daran gelegen, dass ich nicht alle Instanzen zu hatte. Dann bei Cache löschen der letzten aktiven Instanz hats geklappt! Vielen lieben Dank! :handshake: :kiss:
                        --> vielleicht hat mein aktiver pihole da auch mit reingespuckt, den hab ich nämlich auch noch aus gemacht!

                        Jetzt muss ich es nur noch hinbekommen, dass das Widget auch wirklich ausblendet, aber das ist dann der nächste Step.
                        Vielleicht eine Frage dazu, Mit meinem Script

                        window.Socket.subscribeState('0_userdata.0.Alarmanlage.Alarmanlagen_Steuerung_Einblendung', ({ err, state }) => {
                        	if (err){
                        	   console.log('Error DP holen');
                        	}else{
                        		if (state.val) {
                        			displayOffObj['2db1b208-cedd-41a7-9382-141fbf2a82ae']=false;
                        		}else{
                        			displayOffObj['2db1b208-cedd-41a7-9382-141fbf2a82ae']=true;
                        		}
                        		widgetsActualize();
                        	}
                        });
                        

                        schaltet er dann instantan die Anzeige des Widgets aus sobald ich den obigen Datenpunkt ändere, richtig?

                        M 1 Reply Last reply
                        0
                        • M muhlatte

                          @MCU
                          DP scripts sieht folgendermaßen aus

                          {
                            "version": 3.2,
                            "signature": 7813676603462119,
                            "scripts": {}
                          }
                          

                          Ich habe immer den Cache des einen Gerätes gelöscht auf dem ich gerade war, hatte aber nacheinander auch schon die anderen gelöscht gehabt im Rahmen meines Umstiegs auf rc12 (weil die Verbindung eh gestreikt hat).

                          die 5 archivierten notifications hab ich gelöscht, klammer ist jetzt leer (trotzdem rot).

                          UPDATE:
                          Ich werd' verrückt, es hat tatsächlich daran gelegen, dass ich nicht alle Instanzen zu hatte. Dann bei Cache löschen der letzten aktiven Instanz hats geklappt! Vielen lieben Dank! :handshake: :kiss:
                          --> vielleicht hat mein aktiver pihole da auch mit reingespuckt, den hab ich nämlich auch noch aus gemacht!

                          Jetzt muss ich es nur noch hinbekommen, dass das Widget auch wirklich ausblendet, aber das ist dann der nächste Step.
                          Vielleicht eine Frage dazu, Mit meinem Script

                          window.Socket.subscribeState('0_userdata.0.Alarmanlage.Alarmanlagen_Steuerung_Einblendung', ({ err, state }) => {
                          	if (err){
                          	   console.log('Error DP holen');
                          	}else{
                          		if (state.val) {
                          			displayOffObj['2db1b208-cedd-41a7-9382-141fbf2a82ae']=false;
                          		}else{
                          			displayOffObj['2db1b208-cedd-41a7-9382-141fbf2a82ae']=true;
                          		}
                          		widgetsActualize();
                          	}
                          });
                          

                          schaltet er dann instantan die Anzeige des Widgets aus sobald ich den obigen Datenpunkt ändere, richtig?

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

                          @muhlatte In scripts ist nur ein Eintrag -> @import "http:...."
                          Programm einstellungen sind im script!

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

                          M 1 Reply Last reply
                          0
                          • M MCU

                            @muhlatte In scripts ist nur ein Eintrag -> @import "http:...."
                            Programm einstellungen sind im script!

                            M Offline
                            M Offline
                            muhlatte
                            wrote on last edited by
                            #785

                            @MCU
                            Jo der obige Code steckt bei mir in WidgetAusblendenScript.js auf dem jarvis user Ordner. Im scripts DP ist der Eintrag nun drin also gehe ich davon aus es hat geklappt. nur das Ausblenden über den

                            0_userdata.0.Alarmanlage.Alarmanlagen_Steuerung_Einblendung
                            

                            klappt noch nicht. Ich gehe davon aus dass der false oder true sein muss, korrekt?

                            M 1 Reply Last reply
                            0
                            • M muhlatte

                              @MCU
                              Jo der obige Code steckt bei mir in WidgetAusblendenScript.js auf dem jarvis user Ordner. Im scripts DP ist der Eintrag nun drin also gehe ich davon aus es hat geklappt. nur das Ausblenden über den

                              0_userdata.0.Alarmanlage.Alarmanlagen_Steuerung_Einblendung
                              

                              klappt noch nicht. Ich gehe davon aus dass der false oder true sein muss, korrekt?

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

                              @muhlatte Nicht unbedingt, man muss es halt definieren, wie man es braucht
                              Wie ist denn der Type vom DP
                              So wie es oben beim subscribe definiert ist muss es boolean sein und bei true wird das Widget angezeigt.

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

                              M 1 Reply Last reply
                              0
                              • M MCU

                                @muhlatte Nicht unbedingt, man muss es halt definieren, wie man es braucht
                                Wie ist denn der Type vom DP
                                So wie es oben beim subscribe definiert ist muss es boolean sein und bei true wird das Widget angezeigt.

                                M Offline
                                M Offline
                                muhlatte
                                wrote on last edited by
                                #787

                                @MCU
                                Jo genau so hab ich es gemacht nur passiert leider nichts wenn ich von false auf true schalte, es wird immer angezeigt. Ich gehe davon aus, dass die ID auch richtig ist, oder?

                                2cf94620-912d-44a7-9416-88cc398a685a-image.png

                                M 2 Replies Last reply
                                0
                                • M muhlatte

                                  @MCU
                                  Jo genau so hab ich es gemacht nur passiert leider nichts wenn ich von false auf true schalte, es wird immer angezeigt. Ich gehe davon aus, dass die ID auch richtig ist, oder?

                                  2cf94620-912d-44a7-9416-88cc398a685a-image.png

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

                                  @muhlatte Ja geht nicht, schaue ich mir an. Liegt irgendwo im Programm. Melde mich.

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

                                  1 Reply Last reply
                                  0
                                  • M muhlatte

                                    @MCU
                                    Jo genau so hab ich es gemacht nur passiert leider nichts wenn ich von false auf true schalte, es wird immer angezeigt. Ich gehe davon aus, dass die ID auch richtig ist, oder?

                                    2cf94620-912d-44a7-9416-88cc398a685a-image.png

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

                                    @muhlatte Doch funktioniert, hatte falsche script-Bezeichnung.
                                    Stell mal bitte das komplette Script rein.
                                    Und einmal den scripts-Eintrag

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

                                    M 1 Reply Last reply
                                    0
                                    • M MCU

                                      @muhlatte Doch funktioniert, hatte falsche script-Bezeichnung.
                                      Stell mal bitte das komplette Script rein.
                                      Und einmal den scripts-Eintrag

                                      M Offline
                                      M Offline
                                      muhlatte
                                      wrote on last edited by
                                      #790

                                      @MCU
                                      WidgetAusblendenScript.js

                                      Importbefehl in scripts:
                                      @import"https://192.168.178.96:8400/user/WidgetAusblendenScript.js";

                                      M 1 Reply Last reply
                                      0
                                      • M muhlatte

                                        @MCU
                                        WidgetAusblendenScript.js

                                        Importbefehl in scripts:
                                        @import"https://192.168.178.96:8400/user/WidgetAusblendenScript.js";

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

                                        @muhlatte Das kann nicht funktionieren.

                                        // **************************************************
                                        // widgetDisplay.js v1.0.0
                                        //
                                        // Beispiel Widget ausblenden mit ioBroker DP-Objekt
                                        // **************************************************
                                        // Copyright ©MCU 
                                        
                                        /* Objekt zum Speichern von WidgetID und Zustand */
                                        let displayOffObj ={}; 
                                        
                                        let pagePosArr = [];
                                        
                                        let arrDeskWidgets = []; // Widgets Array mit widgetIDs und Posdaten vom grid
                                        
                                        /* ioBroker DP Änderungen */
                                        
                                        window.Socket.subscribeState('0_userdata.0.Alarmanlage.Alarmanlagen_Steuerung_Einblendung', ({ err, state }) => {
                                        	if (err){
                                        	   console.log('Error DP holen');
                                        	}else{
                                        		if (state.val) {
                                        			displayOffObj['2db1b208-cedd-41a7-9382-141fbf2a82ae']=false;
                                        		}else{
                                        			displayOffObj['2db1b208-cedd-41a7-9382-141fbf2a82ae']=true;
                                        		}
                                        		widgetsActualize();
                                        	}
                                        });  
                                        
                                        /* hier kann man mehrere ioBroker DPs abfragen */
                                        // window.Socket.subscribeState('0_userdata.0.DP.condition2', ....
                                        
                                        // window.Socket.subscribeState('0_userdata.0.DP.condition3', ....
                                        
                                        // !!! AB HIER NICHTS VERÄNDERN !!!
                                        
                                        docReady(function() {
                                        	widgetsActualize();
                                        	document.addEventListener("click", function (event) {
                                        		widgetsActualize();
                                           });
                                        });
                                        
                                        
                                        function widgetsActualize(){
                                        	containerDesktop();
                                        	for (let widget in displayOffObj){
                                        		if (displayOffObj[widget]){
                                        			widgetDisplayOff(widget,true); // Allgemeines
                                        		}else{
                                        			widgetDisplayOff(widget,false);
                                        		}				
                                        	}
                                        }
                                        
                                        function containerDesktop(){
                                        	let doc = document.getElementsByClassName('container desktop');
                                        	if (doc.length >0){
                                        		let widgetsPos = doc[0].getElementsByClassName('box');
                                        		//console.log('POS: ' +widgetsPos);
                                        		let arr = [];
                                        		for (let i=0;i<widgetsPos.length;i++){
                                        			let posObj = {};
                                        			posObj.rowStart=widgetsPos[i].style.gridRowStart;
                                        			posObj.colStart=widgetsPos[i].style.gridColumnStart;
                                        			posObj.rowEnd=widgetsPos[i].style.gridRowEnd;
                                        			posObj.colEnd=widgetsPos[i].style.gridColumnEnd;
                                        			let widgetCL = widgetsPos[i].getElementsByClassName('jarvis-widget')[0].classList;
                                        			for (let y=0;y<widgetCL.length;y++){
                                        				if (widgetCL[y].indexOf('jarvis-widget-') >=0 && widgetCL[y].length > 49){
                                        					posObj.widgetID = widgetCL[y].substr(14, widgetCL[y].length-14); // widgetID vom Widget wird übergeben */
                                        					break;
                                        				}
                                        			}
                                        			arr.push(posObj);
                                        		}
                                        		arrDeskWidgets = arr;
                                        		//pagePos(arr);
                                        	}else{
                                        		arrDeskWidgets = [];
                                        	}
                                        	
                                        }
                                        
                                        
                                        function pagePos(arrDesk){
                                        	
                                        	for (let i=0; i< arrDesk.length;i++){
                                        		let rowEnd =0;
                                        		let rowStart =parseInt(arrDesk[i].rowStart)-1;
                                        		if (arrDesk[i].rowEnd.indexOf('span')>=0){
                                        			rowEnd = parseInt(arrDesk[i].rowEnd.replace('span',''));
                                        		}
                                        		let colEnd =0;
                                        		let colStart =parseInt(arrDesk[i].colStart)-1;
                                        		if (arrDesk[i].colEnd.indexOf('span')>=0){
                                        			colEnd = parseInt(arrDesk[i].colEnd.replace('span',''));
                                        		}
                                        		for (let row = rowStart; row< rowStart+rowEnd;row++){ 
                                        			if (pagePosArr[row] == undefined){
                                        				pagePosArr.push(['','','','','','','','','','','','']);
                                        			}
                                        			for (let x = colStart; x< colStart+colEnd;x++){
                                        				if (pagePosArr[row][x] == ''){
                                        					pagePosArr[row][x]= arrDesk[i].widgetID;
                                        				}
                                        			}
                                        		}
                                        	}	
                                        }
                                        
                                        function widgetDisplayOff(widgetID,displayOff){
                                        	let doc = document.getElementsByClassName('container desktop');
                                        	if (doc.length >0){
                                        		let widgetsPos = doc[0].getElementsByClassName('box');
                                        		let usedOrder = 0;
                                        		for (let i=0; i<arrDeskWidgets.length;i++){
                                        			if (arrDeskWidgets[i].widgetID == widgetID){
                                        				usedOrder = i;
                                        				let widgetContainer = widgetsPos[usedOrder].getElementsByClassName('jarvis-widget-container');
                                        				if (displayOff){
                                        					widgetContainer[0].style.display='none';
                                        				}else{
                                        					widgetContainer[0].style.display='inherit';
                                        				}
                                        				break;
                                        			}
                                        		}
                                        	}
                                        	
                                        }
                                        
                                        
                                        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);
                                            }
                                        }  
                                        

                                        Bei weiteren Fragen dazu bitte auf den anderen Thread wechseln.
                                        https://forum.iobroker.net/topic/52228/howto-zusatz-programme-fuer-jarvis-v3

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

                                        M 1 Reply Last reply
                                        0
                                        • M MCU

                                          @muhlatte Das kann nicht funktionieren.

                                          // **************************************************
                                          // widgetDisplay.js v1.0.0
                                          //
                                          // Beispiel Widget ausblenden mit ioBroker DP-Objekt
                                          // **************************************************
                                          // Copyright ©MCU 
                                          
                                          /* Objekt zum Speichern von WidgetID und Zustand */
                                          let displayOffObj ={}; 
                                          
                                          let pagePosArr = [];
                                          
                                          let arrDeskWidgets = []; // Widgets Array mit widgetIDs und Posdaten vom grid
                                          
                                          /* ioBroker DP Änderungen */
                                          
                                          window.Socket.subscribeState('0_userdata.0.Alarmanlage.Alarmanlagen_Steuerung_Einblendung', ({ err, state }) => {
                                          	if (err){
                                          	   console.log('Error DP holen');
                                          	}else{
                                          		if (state.val) {
                                          			displayOffObj['2db1b208-cedd-41a7-9382-141fbf2a82ae']=false;
                                          		}else{
                                          			displayOffObj['2db1b208-cedd-41a7-9382-141fbf2a82ae']=true;
                                          		}
                                          		widgetsActualize();
                                          	}
                                          });  
                                          
                                          /* hier kann man mehrere ioBroker DPs abfragen */
                                          // window.Socket.subscribeState('0_userdata.0.DP.condition2', ....
                                          
                                          // window.Socket.subscribeState('0_userdata.0.DP.condition3', ....
                                          
                                          // !!! AB HIER NICHTS VERÄNDERN !!!
                                          
                                          docReady(function() {
                                          	widgetsActualize();
                                          	document.addEventListener("click", function (event) {
                                          		widgetsActualize();
                                             });
                                          });
                                          
                                          
                                          function widgetsActualize(){
                                          	containerDesktop();
                                          	for (let widget in displayOffObj){
                                          		if (displayOffObj[widget]){
                                          			widgetDisplayOff(widget,true); // Allgemeines
                                          		}else{
                                          			widgetDisplayOff(widget,false);
                                          		}				
                                          	}
                                          }
                                          
                                          function containerDesktop(){
                                          	let doc = document.getElementsByClassName('container desktop');
                                          	if (doc.length >0){
                                          		let widgetsPos = doc[0].getElementsByClassName('box');
                                          		//console.log('POS: ' +widgetsPos);
                                          		let arr = [];
                                          		for (let i=0;i<widgetsPos.length;i++){
                                          			let posObj = {};
                                          			posObj.rowStart=widgetsPos[i].style.gridRowStart;
                                          			posObj.colStart=widgetsPos[i].style.gridColumnStart;
                                          			posObj.rowEnd=widgetsPos[i].style.gridRowEnd;
                                          			posObj.colEnd=widgetsPos[i].style.gridColumnEnd;
                                          			let widgetCL = widgetsPos[i].getElementsByClassName('jarvis-widget')[0].classList;
                                          			for (let y=0;y<widgetCL.length;y++){
                                          				if (widgetCL[y].indexOf('jarvis-widget-') >=0 && widgetCL[y].length > 49){
                                          					posObj.widgetID = widgetCL[y].substr(14, widgetCL[y].length-14); // widgetID vom Widget wird übergeben */
                                          					break;
                                          				}
                                          			}
                                          			arr.push(posObj);
                                          		}
                                          		arrDeskWidgets = arr;
                                          		//pagePos(arr);
                                          	}else{
                                          		arrDeskWidgets = [];
                                          	}
                                          	
                                          }
                                          
                                          
                                          function pagePos(arrDesk){
                                          	
                                          	for (let i=0; i< arrDesk.length;i++){
                                          		let rowEnd =0;
                                          		let rowStart =parseInt(arrDesk[i].rowStart)-1;
                                          		if (arrDesk[i].rowEnd.indexOf('span')>=0){
                                          			rowEnd = parseInt(arrDesk[i].rowEnd.replace('span',''));
                                          		}
                                          		let colEnd =0;
                                          		let colStart =parseInt(arrDesk[i].colStart)-1;
                                          		if (arrDesk[i].colEnd.indexOf('span')>=0){
                                          			colEnd = parseInt(arrDesk[i].colEnd.replace('span',''));
                                          		}
                                          		for (let row = rowStart; row< rowStart+rowEnd;row++){ 
                                          			if (pagePosArr[row] == undefined){
                                          				pagePosArr.push(['','','','','','','','','','','','']);
                                          			}
                                          			for (let x = colStart; x< colStart+colEnd;x++){
                                          				if (pagePosArr[row][x] == ''){
                                          					pagePosArr[row][x]= arrDesk[i].widgetID;
                                          				}
                                          			}
                                          		}
                                          	}	
                                          }
                                          
                                          function widgetDisplayOff(widgetID,displayOff){
                                          	let doc = document.getElementsByClassName('container desktop');
                                          	if (doc.length >0){
                                          		let widgetsPos = doc[0].getElementsByClassName('box');
                                          		let usedOrder = 0;
                                          		for (let i=0; i<arrDeskWidgets.length;i++){
                                          			if (arrDeskWidgets[i].widgetID == widgetID){
                                          				usedOrder = i;
                                          				let widgetContainer = widgetsPos[usedOrder].getElementsByClassName('jarvis-widget-container');
                                          				if (displayOff){
                                          					widgetContainer[0].style.display='none';
                                          				}else{
                                          					widgetContainer[0].style.display='inherit';
                                          				}
                                          				break;
                                          			}
                                          		}
                                          	}
                                          	
                                          }
                                          
                                          
                                          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);
                                              }
                                          }  
                                          

                                          Bei weiteren Fragen dazu bitte auf den anderen Thread wechseln.
                                          https://forum.iobroker.net/topic/52228/howto-zusatz-programme-fuer-jarvis-v3

                                          M Offline
                                          M Offline
                                          muhlatte
                                          wrote on last edited by
                                          #792

                                          @mcu
                                          Ok mache ich dann. Leider hat die Änderung nicht funktioniert, in der Console wird

                                          Failed to load resource: net::ERR_SSL_PROTOCOL_ERROR
                                          

                                          78ac3c09-8754-41ed-a29a-023a06d2d47c-image.png

                                          angezeigt.

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          628

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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