Navigation

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

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

      @reutli
      Ja

      Ja. DP anlegen der die Gruppenfarbe drin hat. Den DP im Gerät zuordnen und in jarvis setzen.
      Script setzt dann bei Änderung von der Farbe die anderen gewünschten DPs mit der Farbe.

      1 Reply Last reply Reply Quote 0
      • R
        reutli @reutli last edited by reutli

        @reutli sagte in jarvis v3.1.x - just another remarkable vis:

        ->Feature Request erstellen

        Über Github, korrekt?

        done: https://github.com/Zefau/ioBroker.jarvis/issues/2421

        reutli created this issue in Zefau/ioBroker.jarvis

        open Gruppensteuerung von LightBody (Hue/RGB) und andere ermöglichen #2421

        1 Reply Last reply Reply Quote 1
        • X
          xdelta last edited by xdelta

          Hi,
          ich versuche in das stateHTML Widget einen iobroker Datenpunkt bzw. den Wert davon darzustellen, der aber nicht statisch ist, sich also ändert.

          Ich bin mir nicht sicher, ob ich auf dem Holzweg bin, aktuell versuche ich es wie folgt mit einem String Datenpunkt, der folgenden HTML Code beinhaltet:

          <html>
           <head>
            <body>
             <span id="testid"> Platzhalter Text .... </span>
            </body>
           </head>
          </html>
          

          In Jarvis JS habe ich folgenden JS Code um den aktuellen Inhalt eines anderen dp's zu ermitteln:

          const OBJID= "0_userdata.0.testdp";
          
          window.Socket.getState(OBJID, ({ err, state }) => {
             let stateValue = state.val;
             //console.log(stateValue );
             document.getElementById('testid').innerHTML = stateValue ;
          
          });
          

          Nun war mein Gedanke, dass ich so den Wert von stateValue mittels document.getElementById('testid').innerHTML in das <span> Element schreiben kann.

          Soweit die (meine) Theorie, denn das klappt nicht...

          | WARN | SOCKET | document.getElementById(...) is null TypeError: document.getElementById(...) is null
          

          Was ist falsch, bzw. wie mache ich das richtig?

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

            @xdelta Hier gibt es mehrere Probleme.

            • scripts wird schneller ausgeführt als der Seitenaufbau
              -> Gesetzt den Fall man würde direkt das HTML in jarvis im richtigen TAB aufrufen
              scripts hat den Wert mit getState schon geholt und wollte ihn setzen, das document war aber noch gar nicht geladen und die id "testid" war somit nicht erreichbar (-> Fehlermeldung document.getEl... null )

            • dies ist aber nicht immer der Fall man hat ja in jarvis mehrere TABs und somit nicht immer bei Start die HTML im Ladevorgang.
              -> das document würde in dem Fall auch keine id ="testid" kennen, da das HTML ja gar nicht geladen wurde. Die Elemente werden ja erst geladen, wenn auf sie zugegriffen wird. (-> Fehlermeldung)

            • grundsätzlich muss man solche Fehlermeldungen abfangen.

            • mit getState holt man sich nur einmal den Wert -> man muss subscribeState nutzen

            Daraus ergeben sich Abhängigkeiten

            • man muss warten bis das document geladen ist
            • man muss den Fehler abfangen
            • man muss prüfen, ob der Tab, der ist auf dem sich das StateHTML befindet
            /* eigenesHTML mit Wert füllen */
            
            
            
            const OBJID  = "0_userdata.0.jarvis.test.forumTestNumDP2";
            
            let owntabID = "7eb2a2cb-11df-454e-bebe-2dfae92fca89"; 
            
            
            window.Socket.subscribeState(OBJID, ({ err, state }) => {
               let stateValue = state.val;
               //console.log(stateValue );
              if(document.getElementById('testid')!= null){
               document.getElementById('testid').innerHTML = stateValue ;
            }
             
            });
            
            
            
            docReady(function() {
            	if (isConfig()){
            	}else{	
            		
            	}
            		
            	document.addEventListener("click", (event) => {
            		if (isConfig()){
            			
            		}else{
            			
            			let foundTab = false;
            			let tar = event.target;
            			let par = tar;
            			for(i=0;i<10;i++){
            				if(par.parentElement != '' ){
            					par = par.parentElement;
            					for (let j=0;j<par.classList.length;j++){
            						if(par.classList[j] == 'jarvis-tab-'+owntabID){
            							foundTab = true;
            							break;
            						}
            					}
            					if(foundTab){
            						console.log('Tab '+owntabID+ ' gefunden');
            						/* Wert setzen */
            						window.Socket.subscribeState(OBJID, ({ err, state }) => {
            							let stateValue = state.val;
            							if(document.getElementById('testid')!= null){
            								document.getElementById('testid').innerHTML = stateValue ;
            							}
            						});
            						break;
            					}
            				}else{
            					// console.log('Nicht das richtige Tab getroffen')
            					break;
            				}
            			}
            		}	
            	});
            });	
            
            
            
            
            
            
            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);
            	}
            }  
            
            
            X 1 Reply Last reply Reply Quote 2
            • X
              xdelta @MCU last edited by

              @mcu Wow! Funktioniert einwandfrei, fehlerfrei und exakt so wie gedacht/gewünscht!
              Wäre ich nur nie im Leben drauf gekommen und hätte es so hinbekommen - vor allem die docReady(function() ! Ich bin sprachlos!

              Vielen Dank!!! Das Script ist so eine top Basis für viele indiv. state.HTML Widget Ideen 🙂

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

                @xdelta Beispiel Skripte für unterschiedliche Fälle sind in der Doku.
                https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/besonderheiten-v3/scripts-3.1.x-pro

                51705104-7961-414f-89f2-6b4d6fbc9cc0-image.png

                X 1 Reply Last reply Reply Quote 1
                • X
                  xdelta @MCU last edited by

                  @mcu said in jarvis v3.1.x - just another remarkable vis:

                  @xdelta Beispiel Skripte für unterschiedliche Fälle sind in der Doku.
                  https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/besonderheiten-v3/scripts-3.1.x-pro

                  51705104-7961-414f-89f2-6b4d6fbc9cc0-image.png

                  Ich dachte wirklich, ich hätte dort schon alles gelesen, aber leider nicht genau diesen Teil gefunden, nachdem ich tagelang gesucht habe :

                  https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/besonderheiten-v3/scripts-3.1.x-pro/socket-befehle/getstate

                  Das ist erstklassig dokumentiert! Danke.

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

                    @xdelta
                    Für scripts sollte man direkt mit der Import-Variante arbeiten, da es sonst irgendwann unübersichtlich wird.
                    https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/besonderheiten-v3/scripts-3.1.x-pro#import-variante

                    X 1 Reply Last reply Reply Quote 1
                    • X
                      xdelta @MCU last edited by

                      @mcu said in jarvis v3.1.x - just another remarkable vis:

                      @xdelta
                      Für scripts sollte man direkt mit der Import-Variante arbeiten, da es sonst irgendwann unübersichtlich wird.
                      https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/besonderheiten-v3/scripts-3.1.x-pro#import-variante

                      Sehr guter Hinweise und gerade richtig, bevor sich bei mir in dem unübersichtlichen Script Editor von Jarvis Chaos ausbreitet 🙂

                      Ich merke mal wieder, "mehr lesen hilft mehr" 😉 thx again!

                      1 Reply Last reply Reply Quote 0
                      • A
                        Andreas Bosch @Zefau last edited by

                        @MCU ich bin mir sicher, dass ich das schon mal irgendwo gelesen (oder geträumt?) habe: Wie kann ich beim StateList Item statt des Popups zu einem anderen Tab springen?
                        Hintergrund: Bisher hatte ich auf dem Hauptdashboard den Stundenplan von Kind1. Jetzt haben wir aber ab dieser Woche 2 Schulkinder und die passen beide nicht auf die erste Seite.
                        Idee war einen Horizontal StateList für die aktuelle Stunde zu machen und beim Tap auf das Gerät wird dann statt des Popups eine neue Seite mit der JsonTabelle geladen.

                        Du weißt bestimmt, wo in der Doku ich das gelesen habe! - Oder war es ein github issue?

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

                          @andreas-bosch Meinst du das?
                          https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/besonderheiten-v3/scripts-3.1.x-pro/homekittile/hkt-als-sprungmarke

                          oder das ?
                          https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/besonderheiten-v3/scripts-3.1.x-pro/statelist/statelistitemclick

                          1 Reply Last reply Reply Quote 0
                          • L
                            Lines last edited by

                            Hallo alle,

                            bei uns läuft Jarvis 3.1.2 soweit gut, bis auf eine Kleinigkeit:
                            In einem IFrame lasse ich die folgende Seite im Jarvis-dark-Theme Layout darstellen.

                            https://haltestellenmonitor.vrr.de/?id=oqBgsOwQaP4gZz1WxK5fwg==#/monitor

                            Unglücklicherweise sind einige der Seitenelemente dort Transparent, wie z.B. das Datum der Aktualisierung. Die Schrift ist in schwarz, dies in Kombination mit dem dunkelgrauen Hintergrund ist nicht wirklich lesbar. Das Jarvis-Farblayout generell soll bleiben.

                            Daher:

                            Wie kann ich nur für ein iFrame eine Hintergrundfarbe setzen?

                            Gruß

                            Reiner

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

                              @lines Ohne besondere Einstellungen?
                              04bd4b9a-c82f-4148-bdc9-a653784f3315-image.png
                              Habe jetzt gesehen, der Text ist in schwarz.ok.

                              /* In Styles einfügen */
                              .jarvis-widget-e3848be5-d1ba-4990-a964-c0647d620661 iframe {
                              	background-color: orange;
                              }
                              
                              L 1 Reply Last reply Reply Quote 0
                              • L
                                Lines @MCU last edited by

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

                                Habe jetzt gesehen, der Text ist in schwarz.ok.

                                Merci.

                                Die Widget ID passe ich an.

                                So, aber jetzt die Frage mit der ich mich blamiere:
                                Wo gebe ich das ein?

                                Im "Body Stil" im "Layout" wird mir ein Fehler in der JSON Formatierung angezeigt...

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

                                  @lines Styles
                                  a976037b-db4c-4262-9b90-3c26df7bae07-image.png

                                  L 1 Reply Last reply Reply Quote 0
                                  • L
                                    Lines @MCU last edited by

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

                                    @lines Styles
                                    a976037b-db4c-4262-9b90-3c26df7bae07-image.png

                                    AHA!

                                    Danke mal wieder.

                                    @MCU: Ohne Dich und Deine Beiträge wäre ich hier schon oft aufgeschmissen gewesen! Daher: Vielen Dank!

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

                                      Hey,

                                      passend zu meiner Frage eben im anderen Threat. Gibt es eine möglichkeit den Rahmen eines Frames komplett auszublenden ?

                                      fe19b1dd-ddc4-4a3e-abff-955ed62d07a2-image.png

                                      SKB 1 Reply Last reply Reply Quote 0
                                      • SKB
                                        SKB Developer Most Active @Hohenbostler last edited by

                                        @hohenbostler Welcher Rahmen ist gemeint?

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

                                          @skb

                                          ist blöd zu markieren.

                                          Eigentlich der Rahmen der vom Widget kommt.

                                          f98169c3-4c45-4478-9829-8dfd75a498ca-image.png

                                          SKB M 2 Replies Last reply Reply Quote 0
                                          • SKB
                                            SKB Developer Most Active @Hohenbostler last edited by

                                            @hohenbostler Ich habe eigentlich gute Augen 🙂

                                            Aber, dort sehe ich deinen Hintergrund (in bunt) und leicht gräulichen. Aber einen Rand sehe ich nicht.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            553
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            jarvis material material ui materialdesign vis visualisierung visualization
                                            91
                                            1794
                                            560841
                                            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