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. Praktische Anwendungen (Showcase)
  4. Thermometer mit WS2811 oder WS 2812

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    996

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Thermometer mit WS2811 oder WS 2812

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
ws2812 display
25 Beiträge 3 Kommentatoren 3.3k Aufrufe 7 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.
  • liv-in-skyL liv-in-sky

    @Chaot aber nur theoretisch - die segmente werden manchmal "vergessen" - war alles sehr instabil - mit webseite konfiguriert - daher bleib ich auf tasmota

    ChaotC Offline
    ChaotC Offline
    Chaot
    schrieb am zuletzt editiert von
    #16

    @liv-in-sky Ich halte mir aktuell mal beide Optionen offen. Mein Vorteil ist das bei mir der Stripe noch nicht verbaut ist und ich mir in Ruhe raussuchen kann was besser läuft :blush:

    ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

    liv-in-skyL 1 Antwort Letzte Antwort
    0
    • ChaotC Chaot

      @liv-in-sky Ich halte mir aktuell mal beide Optionen offen. Mein Vorteil ist das bei mir der Stripe noch nicht verbaut ist und ich mir in Ruhe raussuchen kann was besser läuft :blush:

      liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      schrieb am zuletzt editiert von
      #17

      @Chaot ist ne gute idee

      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

      1 Antwort Letzte Antwort
      0
      • ChaotC Chaot

        Ich benötige mal ein paar kleine Tips.

        Ich möchte gerne einen Streifen als Thermometer in den Schuppen gegenüber ans Fenster bauen.
        Dazu möchte ich jede LED entsprechend der Temperatur verschiedenfarbig ansteuern und eventuell jede 5. LED in einer einzelnen Farbe.
        Denkst das lässt sich irgendwie umsetzen?

        Gedacht wäre das als Script das dann am Ende so aussehen soll:

        Eine LED für Temperatur zwischen -20°C und +30°C soll sich von Blau über Grün nach Rot verändern und auf die entsprechende Position wandern.

        Alle 5 oder 10 LEDs (je nach Länge des Streifens) soll eine LED fest leuchten als Digitalstrich bei -10; 0; +10 usw.

        Eventuell sollte die LED bei 0°C noch in einer anderen Farbe leuchten.

        In einem anderen Tread hat mir @liv-in-sky gezeigt das er das umgesetzt hat.
        Jetzt hoffe ich das er doch so nett ist und mir das hier erklärt wie er das gemacht hat.

        joergeliJ Online
        joergeliJ Online
        joergeli
        schrieb am zuletzt editiert von joergeli
        #18

        @Chaot
        Moin,
        Angeregt von Eurer Diskussion, hier mal meine meine RGB-Thermometer-Variante:
        (die Farben werden von meiner Tablet-Cam nicht so gut dargestellt, wie in natura)

        prototyp1.jpg
        prototyp2.jpg
        Thermometer1.jpg
        Thermometer2.jpg

        Das läuft nicht mit WLED, sondern auf einer selbst geflashten NodeMCU (WEMOS D1 mini sollte auch funktionieren)
        über MQTT, d.h. es muss WLAN am Aufstellungsort vorhanden sein.
        Das Übertragungs-Prinzip ist das gleiche, wie bei meinem LED-Status-Display .
        Es können 2 Temperaturen (Innen/Aussen) angezeigt werden.

        Was kann es?:
        1.) Hinterleuchtete Skala (Helligkeit vom Umgebungslicht abhängig) von -15°C bis +45°C, Skalenlänge ca. 45 cm.
        Für die Beleuchtung habe ich einen "normalen" LED-Stripe 12V, warmweiß verwendet.
        2.) WS2812 RGB-Stripe mit 144 Leds/m, wovon aber nur 61 LEDs genutzt werden.
        3.) auf dem RGB-Stripe wird alle 5°C eine schwach blau leuchtende LED zur besseren Ablesbarkeit eingeschaltet.
        4.) Innentemperatur wird an entspr. Stelle mit hell leuchtender LED in gelb angezeigt.
        5.) Aussentemperatur wird an entspr. Stelle mit je nach Temperatur unterschiedlichen Farben angezeigt (violett, blau, weiß, türkis, hellgrün, grün, orange, rot, violett)
        6.) Kurze Farb-Animation der entspr. LED, wenn sich ein Temperaturwert ändert.

        Verbaut habe ich das Ganze in einem Bilderrahmen ( s. Fotos), der an einem 12V-Seilsystem befestigt ist und von der Decke hängt.
        Das Seilsystem dient dabei zum Einen als Aufhängung für den Bilderrahmen und zum Anderen als Spannungsversorgung für die Elektronik.
        Ist natürlich Geschmackssache, was man für ein Gehäuse wählt/bastelt, bei mir hat es halt ganz gut zu den anderen, bereits vorhandenen Bilderrahmen gepasst.

        Anbei der Schaltplan:
        Schaltplan_Big_Thermometer.jpg
        Anmerkung: Die Helligkeits-Steuerung für die Hinterleuchtung der Skala musste ich (leider) analog mit einem Transistor bauen. Theoretisch könnte das auch die NodeMCU übernehmen, aber dann hat mein Sketch zur MQTT-Auswerung nicht mehr funktioniert.
        Hinweis: Der 4,7KΩ-Widerstand parallel zum LDR dient dazu, daß bei Dunkelheit der LED-Stripe noch schwach leuchtet und nicht ganz ausgeschaltet wird.

        Bei Interesse kann ich gerne noch den Arduino-Sketch, sowie die ioBroker JavaScript Steuerdatei nachreichen.

        Gruß
        Jörg

        P.S.
        Ganz fertig ist der mechanische Aufbau noch nicht, es sind im Bilderrahmen noch die 12V Spannungsversorgungs-Strippen zu sehen, muß ich noch innen im Rahmen festkleben.

        liv-in-skyL ChaotC 2 Antworten Letzte Antwort
        0
        • joergeliJ joergeli

          @Chaot
          Moin,
          Angeregt von Eurer Diskussion, hier mal meine meine RGB-Thermometer-Variante:
          (die Farben werden von meiner Tablet-Cam nicht so gut dargestellt, wie in natura)

          prototyp1.jpg
          prototyp2.jpg
          Thermometer1.jpg
          Thermometer2.jpg

          Das läuft nicht mit WLED, sondern auf einer selbst geflashten NodeMCU (WEMOS D1 mini sollte auch funktionieren)
          über MQTT, d.h. es muss WLAN am Aufstellungsort vorhanden sein.
          Das Übertragungs-Prinzip ist das gleiche, wie bei meinem LED-Status-Display .
          Es können 2 Temperaturen (Innen/Aussen) angezeigt werden.

          Was kann es?:
          1.) Hinterleuchtete Skala (Helligkeit vom Umgebungslicht abhängig) von -15°C bis +45°C, Skalenlänge ca. 45 cm.
          Für die Beleuchtung habe ich einen "normalen" LED-Stripe 12V, warmweiß verwendet.
          2.) WS2812 RGB-Stripe mit 144 Leds/m, wovon aber nur 61 LEDs genutzt werden.
          3.) auf dem RGB-Stripe wird alle 5°C eine schwach blau leuchtende LED zur besseren Ablesbarkeit eingeschaltet.
          4.) Innentemperatur wird an entspr. Stelle mit hell leuchtender LED in gelb angezeigt.
          5.) Aussentemperatur wird an entspr. Stelle mit je nach Temperatur unterschiedlichen Farben angezeigt (violett, blau, weiß, türkis, hellgrün, grün, orange, rot, violett)
          6.) Kurze Farb-Animation der entspr. LED, wenn sich ein Temperaturwert ändert.

          Verbaut habe ich das Ganze in einem Bilderrahmen ( s. Fotos), der an einem 12V-Seilsystem befestigt ist und von der Decke hängt.
          Das Seilsystem dient dabei zum Einen als Aufhängung für den Bilderrahmen und zum Anderen als Spannungsversorgung für die Elektronik.
          Ist natürlich Geschmackssache, was man für ein Gehäuse wählt/bastelt, bei mir hat es halt ganz gut zu den anderen, bereits vorhandenen Bilderrahmen gepasst.

          Anbei der Schaltplan:
          Schaltplan_Big_Thermometer.jpg
          Anmerkung: Die Helligkeits-Steuerung für die Hinterleuchtung der Skala musste ich (leider) analog mit einem Transistor bauen. Theoretisch könnte das auch die NodeMCU übernehmen, aber dann hat mein Sketch zur MQTT-Auswerung nicht mehr funktioniert.
          Hinweis: Der 4,7KΩ-Widerstand parallel zum LDR dient dazu, daß bei Dunkelheit der LED-Stripe noch schwach leuchtet und nicht ganz ausgeschaltet wird.

          Bei Interesse kann ich gerne noch den Arduino-Sketch, sowie die ioBroker JavaScript Steuerdatei nachreichen.

          Gruß
          Jörg

          P.S.
          Ganz fertig ist der mechanische Aufbau noch nicht, es sind im Bilderrahmen noch die 12V Spannungsversorgungs-Strippen zu sehen, muß ich noch innen im Rahmen festkleben.

          liv-in-skyL Offline
          liv-in-skyL Offline
          liv-in-sky
          schrieb am zuletzt editiert von liv-in-sky
          #19

          @joergeli hast du nicht auch eine matrix anzeige gemacht ? oder verwechsle ich da was ?

          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

          joergeliJ 1 Antwort Letzte Antwort
          0
          • liv-in-skyL liv-in-sky

            @joergeli hast du nicht auch eine matrix anzeige gemacht ? oder verwechsle ich da was ?

            joergeliJ Online
            joergeliJ Online
            joergeli
            schrieb am zuletzt editiert von
            #20

            @liv-in-sky
            Jepp, die scrollt brav die ioBroker-Meldungen in meinem Bastelzimmer :blush:

            liv-in-skyL 1 Antwort Letzte Antwort
            0
            • joergeliJ joergeli

              @liv-in-sky
              Jepp, die scrollt brav die ioBroker-Meldungen in meinem Bastelzimmer :blush:

              liv-in-skyL Offline
              liv-in-skyL Offline
              liv-in-sky
              schrieb am zuletzt editiert von
              #21

              @joergeli wir haben wohl den selben led geschmack :-)

              das mit den alle 5 punkten als ablesehilfe werde ich auch noch integrieren

              ich nutze es auch als handy akku anzeige ( abwechselnd) - fällt dir noch was ein, was man da noch daraus machen könnte bzw anzeigen ?

              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

              joergeliJ 1 Antwort Letzte Antwort
              0
              • joergeliJ joergeli

                @Chaot
                Moin,
                Angeregt von Eurer Diskussion, hier mal meine meine RGB-Thermometer-Variante:
                (die Farben werden von meiner Tablet-Cam nicht so gut dargestellt, wie in natura)

                prototyp1.jpg
                prototyp2.jpg
                Thermometer1.jpg
                Thermometer2.jpg

                Das läuft nicht mit WLED, sondern auf einer selbst geflashten NodeMCU (WEMOS D1 mini sollte auch funktionieren)
                über MQTT, d.h. es muss WLAN am Aufstellungsort vorhanden sein.
                Das Übertragungs-Prinzip ist das gleiche, wie bei meinem LED-Status-Display .
                Es können 2 Temperaturen (Innen/Aussen) angezeigt werden.

                Was kann es?:
                1.) Hinterleuchtete Skala (Helligkeit vom Umgebungslicht abhängig) von -15°C bis +45°C, Skalenlänge ca. 45 cm.
                Für die Beleuchtung habe ich einen "normalen" LED-Stripe 12V, warmweiß verwendet.
                2.) WS2812 RGB-Stripe mit 144 Leds/m, wovon aber nur 61 LEDs genutzt werden.
                3.) auf dem RGB-Stripe wird alle 5°C eine schwach blau leuchtende LED zur besseren Ablesbarkeit eingeschaltet.
                4.) Innentemperatur wird an entspr. Stelle mit hell leuchtender LED in gelb angezeigt.
                5.) Aussentemperatur wird an entspr. Stelle mit je nach Temperatur unterschiedlichen Farben angezeigt (violett, blau, weiß, türkis, hellgrün, grün, orange, rot, violett)
                6.) Kurze Farb-Animation der entspr. LED, wenn sich ein Temperaturwert ändert.

                Verbaut habe ich das Ganze in einem Bilderrahmen ( s. Fotos), der an einem 12V-Seilsystem befestigt ist und von der Decke hängt.
                Das Seilsystem dient dabei zum Einen als Aufhängung für den Bilderrahmen und zum Anderen als Spannungsversorgung für die Elektronik.
                Ist natürlich Geschmackssache, was man für ein Gehäuse wählt/bastelt, bei mir hat es halt ganz gut zu den anderen, bereits vorhandenen Bilderrahmen gepasst.

                Anbei der Schaltplan:
                Schaltplan_Big_Thermometer.jpg
                Anmerkung: Die Helligkeits-Steuerung für die Hinterleuchtung der Skala musste ich (leider) analog mit einem Transistor bauen. Theoretisch könnte das auch die NodeMCU übernehmen, aber dann hat mein Sketch zur MQTT-Auswerung nicht mehr funktioniert.
                Hinweis: Der 4,7KΩ-Widerstand parallel zum LDR dient dazu, daß bei Dunkelheit der LED-Stripe noch schwach leuchtet und nicht ganz ausgeschaltet wird.

                Bei Interesse kann ich gerne noch den Arduino-Sketch, sowie die ioBroker JavaScript Steuerdatei nachreichen.

                Gruß
                Jörg

                P.S.
                Ganz fertig ist der mechanische Aufbau noch nicht, es sind im Bilderrahmen noch die 12V Spannungsversorgungs-Strippen zu sehen, muß ich noch innen im Rahmen festkleben.

                ChaotC Offline
                ChaotC Offline
                Chaot
                schrieb am zuletzt editiert von
                #22

                @joergeli Schaut genial aus.
                Und das hast du dann über den ioBroker mit einem Script gelöst?

                Könntest du mir das eventuell mal zeigen?

                @liv-in-sky Ich habe mal ganz schnell dein Blockly anders zusammengeklebt:

                Thermometer1.jpg

                Mal als Export:
                Thermometer1.txt

                ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                joergeliJ 1 Antwort Letzte Antwort
                0
                • liv-in-skyL liv-in-sky

                  @joergeli wir haben wohl den selben led geschmack :-)

                  das mit den alle 5 punkten als ablesehilfe werde ich auch noch integrieren

                  ich nutze es auch als handy akku anzeige ( abwechselnd) - fällt dir noch was ein, was man da noch daraus machen könnte bzw anzeigen ?

                  joergeliJ Online
                  joergeliJ Online
                  joergeli
                  schrieb am zuletzt editiert von joergeli
                  #23

                  @liv-in-sky
                  Das mit den 5er Markierungen hat mich am meisten beschäftigt.
                  Es ist ja nicht damit getan, die 5 Punkte-Markierungen nach dem Boot einmalig zu setzen,
                  denn es kommt ja doch recht häufig vor, das ein Temperaturwert genau auf eine dieser Markierung fällt (-5°C, 0°C, 5°C, 10°C, etc.).
                  Das heißt, an dieser Stelle muss die Markierung dann mit der Farbe des Temperaturwertes übeschrieben werden.
                  Ergo muss ich bei jeder Temperaturänderung prüfen, ob die Temperatur auf eine 5er-Markierung fällt.
                  Dazu schalte ich bei Temperaturänderung zunächst alle LEDs dunkel.
                  Dann setze ich zuerst die 5er-Markierungen neu, danach den Temperaturwert an entspr. Position in entspr. Farbe.
                  Hinzu kommt jedoch zusätzlich, das ich die bisherigen LED-Positionen von Innen- und Aussentemperatur zwischenspeichern muss, da ich die LED an der alten Position ja ausschalten muss, weil sie an anderer Position neu gesetzt wird.
                  Das ist bei der Darstellung von nur einer Temperatur nicht so wild, etwas komplizierter wird es, wenn zwei Temperaturen (Innen/Aussen) angezeigt werden sollen, denn dann muss ja auch die Position/Farbe der jeweils anderen Temperatur wieder neu (an alter/bisheriger Position) gesetzt werden.
                  Das heißt, wenn sich z.B. die Aussentemperatur ändert, muss auch die LED an der Position der Innentemperatur neu gesetzt werden.
                  Im Arduino-Sketch ist das dann mit einen Wust aus if-Abfragen realisiert.
                  Ich hänge den Sketch morgen mal an.

                  Was könnte man noch anzeigen?:
                  Nun, im Prinzip alles, was man sonst auch mit einer linearen Skala, oder Rundinstrument anzeigen könnte, wie z.B. Luftdruck, Luftfeuchte, Füllstand (Zisterne, Öltank), etc.
                  Allerdings wird es dann IMHO problematisch mit einer entspr. Skala, bzw. Markierungen ( Luftdruck z.B. 900 - 1200 hPa, Luftfeuchte 0-100%, Öltank 0-4000 Liter). Evtl. könnte man je nach Situation auch zwischen linearen und logarithmischen Skalen umschalten, was dann aber ein immensen Aufwand bedeuten würde.
                  Es könnte bei Verwendung von mehreren LED-Stripes funktionieren, aber das wäre dann m.E. overkill, bzw. da nutze ich dann doch lieber die Darstellung mittels vis auf meinem Tablet.

                  1 Antwort Letzte Antwort
                  0
                  • ChaotC Chaot

                    @joergeli Schaut genial aus.
                    Und das hast du dann über den ioBroker mit einem Script gelöst?

                    Könntest du mir das eventuell mal zeigen?

                    @liv-in-sky Ich habe mal ganz schnell dein Blockly anders zusammengeklebt:

                    Thermometer1.jpg

                    Mal als Export:
                    Thermometer1.txt

                    joergeliJ Online
                    joergeliJ Online
                    joergeli
                    schrieb am zuletzt editiert von joergeli
                    #24

                    @Chaot
                    Ja, das ist nur ein einfaches JavaScript, welches getriggert wird, wenn sich die Aussen-/ oder Innentemperatur ändert.
                    Dann wird dieser Temp-Wert auf volle Grad gerundet und in einen anderen Datenpunkt geschrieben.
                    Auf diesen Datenpunkt(e) subscribed sich dann die NodeMCU via MQTT, d.h. in ioBroker muss dazu auch der MQTT-Adapter installiert sein.
                    Wenn die NodeMCU dann bei Temperaturänderung eine neue Message (Datenpunkt-Name und Temperaturwert) erhält,
                    verwurstelt sie es dann in eine entspr. LED-Farbe und LED-Position.

                    Ich stelle im Lauf des Tages das JavaScript und den Arduino-Sketch hier ein ( jetzt ist es 1:20 Uhr und ich bin zu müde :pensive: )

                    joergeliJ 1 Antwort Letzte Antwort
                    0
                    • joergeliJ joergeli

                      @Chaot
                      Ja, das ist nur ein einfaches JavaScript, welches getriggert wird, wenn sich die Aussen-/ oder Innentemperatur ändert.
                      Dann wird dieser Temp-Wert auf volle Grad gerundet und in einen anderen Datenpunkt geschrieben.
                      Auf diesen Datenpunkt(e) subscribed sich dann die NodeMCU via MQTT, d.h. in ioBroker muss dazu auch der MQTT-Adapter installiert sein.
                      Wenn die NodeMCU dann bei Temperaturänderung eine neue Message (Datenpunkt-Name und Temperaturwert) erhält,
                      verwurstelt sie es dann in eine entspr. LED-Farbe und LED-Position.

                      Ich stelle im Lauf des Tages das JavaScript und den Arduino-Sketch hier ein ( jetzt ist es 1:20 Uhr und ich bin zu müde :pensive: )

                      joergeliJ Online
                      joergeliJ Online
                      joergeli
                      schrieb am zuletzt editiert von joergeli
                      #25

                      @Chaot
                      Hallo,
                      anbei - wie versprochen - das JavaScript und der Arduino-Sketch für die NodeMCU.

                      JavaScript:

                      //##########################################################################
                      // Aussen-/Innentemperatur für WS2812 BigThermometer
                      //##########################################################################
                      
                      // Bitte die folgenden 2 Datenpunkte nicht! umbenennen
                      createState('javascript.0.BigTemp.1', { name: 'BigTemp-Aussen', desc: 'Aussen-Temp', type: 'number', def: 0 });
                      createState('javascript.0.BigTemp.2', { name: 'BigTemp-Innen' , desc: 'Innen-Temp',  type: 'number', def: 0 });
                      
                      // Hier die eigenen! Datenpunkte für Aussen-/Innentemperatur eintragen
                      const aussentemp = 'hm-rpc.2.CUX0100001.1.TEMPERATURE'          // bei mir Aussentemp via CUX 
                      const innentemp  = 'sonoff.0.Kodi-Stecker.AM2301_Temperature'   // bei mir InnenTemp via Sonoff DHT22
                      
                      on({id: aussentemp, change: "any"},function(obj) {
                          let aussen_temperatur  = getState(aussentemp).val;
                          let around = Math.round(aussen_temperatur);
                          //console.log("around: " + around);
                          setState ('javascript.0.BigTemp.1', around);  
                      });
                      
                      on({id: innentemp, change: "any"},function(obj) {
                          let innen_temperatur  = getState(innentemp).val;
                          let iround = Math.round(innen_temperatur);
                          //console.log("iround: " + iround);
                          setState ('javascript.0.BigTemp.2', iround);   
                      });
                      
                      

                      Zum Testen kann man in den ioBroker-Objekten javascript.0.BigTemp.1 und javascript.0.BigTemp.2 die dortigen Temperaturwerte manuell überschreiben (im Bereich von -15 bis 45 Grad), dann sollten sich die LEDs im RGB_Stripe entspr. ändern.
                      __

                      Arduino-Sketch:

                      
                      /*
                      ########################################################################################
                      Innen-/Aussentemperatur aus ioBroker via MQTT auf LED-Thermometer (WS2812) anzeigen
                      
                      Hardware: NodeMCU
                      
                      Compiled with Arduino IDE V1.8.10
                      26.02.2020
                      
                      Made by joergeli
                      
                      ########################################################################################
                      */
                      
                      #include <ESP8266WiFi.h>
                      #include <PubSubClient.h>
                      #include <ArduinoOTA.h>   // fuer Flashen ueber WLAN ( OTA = Over The Air)
                      #define FASTLED_ALLOW_INTERRUPTS 0  // gegen Flackern/Flickering
                      #include <FastLED.h>
                      
                      #define LED_PIN 6   // = D6
                      #define LED_TYPE NEOPIXEL
                      #define NUM_LEDS    61
                      #define COLOR_ORDER RGB
                      CRGB leds[NUM_LEDS];
                      int start_helligkeit = 30;
                      int helligkeit_temp = 10;
                      
                      // für WiFi Regenbogen-Intro
                      #define TEMPERATURE_1 Tungsten100W
                      #define TEMPERATURE_2 OvercastSky
                      #define DISPLAYTIME 1
                      #define BLACKTIME   0
                      
                      int intLED = D4; // interne, blaue LED (wird spaeter ausgeschaltet, da nicht benoetigt)
                      
                      int Aussen_LED_Nr;
                      int Innen_LED_Nr;
                      
                      int a0 = 0;
                      int i0 = 0;
                      
                      uint8_t gHue = 0;
                      
                      //########################################################################################
                      // Hier die eigenen Netzwerk-Parameter eintragen !!!
                      
                      IPAddress ip(xxx.xxx.xxx.xxx);      //### statische ip-addresse
                      IPAddress gateway(xxx.xxx.xxx.xxx); //### router
                      IPAddress subnet(255, 255, 255, 0); //### subnet-mask
                      IPAddress dns(xxx.xxx.xxx.xxx);     //### dns-server meist identisch mit router
                      const char* ssid  = "yyyyyyyy";     //### WLAN SSID (Gänsefüsschen müssen erhalten bleiben)
                      const char* pwd   = "yyyyyyyy";     //### WLAN Password (Gänsefüsschen müssen erhalten bleiben)
                      
                      const char* mqtt_server = "xxx.xxx.xxx.xxx"; //### MQTT-Adapter IP-Adresse, bzw. ioBroker IP-Adresse(Gänsefüsschen müssen erhalten bleiben)
                      int mqtt_port = 1883;                        //### MQTT-Port in ioBroker (normalerweise 1883)
                      
                      const char* OTA_host = "Big Thermometer";    // Name unter welchem der virtuelle Port in der Arduino-IDE auftaucht(Gänsefüsschen müssen erhalten bleiben)
                      
                      //########################################################################################
                      
                      WiFiClient espClient;
                      PubSubClient client(espClient);
                      
                      //_________________________________________________________________________________________
                      
                      // Farb-Animation, wenn AussenTemp empfangen wurde
                      void anima() {
                        FastLED.setBrightness(helligkeit_temp);
                        for(int n=0; n<=3; n++){
                        delay(100);
                        leds[Aussen_LED_Nr] = CRGB( 255, 255, 0); FastLED.show();
                        delay(100);
                        leds[Aussen_LED_Nr] = CRGB( 255, 0, 255); FastLED.show();
                        delay(100);
                        leds[Aussen_LED_Nr] = CRGB( 0, 255, 0); FastLED.show();
                        delay(100);
                        leds[Aussen_LED_Nr] = CRGB( 0, 255, 255); FastLED.show();
                        delay(100);
                        leds[Aussen_LED_Nr] = CRGB( 255, 0, 0); FastLED.show();
                        }
                      }
                      //_________________________________________________________________________________________
                      
                      // Farb-Animation, wenn InnenTemp empfangen wurde
                      void animi() {
                        FastLED.setBrightness(helligkeit_temp);
                        for(int n=0; n<=3; n++){
                        delay(100);
                        leds[Innen_LED_Nr] = CRGB( 255, 255, 0); FastLED.show();
                        delay(100);
                        leds[Innen_LED_Nr] = CRGB( 255, 0, 255); FastLED.show();
                        delay(100);
                        leds[Innen_LED_Nr] = CRGB( 0, 255, 0); FastLED.show();
                        delay(100);
                        leds[Innen_LED_Nr] = CRGB( 0, 255, 255); FastLED.show();
                        delay(100);
                        leds[Innen_LED_Nr] = CRGB( 255, 0, 0); FastLED.show();
                        }  
                      }
                      //_________________________________________________________________________________________
                      
                      
                      // blaue Skalen-Markierungen in 5er-Schritten setzen
                      void markierungen_setzen(){
                        for( int i=0; i<= NUM_LEDS ; i+=5) {leds[i] = CRGB( 0, 0, 40); }    // 5er Skalen-Markierungen erzeugen und setzen
                        FastLED.show();
                      }
                      //_________________________________________________________________________________________
                      
                      void regenbogen(){
                      // Farb-Animation, so lange bis WLAN connected ist
                            static uint8_t starthue = 0;
                            fill_rainbow( leds , NUM_LEDS , --starthue, 20);
                            uint8_t secs = (millis() / 1000) % (DISPLAYTIME * 2);
                            if( secs < DISPLAYTIME) {
                                FastLED.setTemperature( TEMPERATURE_1 ); // first temperature
                                leds[0] = TEMPERATURE_1; // show indicator pixel
                            } else {
                                FastLED.setTemperature( TEMPERATURE_2 ); // second temperature
                                leds[0] = TEMPERATURE_2; // show indicator pixel
                            }
                            if( (secs % DISPLAYTIME) < BLACKTIME) {
                            memset8( leds, 0, NUM_LEDS * sizeof(CRGB));
                            }
                            FastLED.show();
                            FastLED.delay(1);
                      }
                      //_________________________________________________________________________________________
                      // Subroutine fuer WLAN-Verbindung
                      void setup_wifi(){
                        WiFi.config(ip, gateway, subnet, dns);
                        delay(100);
                        WiFi.mode(WIFI_STA);
                        WiFi.begin(ssid, pwd);
                        Serial.println("");
                        Serial.println("___________________________________________________");
                        Serial.print("Connecting to "); Serial.println(ssid);
                        while (WiFi.status() != WL_CONNECTED) {
                        regenbogen(); // Regenbogen-Effekt anzeigen, solange bis WLAN verbunden ist
                        } // end of while
                        Serial.println("");
                        Serial.print("   OK  ---> ");
                        Serial.print("IP: ");
                        Serial.println(WiFi.localIP()); 
                      
                        FastLED.clear();  // alle LEDs aus
                        FastLED.show();
                      
                      } // end of void connectWIFI
                      
                      //_________________________________________________________________________________________
                      
                      void MQTTCallback(char* topic, byte* payload, unsigned int length) {
                        Serial.print("Message arrived [" );
                        Serial.print(topic);
                        Serial.print("] ");
                        String Temp = "";
                        for (int i = 0; i < length; i++) {
                          Temp = Temp + (char)payload[i];
                        }
                        Serial.print(" Temp: " + Temp + "\t" );
                      
                        String TopicName = topic;
                        TopicName.replace("javascript/0/BigTemp/","");
                      
                        int LedIndex = TopicName.toInt();
                        LedIndex = LedIndex - 1;
                        Serial.print("  LedIndex: " );
                        Serial.print(LedIndex);
                        Serial.print("\t");
                      
                        //AussenTemp LED-Nr
                        String AussenTemp;
                        if(LedIndex == 0){ 
                          for (int i = 0; i < length; i++) { AussenTemp = AussenTemp + (char)payload[i]; }
                          Aussen_LED_Nr = AussenTemp.toInt() +15;
                          Serial.print(" Aussen_LED_Nr: ");
                          Serial.println(Aussen_LED_Nr);
                        }
                      
                       //InnenTemp LED-Nr
                       String InnenTemp;
                        if(LedIndex == 1){ 
                          for (int i = 0; i < length; i++) { InnenTemp = InnenTemp + (char)payload[i]; }
                          Innen_LED_Nr = InnenTemp.toInt() +15 ;
                          Serial.print(" Innen_LED_Nr: ");
                          Serial.println(Innen_LED_Nr);
                        }
                      
                      // für 5er Skala
                      int modulo_a = Aussen_LED_Nr % 5; // ist 0, wenn durch 5 teilbar
                      int modulo_i = Innen_LED_Nr % 5;  // ist 0, wenn durch 5 teilbar
                      
                      ////////////////////////////////////////////////////////////////////////////////////////////////
                      
                       //#####################
                       //Aussen-Temp anzeigen
                       //#####################
                       
                       if(LedIndex == 0){
                        leds[a0] = CRGB( 0, 0, 0);  // Aussen-LEDs zuruecksetzen
                        markierungen_setzen();
                       
                        //### InnenTemp mit altem, bisherigem Wert ueberschreiben ###//
                        if(Innen_LED_Nr == 60) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+45
                        if(Innen_LED_Nr == 59) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+44
                        if(Innen_LED_Nr == 58) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+43
                        if(Innen_LED_Nr == 57) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+42
                        if(Innen_LED_Nr == 56) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+41
                        if(Innen_LED_Nr == 55) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+40
                        if(Innen_LED_Nr == 54) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+39
                        if(Innen_LED_Nr == 53) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+38
                        if(Innen_LED_Nr == 52) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+37
                        if(Innen_LED_Nr == 51) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+36
                        if(Innen_LED_Nr == 50) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+35
                        if(Innen_LED_Nr == 49) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+34
                        if(Innen_LED_Nr == 48) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+33
                        if(Innen_LED_Nr == 47) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+32
                        if(Innen_LED_Nr == 46) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+31
                        if(Innen_LED_Nr == 45) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+30
                        if(Innen_LED_Nr == 44) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+29
                        if(Innen_LED_Nr == 43) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+28
                        if(Innen_LED_Nr == 42) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+27
                        if(Innen_LED_Nr == 41) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+26
                        if(Innen_LED_Nr == 40) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+25
                        if(Innen_LED_Nr == 39) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+24
                        if(Innen_LED_Nr == 38) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+23
                        if(Innen_LED_Nr == 37) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+22  
                        if(Innen_LED_Nr == 36) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+21
                        if(Innen_LED_Nr == 35) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+20
                        if(Innen_LED_Nr == 34) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+19
                        if(Innen_LED_Nr == 33) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+18
                        if(Innen_LED_Nr == 32) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+17
                        if(Innen_LED_Nr == 31) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+16
                        if(Innen_LED_Nr == 30) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+15
                        if(Innen_LED_Nr == 29) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+14
                        if(Innen_LED_Nr == 28) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+13
                        if(Innen_LED_Nr == 27) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+12
                        if(Innen_LED_Nr == 26) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+11
                        if(Innen_LED_Nr == 25) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+10
                        if(Innen_LED_Nr == 24) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+9
                        if(Innen_LED_Nr == 23) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+8
                        if(Innen_LED_Nr == 22) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+7
                        if(Innen_LED_Nr == 21) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+6
                        if(Innen_LED_Nr == 20) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+5
                        if(Innen_LED_Nr == 19) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+4
                        if(Innen_LED_Nr == 18) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+3
                        if(Innen_LED_Nr == 17) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+2
                        if(Innen_LED_Nr == 16) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+1
                        if(Innen_LED_Nr == 15) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //0  
                        if(Innen_LED_Nr == 14) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-1
                        if(Innen_LED_Nr == 13) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-2
                        if(Innen_LED_Nr == 12) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-3
                        if(Innen_LED_Nr == 11) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-4
                        if(Innen_LED_Nr == 10) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-5
                        if(Innen_LED_Nr ==  9) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-6
                        if(Innen_LED_Nr ==  8) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-7
                        if(Innen_LED_Nr ==  7) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-8
                        if(Innen_LED_Nr ==  6) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-9
                        if(Innen_LED_Nr ==  5) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-10
                        if(Innen_LED_Nr ==  4) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-11
                        if(Innen_LED_Nr ==  3) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-12
                        if(Innen_LED_Nr ==  2) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-13
                        if(Innen_LED_Nr ==  1) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-14
                        if(Innen_LED_Nr ==  0) { leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-15
                       
                       ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                       
                        if(Aussen_LED_Nr == 60){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+45
                        if(Aussen_LED_Nr == 59){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+44
                        if(Aussen_LED_Nr == 58){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+43
                        if(Aussen_LED_Nr == 57){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+42
                        if(Aussen_LED_Nr == 56){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+41  
                        if(Aussen_LED_Nr == 55){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+40
                        if(Aussen_LED_Nr == 54){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+39
                        if(Aussen_LED_Nr == 53){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+38
                        if(Aussen_LED_Nr == 52){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+37
                        if(Aussen_LED_Nr == 51){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+36
                      
                        if(Aussen_LED_Nr == 50){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+35
                        if(Aussen_LED_Nr == 49){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+34
                        if(Aussen_LED_Nr == 48){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+33
                        if(Aussen_LED_Nr == 47){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+32
                        if(Aussen_LED_Nr == 46){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+31
                        if(Aussen_LED_Nr == 45){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+30
                        if(Aussen_LED_Nr == 44){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+29
                        if(Aussen_LED_Nr == 43){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+28
                        if(Aussen_LED_Nr == 42){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+27
                        if(Aussen_LED_Nr == 41){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+26
                      
                        if(Aussen_LED_Nr == 40){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 60, 0);  a0 = Aussen_LED_Nr;  } //+25
                        if(Aussen_LED_Nr == 39){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 60, 0);  a0 = Aussen_LED_Nr;  } //+24
                        if(Aussen_LED_Nr == 38){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 60, 0);  a0 = Aussen_LED_Nr;  } //+23
                        if(Aussen_LED_Nr == 37){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 60, 0);  a0 = Aussen_LED_Nr;  } //+22
                        if(Aussen_LED_Nr == 36){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 60, 0);  a0 = Aussen_LED_Nr;  } //+21
                        if(Aussen_LED_Nr == 35){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 60, 0);  a0 = Aussen_LED_Nr;  } //+20
                        
                        if(Aussen_LED_Nr == 34){ anima(); leds[Aussen_LED_Nr] = CRGB( 0, 255, 0);  a0 = Aussen_LED_Nr;  } //+19
                        if(Aussen_LED_Nr == 33){ anima(); leds[Aussen_LED_Nr] = CRGB( 0, 255, 0);  a0 = Aussen_LED_Nr;  } //+18
                        if(Aussen_LED_Nr == 32){ anima(); leds[Aussen_LED_Nr] = CRGB( 0, 255, 0);  a0 = Aussen_LED_Nr;  } //+17
                        if(Aussen_LED_Nr == 31){ anima(); leds[Aussen_LED_Nr] = CRGB( 0, 255, 0);  a0 = Aussen_LED_Nr;  } //+16
                        
                        if(Aussen_LED_Nr == 30){ anima(); leds[Aussen_LED_Nr] = CRGB( 0, 50, 0);  a0 = Aussen_LED_Nr;  } //+15
                        if(Aussen_LED_Nr == 29){ anima(); leds[Aussen_LED_Nr] = CRGB( 0, 50, 0);  a0 = Aussen_LED_Nr;  } //+14
                        if(Aussen_LED_Nr == 28){ anima(); leds[Aussen_LED_Nr] = CRGB( 0, 50, 0);  a0 = Aussen_LED_Nr;  } //+13
                        if(Aussen_LED_Nr == 27){ anima(); leds[Aussen_LED_Nr] = CRGB( 0, 50, 0);  a0 = Aussen_LED_Nr;  } //+12
                        if(Aussen_LED_Nr == 26){ anima(); leds[Aussen_LED_Nr] = CRGB( 0, 50, 0);  a0 = Aussen_LED_Nr;  } //+11
                        
                        if(Aussen_LED_Nr == 25){ anima(); leds[Aussen_LED_Nr] = CRGB( 70, 255, 70);  a0 = Aussen_LED_Nr;  } //+10
                        if(Aussen_LED_Nr == 24){ anima(); leds[Aussen_LED_Nr] = CRGB( 70, 255, 70);  a0 = Aussen_LED_Nr;  } //+9
                        if(Aussen_LED_Nr == 23){ anima(); leds[Aussen_LED_Nr] = CRGB( 70, 255, 70);  a0 = Aussen_LED_Nr;  } //+8
                        if(Aussen_LED_Nr == 22){ anima(); leds[Aussen_LED_Nr] = CRGB( 70, 255, 70);  a0 = Aussen_LED_Nr;  } //+7
                        if(Aussen_LED_Nr == 21){ anima(); leds[Aussen_LED_Nr] = CRGB( 70, 255, 70);  a0 = Aussen_LED_Nr;  } //+6
                        
                        if(Aussen_LED_Nr == 20){ anima(); leds[Aussen_LED_Nr] = CRGB( 160, 160, 160);  a0 = Aussen_LED_Nr;  } //+5
                        if(Aussen_LED_Nr == 19){ anima(); leds[Aussen_LED_Nr] = CRGB( 160, 160, 160);  a0 = Aussen_LED_Nr;  } //+4
                        if(Aussen_LED_Nr == 18){ anima(); leds[Aussen_LED_Nr] = CRGB( 160, 160, 160);  a0 = Aussen_LED_Nr;  } //+3
                        if(Aussen_LED_Nr == 17){ anima(); leds[Aussen_LED_Nr] = CRGB( 160, 160, 160);  a0 = Aussen_LED_Nr;  } //+2
                        if(Aussen_LED_Nr == 16){ anima(); leds[Aussen_LED_Nr] = CRGB( 160, 160, 160);  a0 = Aussen_LED_Nr;  } //+1
                        if(Aussen_LED_Nr == 15){ anima(); leds[Aussen_LED_Nr] = CRGB( 160, 160, 160);  a0 = Aussen_LED_Nr;  } //0
                        
                        if(Aussen_LED_Nr == 14){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //-1
                        if(Aussen_LED_Nr == 13){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //-2
                        if(Aussen_LED_Nr == 12){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //-3
                        if(Aussen_LED_Nr == 11){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //-4
                        if(Aussen_LED_Nr == 10){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //-5
                        
                        if(Aussen_LED_Nr ==  9){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-6
                        if(Aussen_LED_Nr ==  8){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-7
                        if(Aussen_LED_Nr ==  7){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-8
                        if(Aussen_LED_Nr ==  6){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-9
                        if(Aussen_LED_Nr ==  5){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-10
                        if(Aussen_LED_Nr ==  4){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-11
                        if(Aussen_LED_Nr ==  3){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-12
                        if(Aussen_LED_Nr ==  2){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-13
                        if(Aussen_LED_Nr ==  1){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-14
                        if(Aussen_LED_Nr ==  0){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-15
                       FastLED.show();  
                       } // end of ifLedIndex == 0
                      ////////////////////////////////////////////////////////////////////////////////////////////////
                      
                       //####################
                       //Innen-Temp anzeigen
                       //####################
                       
                       if(LedIndex == 1){
                         leds[i0] = CRGB( 0, 0, 0);  // Innen-LEDs zuruecksetzen 
                         markierungen_setzen();
                       
                        //###  AuusenTemp mit altem Wert, bisherigem ueberschreiben ###//
                        if(Aussen_LED_Nr == 60){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+45
                        if(Aussen_LED_Nr == 59){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+44
                        if(Aussen_LED_Nr == 58){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+43
                        if(Aussen_LED_Nr == 57){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+42
                        if(Aussen_LED_Nr == 56){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+41  
                        if(Aussen_LED_Nr == 55){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+40
                        if(Aussen_LED_Nr == 54){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+39
                        if(Aussen_LED_Nr == 53){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+38
                        if(Aussen_LED_Nr == 52){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+37
                        if(Aussen_LED_Nr == 51){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //+36
                      
                        if(Aussen_LED_Nr == 50){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+35
                        if(Aussen_LED_Nr == 49){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+34
                        if(Aussen_LED_Nr == 48){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+33
                        if(Aussen_LED_Nr == 47){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+32
                        if(Aussen_LED_Nr == 46){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+31
                        if(Aussen_LED_Nr == 45){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+30
                        if(Aussen_LED_Nr == 44){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+29
                        if(Aussen_LED_Nr == 43){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+28
                        if(Aussen_LED_Nr == 42){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+27
                        if(Aussen_LED_Nr == 41){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 0);  a0 = Aussen_LED_Nr;  } //+26
                      
                        if(Aussen_LED_Nr == 40){ leds[Aussen_LED_Nr] = CRGB( 255, 60, 0);  a0 = Aussen_LED_Nr;  } //+25
                        if(Aussen_LED_Nr == 39){ leds[Aussen_LED_Nr] = CRGB( 255, 60, 0);  a0 = Aussen_LED_Nr;  } //+24
                        if(Aussen_LED_Nr == 38){ leds[Aussen_LED_Nr] = CRGB( 255, 60, 0);  a0 = Aussen_LED_Nr;  } //+23
                        if(Aussen_LED_Nr == 37){ leds[Aussen_LED_Nr] = CRGB( 255, 60, 0);  a0 = Aussen_LED_Nr;  } //+22
                        if(Aussen_LED_Nr == 36){ leds[Aussen_LED_Nr] = CRGB( 255, 60, 0);  a0 = Aussen_LED_Nr;  } //+21
                        if(Aussen_LED_Nr == 35){ leds[Aussen_LED_Nr] = CRGB( 255, 60, 0);  a0 = Aussen_LED_Nr;  } //+20
                        
                        if(Aussen_LED_Nr == 34){ leds[Aussen_LED_Nr] = CRGB( 0, 255, 0);  a0 = Aussen_LED_Nr;  } //+19
                        if(Aussen_LED_Nr == 33){ leds[Aussen_LED_Nr] = CRGB( 0, 255, 0);  a0 = Aussen_LED_Nr;  } //+18
                        if(Aussen_LED_Nr == 32){ leds[Aussen_LED_Nr] = CRGB( 0, 255, 0);  a0 = Aussen_LED_Nr;  } //+17
                        if(Aussen_LED_Nr == 31){ leds[Aussen_LED_Nr] = CRGB( 0, 255, 0);  a0 = Aussen_LED_Nr;  } //+16
                        
                        if(Aussen_LED_Nr == 30){ leds[Aussen_LED_Nr] = CRGB( 0, 50, 0);  a0 = Aussen_LED_Nr;  } //+15
                        if(Aussen_LED_Nr == 29){ leds[Aussen_LED_Nr] = CRGB( 0, 50, 0);  a0 = Aussen_LED_Nr;  } //+14
                        if(Aussen_LED_Nr == 28){ leds[Aussen_LED_Nr] = CRGB( 0, 50, 0);  a0 = Aussen_LED_Nr;  } //+13
                        if(Aussen_LED_Nr == 27){ leds[Aussen_LED_Nr] = CRGB( 0, 50, 0);  a0 = Aussen_LED_Nr;  } //+12
                        if(Aussen_LED_Nr == 26){ leds[Aussen_LED_Nr] = CRGB( 0, 50, 0);  a0 = Aussen_LED_Nr;  } //+11
                        
                        if(Aussen_LED_Nr == 25){ leds[Aussen_LED_Nr] = CRGB( 70, 255, 70); a0 = Aussen_LED_Nr;  } //+10
                        if(Aussen_LED_Nr == 24){ leds[Aussen_LED_Nr] = CRGB( 70, 255, 70); a0 = Aussen_LED_Nr;  } //+9
                        if(Aussen_LED_Nr == 23){ leds[Aussen_LED_Nr] = CRGB( 70, 255, 70); a0 = Aussen_LED_Nr;  } //+8
                        if(Aussen_LED_Nr == 22){ leds[Aussen_LED_Nr] = CRGB( 70, 255, 70); a0 = Aussen_LED_Nr;  } //+7
                        if(Aussen_LED_Nr == 21){ leds[Aussen_LED_Nr] = CRGB( 70, 255, 70); a0 = Aussen_LED_Nr;  } //+6
                        
                        if(Aussen_LED_Nr == 20){ leds[Aussen_LED_Nr] = CRGB( 160, 160, 160);  a0 = Aussen_LED_Nr;  } //+5
                        if(Aussen_LED_Nr == 19){ leds[Aussen_LED_Nr] = CRGB( 160, 160, 160);  a0 = Aussen_LED_Nr;  } //+4
                        if(Aussen_LED_Nr == 18){ leds[Aussen_LED_Nr] = CRGB( 160, 160, 160);  a0 = Aussen_LED_Nr;  } //+3
                        if(Aussen_LED_Nr == 17){ leds[Aussen_LED_Nr] = CRGB( 160, 160, 160);  a0 = Aussen_LED_Nr;  } //+2
                        if(Aussen_LED_Nr == 16){ leds[Aussen_LED_Nr] = CRGB( 160, 160, 160);  a0 = Aussen_LED_Nr;  } //+1
                        if(Aussen_LED_Nr == 15){ leds[Aussen_LED_Nr] = CRGB( 160, 160, 160);  a0 = Aussen_LED_Nr;  } //0
                        
                        if(Aussen_LED_Nr == 14){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //-1
                        if(Aussen_LED_Nr == 13){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //-2
                        if(Aussen_LED_Nr == 12){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //-3
                        if(Aussen_LED_Nr == 11){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //-4
                        if(Aussen_LED_Nr == 10){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 255);  a0 = Aussen_LED_Nr;  } //-5
                        
                        if(Aussen_LED_Nr ==  9){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-6
                        if(Aussen_LED_Nr ==  8){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-7
                        if(Aussen_LED_Nr ==  7){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-8
                        if(Aussen_LED_Nr ==  6){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-9
                        if(Aussen_LED_Nr ==  5){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-10
                        if(Aussen_LED_Nr ==  4){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-11
                        if(Aussen_LED_Nr ==  3){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-12
                        if(Aussen_LED_Nr ==  2){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-13
                        if(Aussen_LED_Nr ==  1){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-14
                        if(Aussen_LED_Nr ==  0){ leds[Aussen_LED_Nr] = CRGB( 255, 0, 70);  a0 = Aussen_LED_Nr;  } //-15
                       
                      ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                      
                        if(Innen_LED_Nr == 60) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+45
                        if(Innen_LED_Nr == 59) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+44
                        if(Innen_LED_Nr == 58) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+43
                        if(Innen_LED_Nr == 57) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+42
                        if(Innen_LED_Nr == 56) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+41
                        if(Innen_LED_Nr == 55) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+40
                        if(Innen_LED_Nr == 54) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+39
                        if(Innen_LED_Nr == 53) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+38
                        if(Innen_LED_Nr == 52) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+37
                        if(Innen_LED_Nr == 51) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+36
                        if(Innen_LED_Nr == 50) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+35  
                        if(Innen_LED_Nr == 49) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+34
                        if(Innen_LED_Nr == 48) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+33
                        if(Innen_LED_Nr == 47) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+32
                        if(Innen_LED_Nr == 46) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+31
                        if(Innen_LED_Nr == 45) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+30
                        if(Innen_LED_Nr == 44) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+29
                        if(Innen_LED_Nr == 43) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+28
                        if(Innen_LED_Nr == 42) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+27
                        if(Innen_LED_Nr == 41) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+26
                        if(Innen_LED_Nr == 40) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+25
                        if(Innen_LED_Nr == 39) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+24
                        if(Innen_LED_Nr == 38) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+23
                        if(Innen_LED_Nr == 37) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+22  
                        if(Innen_LED_Nr == 36) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+21
                        if(Innen_LED_Nr == 35) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+20
                        if(Innen_LED_Nr == 34) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+19
                        if(Innen_LED_Nr == 33) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+18
                        if(Innen_LED_Nr == 32) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+17
                        if(Innen_LED_Nr == 31) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+16
                        if(Innen_LED_Nr == 30) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+15
                        if(Innen_LED_Nr == 29) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+14
                        if(Innen_LED_Nr == 28) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+13
                        if(Innen_LED_Nr == 27) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+12
                        if(Innen_LED_Nr == 26) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+11
                        if(Innen_LED_Nr == 25) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+10
                        if(Innen_LED_Nr == 24) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+9
                        if(Innen_LED_Nr == 23) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+8
                        if(Innen_LED_Nr == 22) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+7
                        if(Innen_LED_Nr == 21) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+6
                        if(Innen_LED_Nr == 20) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+5
                        if(Innen_LED_Nr == 19) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+4
                        if(Innen_LED_Nr == 18) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+3
                        if(Innen_LED_Nr == 17) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+2
                        if(Innen_LED_Nr == 16) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //+1
                        if(Innen_LED_Nr == 15) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //0  
                        if(Innen_LED_Nr == 14) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-1
                        if(Innen_LED_Nr == 13) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-2
                        if(Innen_LED_Nr == 12) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-3
                        if(Innen_LED_Nr == 11) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-4
                        if(Innen_LED_Nr == 10) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-5
                        if(Innen_LED_Nr ==  9) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-6
                        if(Innen_LED_Nr ==  8) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-7
                        if(Innen_LED_Nr ==  7) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-8
                        if(Innen_LED_Nr ==  6) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-9
                        if(Innen_LED_Nr ==  5) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-10
                        if(Innen_LED_Nr ==  4) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-11
                        if(Innen_LED_Nr ==  3) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-12
                        if(Innen_LED_Nr ==  2) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-13
                        if(Innen_LED_Nr ==  1) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-14
                        if(Innen_LED_Nr ==  0) { animi(); leds[Innen_LED_Nr] = CRGB( 255, 150, 0);  i0 = Innen_LED_Nr;  }  //-15
                       FastLED.show();
                       } // end of ifLedIndex == 1
                      
                      } // end of void MQTTCallback
                      
                      //_________________________________________________________________________________________
                      void reconnect() {
                       while (!client.connected()) {
                           for(int i=NUM_LEDS-1; i>=0; i--){  //alle LEDS leuchten nacheinander gruen, wenn noch nicht mit MQTT verbunden     
                              delay(15);
                              leds[i] = CRGB( 0, 255, 0);
                              FastLED.show();     
                          }
                          Serial.print("Attempting MQTT connection...");
                          String clientId = "Big Thermometer";
                          // Attempt to connect
                          if (client.connect(clientId.c_str())) {
                      
                              delay(1000);
                              FastLED.clear();  // alle LEDs aus, wenn mit MQTT verbunden
                               FastLED.show();
                                
                              Serial.println("connected");
                              client.subscribe("javascript/0/BigTemp/#"); // alle subscriben
                          }
                          else{
                              Serial.print("failed, rc=");
                              Serial.print(client.state());
                              Serial.println(" try again in 5 seconds");
                              // Wait 5 seconds before retrying
                              delay(5000);
                          }
                       } // end of while
                      
                       markierungen_setzen();  // 5er Skalenmarkierungen setzen
                        delay(200);
                      }  // end of void reconnect
                      
                      //_________________________________________________________________________________________
                      void setup() {
                      pinMode(intLED, OUTPUT);    // interne LED
                      digitalWrite(intLED, HIGH); // interne blaue Board-LED ausschalten ( HIGH = Off)
                      
                      FastLED.addLeds<LED_TYPE, LED_PIN>(leds, NUM_LEDS);
                      FastLED.setBrightness(start_helligkeit);
                      
                           for(int i=0; i<=NUM_LEDS-1; i++){  //alle LEDS leuchten nacheinander tuerkis nach dem booten
                            delay(18);
                              leds[i] = CRGB( 70, 150, 70);
                              FastLED.show();     
                          }
                      delay(700);
                      
                      FastLED.clear();  // alle LEDs aus
                      FastLED.show();
                      
                      Serial.begin(115200);
                      setup_wifi();
                      delay(500);
                      
                      client.setServer(mqtt_server, mqtt_port);  // mqtt.0 auf Port 1891 in ioBroker
                      client.setCallback(MQTTCallback);
                      ArduinoOTA.setHostname(OTA_host);   // fuer Flashen ueber WLAN
                      ArduinoOTA.begin();                 // fuer Flashen ueber WLAN
                      
                      } // end of setup
                      
                      //_________________________________________________________________________________________
                      
                      void loop(){
                        ArduinoOTA.handle();  //fuer Flashen ueber WLAN
                        if (!client.connected()) { reconnect(); }
                        client.loop();
                      
                        
                      } // end of loop
                      
                      //_________________________________________________________________________________________
                      
                      
                      

                      Anmerkungen zum Sketch:
                      0.) Ich verwende lieber statische IP-Adressen, als DHCP, deshalb müssen im Sketch die eigenen Netzwerkparameter manuell eingetragen werden
                      1.) Libraries ESP8266WiFi.h, PubSubClient.h ArduinoOTA.h, FastLED.h müssen in Arduino-IDE installiert sein.
                      2.) Nach dem Boot leuchten alle LEDs nacheinander türkis.
                      3.) Solange das WLAN noch nicht verbunden ist, leuchten alle LEDs mit einem Regenbogen-Effekt
                      4.) Wenn MQTT verbunden ist, leuchten alle LEDs nacheinander kurz grün.
                      5.) Meine gewählten Farben für die Aussen-Temp Bereiche:
                      -15 bis -6 dunkelviolett
                      -5 bis -1 violett
                      0 bis +5 weiß
                      +6 bis +10 türkis
                      +11 bis +15 dunkelgrün
                      +16 bis +19 grün
                      +20 bis +25 orange
                      +26 bis +35 rot
                      +36 bis +45 violett
                      6.) Farbe für kpl. Innen-Temp-Bereich : gelb

                      Evtl. werden die Farben - je nach verwendetem RGB-Stripe - anders dargestellt, oder wem die Farben/Bereiche nicht gefallen, der kann sie im Sketch entspr. anpassen ( CRGB( xxx, yyy, zzz) )

                      Sollte es - aus welchen Gründen auch immer - nicht funktionieren, auch mal den seriellen Monitor einschalten und die Meldungen beobachten.

                      Man könnte das Ganze wahrscheinlich auch eleganter - als mit den vielen if-Abfragen - programmieren, aber dazu stecke ich da nicht tief genug drin.

                      Hinweis:
                      Nach dem erstmaligen Flashen via USB-Kabel ist es fortan auch möglich die NodeMCU via WLAN zu flashen ( OTA = Over the air). Dazu in der Arduino-IDE unter "Werkzeuge" -> "Board" den Port "Big Thermometer at xxx.xxx.xxx.xxx" auswählen.

                      Wer es gebrauchen kann, hier noch ein Layout auf Lochrasterplatine:
                      BigThermometer_Lochraster.jpg
                      (Den zusätzlichen Reset-Button habe ich per Kabel in der Gehäuse-Wandung montiert)

                      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

                      676

                      Online

                      32.6k

                      Benutzer

                      82.3k

                      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