Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. jarvis v3.2.x - just another remarkable vis

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    jarvis v3.2.x - just another remarkable vis

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

      Doppelt Post Overload

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

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

        1 Reply Last reply Reply Quote 1
        • M
          muhlatte last edited by 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! 🤝 💋
          --> 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 Reply Quote 0
          • M
            MCU @muhlatte last edited by

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

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

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

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

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

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

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

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

                        @MCU
                        WidgetAusblendenScript.js

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

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

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

                              @muhlatte Du hast den Inhalt der Datei einfach nur geändert und gespeichert?
                              War der Fehler vorher auch?
                              Hast du denn https?
                              7cdd131f-f9f6-497f-bae4-084b99ef9709-image.png
                              Nicht einschalten, wenn du es nicht hattest -> http://... verwenden
                              Was steht im jarvis-scripts Verzeichnis?
                              956d2afc-e546-4e9a-8f37-96b472e24651-image.png

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

                                @mcu sagte in jarvis v3.2.x - just another remarkable vis:

                                @hohenbostler
                                Im Standard -> Nein.
                                Mit Zusatzprogrammen -> zurzeit Nein.
                                Grundsätzlich -> ja

                                Bitte den Hintergrund erklären.

                                Mh naja ich würde halt immer wieder gerne das jarvis automatisch die Tabs wechselt in einem gewissen intervall. Weiss nicht was ich da als Hintergrund angeben soll.

                                Mein Tablet hängt an der Wand und soll halt alle ( naja nicht alle nur ausgewählte ) Tabs immer wieder durchlaufen.

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

                                  @hohenbostler Also man muss ein Programm schreiben, in dem ein Array definiert ist und eine Zeit angegeben wird, wie lange ein Tab stehen bleiben soll. Ein weiteres Array für die devices, damit nur bestimmte Devices auswählen kann.
                                  Und dann lässt man die Schleife laufen für die einzelnen TabId' s.

                                  jarvis.0.clients.*.setTabId für alle aktiven Devices und definieren Devices setzen

                                  Dann muss darauf achten, dass bei Berührung vom Tablet / Gerät / Device ein Pause der Schleife von einer definierten Zeit 1min gestartet wird.

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

                                    @mcu
                                    Ja einfach nur auf dem Raspi den Inhalt überschrieben der js Datei überschrieben, dann abgespeichert,Cache gelöscht und neu geladen. Fehler war aber nach nochmaligem Testen des alten scripts auch vorher schon da.

                                    HTTPs habe ich nicht aktiviert.

                                    Kannst du mir sagen wo ich die Benutzerdaten finde? Da war ich schon bei der Anleitung drüber gestolpert. Eine schwere Geburt bei mir, sorry!

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

                                      @muhlatte Erstmal nur mit http:// in scripts arbeiten.

                                      Kannst du mir sagen wo ich die Benutzerdaten finde?

                                      Welche, hast du in Jarvis in der Instanz was eingestellt?
                                      Zeig mal Deine Web-Einstellugnen -> web.0
                                      Und die Einstellungen von der Jarvis-Instanz jarvis.0

                                      Eine schwere Geburt bei mir, sorry!

                                      Kein Problem, darin erkenne ich immer, was ich in der Doku noch verbessern kann und muss. Also gerne.

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

                                        @mcu
                                        fed5ef7d-6c12-47c2-abea-3d5679122dde-image.png

                                        1ccf4e08-c260-48fc-ad19-69af39f98a88-image.png

                                        was ich nicht finde ist diese Darstellung/das Menü
                                        3e176c71-1156-4e17-b845-17fab15cf699-image.png

                                        Dank dir!

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

                                          @muhlatte Dateien / Files
                                          0e0dc649-277f-4842-a6f1-e1a7d52d28ba-image.png

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

                                            @MCU
                                            lol da siehste mal, nutze seit 3 Jahren iobroker und habe mich noch nie dort hin verirrt 🙂

                                            e2e0046b-3633-4bf2-860d-f1be3cde7b8d-image.png

                                            Habe gemerkt dass das skript zu klein war -> iob upload jarvis. Jetzt ist das aktuelle da drin jedoch funktioniert es immer noch nicht mit demselben Fehler in der Console

                                            4b693463-03b9-4d47-bed1-5e600cc4ed24-image.png ![0_1740604616201_e2f2ef4b-c7b1-4761-99f7-37f4cfaa3c7c-image.png](Uploading 100%)

                                            M 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            842
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            43
                                            879
                                            166064
                                            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