Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. [Erledigt] Text farbig in Wertebereichen darstellen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    21
    1
    939

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

[Erledigt] Text farbig in Wertebereichen darstellen

Geplant Angeheftet Gesperrt Verschoben Visualisierung
29 Beiträge 4 Kommentatoren 2.7k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Crazy32C Offline
    Crazy32C Offline
    Crazy32
    schrieb am zuletzt editiert von Crazy32
    #1

    Moin allerseits. Kurze Frage, wie kann ich den Batteriestand meines Aqara-Sensors farbig in bestimmten Bereichen anzeigen lassen? Ich dachte da an grün im Bereich von 10-100% und rot im Bereich von 1-9% oder so. Mit dem basic ValueList Html-Style Widget kann man ja bestimmte Werte einfärben, aber keinen Bereich.

    LG,
    Crazy

    C 1 Antwort Letzte Antwort
    0
    • Crazy32C Crazy32

      Moin allerseits. Kurze Frage, wie kann ich den Batteriestand meines Aqara-Sensors farbig in bestimmten Bereichen anzeigen lassen? Ich dachte da an grün im Bereich von 10-100% und rot im Bereich von 1-9% oder so. Mit dem basic ValueList Html-Style Widget kann man ja bestimmte Werte einfärben, aber keinen Bereich.

      LG,
      Crazy

      C Offline
      C Offline
      Chrunchy
      schrieb am zuletzt editiert von
      #2

      @crazy32
      Das von dir gesuchte Stichwort ist "binding".
      Hier mal ein Beispiel, welches mir die Farbe in Abhängigkeit der Ventilöffnung eine Heizkörper-Thermostats ändert:

      {v:hm-rpc.2.xxx.1.LEVEL;v < 1 ? "" :: v < 30 ? "#4CAF50" :: v < 70 ? "#FFEB3B" :: "#F44336"}
      

      Das ganze steht bei mir beim Widget unter Farbe.
      v ist der Datenpunkt, der den Wert liefert. Danach kommen die Abfragen und die daraus resultierende Wertgebung für die Farbe.

      Gruß Chrunchy

      Crazy32C 1 Antwort Letzte Antwort
      1
      • C Chrunchy

        @crazy32
        Das von dir gesuchte Stichwort ist "binding".
        Hier mal ein Beispiel, welches mir die Farbe in Abhängigkeit der Ventilöffnung eine Heizkörper-Thermostats ändert:

        {v:hm-rpc.2.xxx.1.LEVEL;v < 1 ? "" :: v < 30 ? "#4CAF50" :: v < 70 ? "#FFEB3B" :: "#F44336"}
        

        Das ganze steht bei mir beim Widget unter Farbe.
        v ist der Datenpunkt, der den Wert liefert. Danach kommen die Abfragen und die daraus resultierende Wertgebung für die Farbe.

        Crazy32C Offline
        Crazy32C Offline
        Crazy32
        schrieb am zuletzt editiert von
        #3

        @chrunchy sagte in Text farbig in Wertebereichen darstellen:

        @crazy32
        Das von dir gesuchte Stichwort ist "binding".
        Hier mal ein Beispiel, welches mir die Farbe in Abhängigkeit der Ventilöffnung eine Heizkörper-Thermostats ändert:

        {v:hm-rpc.2.xxx.1.LEVEL;v < 1 ? "" :: v < 30 ? "#4CAF50" :: v < 70 ? "#FFEB3B" :: "#F44336"}
        

        Das ganze steht bei mir beim Widget unter Farbe.
        v ist der Datenpunkt, der den Wert liefert. Danach kommen die Abfragen und die daraus resultierende Wertgebung für die Farbe.

        Ich habe mit solchen Scripten noch nichts zu tun gehabt. Aber ich habe es mal versucht und es kam folgendes raus:

        {v: deconz.0.Sensors.8.battery;v < 10 ? "#fa0000" :: "#00f019"}
        

        Sah für mich gut aus, funktioniert aber nicht. Der Text ist immer rot, egal welchen Testtext ich eingegeben habe. Für mich steht da: Wenn der Datenpunkt unter Wert 10 ist, dann wird der Text in der Farbe #fa0000 (rot) dargestellt, ansonsten in der Farbe #00f019 (grün)

        Dann habe ich noch das hier ausprobiert, mit dem gleichen Ergebnis, der Text ist immer rot:

        {v: deconz.0.Sensors.8.battery;v < 10 ? "#fa0000" :: v < 100 ? "#00f019"}
        

        Für mich steht da: Wenn der Datenpunkt unter Wert 10 ist, dann wird der Text in der Farbe #fa0000 (rot) dargestellt, wenn der Wert unter 100 ist, in der Farbe #00f019 (grün)

        Ich fürchte das ich da einen Denkfehler drin habe...

        SBorgS 1 Antwort Letzte Antwort
        0
        • Crazy32C Crazy32

          @chrunchy sagte in Text farbig in Wertebereichen darstellen:

          @crazy32
          Das von dir gesuchte Stichwort ist "binding".
          Hier mal ein Beispiel, welches mir die Farbe in Abhängigkeit der Ventilöffnung eine Heizkörper-Thermostats ändert:

          {v:hm-rpc.2.xxx.1.LEVEL;v < 1 ? "" :: v < 30 ? "#4CAF50" :: v < 70 ? "#FFEB3B" :: "#F44336"}
          

          Das ganze steht bei mir beim Widget unter Farbe.
          v ist der Datenpunkt, der den Wert liefert. Danach kommen die Abfragen und die daraus resultierende Wertgebung für die Farbe.

          Ich habe mit solchen Scripten noch nichts zu tun gehabt. Aber ich habe es mal versucht und es kam folgendes raus:

          {v: deconz.0.Sensors.8.battery;v < 10 ? "#fa0000" :: "#00f019"}
          

          Sah für mich gut aus, funktioniert aber nicht. Der Text ist immer rot, egal welchen Testtext ich eingegeben habe. Für mich steht da: Wenn der Datenpunkt unter Wert 10 ist, dann wird der Text in der Farbe #fa0000 (rot) dargestellt, ansonsten in der Farbe #00f019 (grün)

          Dann habe ich noch das hier ausprobiert, mit dem gleichen Ergebnis, der Text ist immer rot:

          {v: deconz.0.Sensors.8.battery;v < 10 ? "#fa0000" :: v < 100 ? "#00f019"}
          

          Für mich steht da: Wenn der Datenpunkt unter Wert 10 ist, dann wird der Text in der Farbe #fa0000 (rot) dargestellt, wenn der Wert unter 100 ist, in der Farbe #00f019 (grün)

          Ich fürchte das ich da einen Denkfehler drin habe...

          SBorgS Offline
          SBorgS Offline
          SBorg
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #4

          @crazy32 Bindings funktionieren nicht im VIS-Editor, nur in der VIS-Runtime.
          Er nimmt im Editor einfach den ersten Farbwert des Bindings den er finden kann unabhängig vom Wert ;)

          LG SBorg ( SBorg auf GitHub)
          Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

          1 Antwort Letzte Antwort
          1
          • Crazy32C Offline
            Crazy32C Offline
            Crazy32
            schrieb am zuletzt editiert von
            #5

            Ok. In der Runtime ist der Wert aber schwarz. Sollte aber grün sein. Der Batteriewert liegt aktuell bei 78%. Ist evtl. doch noch ein Fehler drin?

            SBorgS 1 Antwort Letzte Antwort
            0
            • Crazy32C Crazy32

              Ok. In der Runtime ist der Wert aber schwarz. Sollte aber grün sein. Der Batteriewert liegt aktuell bei 78%. Ist evtl. doch noch ein Fehler drin?

              SBorgS Offline
              SBorgS Offline
              SBorg
              Forum Testing Most Active
              schrieb am zuletzt editiert von
              #6

              @crazy32 sagte in Text farbig in Wertebereichen darstellen:

              Ok. In der Runtime ist der Wert aber schwarz.

              Kommt auf die "Version" deines Bindings (falsche Leerzeichen, Syntax, etc.) an, dass eine ist zB. völlig falsch und wird ignoriert = Farbe schwarz
              Ferner werden alle Werte als String gelesen, da kann ein Vergleich als Number funktionieren, muss aber nicht...
              Um von deinem Eingangspost auszugehen:

              {v:deconz.0.Sensors.8.battery; parseInt(v)<10 ? "#fa0000" : "#00f019"} 
              

              sollte in der Runtime unter 10% rot ergeben, sonst halt grün :)

              LG SBorg ( SBorg auf GitHub)
              Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

              Crazy32C 1 Antwort Letzte Antwort
              1
              • SBorgS SBorg

                @crazy32 sagte in Text farbig in Wertebereichen darstellen:

                Ok. In der Runtime ist der Wert aber schwarz.

                Kommt auf die "Version" deines Bindings (falsche Leerzeichen, Syntax, etc.) an, dass eine ist zB. völlig falsch und wird ignoriert = Farbe schwarz
                Ferner werden alle Werte als String gelesen, da kann ein Vergleich als Number funktionieren, muss aber nicht...
                Um von deinem Eingangspost auszugehen:

                {v:deconz.0.Sensors.8.battery; parseInt(v)<10 ? "#fa0000" : "#00f019"} 
                

                sollte in der Runtime unter 10% rot ergeben, sonst halt grün :)

                Crazy32C Offline
                Crazy32C Offline
                Crazy32
                schrieb am zuletzt editiert von
                #7

                @sborg sagte in Text farbig in Wertebereichen darstellen:

                {v:deconz.0.Sensors.8.battery; parseInt(v)<10 ? "#fa0000" : "#00f019"}

                Leider Nein :-(

                Screenshot 2021-02-09 124401.png

                SBorgS OliverIOO 2 Antworten Letzte Antwort
                0
                • Crazy32C Crazy32

                  @sborg sagte in Text farbig in Wertebereichen darstellen:

                  {v:deconz.0.Sensors.8.battery; parseInt(v)<10 ? "#fa0000" : "#00f019"}

                  Leider Nein :-(

                  Screenshot 2021-02-09 124401.png

                  SBorgS Offline
                  SBorgS Offline
                  SBorg
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #8

                  @crazy32 Das ist jetzt aber kein Problem vom Binding mehr ;)

                  Nimm mal testweise ein Standard-HTML-Widget. Dort fügst du unter dem HTML-Code einfach das Binding ein.
                  Nun sollte in der Runtime #00f019 an der Stelle angezeigt werden --> dann funktioniert das Binding schon mal.
                  Jetzt kannst du testweise das Binding mal bei der Textfarbe eintragen --> dann sollte der Text nun grün sein

                  LG SBorg ( SBorg auf GitHub)
                  Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                  Crazy32C 1 Antwort Letzte Antwort
                  1
                  • Crazy32C Crazy32

                    @sborg sagte in Text farbig in Wertebereichen darstellen:

                    {v:deconz.0.Sensors.8.battery; parseInt(v)<10 ? "#fa0000" : "#00f019"}

                    Leider Nein :-(

                    Screenshot 2021-02-09 124401.png

                    OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    schrieb am zuletzt editiert von OliverIO
                    #9

                    @crazy32

                    sind da immer noch 2 Doppelpunkte?
                    Es darf da nur ein Doppelpunkt stehen und man muss IMMER den wahr und den falschanteil mit angeben

                    {v: deconz.0.Sensors.8.battery;v < 10 ? "#fa0000" :: v < 100 ? "#00f019"}
                    

                    Zur Erklärung. Das ist ein sogenannter ternäre Operation

                    (prüfung)?wenn wahr:wenn falsch

                    Für 2 Bereiche reicht die einfache Form

                    {v: deconz.0.Sensors.8.battery;v<10?"#fa0000":"#00f019"}
                    

                    Der Falschanteil deckt ja bereits den Wertebereich >10 ab.
                    Bei 3 Bereichen müsste man verschachteln (bsp 0-9,10-89,90-100

                    {v: deconz.0.Sensors.8.battery;(v<10)?"red":(v>9 && v<90)?"yellow":"green"}
                    

                    Zur Erhöhung der Lesbarkeit mache ich um die Prüfungen gern noch eine Klammer

                    https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

                    Meine Adapter und Widgets
                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                    Links im Profil

                    Crazy32C 2 Antworten Letzte Antwort
                    1
                    • SBorgS SBorg

                      @crazy32 Das ist jetzt aber kein Problem vom Binding mehr ;)

                      Nimm mal testweise ein Standard-HTML-Widget. Dort fügst du unter dem HTML-Code einfach das Binding ein.
                      Nun sollte in der Runtime #00f019 an der Stelle angezeigt werden --> dann funktioniert das Binding schon mal.
                      Jetzt kannst du testweise das Binding mal bei der Textfarbe eintragen --> dann sollte der Text nun grün sein

                      Crazy32C Offline
                      Crazy32C Offline
                      Crazy32
                      schrieb am zuletzt editiert von
                      #10

                      @sborg sagte in Text farbig in Wertebereichen darstellen:

                      @crazy32 Das ist jetzt aber kein Problem vom Binding mehr ;)

                      Nimm mal testweise ein Standard-HTML-Widget. Dort fügst du unter dem HTML-Code einfach das Binding ein.
                      Nun sollte in der Runtime #00f019 an der Stelle angezeigt werden --> dann funktioniert das Binding schon mal.

                      Das funktioniert.

                      Jetzt kannst du testweise das Binding mal bei der Textfarbe eintragen --> dann sollte der Text nun grün sein

                      Funktioniert auch.

                      1 Antwort Letzte Antwort
                      0
                      • OliverIOO OliverIO

                        @crazy32

                        sind da immer noch 2 Doppelpunkte?
                        Es darf da nur ein Doppelpunkt stehen und man muss IMMER den wahr und den falschanteil mit angeben

                        {v: deconz.0.Sensors.8.battery;v < 10 ? "#fa0000" :: v < 100 ? "#00f019"}
                        

                        Zur Erklärung. Das ist ein sogenannter ternäre Operation

                        (prüfung)?wenn wahr:wenn falsch

                        Für 2 Bereiche reicht die einfache Form

                        {v: deconz.0.Sensors.8.battery;v<10?"#fa0000":"#00f019"}
                        

                        Der Falschanteil deckt ja bereits den Wertebereich >10 ab.
                        Bei 3 Bereichen müsste man verschachteln (bsp 0-9,10-89,90-100

                        {v: deconz.0.Sensors.8.battery;(v<10)?"red":(v>9 && v<90)?"yellow":"green"}
                        

                        Zur Erhöhung der Lesbarkeit mache ich um die Prüfungen gern noch eine Klammer

                        https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

                        Crazy32C Offline
                        Crazy32C Offline
                        Crazy32
                        schrieb am zuletzt editiert von
                        #11

                        @oliverio sagte in Text farbig in Wertebereichen darstellen:

                        @crazy32

                        sind da immer noch 2 Doppelpunkte?
                        Es darf da nur ein Doppelpunkt stehen und man muss IMMER den wahr und den falschanteil mit angeben

                        {v: deconz.0.Sensors.8.battery;v < 10 ? "#fa0000" :: v < 100 ? "#00f019"}
                        

                        Habe ich soweit verstanden, glaube ich. Nichtdestotrotz funktioniert es auch mit Deinem Code nicht. Nutze ich das falsche Widget? Ich habe das basic - string dafür genommen.

                        OliverIOO 1 Antwort Letzte Antwort
                        0
                        • Crazy32C Crazy32

                          @oliverio sagte in Text farbig in Wertebereichen darstellen:

                          @crazy32

                          sind da immer noch 2 Doppelpunkte?
                          Es darf da nur ein Doppelpunkt stehen und man muss IMMER den wahr und den falschanteil mit angeben

                          {v: deconz.0.Sensors.8.battery;v < 10 ? "#fa0000" :: v < 100 ? "#00f019"}
                          

                          Habe ich soweit verstanden, glaube ich. Nichtdestotrotz funktioniert es auch mit Deinem Code nicht. Nutze ich das falsche Widget? Ich habe das basic - string dafür genommen.

                          OliverIOO Offline
                          OliverIOO Offline
                          OliverIO
                          schrieb am zuletzt editiert von
                          #12

                          @crazy32 sagte in Text farbig in Wertebereichen darstellen:

                          @oliverio sagte in Text farbig in Wertebereichen darstellen:

                          @crazy32

                          sind da immer noch 2 Doppelpunkte?
                          Es darf da nur ein Doppelpunkt stehen und man muss IMMER den wahr und den falschanteil mit angeben

                          {v: deconz.0.Sensors.8.battery;v < 10 ? "#fa0000" :: v < 100 ? "#00f019"}
                          

                          Habe ich soweit verstanden, glaube ich. Nichtdestotrotz funktioniert es auch mit Deinem Code nicht. Nutze ich das falsche Widget? Ich habe das basic - string dafür genommen.

                          hab gesehen, das bei den 2 Bereichen noch ein Strichpunkt gefehlt hat

                          Meine Adapter und Widgets
                          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                          Links im Profil

                          1 Antwort Letzte Antwort
                          1
                          • OliverIOO OliverIO

                            @crazy32

                            sind da immer noch 2 Doppelpunkte?
                            Es darf da nur ein Doppelpunkt stehen und man muss IMMER den wahr und den falschanteil mit angeben

                            {v: deconz.0.Sensors.8.battery;v < 10 ? "#fa0000" :: v < 100 ? "#00f019"}
                            

                            Zur Erklärung. Das ist ein sogenannter ternäre Operation

                            (prüfung)?wenn wahr:wenn falsch

                            Für 2 Bereiche reicht die einfache Form

                            {v: deconz.0.Sensors.8.battery;v<10?"#fa0000":"#00f019"}
                            

                            Der Falschanteil deckt ja bereits den Wertebereich >10 ab.
                            Bei 3 Bereichen müsste man verschachteln (bsp 0-9,10-89,90-100

                            {v: deconz.0.Sensors.8.battery;(v<10)?"red":(v>9 && v<90)?"yellow":"green"}
                            

                            Zur Erhöhung der Lesbarkeit mache ich um die Prüfungen gern noch eine Klammer

                            https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

                            Crazy32C Offline
                            Crazy32C Offline
                            Crazy32
                            schrieb am zuletzt editiert von
                            #13

                            @oliverio sagte in Text farbig in Wertebereichen darstellen:

                            @crazy32
                            Für 2 Bereiche reicht die einfache Form

                            {v: deconz.0.Sensors.8.battery;v<10?"#fa0000":"#00f019"}
                            

                            Damit funktioniert es. Dankeschön :-)

                            1 Antwort Letzte Antwort
                            0
                            • Crazy32C Offline
                              Crazy32C Offline
                              Crazy32
                              schrieb am zuletzt editiert von
                              #14

                              @oliverio sagte in Text farbig in Wertebereichen darstellen:

                              @crazy32

                              Bei 3 Bereichen müsste man verschachteln (bsp 0-9,10-89,90-100

                              {v: deconz.0.Sensors.8.battery;(v<10)?"red":(v>9 && v<90)?"yellow":"green"}
                              

                              Darf ich da nochmal drauf zurückkommen? Ich möchte jetzt gerne für die Aussentemperaturanzeige die Farbe abhängig von der Temperatur machen. Ich habe mir Farbwerte für ein paar Temperaturbereiche ausgesucht und versucht das umzusetzen. Rausgekommen ist das hier:

                              {v: deconz.0.Sensors.8.temperature; (v<1) ? "#38FFFF" : (v>0 && v<20) ? "#507FFF" : (v>19 && v<26) ? "#02AF00" : (v>25 && v<31) ? "#FFA400" : (v>30 && v<50) ? "#D70A00"}
                              

                              Ergebnis: Im Editor ist der Text mit #38FFFF zu sehen, in der Runtime ist er schwarz. Sollte aber doch auch #38FFFF sein, weil wir unter 0°C haben. Für mich sieht das aber ganz schlüssig aus. Was ja nichts heißen muss :grimacing:

                              C OliverIOO 2 Antworten Letzte Antwort
                              0
                              • Crazy32C Crazy32

                                @oliverio sagte in Text farbig in Wertebereichen darstellen:

                                @crazy32

                                Bei 3 Bereichen müsste man verschachteln (bsp 0-9,10-89,90-100

                                {v: deconz.0.Sensors.8.battery;(v<10)?"red":(v>9 && v<90)?"yellow":"green"}
                                

                                Darf ich da nochmal drauf zurückkommen? Ich möchte jetzt gerne für die Aussentemperaturanzeige die Farbe abhängig von der Temperatur machen. Ich habe mir Farbwerte für ein paar Temperaturbereiche ausgesucht und versucht das umzusetzen. Rausgekommen ist das hier:

                                {v: deconz.0.Sensors.8.temperature; (v<1) ? "#38FFFF" : (v>0 && v<20) ? "#507FFF" : (v>19 && v<26) ? "#02AF00" : (v>25 && v<31) ? "#FFA400" : (v>30 && v<50) ? "#D70A00"}
                                

                                Ergebnis: Im Editor ist der Text mit #38FFFF zu sehen, in der Runtime ist er schwarz. Sollte aber doch auch #38FFFF sein, weil wir unter 0°C haben. Für mich sieht das aber ganz schlüssig aus. Was ja nichts heißen muss :grimacing:

                                C Offline
                                C Offline
                                Chrunchy
                                schrieb am zuletzt editiert von
                                #15

                                @crazy32 Soweit ich weiss, steigt der Vergleich beim ersten Treffer aus.

                                Von daher würde ich der Reihe nach nur auf kleiner als prüfen.
                                Gerade bei Float-Werten...
                                Was soll bei dir z.B. bei 0,5 Grad greifen?

                                Gruß Chrunchy

                                1 Antwort Letzte Antwort
                                1
                                • Crazy32C Crazy32

                                  @oliverio sagte in Text farbig in Wertebereichen darstellen:

                                  @crazy32

                                  Bei 3 Bereichen müsste man verschachteln (bsp 0-9,10-89,90-100

                                  {v: deconz.0.Sensors.8.battery;(v<10)?"red":(v>9 && v<90)?"yellow":"green"}
                                  

                                  Darf ich da nochmal drauf zurückkommen? Ich möchte jetzt gerne für die Aussentemperaturanzeige die Farbe abhängig von der Temperatur machen. Ich habe mir Farbwerte für ein paar Temperaturbereiche ausgesucht und versucht das umzusetzen. Rausgekommen ist das hier:

                                  {v: deconz.0.Sensors.8.temperature; (v<1) ? "#38FFFF" : (v>0 && v<20) ? "#507FFF" : (v>19 && v<26) ? "#02AF00" : (v>25 && v<31) ? "#FFA400" : (v>30 && v<50) ? "#D70A00"}
                                  

                                  Ergebnis: Im Editor ist der Text mit #38FFFF zu sehen, in der Runtime ist er schwarz. Sollte aber doch auch #38FFFF sein, weil wir unter 0°C haben. Für mich sieht das aber ganz schlüssig aus. Was ja nichts heißen muss :grimacing:

                                  OliverIOO Offline
                                  OliverIOO Offline
                                  OliverIO
                                  schrieb am zuletzt editiert von OliverIO
                                  #16

                                  @crazy32 said in Text farbig in Wertebereichen darstellen:

                                  @oliverio sagte in Text farbig in Wertebereichen darstellen:

                                  @crazy32

                                  Bei 3 Bereichen müsste man verschachteln (bsp 0-9,10-89,90-100

                                  {v: deconz.0.Sensors.8.battery;(v<10)?"red":(v>9 && v<90)?"yellow":"green"}
                                  

                                  Darf ich da nochmal drauf zurückkommen? Ich möchte jetzt gerne für die Aussentemperaturanzeige die Farbe abhängig von der Temperatur machen. Ich habe mir Farbwerte für ein paar Temperaturbereiche ausgesucht und versucht das umzusetzen. Rausgekommen ist das hier:

                                  {v: deconz.0.Sensors.8.temperature; (v<1) ? "#38FFFF" : (v>0 && v<20) ? "#507FFF" : (v>19 && v<26) ? "#02AF00" : (v>25 && v<31) ? "#FFA400" : (v>30 && v<50) ? "#D70A00"}
                                  

                                  Ergebnis: Im Editor ist der Text mit #38FFFF zu sehen, in der Runtime ist er schwarz. Sollte aber doch auch #38FFFF sein, weil wir unter 0°C haben. Für mich sieht das aber ganz schlüssig aus. Was ja nichts heißen muss :grimacing:

                                  @oliverio said in Text farbig in Wertebereichen darstellen:

                                  man muss IMMER den wahr und den falschanteil mit angeben

                                  Den Falschanteil hast du in der letzten Prüfung vergessen.

                                  Korrekt muss es heißen:

                                  {v: deconz.0.Sensors.8.temperature; (v<1) ? "#38FFFF" : (v>0 && v<20) ? "#507FFF" : (v>19 && v<26) ? "#02AF00" : (v>25 && v<31) ? "#FFA400" : (v>30 && v<50) ? "#D70A00":""}
                                  

                                  oder halt einen Farbcode für über 49. Intern führt das zu einem Syntax error, weil das Konstrukt nicht korrekt abgeschlossen wurde.
                                  Prüfen kann man das in der developer console von firefox oder chrome. wobei man sich nicht wundern braucht, das das Konstrukt mehrmals in teilweiser unvollständiger Form durchlaufen wird. Das ist leider die Funktionsweise von vis. Das letzt gilt. Da kann man dann auch sehen in was für javascript-code das binding üb ersetzt wird.

                                  f6b1137a-cfb3-4b25-a931-5004ea961e67-image.png

                                  Meine Adapter und Widgets
                                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                  Links im Profil

                                  Crazy32C 1 Antwort Letzte Antwort
                                  1
                                  • OliverIOO OliverIO

                                    @crazy32 said in Text farbig in Wertebereichen darstellen:

                                    @oliverio sagte in Text farbig in Wertebereichen darstellen:

                                    @crazy32

                                    Bei 3 Bereichen müsste man verschachteln (bsp 0-9,10-89,90-100

                                    {v: deconz.0.Sensors.8.battery;(v<10)?"red":(v>9 && v<90)?"yellow":"green"}
                                    

                                    Darf ich da nochmal drauf zurückkommen? Ich möchte jetzt gerne für die Aussentemperaturanzeige die Farbe abhängig von der Temperatur machen. Ich habe mir Farbwerte für ein paar Temperaturbereiche ausgesucht und versucht das umzusetzen. Rausgekommen ist das hier:

                                    {v: deconz.0.Sensors.8.temperature; (v<1) ? "#38FFFF" : (v>0 && v<20) ? "#507FFF" : (v>19 && v<26) ? "#02AF00" : (v>25 && v<31) ? "#FFA400" : (v>30 && v<50) ? "#D70A00"}
                                    

                                    Ergebnis: Im Editor ist der Text mit #38FFFF zu sehen, in der Runtime ist er schwarz. Sollte aber doch auch #38FFFF sein, weil wir unter 0°C haben. Für mich sieht das aber ganz schlüssig aus. Was ja nichts heißen muss :grimacing:

                                    @oliverio said in Text farbig in Wertebereichen darstellen:

                                    man muss IMMER den wahr und den falschanteil mit angeben

                                    Den Falschanteil hast du in der letzten Prüfung vergessen.

                                    Korrekt muss es heißen:

                                    {v: deconz.0.Sensors.8.temperature; (v<1) ? "#38FFFF" : (v>0 && v<20) ? "#507FFF" : (v>19 && v<26) ? "#02AF00" : (v>25 && v<31) ? "#FFA400" : (v>30 && v<50) ? "#D70A00":""}
                                    

                                    oder halt einen Farbcode für über 49. Intern führt das zu einem Syntax error, weil das Konstrukt nicht korrekt abgeschlossen wurde.
                                    Prüfen kann man das in der developer console von firefox oder chrome. wobei man sich nicht wundern braucht, das das Konstrukt mehrmals in teilweiser unvollständiger Form durchlaufen wird. Das ist leider die Funktionsweise von vis. Das letzt gilt. Da kann man dann auch sehen in was für javascript-code das binding üb ersetzt wird.

                                    f6b1137a-cfb3-4b25-a931-5004ea961e67-image.png

                                    Crazy32C Offline
                                    Crazy32C Offline
                                    Crazy32
                                    schrieb am zuletzt editiert von
                                    #17

                                    @oliverio said in Text farbig in Wertebereichen darstellen:

                                    man muss IMMER den wahr und den falschanteil mit angeben

                                    Den Falschanteil hast du in der letzten Prüfung vergessen.

                                    Korrekt muss es heißen:

                                    {v: deconz.0.Sensors.8.temperature; (v<1) ? "#38FFFF" : (v>0 && v<20) ? "#507FFF" : (v>19 && v<26) ? "#02AF00" : (v>25 && v<31) ? "#FFA400" : (v>30 && v<50) ? "#D70A00":""}
                                    

                                    Guten Morgen. Das hatte ich gelesen, aber anscheinend falsch verstanden. Ich dachte damit wäre z.B. die Prüfung "wenn v<1 wahr, dann nehme Farbe #38FFFF".
                                    Ich habe den Code von Dir kopiert und eingefügt. In der Runtime ist der Text aber wieder schwarz. Im der developer console ist mir aufgefallen, dass das von Dir angefügte : " " nicht zu sehen ist. Im Editor im Feld Color unter CSS Font und Text ist es aber definitv eingetragen.

                                    Screenshot 2021-02-12 093702.png

                                    Screenshot 2021-02-12 090408.png

                                    C 1 Antwort Letzte Antwort
                                    0
                                    • Crazy32C Crazy32

                                      @oliverio said in Text farbig in Wertebereichen darstellen:

                                      man muss IMMER den wahr und den falschanteil mit angeben

                                      Den Falschanteil hast du in der letzten Prüfung vergessen.

                                      Korrekt muss es heißen:

                                      {v: deconz.0.Sensors.8.temperature; (v<1) ? "#38FFFF" : (v>0 && v<20) ? "#507FFF" : (v>19 && v<26) ? "#02AF00" : (v>25 && v<31) ? "#FFA400" : (v>30 && v<50) ? "#D70A00":""}
                                      

                                      Guten Morgen. Das hatte ich gelesen, aber anscheinend falsch verstanden. Ich dachte damit wäre z.B. die Prüfung "wenn v<1 wahr, dann nehme Farbe #38FFFF".
                                      Ich habe den Code von Dir kopiert und eingefügt. In der Runtime ist der Text aber wieder schwarz. Im der developer console ist mir aufgefallen, dass das von Dir angefügte : " " nicht zu sehen ist. Im Editor im Feld Color unter CSS Font und Text ist es aber definitv eingetragen.

                                      Screenshot 2021-02-12 093702.png

                                      Screenshot 2021-02-12 090408.png

                                      C Offline
                                      C Offline
                                      Chrunchy
                                      schrieb am zuletzt editiert von
                                      #18

                                      @crazy32 Dort steht undefined. Heisst, dein Variable v wird nicht sauber gesetzt.

                                      nimm mal das Leerezeichen beim ersten v: deconz... raus.

                                      Weiterhin ist eine mögliche Ursache, dass du bei deinen Abfragen noch immer Wertüberschneidungen hast. Also keine Eindeutigkeit welche Abfrage greifen soll.

                                      Nehmen wir z.B. eine Temperatur von 0.5C. Die ist kleiner 1 aber auch größer 0. Welche Farbe soll es denn sein? Hier hilft z.B. v<1... oder v>=1

                                      Gruß Chrunchy

                                      OliverIOO SBorgS 2 Antworten Letzte Antwort
                                      1
                                      • C Chrunchy

                                        @crazy32 Dort steht undefined. Heisst, dein Variable v wird nicht sauber gesetzt.

                                        nimm mal das Leerezeichen beim ersten v: deconz... raus.

                                        Weiterhin ist eine mögliche Ursache, dass du bei deinen Abfragen noch immer Wertüberschneidungen hast. Also keine Eindeutigkeit welche Abfrage greifen soll.

                                        Nehmen wir z.B. eine Temperatur von 0.5C. Die ist kleiner 1 aber auch größer 0. Welche Farbe soll es denn sein? Hier hilft z.B. v<1... oder v>=1

                                        OliverIOO Offline
                                        OliverIOO Offline
                                        OliverIO
                                        schrieb am zuletzt editiert von OliverIO
                                        #19

                                        @chrunchy
                                        ah, noch was gesehen, entferne das leerzeichen nach v:
                                        das mag vis wohl nicht

                                        {v:deconz.0.Sensors.8.temperature; (v<1) ? "#38FFFF" : (v>0 && v<20) ? "#507FFF" : (v>19 && v<26) ? "#02AF00" : (v>25 && v<31) ? "#FFA400" : (v>30 && v<50) ? "#D70A00":""}
                                        

                                        Ich teste solche dinge immer, in dem ich den Text in ein HTML-widget eintrage.
                                        Das Ergebnis muss dann in der Runtime als normaler Text erscheinen.

                                        Meine Adapter und Widgets
                                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                        Links im Profil

                                        1 Antwort Letzte Antwort
                                        1
                                        • C Chrunchy

                                          @crazy32 Dort steht undefined. Heisst, dein Variable v wird nicht sauber gesetzt.

                                          nimm mal das Leerezeichen beim ersten v: deconz... raus.

                                          Weiterhin ist eine mögliche Ursache, dass du bei deinen Abfragen noch immer Wertüberschneidungen hast. Also keine Eindeutigkeit welche Abfrage greifen soll.

                                          Nehmen wir z.B. eine Temperatur von 0.5C. Die ist kleiner 1 aber auch größer 0. Welche Farbe soll es denn sein? Hier hilft z.B. v<1... oder v>=1

                                          SBorgS Offline
                                          SBorgS Offline
                                          SBorg
                                          Forum Testing Most Active
                                          schrieb am zuletzt editiert von
                                          #20

                                          @chrunchy sagte in Text farbig in Wertebereichen darstellen:

                                          Nehmen wir z.B. eine Temperatur von 0.5C. Die ist kleiner 1 aber auch größer 0. Welche Farbe soll es denn sein?

                                          Dann greift bereits die erste Bedingung "v<1" ist wahr und damit "#38FFFF". Es wird immer nur bis zum ersten wahr geprüft.
                                          Das Ganze ist eine Kurzschreibweise von If-then-(else if)-else

                                          oder

                                          WENN ? DANN : SONST

                                          Dabei muss auch immer das "SONST" angegeben werden, selbst wenn es nie dazu kommen sollte. Ein etwas sinnfreies Beispiel: {v:1; v==1 ? "wahr" : "falsch"}
                                          Das falsch ("SONST") würde hier nie eintreten, trotzdem muss es angegeben werden (oder man trägt quasi nix dafür ein: ""): {v:1; v==1 ? "wahr" : ""}
                                          Anstelle des "SONST" kann man dann natürlich wieder eine neue WENN ? DANN : SONST - Bedingung eintragen ;): WENN ? DANN : WENN ? DANN : SONST

                                          LG SBorg ( SBorg auf GitHub)
                                          Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                          C 1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          683

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe