Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst]Script für Änderung der Textfarbe bei Wert X

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    212

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

[gelöst]Script für Änderung der Textfarbe bei Wert X

[gelöst]Script für Änderung der Textfarbe bei Wert X

Scheduled Pinned Locked Moved Skripten / Logik
22 Posts 8 Posters 6.2k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    wrote on last edited by
    #2

    Ein Beispiel für ein Homematic CO2 Messpunkt (gibt 0, 1, 2) zurück:

    var idCO2 = "hm-rpc.0.FEQ0060867.1.STATE"; // Homematic ID des CO2 Messpunkt
    
    createState('co2Textfarbe', "black"); // Objekt in javascript.0\. für die Textfarbe
    
     on(idCO2, function(obj) {
     if (obj.newState.val == 0) {
       	setState("co2Textfarbe","green"); 
         }    
     if (obj.newState.val == 1) {
       	setState("co2Textfarbe","orange"); 
        }
     if (obj.newState.val == 2) {
       	setState("co2Textfarbe","red"); 
        }
     });
    
    

    Und dann im Widget unter css Font & Text

    {javascript.0.co2Textfarbe}
    

    eintragen.

    Du musst statt der Homematic ID die ID Deines Objekts eintragen, in dem die Werte (1000, usw.) drin stehen. Dann die if Abfragen anpassen, mit else if.

    Adapter: Fritzbox, Unify Circuit
    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

    1 Reply Last reply
    0
    • coyoteC Offline
      coyoteC Offline
      coyote
      Most Active
      wrote on last edited by
      #3

      Habe es mal so probiert, geht aber nicht. Wo ist mein Fehler?

      createState('co2Textfarbe', "black"); // Objekt in javascript.0\. für die Textfarbe
      
       on('hm-rega.0.CO2', function (obj) {
       if (obj.newState.val <= 1000) {
            setState("co2Textfarbe","green"); 
           }    
          else if (obj.newState.val >= 1000 && obj.newState.val <=1300) {
            setState("co2Textfarbe","orange"); 
         }
            else if (obj.newState.val >= 1300) {
              setState("co2Textfarbe","red"); 
          }
       });
      
      
      1 Reply Last reply
      0
      • BluefoxB Offline
        BluefoxB Offline
        Bluefox
        wrote on last edited by
        #4

        Schwer zu sagen.

        Was kommt bei dir?

        createState('co2Textfarbe', "black"); // Objekt in javascript.0\. für die Textfarbe
        
        on('hm-rega.0.CO2', function (obj) {
         obj.newState.val = parseInt(obj.newState.val, 10);
         log('hm-rega.0.CO2: ' + obj.newState.val);
         if (obj.newState.val <= 1000) {
              setState("co2Textfarbe","green", true); 
             }    
            else if (obj.newState.val >= 1000 && obj.newState.val <=1300) {
              setState("co2Textfarbe","orange", true); 
           }
              else if (obj.newState.val >= 1300) {
                setState("co2Textfarbe","red", true); 
            }
        });
        
        1 Reply Last reply
        0
        • coyoteC Offline
          coyoteC Offline
          coyote
          Most Active
          wrote on last edited by
          #5

          Hier das Log:

          Die ganzen hm-rpc-1 logs sind normal?
          536_log.png

          Ist das so korrekt?
          536_widget.png

          1 Reply Last reply
          0
          • BluefoxB Offline
            BluefoxB Offline
            Bluefox
            wrote on last edited by
            #6

            Ich sehe Output von dieser Zeile nicht.

            log('hm-rega.0.CO2: ' + obj.newState.val);
            

            Hast du die Variable "hm-rega.0.CO2" ?
            671_unbenannt.png

            1 Reply Last reply
            0
            • ruhr70R Offline
              ruhr70R Offline
              ruhr70
              wrote on last edited by
              #7

              Hat sich "hm-rega.0.CO2" denn verändert?

              History aktiviert, um Veränderungen zu beobachten?

              Zu der Frage zum Eintrag unter Color beim Widget:

              ja, sieht gut aus, wenn das hinter dem "javascript." eine 0 ist und es den Datenpunkt "co2Textfarbe" gibt.

              Was steht denn momentan in "javascript.0.co2Textfarbe" in den ioBroker Objekten?

              Dort müsste unter Werte mind. "black" drinstehen, nachdem das Script gestartet wurde.

              Bei Änderung deines hm-rega Objekts, müsste dann die entsprechende Farbe dort auftauchen.

              Adapter: Fritzbox, Unify Circuit
              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

              1 Reply Last reply
              0
              • ruhr70R Offline
                ruhr70R Offline
                ruhr70
                wrote on last edited by
                #8

                @Bluefox:

                Ich sehe Output von dieser Zeile nicht.

                log('hm-rega.0.CO2: ' + obj.newState.val);
                

                Hast du die Variable "hm-rega.0.CO2" ? `

                Rein für mein Verständnis.

                Wird ein on() schon beim Starten des Scripts ausgeführt? Ich dachte die Funktion greift nur bei Änderung, bzw. wenn der Wert neugeschrieben wird und dann würde der Log Eintrag erst erzeugt, wenn sich beim überwachten Objekt was getan hat. Oder lag ich da immer falsch?

                Adapter: Fritzbox, Unify Circuit
                Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                1 Reply Last reply
                0
                • coyoteC Offline
                  coyoteC Offline
                  coyote
                  Most Active
                  wrote on last edited by
                  #9

                  Guten morgen,

                  also: Die Variable "hm-rega.0.CO2" ist vorhanden, aber habe gerade gesehen, dass diese nicht mehr gesynct wird. Letzter sync 07.07.15. Warum weiß ich nicht, in der Homematic ist die Variable richtig.

                  Ja in der javascript.0.co2Textfarbe bei Objekten steh "black" drin.

                  Es liegt also daran, dass nicht aktualisiert wird, ist jetzt die Frage wieso plötzlich nicht mehr.

                  1 Reply Last reply
                  0
                  • ruhr70R Offline
                    ruhr70R Offline
                    ruhr70
                    wrote on last edited by
                    #10

                    Womit misst Du eigentlich den CO2 Wert?

                    Der Stecker von Homematic kann doch nur drei Stufen (normal, zu hoch, viel zu hoch).

                    Wenn Du mehr Werte bekommst, könntest Du ja auch den Wert direkt auf RGB runterrechnen und den Text/Hintergrund linear von der Farbe verändern, je nachdem wie hoch der CO2 Wert ist.

                    Hatte so etwas schon einmal als Idee für die zu erwartende Regenmenge und Temperatur gelesen und diese dann auf je einer hue zu visualisieren.

                    Hilft jetzt nicht bei Deinem Sync Problem…

                    Adapter: Fritzbox, Unify Circuit
                    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                    1 Reply Last reply
                    0
                    • coyoteC Offline
                      coyoteC Offline
                      coyote
                      Most Active
                      wrote on last edited by
                      #11

                      Der CO2 Gehalt wird über die Netatmo gemessen.

                      Dazu musste ich im CUxD Adapter noch Geräte anlegen, für innen und außen.

                      In der CCU2 werden die Variablen von CO2, Luftdruck usw. auch aktualisiert, aber im hm-rega.0 adapter in iobroker eben nicht.

                      536_netatmo.png

                      Sollte auch gehen, wenn du mir sagst wie 😄

                      Wie gesagt, scripten und generell iobroker/vis sind noch etwas Neuland für mich, habe den ganzen Kram erst seit 1-2 Wochen

                      1 Reply Last reply
                      0
                      • ruhr70R Offline
                        ruhr70R Offline
                        ruhr70
                        wrote on last edited by
                        #12

                        cool. Danke für die Info!

                        Taugt die Station?

                        Sieht interessant aus 😉

                        Ich weiß nicht warum, aber auf auf CUxD wollte ich eigentlich verzichten. Ich überlege mir mal, ob ich mir die Station auch hole. Gibt es eine Anleitung, wie Netatmo in CUxD eingbunden wird?

                        Aber jetzt müssen wir erst einmal schauen warum die Daten nicht mehr von der CCU2 nicht mehr in Richtung hm-rega gehen.

                        Werden denn andere Datenpunkte, z.B. direkt aus der CCU2 synchronisiert?

                        So würde ich vorgehen:

                        • hm-rega über Instanzen neu starten

                        • ioBroker neu starten

                        • CCU2 neu starten

                        Und schauen, ob sich bei einem der Schritte was getan hat.

                        Da müssen sonst mal die Profis ran.

                        Adapter: Fritzbox, Unify Circuit
                        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                        1 Reply Last reply
                        0
                        • coyoteC Offline
                          coyoteC Offline
                          coyote
                          Most Active
                          wrote on last edited by
                          #13

                          Ja, taugen tut sie schon. Funktioniert eigentlich zuverlässig.

                          Ja gibt es hier: http://homematic-forum.de/forum/viewtop … 6&start=10

                          Hmm, also so wie es aussieht alles was über hm-rega geht wird nicht aktualisiert.

                          Neustarts hab ich schon paar hinter mir.

                          Vllt ist das hier ein Problem (Auszug aus dem CuXD Full Syslog):

                          536_cuxd.png
                          Vllt hat jemand ne Idee, woran das liegt…

                          Edit: Anscheinend geht der sync wieder, nach npm clean cache.


                          oh man, es läuft....so eine Sch...

                          Die Variable war falsch "hm-rega.0.CO2" geht nicht, habe jetzt "hm-rega.0.die ID" genommen und jetzt geht es....na klasse :roll:

                          Dann aber jetzt eine Frage dazu, wie kann ich die Variable ändern von der ID in einen Namen?

                          1 Reply Last reply
                          0
                          • P Offline
                            P Offline
                            pix
                            wrote on last edited by
                            #14

                            Hallo,

                            ich würde so etwas lieber mit dem Basic Widget ValueList HTML Style (alternativ val,list Tile (Metro) ValueList 8) in Verbindung mit einem Skript lösen. Das Skript bleibt eigentlich gleich (siehe oben, nur in createState die Werteliste definieren). Spielt keine Rolle, ob in der Variable "rot/grün/blau" oder "1/2/3" oder "niedrig/mittel/hoch" oder so steht. Im Widget kannst du dann für jeden Wert (Standard 2 Werte, erweiterbar) eine eigene Formatierung und sogar einen eigenen Inhalt anzeigen lassen. Damit ist die logische Struktur im Javascript-Adapter Skript immer gleich und die Ausgabe wird nur im VIS-Adapter realisiert.

                            261_bildschirmfoto_2015-07-09_um_12.08.53.jpg

                            Gruß

                            Pix

                            ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                            1 Reply Last reply
                            0
                            • coyoteC Offline
                              coyoteC Offline
                              coyote
                              Most Active
                              wrote on last edited by
                              #15

                              Hi pix,

                              das verstehe ich jetzt leider nicht so ganz. Als "Wert" kann ich dann ja nur X definierte Werte (in deinem 3) angeben.

                              Ich habe ja aber Zahlen von sagen wir mal 450-1400, die dazwischen beliebige Werte sein können.

                              1 Reply Last reply
                              0
                              • ruhr70R Offline
                                ruhr70R Offline
                                ruhr70
                                wrote on last edited by
                                #16

                                Das Widget unterstützt bis zu 8 Werte mit jeweils eigenen Formatierungen. Die Werte lauten in der Maximalnutzung 0,1,2,3,4,5,6,7

                                Für Deinen Anwendungsfall oben mit den drei gewünschten Farben (und für die meisten anderen) reicht das.

                                CO2 bis 1.000 musst Du dann der 0 per Script zuweisen.

                                von 1000 bis 1300 die 1

                                und über 1300 die 2

                                und dann Stil 0 -2 entsprechend versorgen. Ist schnell gemacht.

                                Ich mag die Variante mit den {}. Es ist etwas unklarer im Widget, dafür klarer im Wert in den Objekten.

                                Ich mag die Flexibilität. Man kann theoretisch alles zur Laufzeit verändern. Buttons bauen, die in Textbereichen Ihre Farbe ändern. Farbverläufe realisieren, wie es bei Dir Sinn machen könnte.

                                Such Dir was aus 😉

                                Adapter: Fritzbox, Unify Circuit
                                Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                1 Reply Last reply
                                0
                                • coyoteC Offline
                                  coyoteC Offline
                                  coyote
                                  Most Active
                                  wrote on last edited by
                                  #17

                                  Ah ok, jetzt hab ichs 😉

                                  Läuft jetzt erst mal so, wie Anfangs angegeben. Farbverlauf wäre vllt was 😄

                                  Danke euch

                                  1 Reply Last reply
                                  0
                                  • HomoranH Do not disturb
                                    HomoranH Do not disturb
                                    Homoran
                                    Global Moderator Administrators
                                    wrote on last edited by
                                    #18

                                    Hier gibts die Netatmo im Angebot:

                                    http://www.conrad.de/ce/de/product/6157 … n=11128598

                                    Gruß

                                    Rainer

                                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                    1 Reply Last reply
                                    0
                                    • ruhr70R Offline
                                      ruhr70R Offline
                                      ruhr70
                                      wrote on last edited by
                                      #19

                                      danke für die Info

                                      Gesendet von iPhone mit Tapatalk

                                      Adapter: Fritzbox, Unify Circuit
                                      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                      1 Reply Last reply
                                      0
                                      • S Offline
                                        S Offline
                                        simpixo
                                        wrote on last edited by
                                        #20

                                        Ahhh man ich verzweifel an den Skripten, denn das ist so gar nicht meins 😞 vielleicht kann mir ja jemand von euch helfen. Ich möchte gern Luftfeuchtigkeiten verschiedene Farben zuweisen, fast genauso wie das mit dem CO2

                                        Aber es funktioniert einfach nicht…. könnt ihr mir auf die Sprünge helfen????? :roll:

                                        createState('Temp-Textfarbe', "white"); // Objekt in javascript.0\. für die Textfarbe
                                        
                                        on('"[b]hm-rpc.0.LEQ0568523.1.HUMIDITY"/*Aussensensor:1.HUMIDITY*/[/b]', function (obj) {
                                         obj.newState.val = parseInt(obj.newState.val, 10);
                                         log('"hm-rpc.0.LEQ0568523.1.HUMIDITY"/*Aussensensor:1.HUMIDITY*/ ' + obj.newState.val);
                                         if (obj.newState.val <= 35) {
                                              setState("Temp-Textfarbe","red", true); 
                                             }    
                                            else if (obj.newState.val >= 36 && obj.newState.val <=65) {
                                              setState("Temp-Textfarbe","green", true); 
                                           }
                                              else if (obj.newState.val >= 100) {
                                                setState("Temp-Textfarbe","blue", true); 
                                            }
                                        });
                                        
                                        1 Reply Last reply
                                        0
                                        • paul53P Offline
                                          paul53P Offline
                                          paul53
                                          wrote on last edited by
                                          #21

                                          Das Objekt (obj) wird an die Funktion übergeben:

                                          createState('Temp-Textfarbe', "white"); // Objekt in javascript.0\. für die Textfarbe
                                          
                                          on("hm-rpc.0.LEQ0568523.1.HUMIDITY", function (obj) {
                                            var rh = obj.newState.val;
                                            log("hm-rpc.0.LEQ0568523.1.HUMIDITY: " + rh + " %");
                                            if (rh <= 35) {
                                                setState("Temp-Textfarbe","red", true);
                                             }   
                                             else if (rh >= 36 && rh <=65) {
                                                setState("Temp-Textfarbe","green", true);
                                             }
                                             else {
                                                setState("Temp-Textfarbe","blue", true);
                                             }
                                          });
                                          

                                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          72

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe