@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)