Navigation

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

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

      @mcu

      Unbenannt.PNG

      Gestern hatte ich ja gefragt, ob ich den LastChangeBody von einem anderen Datenpunkt nehmen kann. Du meinstest, dass würde nur als Secondary-DP gehen, da für LastChangeBody das Binding fehlt.

      Mir ist dann eingefallen, dass es in der Anzeigevariante die Möglichkeit von Bindings gibt. Mit Hilfe habe ich es nun geschafft, einen Datenpunkt zu erstellen, der mir den LastChangeBody von einem ausgewählten Datenpunkt gibt. Ich dachte nun, es wäre dann eine Möglichkeit, wenn ich anstatt "an" dann den Inhalt vom Datenpunkt mit dem LastChange nehmen könnte.
      Dann hätte ich über Umwege das erreicht, was ich ursprünglich wollte.Ich weiß nur nicht genau, wie das Binding dazu aussehen müsste.

      M 1 Reply Last reply Reply Quote 0
      • M
        MCU @Dominik F. last edited by

        @dominik-f sagte in jarvis v3.0.0 - just another remarkable vis:

        Mit Hilfe habe ich es nun geschafft, einen Datenpunkt zu erstellen, der mir den LastChangeBody von einem ausgewählten Datenpunkt gibt

        Zeig mal bitte.

        Dominik F. 2 Replies Last reply Reply Quote 0
        • Dominik F.
          Dominik F. @MCU last edited by Dominik F.

          @mcu

          Unbenannt.PNG

          Unbenannt1.PNG

          Und den Inhalt des Datenpunktes würde ich gerne anstatt "an" oder "aus" anzeigen lassen

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

            @mcu Hi, danke für den Link. Hat leider nicht funktioniert. Habe die aktuelle Android WebView + Google Chrome installiert, aber die Anzeige ist weiterhin fehlerhaft. In Chrome wird aber alles ordnungsgemäß angezeigt. In FireOS ist die aktuelle Version von WebView mit 70.x hinterlegt.

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

              @nico-0 Erstmaliger Verbindungsaufbau?
              https://mcuiobroker.gitbook.io/jarvis-infos/jarvis/besonderheiten-v3/allgemein/verbindungsaufbau
              Cache im Fully gelöscht?
              Tablet neu gestartet?

              Nico 0 1 Reply Last reply Reply Quote 0
              • C
                cromagnon last edited by

                Bei den Charts kann man nur aus

                • Bar-Chart
                • Pie-Chart
                • Circle-Chart
                  auswählen.
                  Gibt es den Line Chart noch nicht?
                U 1 Reply Last reply Reply Quote 0
                • U
                  uwe72 @cromagnon last edited by uwe72

                  @MCU

                  Du hattest mal danach gefragt gehabt. Ich arbeite mit diesen Umrechenscripte zwischen dem XY-Farbmodus und dem CIE (Hue)-Farbmodus:

                  function convertXY2HSL(x,y){
                      var bri = 254;
                      let xy = {
                          x: x,
                          y: y
                      };
                  
                      let z = 1.0 - xy.x - xy.y;
                      let Y = bri / 255;
                      let X = (Y / xy.y) * xy.x;
                      let Z = (Y / xy.y) * z;
                      var r = X * 1.656492 - Y * 0.354851 - Z * 0.255038;
                      var g = -X * 0.707196 + Y * 1.655397 + Z * 0.036152;
                      var b =  X * 0.051713 - Y * 0.121364 + Z * 1.011530;
                  
                      r = r <= 0.0031308 ? 12.92 * r : (1.0 + 0.055) * Math.pow(r, (1.0 / 2.4)) - 0.055;
                      g = g <= 0.0031308 ? 12.92 * g : (1.0 + 0.055) * Math.pow(g, (1.0 / 2.4)) - 0.055;
                      b = b <= 0.0031308 ? 12.92 * b : (1.0 + 0.055) * Math.pow(b, (1.0 / 2.4)) - 0.055;
                  
                      var r_new = (r*255).toString();
                      var g_new = (g*255).toString();
                      var b_new = (b*255).toString();
                  
                      let red = parseInt(r_new) > 255 ? 255: parseInt(r_new);
                      let green = parseInt(g_new) > 255 ? 255: parseInt(g_new);
                      let blue = parseInt(b_new) > 255 ? 255: parseInt(b_new);
                  
                      red = Math.abs(red);
                      green = Math.abs(green);
                      blue = Math.abs(blue);
                      var
                          min = Math.min(r, g, b),
                          max = Math.max(r, g, b),
                          delta = max - min,
                          h, s, v = max;
                  
                      v = Math.floor(max / 255 * 100);
                      if ( max != 0 )
                          s = Math.floor(delta / max * 100);
                      else {
                          // black
                          return [0, 0, 0];
                      }
                  
                      if( r == max )
                          h = ( g - b ) / delta;         // between yellow & magenta
                      else if( g == max )
                          h = 2 + ( b - r ) / delta;     // between cyan & yellow
                      else
                          h = 4 + ( r - g ) / delta;     // between magenta & cyan
                  
                      h = Math.floor(h * 60);            // degrees
                      if( h < 0 ) h += 360;
                  
                      return [h, s, v];
                  }
                  
                  function convertHSL2XY(h,s) {
                    var l = 50;
                    // Must be fractions of 1
                    s /= 100;
                    l /= 100;
                  
                    let c = (1 - Math.abs(2 * l - 1)) * s,
                        x = c * (1 - Math.abs((h / 60) % 2 - 1)),
                        m = l - c/2,
                        r = 0,
                        g = 0,
                        b = 0;
                  
                    if (0 <= h && h < 60) {
                      r = c; g = x; b = 0;  
                    } else if (60 <= h && h < 120) {
                      r = x; g = c; b = 0;
                    } else if (120 <= h && h < 180) {
                      r = 0; g = c; b = x;
                    } else if (180 <= h && h < 240) {
                      r = 0; g = x; b = c;
                    } else if (240 <= h && h < 300) {
                      r = x; g = 0; b = c;
                    } else if (300 <= h && h < 360) {
                      r = c; g = 0; b = x;
                    }
                    r = Math.round((r + m) * 255);
                    g = Math.round((g + m) * 255);
                    b = Math.round((b + m) * 255);
                  
                    let red = r;
                    let green = g;
                    let blue = b;
                  
                  if (red > 0.04045) red = Math.pow((red + 0.055) / (1.0 + 0.055), 2.4)
                    else red = red / 12.92;
                  
                    if (green > 0.04045) green = Math.pow((green + 0.055) / (1.0 + 0.055), 2.4)
                    else green = green / 12.92;
                  
                    if (blue > 0.04045) blue = Math.pow((blue + 0.055) / (1.0 + 0.055), 2.4)
                    else blue = blue / 12.92;
                  
                    const X = red * 0.664511 + green * 0.154324 + blue * 0.162028;
                    const Y = red * 0.283881 + green * 0.668433 + blue * 0.047685;
                    const Z = red * 0.000088 + green * 0.07231 + blue * 0.986039;
                    
                    const x2 = X / (X + Y + Z);
                    const y2 = Y / (X + Y + Z);
                    
                    return new Array(x2, y2);
                  }
                  

                  Bin insgesamt nun recht zufrieden mit der Farbsteuerung.

                  Aus Jarvis-Sicht wäre der Bugfix noch wichtig:
                  https://github.com/Zefau/ioBroker.jarvis/issues/1434

                  Und richtig cool wäre es noch im Popup Reiter (Tabs) haben zu haben, so dann man sauber trennen könnte zwischen dem Farbschema RGB und Weiß, analog den nativen Apps. Feature-Request habe ich erstellt.

                  1ba44d8f-c14c-4751-a9ef-e3f7f641a046-image.png

                  810bf4a8-2b3a-411f-8b12-ff4b7df1bfa6-image.png

                  RkcCorian created this issue in Zefau/ioBroker.jarvis

                  closed Binding are not up-to-date after "some time" #1434

                  1 Reply Last reply Reply Quote 1
                  • Dominik F.
                    Dominik F. @MCU last edited by

                    @mcu

                    Und hast du eine Idee zu dem Binding in der Anzeigevariante?

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      MCU @Dominik F. last edited by MCU

                      @dominik-f Nein. Momentan nur Secondary Wert unter dem Schalter.

                      Dominik F. 1 Reply Last reply Reply Quote 0
                      • Dominik F.
                        Dominik F. @MCU last edited by

                        @mcu

                        Dann werde ich das wohl als seperaten State machen müssen

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          MCU @Dominik F. last edited by

                          @dominik-f https://mcuiobroker.gitbook.io/jarvis-infos/jarvis/besonderheiten-v3/styles/statelist-1/statewert-ersetzen

                          Dominik F. 1 Reply Last reply Reply Quote 0
                          • Nico 0
                            Nico 0 @MCU last edited by Nico 0

                            @mcu Hi, vielen Dank für die weiteren Tipps. Mittlerweile konnte ich das Problem lösen: Nach gefühlt hunderten Updates von FireOS wurde schlussendlich auch WebView auf Version 98.x angehoben, wodurch sich das Problem gelöst hat. Ein manuelles Installieren von Android WebView und Chrome hat hier nicht zum Erfolg geführt, da Amazon in FireOS ihre eigene WebView-Version nutzen (com.amazon.webview.chromium) und ein manueller Wechsel von WebView nicht möglich ist.

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

                              @nico-0 Hab es in die Doku aufgenommen. Danke.

                              Flo XXX 1 Reply Last reply Reply Quote 0
                              • Flo XXX
                                Flo XXX @MCU last edited by

                                Hallo,

                                Ich hätte mal eine Frage bezüglich StateList Horizontal....
                                Am MacBook bzw am iphone werden die Icons unter die darunter liegende Schrift zentriert angezeigt... so wie es auch unter V2 war... nur bei meinem Ipad ist das leider nicht (mehr) der Fall... die Icons sind zu weit links... hat noch jemand dieses Problem oder lieget es an meinem ipad (ist nicht mehr das neueste muss ich gestehen)

                                Vielen Dank!

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

                                  @MCU

                                  https://mcuiobroker.gitbook.io/jarvis-infos/jarvis/v3-fuer-einsteiger/konfigurations-tabs/geraete/geraete-dp#dropdownaction

                                  Kriegt man die Liste, welche in der Dropdown angezeigt werden auch dynamisch hin, per binding.

                                  Möchte in meinem Popup wo ich die RGB-Farbe steuere eine Dropdown aufnehmen wo ich alle für die Lampe hinterlegten Szenen zur Auswahl anbiete. Die Liste möchte ich generisch in JS erzeugen und über binding die Dropdown befüllen

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

                                    @uwe72 Nein. Schau mal in die Doku vielleicht hilft dir das setDropDown.

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

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

                                      setDropDown

                                      Kurze Frage: Irgendwann habe ich mal gesehen, dass man auch per JavaScript, die Jarvis-Datenpunkte (d.h. Geräte, Layout, ...) komplett verändern kann? Ggf. ich in Jarvis nur "Platzhalter" definieren und diese mit JS verändern.

                                      Wenn gar nichts geht muss ich eben die Szenen von Hand in Jarvis eintragen - statisch.

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

                                        @uwe72 Also mit Platzhaltern geht sowas nicht, man kann nur direkt ersetzen oder hinzufügen. Ist quasi so, als wenn jarvis das selbst machen würde.

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

                                          @mcu

                                          Aber ich könnte doch in Jarvis so was hinterlegen:

                                          {
                                            "0": "Scene0",
                                            "1": "Scene1",
                                            "2": "Scene2"
                                          }
                                          

                                          Mit JavaScript würde ich dann z.B. "Scene0" mit "Tropisches Licht" ersetzen, "Scene1" mit "Kaltweiss 80%",...

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

                                            @uwe72 Du meinst in dem DP devices? Ja dann würde alle Scene0 ersetzt mit dem Neuen Wert, und dann beim nächsten Mal?

                                            U 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            903
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            jarvis material material ui materialdesign vis visualisierung visualization
                                            252
                                            4481
                                            2396598
                                            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