Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Statusdisplay - McLighting vs. Tasmota Son. Basic

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

Statusdisplay - McLighting vs. Tasmota Son. Basic

Geplant Angeheftet Gesperrt Verschoben Off Topic
13 Beiträge 6 Kommentatoren 2.0k Aufrufe 9 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • G Offline
    G Offline
    Gwenselah
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich habe mir das Statusdisplay nach Dennis' Anleitung gebaut. Anleitung.

    Zuerst hab ich Tasmota geflasht, aber die Nutzung per MQTT (Sonoff Adapter) ist doch sehr eingeschränkt und per HTTP-Request zu schalten gefällt mir nicht. Auch wird beim Anschalten über SetState ("...Power",true) der Zustand aller LEDs auf einen Default gesetzt. Damit ist ein Display, welches sich nur bei Änderung eines Zustandes aktiviert, nur schwer realisierbar.

    Danach hab ich McLighting geflasht (Github). Hat einige vorgefertigte Lichteffekte, die Steuerung einzelnen LEDs über den McLightning Adapter funktioniert auch gut. Aber die Firmware scheint es nicht zu verkraften, wenn man zu viele Anfragen auf einmal sendet. Mir ist es auf zwei verschiedenen ESP8266 passiert, dass diese dann nicht mehr booteten; hängen im Schritt 3 von 4 fest. Beim Debuggen zeigte sich, dass diverse Konfigurationen aus dem Flashspeicher gelesen werden und dabei hängt er sich auf (Vermutung: das Schreiben der Konfig wird nur Mist abgelegt, der beim Booten dann nicht funktioniert. Habe nichts gefunden um das zu deaktivieren).
    Auch wird diese Version nicht mehr weiter entwickelt.

    Dann den McLighting-Fork von FabLab-Luenen getestet: Github. Aber dieser arbeitet nicht mit dem McLighting-Adapter zusammen.

    Gibt es Meinungen oder Ideen in der Community hierzu? Wie habt ihr das gelöst?

    joergeliJ 1 Antwort Letzte Antwort
    0
    • E Offline
      E Offline
      Elektroman
      schrieb am zuletzt editiert von
      #2

      @Gwenselah sagte in Statusdisplay - McLighting vs. Tasmota Son. Basic:

      Statusdisplay

      Moin,
      passt zwar nicht zum Statusdisplay, habe aber schon mehrer Projekte mit MCLighting in Verbindung ioBroker umgesetzt.
      Schade das MCLightling nicht weiter entwickelt wird, oder gibt es eine bessere Alternative, für den ESP8266 und ioBroker

      OpenSourceNomadO S 2 Antworten Letzte Antwort
      0
      • E Elektroman

        @Gwenselah sagte in Statusdisplay - McLighting vs. Tasmota Son. Basic:

        Statusdisplay

        Moin,
        passt zwar nicht zum Statusdisplay, habe aber schon mehrer Projekte mit MCLighting in Verbindung ioBroker umgesetzt.
        Schade das MCLightling nicht weiter entwickelt wird, oder gibt es eine bessere Alternative, für den ESP8266 und ioBroker

        OpenSourceNomadO Offline
        OpenSourceNomadO Offline
        OpenSourceNomad
        Most Active
        schrieb am zuletzt editiert von
        #3

        @Elektroman said in Statusdisplay - McLighting vs. Tasmota Son. Basic:

        @Gwenselah sagte in Statusdisplay - McLighting vs. Tasmota Son. Basic:

        Statusdisplay

        Moin,
        passt zwar nicht zum Statusdisplay, habe aber schon mehrer Projekte mit MCLighting in Verbindung ioBroker umgesetzt.
        Schade das MCLightling nicht weiter entwickelt wird, oder gibt es eine bessere Alternative, für den ESP8266 und ioBroker

        Ich würde es mal mit esphome probieren. Hat sehr mächtige light components. Mittels mqtt oder rest-api dürfte die iobroker Integration ein Kinderspiel sein :tada:

        „Das Widerlegen von Schwachsinn erfordert eine Größenordnung mehr Energie als dessen Produktion.“ - Alberto Brandolini (Bullshit-Asymmetrie-Prinzip)

        1 Antwort Letzte Antwort
        0
        • G Offline
          G Offline
          Gwenselah
          schrieb am zuletzt editiert von
          #4

          ich bin hier final bei Tasmota gelandet, steuere das meiste per HTTP-Request an, MQTT nur um im Script auf Ereignisse wie PowerOn zu reagieren.

          1 Antwort Letzte Antwort
          0
          • E Elektroman

            @Gwenselah sagte in Statusdisplay - McLighting vs. Tasmota Son. Basic:

            Statusdisplay

            Moin,
            passt zwar nicht zum Statusdisplay, habe aber schon mehrer Projekte mit MCLighting in Verbindung ioBroker umgesetzt.
            Schade das MCLightling nicht weiter entwickelt wird, oder gibt es eine bessere Alternative, für den ESP8266 und ioBroker

            S Offline
            S Offline
            stefande
            schrieb am zuletzt editiert von
            #5

            @Elektroman

            Der McLighting Fork von FabLab Luenen wird noch weiter entwickelt:

            Link Text

            1 Antwort Letzte Antwort
            0
            • G Gwenselah

              Hallo,

              ich habe mir das Statusdisplay nach Dennis' Anleitung gebaut. Anleitung.

              Zuerst hab ich Tasmota geflasht, aber die Nutzung per MQTT (Sonoff Adapter) ist doch sehr eingeschränkt und per HTTP-Request zu schalten gefällt mir nicht. Auch wird beim Anschalten über SetState ("...Power",true) der Zustand aller LEDs auf einen Default gesetzt. Damit ist ein Display, welches sich nur bei Änderung eines Zustandes aktiviert, nur schwer realisierbar.

              Danach hab ich McLighting geflasht (Github). Hat einige vorgefertigte Lichteffekte, die Steuerung einzelnen LEDs über den McLightning Adapter funktioniert auch gut. Aber die Firmware scheint es nicht zu verkraften, wenn man zu viele Anfragen auf einmal sendet. Mir ist es auf zwei verschiedenen ESP8266 passiert, dass diese dann nicht mehr booteten; hängen im Schritt 3 von 4 fest. Beim Debuggen zeigte sich, dass diverse Konfigurationen aus dem Flashspeicher gelesen werden und dabei hängt er sich auf (Vermutung: das Schreiben der Konfig wird nur Mist abgelegt, der beim Booten dann nicht funktioniert. Habe nichts gefunden um das zu deaktivieren).
              Auch wird diese Version nicht mehr weiter entwickelt.

              Dann den McLighting-Fork von FabLab-Luenen getestet: Github. Aber dieser arbeitet nicht mit dem McLighting-Adapter zusammen.

              Gibt es Meinungen oder Ideen in der Community hierzu? Wie habt ihr das gelöst?

              joergeliJ Offline
              joergeliJ Offline
              joergeli
              schrieb am zuletzt editiert von
              #6

              @Gwenselah
              Das kennst Du?:
              LED Status Display
              Es läuft in ioBroker über den mqtt-Adapter (Achtung: evtl. anderen mqtt-Port wählen, falls der schon durch z.B. Sonoff-mqtt belegt ist).

              Beim Einschalten werden alle Kanäle (LED01 - LED31) subscribed und somit auch alle aktuellen States angezeigt, also nicht nur bei Änderung eines States.
              Ist allerdings "ganz normal" über die Arduino-IDE geflashed und die Nezwerkparameter (IP-Adresse, WLAN-SSID, etc.) müssen manuell im Sketch eingtragen werden ( ich bin ein Freund statischer IP-Adressen bei fest installierten Geräten).

              Ich habe 2 Stck. dieser LED Status-Displays gebaut und sie laufen absolut problemlos, keine Hänger, o.ä.

              G OpenSourceNomadO 2 Antworten Letzte Antwort
              0
              • joergeliJ joergeli

                @Gwenselah
                Das kennst Du?:
                LED Status Display
                Es läuft in ioBroker über den mqtt-Adapter (Achtung: evtl. anderen mqtt-Port wählen, falls der schon durch z.B. Sonoff-mqtt belegt ist).

                Beim Einschalten werden alle Kanäle (LED01 - LED31) subscribed und somit auch alle aktuellen States angezeigt, also nicht nur bei Änderung eines States.
                Ist allerdings "ganz normal" über die Arduino-IDE geflashed und die Nezwerkparameter (IP-Adresse, WLAN-SSID, etc.) müssen manuell im Sketch eingtragen werden ( ich bin ein Freund statischer IP-Adressen bei fest installierten Geräten).

                Ich habe 2 Stck. dieser LED Status-Displays gebaut und sie laufen absolut problemlos, keine Hänger, o.ä.

                G Offline
                G Offline
                Gwenselah
                schrieb am zuletzt editiert von
                #7

                @joergeli Vielen Dank für den Tipp. Nein, das kenne ich nicht, sieht aber schon Mal gut aus. Werd ich mir mal genauer anschauen.

                1 Antwort Letzte Antwort
                0
                • joergeliJ joergeli

                  @Gwenselah
                  Das kennst Du?:
                  LED Status Display
                  Es läuft in ioBroker über den mqtt-Adapter (Achtung: evtl. anderen mqtt-Port wählen, falls der schon durch z.B. Sonoff-mqtt belegt ist).

                  Beim Einschalten werden alle Kanäle (LED01 - LED31) subscribed und somit auch alle aktuellen States angezeigt, also nicht nur bei Änderung eines States.
                  Ist allerdings "ganz normal" über die Arduino-IDE geflashed und die Nezwerkparameter (IP-Adresse, WLAN-SSID, etc.) müssen manuell im Sketch eingtragen werden ( ich bin ein Freund statischer IP-Adressen bei fest installierten Geräten).

                  Ich habe 2 Stck. dieser LED Status-Displays gebaut und sie laufen absolut problemlos, keine Hänger, o.ä.

                  OpenSourceNomadO Offline
                  OpenSourceNomadO Offline
                  OpenSourceNomad
                  Most Active
                  schrieb am zuletzt editiert von OpenSourceNomad
                  #8

                  @joergeli said in Statusdisplay - McLighting vs. Tasmota Son. Basic:

                  Ist allerdings "ganz normal" über die Arduino-IDE geflashed und die Nezwerkparameter (IP-Adresse, WLAN-SSID, etc.) müssen manuell im Sketch eingtragen werden

                  Ich habe es glücklicherweise 2019 hin bekommen alle meine (ca. 40) ESP Gerätschaften von Tasmota, Espeasy, Espurna und anderen custom Arduino sketches auf esphome zu migrieren.

                  Seit dem habe ich die volle Kontrolle.

                  Ich kann nicht nur jedem meiner ESP's aus der ferne neu starten oder herunterfahren, nein, ich sehe auch für alle meine ESP die aktuell verfügbaren System Informationen, angefangen vom online status über die WLAN Signalstärke, BSSID, SSID und IP. Außerdem die eingesetzte Hardware bzw. ESP Modul, Software Version sowie die Uptime. Zusätzlich werde diese Daten natürlich auch mitgeloggt. Alle Änderungen am ESP werden darüber hinaus natürlich over-the-air eingespielt.

                  Wer sich einmal an diesen Luxus gewöhnt hat kommt davon nie wieder weg. :grin:

                  Nebenbei kann ich mit so vielen dezentralisierten Sensoren auch sehr gute Rückschlüsse ziehen, wie die WLAN Ausleuchte ist und wie sie sich durch eine Standoränderung des Access Points verändert. Oder wie sich auch nur eine leichte Ausrichtung der Antennen positiv (oder negativ) auf die gesamte WLAN Abdeckung auswirkt. Das ganze wohl gemerkt 'gratis', zusätzlich zur eigentlichen Aufgabe der ESP's, sei es simple LEDs wie hier, displays, cameras, thermostate, relays, power monitore oder jegliche weiteren denkbaren Sensoren und Aktoren ;)

                  „Das Widerlegen von Schwachsinn erfordert eine Größenordnung mehr Energie als dessen Produktion.“ - Alberto Brandolini (Bullshit-Asymmetrie-Prinzip)

                  1 Antwort Letzte Antwort
                  0
                  • E Offline
                    E Offline
                    Elektroman
                    schrieb am zuletzt editiert von
                    #9

                    Hallo und frohes Neues!
                    Mit so einer Resonanz habe ich nicht gerechnet, vielen Dank.
                    Werde ich mir mal alles in ruhe anschauen

                    1 Antwort Letzte Antwort
                    0
                    • Basti97B Offline
                      Basti97B Offline
                      Basti97
                      Most Active
                      schrieb am zuletzt editiert von
                      #10

                      Ich finde MC lighting aber ich komme mit der Einstellung nicht klar. Gibt es eine fertige bin von Mclighting bzw wie man es einfacher flashen kann.
                      Danke im vorraus

                      Iobroker läuft als VM auf Proxmoxserver x folgende Hersteller im Einsatz Sonoff, Gosund, Siemens x Aofo über Tasmota x Zigbee x das Smarthome wächst und wächst

                      G 1 Antwort Letzte Antwort
                      0
                      • Basti97B Basti97

                        Ich finde MC lighting aber ich komme mit der Einstellung nicht klar. Gibt es eine fertige bin von Mclighting bzw wie man es einfacher flashen kann.
                        Danke im vorraus

                        G Offline
                        G Offline
                        Gwenselah
                        schrieb am zuletzt editiert von
                        #11

                        @Basti97
                        Ich hab das damals nach der Anleitung von Tobi Blum gemacht: Link
                        Aber wie gesagt, lief nicht stabil, daher nun alles mit Tasmota gelöst

                        Basti97B 1 Antwort Letzte Antwort
                        0
                        • G Gwenselah

                          @Basti97
                          Ich hab das damals nach der Anleitung von Tobi Blum gemacht: Link
                          Aber wie gesagt, lief nicht stabil, daher nun alles mit Tasmota gelöst

                          Basti97B Offline
                          Basti97B Offline
                          Basti97
                          Most Active
                          schrieb am zuletzt editiert von
                          #12

                          @Gwenselah Danke
                          Und wie hast du es auf Tasmota gelöst. Gibt es da auch fertige Modies. Da Tasmota auch einfacher wäre zu installieren.

                          Iobroker läuft als VM auf Proxmoxserver x folgende Hersteller im Einsatz Sonoff, Gosund, Siemens x Aofo über Tasmota x Zigbee x das Smarthome wächst und wächst

                          1 Antwort Letzte Antwort
                          0
                          • G Offline
                            G Offline
                            Gwenselah
                            schrieb am zuletzt editiert von Gwenselah
                            #13

                            Hier mal quick&dirty:
                            Gebaut hab ich das wie der gute Dennis es hier beschreibt: https://www.youtube.com/watch?v=gN2gJ3IYXpo&t=491s
                            Da ich aber kein Blockly Freund bin, hab ich ein Javascript entwickelt, welches per HTTP Request, die LEDs setzt.

                            Paar Infos dazu:
                            Ich setze sehr stark auf den LinkedDevices Adapter und schreibe dort den Datenpunkt "open" für die Türkontaktsensoren entsprechend um: false=geschlossen, true=offen. Die Datenpunkte existierten bereits und ich wollte hierfür keine neuen anlegen.
                            In ObjektLEDs wird die Zuordnung des Datenpunktes auf die LED definiert.
                            Mit den Variablen Doors,BoolDevicesTrueRED,BoolDevicesTrueGreen und Lights definiert man, wie sich die LED verhalten soll.
                            Für die Mülltonnen hab ich eine Sonderbehandlung, da ich mein Mülltonnenscript nicht komplett umbauen wollte.

                            Hier mein Script:

                            /*
                            BEI TASMOTA BEGINNT DIE ZÄHLUNG BEI 1 !!!
                            LED 29: Wohnzimmer linke Tür	LED 18:	Kai Türe				LED 17: Gästezimmer Türe	  	LED 6: Altpapaier 	LED 5: linke Waschmaschine 
                            LED 28: Wohnzimmer rechte Tür   LED 19: Kai Fenster     		LED 16: Gästezimmer Fenster     LED 7: Biomüll    	LED 4: rechte Waschmaschine
                            LED 27: Küche Fenster           LED 20: Lea Türe         		LED 15: Büro Fenster		    LED 8: Restmüll   	LED 3: Trockner   
                            LED 26: WC Fenster    			LED 21: Bad Fenster     		LED 14: Klimagerät              LED 9: Wertstoffe 	LED 2: Geschirrspüler 
                            LED 25: Waschküche Fenster      LED 22: Schlafzimmer Fenster	LED 13: Entertainment 			LED 10:				LED 1: 
                            LED 24: Keller Fenster          LED 23: Garagentor        		LED 12: 						LED 11:				LED 0: Gäste WLAN
                            */
                            
                            // Lichtfarbendefinition
                            //Originale Farbwerte: 
                            //var ColorOK = "10FF00"; //Grün
                            //var ColorWarning = "ffcb05"; //Orange bis Gelb
                            //var ColorError = "ff0000";  //Rot
                            //diese waren zu hell, durch Konvertierung auf HSL, dimmen auf ide Hälfte (L = 25%) und zurück nach RGB, ergibt:
                            var ColorOK = "043800"; //Grün
                            var ColorWarning = "806600"; //Orange bis Gelb
                            var ColorError = "800000";  //Rot
                            
                            //Gerätedefinition
                            var DisplayIP = "10.1.24.105";
                            
                            var ObjektLEDs = [
                                //BEI TASMOTA BEGINNT DIE ZÄHLUNG BEI 1 !!!
                                { Objekt: 'linkeddevices.0.Livingroom.wlanGuest', LED: '01' },
                                { Objekt: '', LED: '02' },    
                                { Objekt: 'linkeddevices.0.Kitchen.DisherStatusBinaer', LED: '03' },
                                { Objekt: 'linkeddevices.0.Washroom.DryerStatusBinaer', LED: '04' },
                                { Objekt: 'linkeddevices.0.Washroom.WasherRightStatusBinaer', LED: '05' },
                                { Objekt: 'linkeddevices.0.Washroom.WasherLeftStatusBinaer', LED: '06' },   
                                { Objekt: 'Altpapier', LED: '07' },   //Altpapier 
                                { Objekt: 'BioMuell', LED: '08' },    //Biomüll
                                { Objekt: 'RestMuell', LED: '09' },   //Restmüll
                                { Objekt: 'Wertstoffe', LED: '10' },  //Wertstoffe
                                { Objekt: '', LED: '11' },    
                                { Objekt: '', LED: '12' },    
                                { Objekt: '', LED: '13' },    
                                { Objekt: 'linkeddevices.0.Livingroom.ENTERTAINMENTstate', LED: '14' },
                                { Objekt: 'linkeddevices.0.Office.KLIMAGERAETstate', LED: '15' },  
                                { Objekt: '', LED: '16' },  
                                { Objekt: '', LED: '17' },   
                                { Objekt: 'linkeddevices.0.Guests.DoorOpened', LED: '18' },    
                                { Objekt: 'linkeddevices.0.Kai.DoorOpened', LED: '19' },    
                                { Objekt: 'linkeddevices.0.Kai.WindowOpened', LED: '20' },    
                                { Objekt: 'linkeddevices.0.Lea.DoorOpened', LED: '21' },    
                                { Objekt: 'linkeddevices.0.Bath.WindowOpened', LED: '22' },    
                                { Objekt: 'linkeddevices.0.Sleepingroom.opened', LED: '23' },    
                                { Objekt: 'linkeddevices.0.Garage.opened', LED: '24' },    
                                { Objekt: 'linkeddevices.0.Cellar.WindowOpened', LED: '25' },    
                                { Objekt: 'linkeddevices.0.Washroom.WindowOpened', LED: '26' },
                                { Objekt: 'linkeddevices.0.WC.WindowOpened', LED: '27' },
                                { Objekt: 'linkeddevices.0.Kitchen.opened', LED: '28' },
                                { Objekt: 'linkeddevices.0.Livingroom.DoorRightOpened', LED: '29' },
                                { Objekt: 'linkeddevices.0.Livingroom.DoorLeftOpened', LED: '30' }
                            ];  
                            
                            //Türen und Fenster
                            var Doors = ['linkeddevices.0.Livingroom.DoorLeftOpened','linkeddevices.0.Livingroom.DoorRightOpened','linkeddevices.0.Garage.opened','linkeddevices.0.Bath.WindowOpened',
                                'linkeddevices.0.Kitchen.opened','linkeddevices.0.Sleepingroom.opened','linkeddevices.0.Kai.DoorOpened','linkeddevices.0.Kai.WindowOpened','linkeddevices.0.Lea.DoorOpened',
                            	'linkeddevices.0.Cellar.WindowOpened','linkeddevices.0.Washroom.WindowOpened','linkeddevices.0.WC.WindowOpened','linkeddevices.0.Guests.DoorOpened'];
                            
                            var BoolDevicesTrueRED = ['linkeddevices.0.Office.KLIMAGERAETstate','linkeddevices.0.Livingroom.ENTERTAINMENTstate','linkeddevices.0.Livingroom.wlanGuest',
                            	'linkeddevices.0.Washroom.DryerStatusBinaer','linkeddevices.0.Washroom.WasherLeftStatusBinaer','linkeddevices.0.Washroom.WasherRightStatusBinaer','linkeddevices.0.Kitchen.DisherStatusBinaer']; //LED ist rot, wenn der Status dieses Gerätes TRUE ist
                            
                            var BoolDevicesTrueGreen = []; //LED ist grün, wenn der Status dieses Gerätes TRUE ist
                            
                            var Lights = []; //LED ist gelb, wenn die Lampe an ist, ansonsten aus
                            
                            // -----------------------------------------
                            function wait(ms){
                               var start = new Date().getTime();
                               var end = start;
                               while(end < start + ms) {
                                 end = new Date().getTime();
                              }
                            }
                            
                            function RunRequest(URL){
                                try {
                                    require("request")(URL).on("error", function (e) {console.error(e);});
                                } catch (e) { console.error(e); }
                            
                                console.log("Statusdisplay Request: " + URL);
                            
                            }
                            // --- Funktion für Einzelledsteuerung ----------------------------------------------------------
                            function SwitchLED (LEDNo, ColorCode) {
                            	if (getState('sonoff.0.Statusdisplay.POWER').val) {
                            		RunRequest("http://"+DisplayIP+"/cm?cmnd=Led"+LEDNo+"%20"+ColorCode);
                            	}
                            }
                            
                            function GetLedNo (DeviceTriggerName){
                                //log ("Dev: " + DeviceTriggerName);
                                for (var ObjektLED in ObjektLEDs) { //ObjektLED enthält nur eine Nummer und nicht das Element        
                                    //log ("Name: " + ObjektLEDs[ObjektLED].Objekt);
                                    if (ObjektLEDs[ObjektLED].Objekt == DeviceTriggerName) {
                                        return (ObjektLEDs[ObjektLED].LED);             
                                    }
                                }    
                            }
                            
                            function SetBoolDevicesTrueRED (DeviceTriggerName, DeviceTriggerValue) {
                                if (DeviceTriggerValue == "true" || DeviceTriggerValue == "1" || DeviceTriggerValue == "läuft" ) {
                                    SwitchLED (GetLedNo(DeviceTriggerName),ColorError);
                                } else {
                                    SwitchLED (GetLedNo(DeviceTriggerName),ColorOK);
                                }
                            }
                            
                            function SetBoolDevicesTrueGreen (DeviceTriggerName, DeviceTriggerValue) {
                                if (DeviceTriggerValue == "true" || DeviceTriggerValue == "1") {
                                    SwitchLED (GetLedNo(DeviceTriggerName),ColorOK);
                                } else {
                                    SwitchLED (GetLedNo(DeviceTriggerName),ColorError);
                                }
                            }
                            
                            function SetDoorsLED (DeviceTriggerName, DeviceTriggerValue) {
                                if (DeviceTriggerValue == "geschlossen") {
                                    SwitchLED (GetLedNo(DeviceTriggerName),ColorOK);
                                } else {
                                    SwitchLED (GetLedNo(DeviceTriggerName),ColorError);
                                }
                            }
                            
                            function SetLightsLED (DeviceTriggerName, DeviceTriggerValue) {
                                if (DeviceTriggerValue) {
                                    SwitchLED (GetLedNo(DeviceTriggerName),ColorWarning);
                                } else {
                                    SwitchLED (GetLedNo(DeviceTriggerName),"000000");
                                }
                            }
                            
                            function SetMuelltonnenLights(){
                            	function SwitchGarbageLEDs(GarbageName,Days){
                            		if (Days == 0) {
                            			SwitchLED (GetLedNo(GarbageName),ColorError);
                            		} else if (Days == 1) {
                            			SwitchLED (GetLedNo(GarbageName),ColorWarning);
                            		} else {
                            			SwitchLED (GetLedNo(GarbageName),ColorOK);
                            		}
                            	}
                            	
                            	var RestMuellResttage = getState('Datenpunkte.0.Wertstoffe.Restmüll_Resttage').val;
                            	var BioMuellResttage = getState('Datenpunkte.0.Wertstoffe.Bio_Resttage').val;
                            	var AltpapierResttage = getState('Datenpunkte.0.Wertstoffe.Papier_Resttage').val;
                            	var WertstoffeResttage = getState('Datenpunkte.0.Wertstoffe.Wertstoffe_Resttage').val;
                            	
                            	SwitchGarbageLEDs("BioMuell",BioMuellResttage);
                            	SwitchGarbageLEDs("RestMuell",RestMuellResttage);
                            	SwitchGarbageLEDs("Altpapier",AltpapierResttage);
                            	SwitchGarbageLEDs("Wertstoffe",WertstoffeResttage);
                            	
                            }
                            
                            
                            // --- globale Displayfunktionen ----------------------------------------------------------------
                            
                            function ResetDisplay(){
                                setState('sonoff.0.StatusDisplay.Color','000000');
                                //setState('sonoff.0.StatusDisplay.POWER',false); //Power wird bei MQTT automatisch auf false gesetzt
                            }
                            
                            function SwitchOffDisplayDelayed(){
                                //setStateDelayed('sonoff.0.Statusdisplay.POWER',false,(1000 * 60)); //Angabe in Millisekunden
                            }
                            
                            
                            function SwitchOnOffDisplay(PowerOn){
                                if (PowerOn) {
                                   RunRequest("http://"+DisplayIP+"/cm?cmnd=Power%20on");
                                   log ("Status Display: Power On");
                                } else {
                                   RunRequest("http://"+DisplayIP+"/cm?cmnd=Power%20off");
                                   log ("Status Display: Power Off");
                                }
                            }
                            
                            function InitDisplay(){    
                                log ("+++ Statusdisplay Init");
                                //Option20 setzen: LED: ermöglicht den Dimmwert zu verändern, ohne die Versorgung einzuschalten (default = 0 / off)
                                RunRequest("http://"+DisplayIP+"/cm?cmnd=SetOption20%201");
                            
                                RunRequest("http://"+DisplayIP+"/cm?cmnd=fade%200");
                                RunRequest("http://"+DisplayIP+"/cm?cmnd=scheme%200");
                                wait (1000); //Milliseconds
                                //alle undefinierten LEDs löschen
                                for (i = 0; i < 30; i++) {   
                                    //console.log ("------------------------------------------------------------");
                                    //console.log(ObjektLEDs[i].Objekt + ": " + ObjektLEDs[i].Objekt.length);
                                    if (ObjektLEDs[i].Objekt == '') {                        
                                        SwitchLED ((i+1),"000000");   
                                        wait (500); //Milliseconds          
                                    }    
                                }
                            
                                if (Doors.length > 0) {
                                    Doors.forEach(function(element) {
                                        SetDoorsLED(element,getState(element).val);
                                    });
                                }
                                if (BoolDevicesTrueRED.length > 0) {
                                    BoolDevicesTrueRED.forEach(function(element) {
                                        //var value = getState(element).val;
                                        //SetBoolDevicesTrueRED(element,value);
                                        SetBoolDevicesTrueRED(element,getState(element).val);
                                    });
                                }
                                if (BoolDevicesTrueGreen.length > 0) {
                                    BoolDevicesTrueGreen.forEach(function(element) {
                                        SetBoolDevicesTrueGreen(element,getState(element).val);
                                    }); 
                                }   
                                if (Lights.length > 0) {
                                    Lights.forEach(function(element) {
                                        SetLightsLED(element,getState(element).val);
                                    }); 
                                }
                                SetMuelltonnenLights();
                            }
                            
                            // --- MAIN ---------------------------------------------------------------------------
                            on({id:'sonoff.0.Statusdisplay.POWER', change: 'ne'},(obj) => {
                                var value = obj.state.val;
                                log ("Statusdisplay - Power: " + value);
                                if (value) {
                                    InitDisplay();    
                                }
                            });
                            
                            on({id: Doors, change: 'ne'},(obj) => {
                            	//setState('sonoff.0.StatusDisplay.POWER',true)
                                var value = obj.state.val;
                                var objArr  = obj.id.match(/(^.+)\.(.+)\.(.+)$/, ""); //Aufteilung in Pfad + Device + CMD
                                //var DeviceID=objArr[1]+"."+objArr[2];
                                //var DeviceName=objArr[2];
                                /*console.log("Trigger: " + objArr[0]);
                                console.log("Pfad: " + objArr[1]);
                                console.log("Devic);name: " + objArr[2]);
                                console.log("localDeviceID:"+DeviceID);*/
                                SetDoorsLED(objArr[0],value);
                            	SwitchOffDisplayDelayed();
                            });
                            on({id: BoolDevicesTrueRED, change: 'ne'},(obj) => {
                            	//setState('sonoff.0.StatusDisplay.POWER'/*Turn On/Off*/,true)
                                var value = obj.state.val;
                                var objArr  = obj.id.match(/(^.+)\.(.+)\.(.+)$/, ""); //Aufteilung in Pfad + Device + CMD
                                SetBoolDevicesTrueRED(objArr[0],value);
                            	SwitchOffDisplayDelayed();
                                
                            });
                            on({id: BoolDevicesTrueGreen, change: 'ne'},(obj) => {
                            	//setState('sonoff.0.StatusDisplay.POWER'/*Turn On/Off*/,true)
                                var value = obj.state.val;
                                var objArr  = obj.id.match(/(^.+)\.(.+)\.(.+)$/, ""); //Aufteilung in Pfad + Device + CMD
                                SetBoolDevicesTrueGreen(objArr[0],value);
                            	SwitchOffDisplayDelayed();
                                
                            });
                            on({id: Lights, change: 'ne'},(obj) => {
                            	//setState('sonoff.0.StatusDisplay.POWER'/*Turn On/Off*/,true)
                                //InitDisplay();
                                var value = obj.state.val;
                                var objArr  = obj.id.match(/(^.+)\.(.+)\.(.+)$/, ""); //Aufteilung in Pfad + Device + CMD
                                SetLightsLED(objArr[0],value);
                            	SwitchOffDisplayDelayed();
                                
                            });
                            
                            
                            //-- Inits --
                            if (getState('linkeddevices.0.Diningroom.StatusdisplayPOWER').val == false) {
                                //setState('linkeddevices.0.Diningroom.StatusdisplayPOWER',true); //Power True triggert "InitDisplay()"
                                SwitchOnOffDisplay(true);
                            } else {
                                InitDisplay();
                            }
                            
                            //Display AN/AUS Steuerung
                            
                            on({id: 'javascript.0.Astro.Astrotag',val: true}, function(){
                            	//Wenn es Tag wird Display anschalten
                            	if (getState('linkeddevices.0.Diningroom.StatusdisplayPOWER').val == false) {
                            		SwitchOnOffDisplay(true);
                            	}
                            })
                            
                            on({id: 'linkeddevices.0.Diningroom.CEILINGSWITCHSwitch', change: 'ne'}, function() {
                            	//Wenn es Nacht ist, wird das Display mit der Deckenlampe geschaltet
                            	if (getState('javascript.0.Astro.Astrotag').val == false) {
                            		SwitchOnOffDisplay(getState('linkeddevices.0.Diningroom.CEILINGSWITCHSwitch').val);
                            	}
                            })
                            
                            //schedule('0 6 * * *', function(){SwitchOnOffDisplay(true)});
                            schedule('55 22 * * *',  function(){SwitchOnOffDisplay(false)}); //zur Sicherheit trotzdem um 23 Uhr ausschalten
                            schedule('1 6 * * *', SetMuelltonnenLights);
                            
                            
                            1 Antwort Letzte Antwort
                            0
                            Antworten
                            • In einem neuen Thema antworten
                            Anmelden zum Antworten
                            • Älteste zuerst
                            • Neuste zuerst
                            • Meiste Stimmen


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            889

                            Online

                            32.4k

                            Benutzer

                            81.5k

                            Themen

                            1.3m

                            Beiträge
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                            ioBroker Community 2014-2025
                            logo
                            • Anmelden

                            • Du hast noch kein Konto? Registrieren

                            • Anmelden oder registrieren, um zu suchen
                            • Erster Beitrag
                              Letzter Beitrag
                            0
                            • Home
                            • Aktuell
                            • Tags
                            • Ungelesen 0
                            • Kategorien
                            • Unreplied
                            • Beliebt
                            • GitHub
                            • Docu
                            • Hilfe