Skip to content

Praktische Anwendungen (Showcase)

Zeigt eure umgesetzten Projekte
899 Topics 33.6k Posts

NEWS

  • Thermometer mit WS2811 oder WS 2812

    ws2812 display
    25
    0 Votes
    25 Posts
    3k Views
    joergeliJ
    @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: [image: 1583245063668-bigthermometer_lochraster.jpg] (Den zusätzlichen Reset-Button habe ich per Kabel in der Gehäuse-Wandung montiert)
  • Lebensmittelwarnung per Telegram verschicken

    8
    0 Votes
    8 Posts
    566 Views
    J
    @paul53 said in Lebensmittelwarnung per Telegram verschicken: Re: Lebensmittelwarnung per Telegram verschicken Hallo, ich habe das Skript angepasst: //neue Warnung? on(DP+".Nummer_0.Datum", function () { console.log('Neue Warnmeldung vorhanden...'); setTimeout(function() { setState(DP+".neue_Warnung", true, true/*ack*/); }, 3000); }); Doch das brachte keinen Erfolg. Habe dann diesen blockly-Eintrag nachgebaut und damit geht es (habe einfach die Datenpunkte manuell mal abgeändert) [image: 1582839165621-6181de6f-702f-4cb0-a91a-f56e98a4ffa8-grafik.png] Werde beobachten ob es so auch in Zukunft gehen wird. Danke schonmal für eure Hilfe!
  • Touchscreen Wandeinbau mal anders

    touchscreen
    33
    11
    17 Votes
    33 Posts
    15k Views
    S
    @Homoran Also bei mir hängt es nur in doppeltem Rigips mit vielen Dübeln...
  • Abfrage der Anzahl installierter Adapter

    1
    0 Votes
    1 Posts
    241 Views
    No one has replied
  • Xiaomi Yeelight Smart LED (DE)

    Moved
    277
    10
    0 Votes
    277 Posts
    94k Views
    MeistertrM
    @jlssmt sagte in Xiaomi Yeelight Smart LED (DE): setState("yeelight-2.0.Birne.control.power", value, true); nutze bitte setState("yeelight-2.0.Birne.control.power", value); ohne true, dann sollte es gehen
  • Lösung: Kein IPcam Bild in der VIS App

    1
    1 Votes
    1 Posts
    430 Views
    No one has replied
  • Grundlegende Frage über Infos zu den Daten

    2
    0 Votes
    2 Posts
    260 Views
    Salzer MichaelS
    @Salzer-Michael UUps sorry wollte in siggiWetter posten Hmmm
  • modbus (NWPM) - Dimplex Wärmepumpe mit L-Software

    1
    3
    0 Votes
    1 Posts
    526 Views
    No one has replied
  • [Gelöst]Schalter erstellen unter Objekte für Blockly

    3
    1
    0 Votes
    3 Posts
    2k Views
    B
    Problem gelöst, [image: 1581857834445-3403c3ee-3528-40ee-8760-42ed30273ec8-grafik.png] Kann dann via Script und Button in HabPanel (Standardwidget "Switch") verwendet werden. Danke
  • Objekt States via Http versenden On-update ?

    eventghost http
    2
    0 Votes
    2 Posts
    230 Views
    paul53P
    @Medy sagte: dann wenn sich der state ändert Doku on() @Medy sagte in Objekt States via Http versenden On-update ?: Http request request(URL) ist im JS-Adapter integriert.
  • Zipato RFID Keypad Konfiguration

    Moved
    13
    0 Votes
    13 Posts
    2k Views
    G
    Hallo zusammen, das Keypad habe ich auch includiert bekommen. Problem ist jetzt das auslesen, ich denke das wird nur über einen seperaten Code gehen. Habe dazu folgende Seite gefunden siio.de, da gibt es eine Möglichkeit das beim Fibaro einzubauen. Da ich leider nicht wirklich viel Ahnung vom Coding habe, hat jemand vllt. eine Idee wie man das auf iobroker "übersetzten" übersetzten kann. gruß
  • Wemos+Sourceanalytix+S0Zähler

    sourceanalytix wemos-d1 s0-signal
    1
    0 Votes
    1 Posts
    249 Views
    No one has replied
  • Trådfri und Gira System 55

    gira system 55 trådfri
    4
    10
    0 Votes
    4 Posts
    3k Views
    H
    Für mich war bei meinem Schalter folgendes ausschlaggebend: Integration in die bestehende Schalterserie Der Schalter muss ohne Zentrale direkt mit den bestehenden Leuchtmitteln per Zigbee kommunizieren. (falls WLAN/internet/ioBroker/... ausfällt) Preiswert Funktionen: An/Aus/Dimmen Entweder mit Netzteil, oder keine fest verbauten Schalter/Blenden, die zum Batteriewechsel abgebaut werden müssen und währenddessen Leitungen offen liegen. Das muss dann auch meine Frau Tauschen können. Er muss anstelle vorhandener Schalter vor der UP-Dose montiert (dazu muss aus Sicherheitsgründen die Dose noch irgendwie von vorne abgedeckt werden) und eigenständig ohne UP-Dose angebracht werden können. Gerade in Sachen Preis ist diese Lösung sehr gut, weil es den Dimmer bei IKEA für nur 6€ (oder mit E27 Leuchtmittel für 10€) gibt und dazu nur noch eine Gira-Blende und etwas Kunststoffkleber benötigt wird.
  • CO oder CO2 wie und womit messen

    co2 vis messen
    1
    0 Votes
    1 Posts
    368 Views
    No one has replied
  • Tradfri Buschjäger Adapterrahmen

    tradfri buschjäger einbaurahmen
    29
    4
    1 Votes
    29 Posts
    6k Views
    S
    @Rummelmug sagte in Tradfri Buschjäger Adapterrahmen: Als Fazit nehme ich für mich mit, das es in meinem Fall okay ist, die Netzteile von hlktech zu nehmen, eben weil diese entsprechend Zertifiziert sind. Mich schreckt jedoch noch immer die Tatsache zurück, das man dort noch zusätzliche Sicherungen etc mit dran löten sollte und ich als gelernter Werkzeugmacher von Hause aus nervös werde, sobald irgendwo blanke Kabel aus der Wand hängen. Die Netzteile von hlktech sind schon in Ordnung, jedoch gehören die - nebst Sicherung/Diode/Schraubterminal - auf eine kleine Platine mit Berührungsschutz, dann passt alles. Gruß Christian
  • Meine Dash-Button Lösung...

    15
    1
    0 Votes
    15 Posts
    3k Views
    padrinoP
    @mf Interessant. Aber Firmware von 2016, da muss man ja schon ewig dabei sein und direkt das nach Hause Funken unterunden haben... :thinking_face: Auch witzig, dass es da immer noch einen aktiven Server bei Amazon gibt. Die Lösung wird also wohl auch nicht ewig gehen... :relieved:
  • Audio-Sprachausgabe über MP3 Player in Verbindung mit ESP8266.

    Moved
    40
    4
    0 Votes
    40 Posts
    13k Views
    OpenSourceNomadO
    @HarryB @Johannes-Bauerstatter hat es Erfolgreich mit Windows am laufen. Kannst ja mal in den Thread hier spicken: https://forum.iobroker.net/post/348501 ;)
  • Normale Klingel ohne viel Aufwand smart machen

    18
    1
    8 Votes
    18 Posts
    25k Views
    OpenSourceNomadO
    Narren haben Angst vor Stromausfall @Asgothian :joy: Und wieder andere kaufen sich für 150€ "smarte" Türöffner und haben einen nicht so smarten Briefbeschwerer nachdem die Firma pleite geht und die Server abstellt. Geld allein wirds schon nicht sein. Schöne neue Welt!
  • Vorstellung meines Systems

    19
    3 Votes
    19 Posts
    4k Views
    M
    Hallo Werde45, Ich finde deine Vis sehr schön und würde mich interessieren wie du immer das neueste Bild und Spruch des Tages aus dem Internet aktualisiert bekommst. Vielen Dank
  • 0 Votes
    1 Posts
    483 Views
    No one has replied

341

Online

32.7k

Users

82.5k

Topics

1.3m

Posts