/* ######################################################################################## Innen-/Aussentemperatur aus ioBroker via MQTT auf LED-Thermometer (WS2812) anziegen Hardware: NodeMCU V 2.0 19.05.2021 Compiled with Arduino IDE V1.8.10 Made by joergeli ######################################################################################## */ #include #include #include // fuer Flashen ueber WLAN ( OTA = Over The Air) #define FASTLED_ALLOW_INTERRUPTS 0 // gegen Flackern/Flickering #include #define LED_PIN 6 // = D6 //#define LED_TYPE WS2812 #define LED_TYPE NEOPIXEL #define NUM_LEDS 61 //#define BRIGHTNESS 200 #define COLOR_ORDER RGB CRGB leds[NUM_LEDS]; int start_helligkeit = 60; int helligkeit_temp = 100; //10 // für WiFi Intro #define TEMPERATURE_1 Tungsten100W #define TEMPERATURE_2 OvercastSky #define DISPLAYTIME 1 #define BLACKTIME 0 int intLED = D4; // interne, blaue LED (wird spaeter ausgeschaltet) 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 = router const char* ssid = "your wlan ssid"; //### WLAN SSID const char* pwd = "xxxxxxxxx"; //### WLAN Password const char* mqtt_server = "xxx, xxx, xxx, xxx"; //### Ip-Adress of MQTT-Adapter in ioBroker int mqtt_port = 1883; //### MQTT-Port in ioBroker const char* OTA_host = "Big Thermometer"; // Name unter welchem der virtuelle Port in der Arduino-IDE auftaucht //######################################################################################## 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(200); leds[Aussen_LED_Nr] = CRGB( 255, 0, 0); FastLED.show(); delay(200); leds[Aussen_LED_Nr] = CRGB( 0, 255, 0); FastLED.show(); delay(200); leds[Aussen_LED_Nr] = CRGB( 0, 0, 255); FastLED.show(); } } //_________________________________________________________________________________________ // Farb-Animation, wenn InnenTemp empfangen wurde void animi() { FastLED.setBrightness(helligkeit_temp); for(int n=0; n<=3; n++){ delay(200); leds[Innen_LED_Nr] = CRGB( 255, 0, 0); FastLED.show(); delay(200); leds[Innen_LED_Nr] = CRGB( 0, 255, 0); FastLED.show(); delay(200); leds[Innen_LED_Nr] = CRGB( 0, 0, 255); 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 } // 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 //################## if(LedIndex == 0){ leds[a0] = CRGB( 0, 0, 0); // Aussen-LEDs zuruecksetzen markierungen_setzen(); //### InnenTemp mit altem 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, 40, 0); a0 = Aussen_LED_Nr; } //+25 if(Aussen_LED_Nr == 39){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 40, 0); a0 = Aussen_LED_Nr; } //+24 if(Aussen_LED_Nr == 38){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 40, 0); a0 = Aussen_LED_Nr; } //+23 if(Aussen_LED_Nr == 37){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 40, 0); a0 = Aussen_LED_Nr; } //+22 if(Aussen_LED_Nr == 36){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 40, 0); a0 = Aussen_LED_Nr; } //+21 if(Aussen_LED_Nr == 35){ anima(); leds[Aussen_LED_Nr] = CRGB( 255, 40, 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 //################## if(LedIndex == 1){ leds[i0] = CRGB( 0, 0, 0); // Innen-LEDs zuruecksetzen markierungen_setzen(); //### AusenTemp mit altem Wert 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, 40, 0); a0 = Aussen_LED_Nr; } //+25 if(Aussen_LED_Nr == 39){ leds[Aussen_LED_Nr] = CRGB( 255, 40, 0); a0 = Aussen_LED_Nr; } //+24 if(Aussen_LED_Nr == 38){ leds[Aussen_LED_Nr] = CRGB( 255, 40, 0); a0 = Aussen_LED_Nr; } //+23 if(Aussen_LED_Nr == 37){ leds[Aussen_LED_Nr] = CRGB( 255, 40, 0); a0 = Aussen_LED_Nr; } //+22 if(Aussen_LED_Nr == 36){ leds[Aussen_LED_Nr] = CRGB( 255, 40, 0); a0 = Aussen_LED_Nr; } //+21 if(Aussen_LED_Nr == 35){ leds[Aussen_LED_Nr] = CRGB( 255, 40, 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 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 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 LED ausschalten FastLED.addLeds(leds, NUM_LEDS); FastLED.setBrightness(start_helligkeit); for(int i=0; i<=NUM_LEDS-1; i++){ //alle LEDS leuchten tuerkis beim 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 //delay(1); if (!client.connected()) { setup_wifi(); reconnect(); } client.loop(); } // end of loop //_________________________________________________________________________________________