Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. SONOFF NSPanel mit Lovelace UI

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    217

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

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

SONOFF NSPanel mit Lovelace UI

SONOFF NSPanel mit Lovelace UI

Scheduled Pinned Locked Moved Hardware
lovelace uinspanelsonoff
7.7k Posts 271 Posters 6.7m Views 253 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Offline
    W Offline
    wavemaster01
    wrote on last edited by
    #852

    Hallo, zuerst einmal möchte ich mich für das tolle Projekt bedanken. Das UI läuft prima auf meinem NSPanel. Nun habe ich aber eine weitergehende Frage.

    Da das NSPanel neben unserer Haustüre installiert werden soll, hätte ich gerne, dass der Screensaver je nachdem, ob Fenster zu, offen oder gekippt sind, eine andere Hintergrundfarbe bekommt.
    Per MQTT steht im IOBroker eine Variable zur Verfügung (Werte: 0= Fenster zu, 1 = Fenster = offen, 2 = Fenster gekippt).
    In Zeile 199 des Skripts habe ich folgende Konstante gefunden, mit der ich dauerhaft die Hintergrundfarbe ändern kann.

    //Screensaver Default Theme Colors
    const scbackground: RGB = { red: 0, green: 0, blue: 0}

    Wie schaffe ich es aber nun je nach oben genannten Stati die Hintergrundfarbe zu ändern. Es sollte wohl mit einer if-Bedingung klappen, aber alle meine rudimentären Versuche endeten mit einem defekten Skript 😉

    Vielleicht hat jmd. die Syntax zur Lösung des "Problems" für mich.

    Vielen Dank!!!!

    K 1 Reply Last reply
    0
    • ArmilarA Offline
      ArmilarA Offline
      Armilar
      Most Active Forum Testing
      wrote on last edited by Armilar
      #853

      @wavemaster01 sagte in SONOFF NSPanel mit Lovelace UI:

      Es sollte wohl mit einer if-Bedingung klappen

      Die Antwort ist nein. Mit einer if-Bedingung wird es nicht klappen.

      Zunächst muss das Skript einen Trigger verarbeiten der den Zustand des/der Fenster verarbeitet. Dann muss der Screensaver neu gerendert werden und im Payload (aktuell nicht variabel für Background) muss dann die Farbe für den Screensaver mitgegeben werden. Hierbei können dann die Farbkonstanten benutzt werden und in rgb565-Konvertierung an das Panel gesendet werden. Das ist wiederum ein Update auf den Screensaver

      Aber ich bin mir sicher, dass mindestens eine if-Bedingung benötigt wird 😉

      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
      https://github.com/joBr99/nspanel-lovelace-ui/wiki

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      W 2 Replies Last reply
      0
      • ArmilarA Armilar

        @wavemaster01 sagte in SONOFF NSPanel mit Lovelace UI:

        Es sollte wohl mit einer if-Bedingung klappen

        Die Antwort ist nein. Mit einer if-Bedingung wird es nicht klappen.

        Zunächst muss das Skript einen Trigger verarbeiten der den Zustand des/der Fenster verarbeitet. Dann muss der Screensaver neu gerendert werden und im Payload (aktuell nicht variabel für Background) muss dann die Farbe für den Screensaver mitgegeben werden. Hierbei können dann die Farbkonstanten benutzt werden und in rgb565-Konvertierung an das Panel gesendet werden. Das ist wiederum ein Update auf den Screensaver

        Aber ich bin mir sicher, dass mindestens eine if-Bedingung benötigt wird 😉

        W Offline
        W Offline
        wavemaster01
        wrote on last edited by
        #854

        @armilar Vielen Dank für deine Antwort!! Da wird der Schalter wohl nicht so schnell den HMIP-BSL ersetzen können, aber einmal schauen, was sich mit der Zeit im Skript generell tut 👍 . Danke ebenfalls für deine technischen Ausführungen, da ist eine if-Bedingung gedanklich immerhin ein Anfang bei mir gewesen 😄 😉

        ArmilarA 1 Reply Last reply
        0
        • W wavemaster01

          @armilar Vielen Dank für deine Antwort!! Da wird der Schalter wohl nicht so schnell den HMIP-BSL ersetzen können, aber einmal schauen, was sich mit der Zeit im Skript generell tut 👍 . Danke ebenfalls für deine technischen Ausführungen, da ist eine if-Bedingung gedanklich immerhin ein Anfang bei mir gewesen 😄 😉

          ArmilarA Offline
          ArmilarA Offline
          Armilar
          Most Active Forum Testing
          wrote on last edited by
          #855

          @wavemaster01

          Die Überlegung wäre nicht direkt "in Fenstern" zu denken, sondern einen Indikator über Datenpunkt zu triggern, der dann den die grundsätzliche Möglichkeit bietet die Hintergrundfarbe des Screensavers zu ändern. Gibt aber aktuell auch nur eine Hintergrundfarbe für alle Fenster. Mit bExit müsste die Farbe spätestens wieder zurückgedreht werden.

          Ich durchdenke das mal...

          Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
          https://github.com/joBr99/nspanel-lovelace-ui/wiki

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          1 Reply Last reply
          0
          • W wavemaster01

            Hallo, zuerst einmal möchte ich mich für das tolle Projekt bedanken. Das UI läuft prima auf meinem NSPanel. Nun habe ich aber eine weitergehende Frage.

            Da das NSPanel neben unserer Haustüre installiert werden soll, hätte ich gerne, dass der Screensaver je nachdem, ob Fenster zu, offen oder gekippt sind, eine andere Hintergrundfarbe bekommt.
            Per MQTT steht im IOBroker eine Variable zur Verfügung (Werte: 0= Fenster zu, 1 = Fenster = offen, 2 = Fenster gekippt).
            In Zeile 199 des Skripts habe ich folgende Konstante gefunden, mit der ich dauerhaft die Hintergrundfarbe ändern kann.

            //Screensaver Default Theme Colors
            const scbackground: RGB = { red: 0, green: 0, blue: 0}

            Wie schaffe ich es aber nun je nach oben genannten Stati die Hintergrundfarbe zu ändern. Es sollte wohl mit einer if-Bedingung klappen, aber alle meine rudimentären Versuche endeten mit einem defekten Skript 😉

            Vielleicht hat jmd. die Syntax zur Lösung des "Problems" für mich.

            Vielen Dank!!!!

            K Offline
            K Offline
            Kuckuckmann
            wrote on last edited by
            #856

            @wavemaster01

            Hi wavemaster,

            vlt. kann ich Dir einen anderen Ansatz bieten.

            Ich habe mein Panel in einem 3D gedruckten Gehäuse eingelassen und habe obendrüber zwei große LEDs montiert, um damit den Status der Relays anzuzeigen. Dies kann man natürlich auch zweckentfremden und aus dem ioBroker anderweitig schalten.
            In einer anderen Lösug habe ich eine LED für den Stauts meiner Heizung und einen On/Off Button für das Panel darüber gesetzt. Vlt. muss die Signalgebung nicht immer zwingend auf dem Panel abgebildet werden. LEDs die man ansteuern kann gibt es mittlerweile ja auch ganz günstig (Falls Du die Relays im panel nicht nutzt, kannst Du auch damit eine 230V LED steuern - kann da einen Tipp geben für schöne Edelstahl LEDs) und mit einem Logigskript im ioBroker kann man viel machen 😉

            LG

            NSPanel Dokumentation im GitHub Wiki:

            https://github.com/joBr99/nspanel-lovelace-ui/wiki

            W T 2 Replies Last reply
            0
            • K Kuckuckmann

              @wavemaster01

              Hi wavemaster,

              vlt. kann ich Dir einen anderen Ansatz bieten.

              Ich habe mein Panel in einem 3D gedruckten Gehäuse eingelassen und habe obendrüber zwei große LEDs montiert, um damit den Status der Relays anzuzeigen. Dies kann man natürlich auch zweckentfremden und aus dem ioBroker anderweitig schalten.
              In einer anderen Lösug habe ich eine LED für den Stauts meiner Heizung und einen On/Off Button für das Panel darüber gesetzt. Vlt. muss die Signalgebung nicht immer zwingend auf dem Panel abgebildet werden. LEDs die man ansteuern kann gibt es mittlerweile ja auch ganz günstig (Falls Du die Relays im panel nicht nutzt, kannst Du auch damit eine 230V LED steuern - kann da einen Tipp geben für schöne Edelstahl LEDs) und mit einem Logigskript im ioBroker kann man viel machen 😉

              LG

              W Offline
              W Offline
              wavemaster01
              wrote on last edited by
              #857

              @kuckuckmann Hallo kuckuckmann, ein ganz andere Ansatz 👍 , wobei ein Relais brauche ich, damit ich die Treppenhausbeleuchtung neben der Tür schalten kann, damit bleibt mir ein Relais. Wenn ich gerade richtig mitdenke, kann ich aber mit diesem Relais wiederum nur zwei Zustände anzeigen, wobei ich zu/offen/gekippt bräuchte überleg oder habe ich da gerade einen Denkfehler bezüglich der Ansteuerung der LEDs

              K 1 Reply Last reply
              0
              • W wavemaster01

                @kuckuckmann Hallo kuckuckmann, ein ganz andere Ansatz 👍 , wobei ein Relais brauche ich, damit ich die Treppenhausbeleuchtung neben der Tür schalten kann, damit bleibt mir ein Relais. Wenn ich gerade richtig mitdenke, kann ich aber mit diesem Relais wiederum nur zwei Zustände anzeigen, wobei ich zu/offen/gekippt bräuchte überleg oder habe ich da gerade einen Denkfehler bezüglich der Ansteuerung der LEDs

                K Offline
                K Offline
                Kuckuckmann
                wrote on last edited by Kuckuckmann
                #858

                @wavemaster01

                Ich hab zwar gerade kein Beispiel dafür (Hardware), aber es gibt doch bestimmt LEDs wo man via Skript die Farbe wechseln kann? Bsp. WLED gesteuert.

                Musst Du denn offen und gekippt zwingend unterscheiden? Beides ist doch letztlich offen, oder nicht?

                NSPanel Dokumentation im GitHub Wiki:

                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                1 Reply Last reply
                0
                • K Kuckuckmann

                  @wavemaster01

                  Hi wavemaster,

                  vlt. kann ich Dir einen anderen Ansatz bieten.

                  Ich habe mein Panel in einem 3D gedruckten Gehäuse eingelassen und habe obendrüber zwei große LEDs montiert, um damit den Status der Relays anzuzeigen. Dies kann man natürlich auch zweckentfremden und aus dem ioBroker anderweitig schalten.
                  In einer anderen Lösug habe ich eine LED für den Stauts meiner Heizung und einen On/Off Button für das Panel darüber gesetzt. Vlt. muss die Signalgebung nicht immer zwingend auf dem Panel abgebildet werden. LEDs die man ansteuern kann gibt es mittlerweile ja auch ganz günstig (Falls Du die Relays im panel nicht nutzt, kannst Du auch damit eine 230V LED steuern - kann da einen Tipp geben für schöne Edelstahl LEDs) und mit einem Logigskript im ioBroker kann man viel machen 😉

                  LG

                  T Offline
                  T Offline
                  TT-Tom
                  wrote on last edited by
                  #859

                  Hallo,

                  @kuckuckmann sagte in SONOFF NSPanel mit Lovelace UI:

                  Ich habe mein Panel in einem 3D gedruckten Gehäuse eingelassen

                  ich habe auch schon überlegt ein Gehäuse zu bauen. Kannst du mal ein Foto zeigen, wie das bei dir aussieht?

                  Gruß Tom
                  https://github.com/tt-tom17
                  Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                  NSPanel Script Wiki
                  https://github.com/joBr99/nspanel-lovelace-ui/wiki

                  NSPanel Adapter Wiki
                  https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                  K 1 Reply Last reply
                  0
                  • ArmilarA Armilar

                    @dapeace

                    aktuell (und ohne irgendeinen Anhaltspunkt zu deiner Variable zu haben 😉 ) gehe ich davon aus, dass die minValue: 50, maxValue: 315 im pageItem mit Komma versehen sind. Die Angabe muss ohne Komma erfolgen, da das NSPanel es sonst nicht verarbeiten kann.

                    D Offline
                    D Offline
                    DaPeace
                    wrote on last edited by
                    #860

                    @armilar sorry für die wenigen Infos.
                    Mein Alias verweist auf einen Set-Point mit Komma.
                    Wie kriege ich denn das dann bitte gerundet?

                    Bei mir schaut das Thermostat so aus:

                    var Wohnzimmer_Themostat: PageThermo = 
                    {
                        "type": "cardThermo",
                        "heading": "Thermostat",
                        "useColor": true,
                        "subPage": false,
                        "parent": undefined,
                        "items": [<PageItem>{ id: "alias.0.NSPanelWozi-Settings.ThermostatWozi", minValue: 5, maxValue: 30 }]
                    };
                    
                    
                    ArmilarA H 2 Replies Last reply
                    0
                    • D DaPeace

                      @armilar sorry für die wenigen Infos.
                      Mein Alias verweist auf einen Set-Point mit Komma.
                      Wie kriege ich denn das dann bitte gerundet?

                      Bei mir schaut das Thermostat so aus:

                      var Wohnzimmer_Themostat: PageThermo = 
                      {
                          "type": "cardThermo",
                          "heading": "Thermostat",
                          "useColor": true,
                          "subPage": false,
                          "parent": undefined,
                          "items": [<PageItem>{ id: "alias.0.NSPanelWozi-Settings.ThermostatWozi", minValue: 5, maxValue: 30 }]
                      };
                      
                      
                      ArmilarA Offline
                      ArmilarA Offline
                      Armilar
                      Most Active Forum Testing
                      wrote on last edited by
                      #861

                      @dapeace

                      Dann war die Vermutung korrekt.

                      minValue muss auf 50, wenn 5.0°C und
                      maxValue muss auf 300, wenn 30.0°C

                      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      1 Reply Last reply
                      0
                      • D DaPeace

                        @armilar sorry für die wenigen Infos.
                        Mein Alias verweist auf einen Set-Point mit Komma.
                        Wie kriege ich denn das dann bitte gerundet?

                        Bei mir schaut das Thermostat so aus:

                        var Wohnzimmer_Themostat: PageThermo = 
                        {
                            "type": "cardThermo",
                            "heading": "Thermostat",
                            "useColor": true,
                            "subPage": false,
                            "parent": undefined,
                            "items": [<PageItem>{ id: "alias.0.NSPanelWozi-Settings.ThermostatWozi", minValue: 5, maxValue: 30 }]
                        };
                        
                        
                        H Offline
                        H Offline
                        holgerwolf
                        wrote on last edited by holgerwolf
                        #862

                        @dapeace Zum Runden: Du kannst im Geräte Manager in der Zuordnung der Werte mit Funktionen arbeiten. Da auf das "fx" gehen und die Funktion hinterlegen. Runden müsste mit "math.round (val)" gehen. Aber nicht getestet.

                        ArmilarA 1 Reply Last reply
                        0
                        • H holgerwolf

                          @dapeace Zum Runden: Du kannst im Geräte Manager in der Zuordnung der Werte mit Funktionen arbeiten. Da auf das "fx" gehen und die Funktion hinterlegen. Runden müsste mit "math.round (val)" gehen. Aber nicht getestet.

                          ArmilarA Offline
                          ArmilarA Offline
                          Armilar
                          Most Active Forum Testing
                          wrote on last edited by Armilar
                          #863

                          @holgerwolf

                          Ich verstehe nicht, was da gerundet werden soll? Hier geht es um die minimal und maximal einstellbare Temperatur des Thermostaten.

                          Wenn der Thermostat (technisch laut Handbuch) bei 5°C anfängt (also aus ist), dann wird im pageItem eine 50 vergeben für 5.0 oder 5.

                          Das gleiche für die maximal möglich einstellbare Temperatur des Thermostaten (Aufdrehen und Temperatur ablesen...)
                          Steht da eine 30, dann 300 in den pageItem (entspricht dann 30.0 oder 30)

                          Steht da 30.5, dann 305 in den pageItem eingeben (entspricht 30.5)

                          Es können auch weitere Werte (eigentlich alle) eingegeben werden. Es muss aber dann mit dem Faktor 10 passieren

                          Beispiele:
                          4,5°C = 45
                          29°C = 290
                          32,5°C = 325
                          usw.

                          "items": [<PageItem>{ id: "alias.0.NSPanelWozi-Settings.ThermostatWozi", minValue: 5, maxValue: 30 }]
                          

                          Jetzt zu dem Beispiel aus dem pageItem von @DaPeace
                          Diese Werte bedeuten übersetzt für das NSPanel: 0,5°C und 3,0°C.

                          Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                          https://github.com/joBr99/nspanel-lovelace-ui/wiki

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          H 1 Reply Last reply
                          0
                          • ArmilarA Armilar

                            @holgerwolf

                            Ich verstehe nicht, was da gerundet werden soll? Hier geht es um die minimal und maximal einstellbare Temperatur des Thermostaten.

                            Wenn der Thermostat (technisch laut Handbuch) bei 5°C anfängt (also aus ist), dann wird im pageItem eine 50 vergeben für 5.0 oder 5.

                            Das gleiche für die maximal möglich einstellbare Temperatur des Thermostaten (Aufdrehen und Temperatur ablesen...)
                            Steht da eine 30, dann 300 in den pageItem (entspricht dann 30.0 oder 30)

                            Steht da 30.5, dann 305 in den pageItem eingeben (entspricht 30.5)

                            Es können auch weitere Werte (eigentlich alle) eingegeben werden. Es muss aber dann mit dem Faktor 10 passieren

                            Beispiele:
                            4,5°C = 45
                            29°C = 290
                            32,5°C = 325
                            usw.

                            "items": [<PageItem>{ id: "alias.0.NSPanelWozi-Settings.ThermostatWozi", minValue: 5, maxValue: 30 }]
                            

                            Jetzt zu dem Beispiel aus dem pageItem von @DaPeace
                            Diese Werte bedeuten übersetzt für das NSPanel: 0,5°C und 3,0°C.

                            H Offline
                            H Offline
                            holgerwolf
                            wrote on last edited by
                            #864

                            @armilar Sorry, hatte nur die Frage gelesen: "Mein Alias verweist auf einen Set-Point mit Komma.
                            Wie kriege ich denn das dann bitte gerundet?"

                            ArmilarA 1 Reply Last reply
                            0
                            • H holgerwolf

                              @armilar Sorry, hatte nur die Frage gelesen: "Mein Alias verweist auf einen Set-Point mit Komma.
                              Wie kriege ich denn das dann bitte gerundet?"

                              ArmilarA Offline
                              ArmilarA Offline
                              Armilar
                              Most Active Forum Testing
                              wrote on last edited by Armilar
                              #865

                              @holgerwolf

                              Eine Rundung ist nicht erforderlich, da das NSPanel beim Setpoint bereits in 0.5 Steps arbeitet. An dieser Stelle übernimmt das Panel auch die Umrechnung mit dem Faktor 10

                              Wenn minValue oder/und maxValue nicht gesetzt ist, dann wird vom Panel 5°C und 30°C angenommen.

                              if (existsState(id + '.ACTUAL')) {
                                  currentTemp = (Math.round(parseFloat(getState(id + '.ACTUAL').val) * 10) / 10);
                              }
                                          
                              let minTemp = page.items[0].minValue !== undefined ? page.items[0].minValue : 50;   //Min Temp 5°C            
                              let maxTemp = page.items[0].maxValue !== undefined ? page.items[0].maxValue : 300;  //Max Temp 30°C
                                          
                              let stepTemp = 5 // 0,5° Schritte
                              

                              Das macht das TS-Script bereits (siehe Auszug)

                              Vor Übergabe an das Payload wird dann auchnoch der Setpoint mit 10 multipliziert...

                              destTemp = setValue.toFixed(2) * 10;
                              

                              Das Nextion kann ansonsten keine Fließkommazahlen verarbeiten...

                              Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                              https://github.com/joBr99/nspanel-lovelace-ui/wiki

                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                              1 Reply Last reply
                              0
                              • T TT-Tom

                                Hallo,

                                @kuckuckmann sagte in SONOFF NSPanel mit Lovelace UI:

                                Ich habe mein Panel in einem 3D gedruckten Gehäuse eingelassen

                                ich habe auch schon überlegt ein Gehäuse zu bauen. Kannst du mal ein Foto zeigen, wie das bei dir aussieht?

                                K Offline
                                K Offline
                                Kuckuckmann
                                wrote on last edited by
                                #866

                                @tt-tom

                                Sah so aus - ist aber eine Entwurfsfassung:

                                IMG-20220909-WA0010.jpg

                                NSPanel Dokumentation im GitHub Wiki:

                                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                1 Reply Last reply
                                1
                                • D Offline
                                  D Offline
                                  DaPeace
                                  wrote on last edited by
                                  #867

                                  @holgerwolf Sorry dachte der Datenpunkt muß korrigiert werden aber so wie @Armilar das gesagt hat reichts aus und funzt auch. Danke für die prompte Hilfe!

                                  1 Reply Last reply
                                  0
                                  • ArmilarA Armilar

                                    @wavemaster01 sagte in SONOFF NSPanel mit Lovelace UI:

                                    Es sollte wohl mit einer if-Bedingung klappen

                                    Die Antwort ist nein. Mit einer if-Bedingung wird es nicht klappen.

                                    Zunächst muss das Skript einen Trigger verarbeiten der den Zustand des/der Fenster verarbeitet. Dann muss der Screensaver neu gerendert werden und im Payload (aktuell nicht variabel für Background) muss dann die Farbe für den Screensaver mitgegeben werden. Hierbei können dann die Farbkonstanten benutzt werden und in rgb565-Konvertierung an das Panel gesendet werden. Das ist wiederum ein Update auf den Screensaver

                                    Aber ich bin mir sicher, dass mindestens eine if-Bedingung benötigt wird 😉

                                    W Offline
                                    W Offline
                                    wavemaster01
                                    wrote on last edited by
                                    #868

                                    @armilar Hallo, ich bin es nochmals :-). Ich habe mir deine Anweisungen genau durchgelesen und ein wenig recherchiert, gebastelt und probiert :-).
                                    Jetzt habe ich bereits eines geschafft. Ich kann die Farben des Screensavers mit Werten befüllen, die ich per MQTT bekomme. Sprich ich lasse mir, je nach Situation, die nötigen Farbwerte für RGB senden.
                                    Wenn ich das Skript neu im IOBroker starte, wird auch die Hintergrundfarbe des Screensavers auf dem Display geändert.

                                    Du hast geschrieben, dass ich zur automatischen Übernahme der Werte den Screensaver neu rendern muss. Gibt es dazu eine Funktion. Ich habe unter //Testbereich ein wenig herumprobiert, aber die Farbe wird bei Änderung nicht geupdatet. Vielleicht bin ich aber auch komplett auf dem Holzweg 😌 und ob der Code schön ist 😄 - lerne da gerade per try and error

                                    Danke nochmals!

                                    var a ="mqtt.0.Test.FensterFarbe1";
                                    var a2= getState(a).val;
                                    var a3: number = +a2;
                                    var b ="mqtt.0.Test.FensterFarbe2";
                                    var b2= getState(b).val;
                                    var b3: number = +b2;
                                    var c ="mqtt.0.Test.FensterFarbe";
                                    var c2= getState(c).val;
                                    var c3: number = +c2;
                                    
                                    const scbackground:     RGB = { red: a3, green:  b3, blue: c3};
                                    
                                    //Testbereich
                                    on(a, function(a2) {
                                    HandleScreensaverColors();
                                    HandleScreensaverUpdate();
                                    });
                                    on(b, function(b2) {
                                    HandleScreensaverColors();
                                    HandleScreensaverUpdate();
                                    });
                                    on(c, function(c2) {
                                    HandleScreensaverColors();
                                    HandleScreensaverUpdate();
                                    });
                                    
                                    
                                    ArmilarA 1 Reply Last reply
                                    0
                                    • W wavemaster01

                                      @armilar Hallo, ich bin es nochmals :-). Ich habe mir deine Anweisungen genau durchgelesen und ein wenig recherchiert, gebastelt und probiert :-).
                                      Jetzt habe ich bereits eines geschafft. Ich kann die Farben des Screensavers mit Werten befüllen, die ich per MQTT bekomme. Sprich ich lasse mir, je nach Situation, die nötigen Farbwerte für RGB senden.
                                      Wenn ich das Skript neu im IOBroker starte, wird auch die Hintergrundfarbe des Screensavers auf dem Display geändert.

                                      Du hast geschrieben, dass ich zur automatischen Übernahme der Werte den Screensaver neu rendern muss. Gibt es dazu eine Funktion. Ich habe unter //Testbereich ein wenig herumprobiert, aber die Farbe wird bei Änderung nicht geupdatet. Vielleicht bin ich aber auch komplett auf dem Holzweg 😌 und ob der Code schön ist 😄 - lerne da gerade per try and error

                                      Danke nochmals!

                                      var a ="mqtt.0.Test.FensterFarbe1";
                                      var a2= getState(a).val;
                                      var a3: number = +a2;
                                      var b ="mqtt.0.Test.FensterFarbe2";
                                      var b2= getState(b).val;
                                      var b3: number = +b2;
                                      var c ="mqtt.0.Test.FensterFarbe";
                                      var c2= getState(c).val;
                                      var c3: number = +c2;
                                      
                                      const scbackground:     RGB = { red: a3, green:  b3, blue: c3};
                                      
                                      //Testbereich
                                      on(a, function(a2) {
                                      HandleScreensaverColors();
                                      HandleScreensaverUpdate();
                                      });
                                      on(b, function(b2) {
                                      HandleScreensaverColors();
                                      HandleScreensaverUpdate();
                                      });
                                      on(c, function(c2) {
                                      HandleScreensaverColors();
                                      HandleScreensaverUpdate();
                                      });
                                      
                                      
                                      ArmilarA Offline
                                      ArmilarA Offline
                                      Armilar
                                      Most Active Forum Testing
                                      wrote on last edited by Armilar
                                      #869

                                      @wavemaster01 sagte in SONOFF NSPanel mit Lovelace UI:

                                      on(a, function(a2) { HandleScreensaverColors(); HandleScreensaverUpdate(); });

                                      Dann will ich den Lernspass noch nicht beenden 😉

                                      Kleiner Hinweis, eine Konstante hat über die ganze Laufzeit den gleichen Wert. Eine Variable nicht.

                                      tausche mal "var" gegen "let" aus und mache das gleiche mit der scbackground. Danach versuche mal alles in "einen" Trigger zu setzten und "denke nicht in Fenstern" 😊

                                      In der HandleScreensaverColors() werden die Farben gerendert

                                      Habe noch nicht den Sinn von drei mqtt.0.Test.FensterFarbe"n" geblickt. Da Fenster ja nur Zustände liefern können closed=0, open=1, tilted=2 müsste doch alles in einen Datenpunkt gehen?

                                      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                      W 1 Reply Last reply
                                      0
                                      • ArmilarA Armilar

                                        @wavemaster01 sagte in SONOFF NSPanel mit Lovelace UI:

                                        on(a, function(a2) { HandleScreensaverColors(); HandleScreensaverUpdate(); });

                                        Dann will ich den Lernspass noch nicht beenden 😉

                                        Kleiner Hinweis, eine Konstante hat über die ganze Laufzeit den gleichen Wert. Eine Variable nicht.

                                        tausche mal "var" gegen "let" aus und mache das gleiche mit der scbackground. Danach versuche mal alles in "einen" Trigger zu setzten und "denke nicht in Fenstern" 😊

                                        In der HandleScreensaverColors() werden die Farben gerendert

                                        Habe noch nicht den Sinn von drei mqtt.0.Test.FensterFarbe"n" geblickt. Da Fenster ja nur Zustände liefern können closed=0, open=1, tilted=2 müsste doch alles in einen Datenpunkt gehen?

                                        W Offline
                                        W Offline
                                        wavemaster01
                                        wrote on last edited by
                                        #870

                                        @armilar danke für deine Geduld 👍 . Ich habe jetzt einiges herumprobiert, aber der EventHandler on wird nicht zu meinem Freund :-D.

                                        Das mit den Datentypen habe ich verstanden und umgesetzt (sh. unten).

                                        Bezüglich der Fenster muss ich ein bisschen erklären. Ich habe einen Loxone Miniserver auf dem der Status aller unserer Fenster im Haus erfasst wird. Bisher habe ich 0/1/2 ausgegeben, wenn alle (0) alle Fenster zu, (1) wenn ein oder mehrere Fenster offen, (2) ein oder mehrere Fenster gekippt sind. Bisher haben wir ein LED-Licht neben der Tür, das eines der 3 Farben anzeigt (läuft über HomeMatic, das ich an den Miniserver angebunden habe). Problem ist nur , man kann nicht sehen, welches Fenster offen ist.
                                        Am NSPanel habe ich es so konfiguriert, dass nach einem Klick auf den Screensaver die offenen Fenster (oder je nachdem) mit Bezeichnung über ein Info-Feld angezeigt werden. Das läuft wurnderbar.
                                        Da ich mit den 3 Stati und den Farben nicht weitergekommen bin, habe ich den Miniserver so konfiguriert, dass er jetzt für die genannten 3 Zustände Farbwerte für mich liefert 😊 , was zu meinem ersten Erfolg geführt in dem Script und der Anzeige geführt hat 🙂 .

                                        Mit dem Hinweis denke "nicht in Fenstern" und dem on-Eventhandler bin ich aber jetzt nicht mehr wirklich weitergekommen - außer error-Meldungen im Skript 😄 . Hast du vielleicht noch einen Tipp, sodass sich die Farbe aktualisiert?
                                        Ich wollte das 'on' auf 'scbackground' 'ansetzen', aber dann bin ich beim casten nicht weitergekommen. DANKE NOCHMALS 🙂 !

                                        let a ="mqtt.0.Test.FensterFarbe1";
                                        let a2= getState(a).val;
                                        let a3: number = +a2;
                                        let b ="mqtt.0.Test.FensterFarbe2";
                                        let b2= getState(b).val;
                                        let b3: number = +b2;
                                        let c ="mqtt.0.Test.FensterFarbe";
                                        let c2= getState(c).val;
                                        let c3: number = +c2;
                                        let scbackground:       RGB = { red: a3, green:  b3, blue: c3};
                                        
                                        ArmilarA 1 Reply Last reply
                                        0
                                        • W wavemaster01

                                          @armilar danke für deine Geduld 👍 . Ich habe jetzt einiges herumprobiert, aber der EventHandler on wird nicht zu meinem Freund :-D.

                                          Das mit den Datentypen habe ich verstanden und umgesetzt (sh. unten).

                                          Bezüglich der Fenster muss ich ein bisschen erklären. Ich habe einen Loxone Miniserver auf dem der Status aller unserer Fenster im Haus erfasst wird. Bisher habe ich 0/1/2 ausgegeben, wenn alle (0) alle Fenster zu, (1) wenn ein oder mehrere Fenster offen, (2) ein oder mehrere Fenster gekippt sind. Bisher haben wir ein LED-Licht neben der Tür, das eines der 3 Farben anzeigt (läuft über HomeMatic, das ich an den Miniserver angebunden habe). Problem ist nur , man kann nicht sehen, welches Fenster offen ist.
                                          Am NSPanel habe ich es so konfiguriert, dass nach einem Klick auf den Screensaver die offenen Fenster (oder je nachdem) mit Bezeichnung über ein Info-Feld angezeigt werden. Das läuft wurnderbar.
                                          Da ich mit den 3 Stati und den Farben nicht weitergekommen bin, habe ich den Miniserver so konfiguriert, dass er jetzt für die genannten 3 Zustände Farbwerte für mich liefert 😊 , was zu meinem ersten Erfolg geführt in dem Script und der Anzeige geführt hat 🙂 .

                                          Mit dem Hinweis denke "nicht in Fenstern" und dem on-Eventhandler bin ich aber jetzt nicht mehr wirklich weitergekommen - außer error-Meldungen im Skript 😄 . Hast du vielleicht noch einen Tipp, sodass sich die Farbe aktualisiert?
                                          Ich wollte das 'on' auf 'scbackground' 'ansetzen', aber dann bin ich beim casten nicht weitergekommen. DANKE NOCHMALS 🙂 !

                                          let a ="mqtt.0.Test.FensterFarbe1";
                                          let a2= getState(a).val;
                                          let a3: number = +a2;
                                          let b ="mqtt.0.Test.FensterFarbe2";
                                          let b2= getState(b).val;
                                          let b3: number = +b2;
                                          let c ="mqtt.0.Test.FensterFarbe";
                                          let c2= getState(c).val;
                                          let c3: number = +c2;
                                          let scbackground:       RGB = { red: a3, green:  b3, blue: c3};
                                          
                                          ArmilarA Offline
                                          ArmilarA Offline
                                          Armilar
                                          Most Active Forum Testing
                                          wrote on last edited by
                                          #871

                                          @wavemaster01

                                          hab's schon fertig 😉

                                          Gebe es dir morgen. Heute schon zu spät... Wollte dir aber nicht den Spaß verderben mit einer fertigen Lösung.

                                          VG

                                          Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                          https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                          W 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          51

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe