Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [gelöst] Widget mit Farbänderung??

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Widget mit Farbänderung??

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      PrinzEisenherz1 last edited by

      Hi zusammen!

      Gibt es bei VIS ein Widget was durch unterschiedliche Werte in einer Variable (Datenpunkt), unterschiedliche Farben annimmt?

      Also eins das auf eine HM-Variable zugreift, mir den Wert der Variable anzeigt und wenn z.B. deren Wert unter 180 liegt dann soll das Widget grün sein, wenn es zwischen 180 und 200 liegt dann gelb und wenn es über 200 ist dann rot!

      Geht sowas? und wenn ja, wie?

      Gruß

      Johnny

      1 Reply Last reply Reply Quote 0
      • K
        krissi last edited by

        Das ist eine gute Frage! Das wüsste ich auch gerne 🙂

        1 Reply Last reply Reply Quote 0
        • P
          pix last edited by

          Hallo,

          gibt es bisher nicht (ausser in gewisserweise Gauge).

          Geht nur zusammen mit Javascript.

          createState('Farbe.Datenpunkt', {name: 'Farbe Datenpunkt für VIS'};
          
          var idWert = 'hm-rpc.0.123456.TEMPERATURE';
          
          on (id: idWert, function (data) {
              var farbe;
              if (data.state.val <= 0) farbe = 'red';
              if ((data.state.val > 0) && (data.state.val <18)) farbe = 'yellow';
              if (data.state.val >= 18) farbe = 'green';
              setState('Farbe.Datenpunkt', farbe);
          });
          
          

          Wenn der Datenpunkt (hier Temperatur) sich ändert, wird der Wert geprüft und eine weitere Variable (hier 'javascript.0.Farbe.Datenpunkt') mit dem entsprechenden Farbcode gefüllt (geht auch RGB oder RGBA).

          Dann in VIS, unter der Einstellungen des Widgets, in das Feld für die Farbe {javascript.0.Farbe.Datenpunkt} eintragen in geschweiften Klammern.

          Fertig.

          Gruß

          Pix

          EDIT: Im Skript sind einige kleine Fehler (es fehlen in der Subscription die geschweiften Klammern um den String "id: idWert" und eine runde schließende Klammer in der ersten Zeile vor dem Semikolon). Ich habe es hier im Post nicht korrigiert. Die korrigierte Version findet sich http://forum.iobroker.com/viewtopic.php?f=30&t=2382&p=20930&sid=12705f1e9a06b1c6377ffc51981e942f&sid=12705f1e9a06b1c6377ffc51981e942f#p20930

          1 Reply Last reply Reply Quote 0
          • P
            Pman last edited by

            vis-justGage enthält so etwas.

            1 Reply Last reply Reply Quote 0
            • P
              PrinzEisenherz1 last edited by

              @pix:

              Hallo,

              gibt es bisher nicht (ausser in gewisserweise Gauge).

              Geht nur zusammen mit Javascript.

              createState('Farbe.Datenpunkt', {name: 'Farbe Datenpunkt für VIS'};
              
              var idWert = 'hm-rpc.0.123456.TEMPERATURE';
              
              on (id: idWert, function (data) {
                  var farbe;
                  if (data.state.val <= 0) farbe = 'red';
                  if ((data.state.val > 0) && (data.state.val <18)) farbe = 'yellow';
                  if (data.state.val >= 18) farbe = 'green';
                  setState('Farbe.Datenpunkt', farbe);
              });
              
              

              Wenn der Datenpunkt (hier Temperatur) sich ändert, wird der Wert geprüft und eine weitere Variable (hier 'javascript.0.Farbe.Datenpunkt') mit dem entsprechenden Farbcode gefüllt (geht auch RGB oder RGBA).

              Dann in VIS, unter der Einstellungen des Widgets, in das Feld für die Farbe {javascript.0.Farbe.Datenpunkt} eintragen in geschweiften Klammern.

              Fertig.

              Gruß

              Pix `

              Erstmal Danke für Deinen Vorschlag aber leider geht der nicht!

              Irgendwie ist da in dem Script n Fehler!

              Mit meinem Datenpunkt sieht mein Script wie folgt aus:

              createState('Farbe.Datenpunkt', {name: 'Farbe Datenpunkt für VIS'};
              
              var idWert = '"hm-rega.0.22085"/*Energiekosten im Jahresdurchschnitt*/';
              
              on(id: idWert, function (data) {
                  var farbe;
                  if (data.state.val <= 182) farbe = 'green';
                  if ((data.state.val > 182) && (data.state.val <210)) farbe = 'yellow';
                  if (data.state.val >= 210) farbe = 'red';
                  setState('Farbe.Datenpunkt', farbe);
              });
              
              

              Im Editor sieht dann das so aus
              1058_screenshot-2.png

              Und im Widget so:
              1058_screenshot-3.png

              Im Log steht dann folgendes:
              1058_screenshot-4.png

              Leide kenne ich mich nicht mit java aus!

              Kannst Du mir vielleicht da weiterhelfen?

              Johnny

              1 Reply Last reply Reply Quote 0
              • P
                pix last edited by

                Hallo,

                tut mir leid, ich habe das Skript schnell im Forum und nicht im Skripteditor geschrieben und nicht geprüft. Da haben sich einige Fehler eingeschlichen, ich habe geschweifte Klammern vergessen. Hier nun die korrigierte Version mit deinen Daten:

                createState('Farbe.Datenpunkt', {name: 'Farbe Datenpunkt für VIS'});
                
                var idWert ="hm-rega.0.22085"/*Energiekosten im Jahresdurchschnitt*/;
                
                on({id: idWert}, function (data) {
                    var farbe;
                    if (data.state.val <= 182) farbe = 'green';
                    if ((data.state.val > 182) && (data.state.val <210)) farbe = 'yellow';
                    if (data.state.val >= 210) farbe = 'red';
                    setState('Farbe.Datenpunkt', farbe);
                });
                

                Probier mal, ob es geht. Wenn du noch mehr Farbbereiche möchtest, kannst du die leicht einfügen oder fragen.

                Gruß

                Pix

                1 Reply Last reply Reply Quote 0
                • P
                  PrinzEisenherz1 last edited by

                  Perfekt! Jetzt hat es geklappt!

                  Tausend Dank!

                  Johnny

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  448
                  Online

                  31.8k
                  Users

                  80.0k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  1844
                  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