Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. SONOFF NSPanel mit Lovelace UI

NEWS

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

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

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

SONOFF NSPanel mit Lovelace UI

Geplant Angeheftet Gesperrt Verschoben Hardware
lovelace uinspanelsonoff
7.8k Beiträge 272 Kommentatoren 6.7m Aufrufe 254 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.
  • T TT-Tom

    @sniker okay, welche Informationen wären für dich hilfreich gewesen? Da du es jetzt geschafft hast, kannst du uns da unterstützen, wo die Stolperstellen sind. Wir nehmen sie dann im Wiki auf. Danke

    S Offline
    S Offline
    Sniker
    schrieb am zuletzt editiert von
    #2528

    @tt-tom

    Hi, gute Frage... ich werde es mal versuchen.

    1. zuerst hing ich an der Tasmota Version, wollte das ganze gerne in Deutsch und das ging dann nur mir der tasmota32-de.bin - Matthias hatte im Video gesagt man muss die tasmota32-nspanel.bin nehmen sollte bezüglich HASPmoto - welche Version ist jetzt richtiger!?

    2. aktuell Frage ich mich für mein nächstes Update, welche Teile ich dann ins neue Script wieder anpassen muss bzw wo rein kopieren muss, das alles läuft. Wenn du 2 Monate nichts dran gemacht hast, fängt man wieder von vorne an.
      Das hat mir schon gut geholfen:

      Kurze Upgrade-Empfehlung:

      • Neues TypeScript anlegen und die Version https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/ioBroker/NsPanelTs_without_Examples.ts hineinkopieren
        altes Script deaktivieren (Fallback)
      • Konfiguration anhand der Variablen aus dem anderen Script übernehmen (Achtung Config hat einen veränderten Aufbau und kann nicht 1:1 übernommen werden, siehe oben!)
      • Erweiterungen für Advanced Screensaver aus Wiki oder NSPanel.ts (Script mit Beispielen) migrieren
      • FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v4.0.3.tft
    3. Ich hatte nach dem Update das Problem das ich nur Fehler im Protokoll hatte das lag an dem falschen Link:

    ScreensaverEntity: 'accuweather.0.Current.WindDirection', //0_userdata.0.wetter.Windrichtung

    der Link nach den // war hinterlegt.

    Ps: Trotzdem Danke an Alle, ihr macht eine Top arbeit

    T ArmilarA 2 Antworten Letzte Antwort
    1
    • S Sniker

      @tt-tom

      Hi, gute Frage... ich werde es mal versuchen.

      1. zuerst hing ich an der Tasmota Version, wollte das ganze gerne in Deutsch und das ging dann nur mir der tasmota32-de.bin - Matthias hatte im Video gesagt man muss die tasmota32-nspanel.bin nehmen sollte bezüglich HASPmoto - welche Version ist jetzt richtiger!?

      2. aktuell Frage ich mich für mein nächstes Update, welche Teile ich dann ins neue Script wieder anpassen muss bzw wo rein kopieren muss, das alles läuft. Wenn du 2 Monate nichts dran gemacht hast, fängt man wieder von vorne an.
        Das hat mir schon gut geholfen:

        Kurze Upgrade-Empfehlung:

        • Neues TypeScript anlegen und die Version https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/ioBroker/NsPanelTs_without_Examples.ts hineinkopieren
          altes Script deaktivieren (Fallback)
        • Konfiguration anhand der Variablen aus dem anderen Script übernehmen (Achtung Config hat einen veränderten Aufbau und kann nicht 1:1 übernommen werden, siehe oben!)
        • Erweiterungen für Advanced Screensaver aus Wiki oder NSPanel.ts (Script mit Beispielen) migrieren
        • FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v4.0.3.tft
      3. Ich hatte nach dem Update das Problem das ich nur Fehler im Protokoll hatte das lag an dem falschen Link:

      ScreensaverEntity: 'accuweather.0.Current.WindDirection', //0_userdata.0.wetter.Windrichtung

      der Link nach den // war hinterlegt.

      Ps: Trotzdem Danke an Alle, ihr macht eine Top arbeit

      T Offline
      T Offline
      TT-Tom
      schrieb am zuletzt editiert von TT-Tom
      #2529

      @sniker sagte in SONOFF NSPanel mit Lovelace UI:

      @tt-tom

      Hi, gute Frage... ich werde es mal versuchen.

      1. zuerst hing ich an der Tasmota Version, wollte das ganze gerne in Deutsch und das ging dann nur mir der tasmota32-de.bin - Matthias hatte im Video gesagt man muss die tasmota32-nspanel.bin nehmen sollte bezüglich HASPmoto - welche Version ist jetzt richtiger!?

      Ehrlich gesagt habe ich persönlich noch kein Unterschied bemerkt, habe auf dem Testtpanel beide Versionen schon laufen gehabt. Werde mich aber mit @Armilar beraten, ob es eine Empfehlung im Wiki / Script geben wird.

      1. aktuell Frage ich mich für mein nächstes Update, welche Teile ich dann ins neue Script wieder anpassen muss bzw wo rein kopieren muss, das alles läuft. Wenn du 2 Monate nichts dran gemacht hast, fängt man wieder von vorne an.
        Das hat mir schon gut geholfen:

        Kurze Upgrade-Empfehlung:

      • Neues TypeScript anlegen und die Version hinein kopieren
      https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/ioBroker/NsPanelTs_without_Examples.ts
      
      • altes Script deaktivieren (Fallback)
      • Konfiguration anhand der Variablen aus dem anderen Script übernehmen (Achtung Config hat einen veränderten Aufbau und kann nicht 1:1 übernommen werden, siehe oben!)
      • Erweiterungen für Advanced Screensaver aus Wiki oder NSPanel.ts (Script mit Beispielen) migrieren
      • FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v4.0.3.tft

      Solche großen Änderungen sind meistens nach einem Breaking Change aus zu führen, darauf wird dann aber explizit mit hingewiesen. hier kannst du die Versionen nachlesen

      1. Ich hatte nach dem Update das Problem das ich nur Fehler im Protokoll hatte das lag an dem falschen Link:

      ScreensaverEntity: 'accuweather.0.Current.WindDirection', //0_userdata.0.wetter.Windrichtung

      der Link nach den // war hinterlegt.

      okay, ich teste Mal in wie weit wir die Without-ExampleTS von Datenpunkten entschlacken können.

      Ps: Trotzdem Danke an Alle, ihr macht eine Top arbeit

      Danke.

      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

      1 Antwort Letzte Antwort
      1
      • S Sniker

        @tt-tom

        Hi, gute Frage... ich werde es mal versuchen.

        1. zuerst hing ich an der Tasmota Version, wollte das ganze gerne in Deutsch und das ging dann nur mir der tasmota32-de.bin - Matthias hatte im Video gesagt man muss die tasmota32-nspanel.bin nehmen sollte bezüglich HASPmoto - welche Version ist jetzt richtiger!?

        2. aktuell Frage ich mich für mein nächstes Update, welche Teile ich dann ins neue Script wieder anpassen muss bzw wo rein kopieren muss, das alles läuft. Wenn du 2 Monate nichts dran gemacht hast, fängt man wieder von vorne an.
          Das hat mir schon gut geholfen:

          Kurze Upgrade-Empfehlung:

          • Neues TypeScript anlegen und die Version https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/ioBroker/NsPanelTs_without_Examples.ts hineinkopieren
            altes Script deaktivieren (Fallback)
          • Konfiguration anhand der Variablen aus dem anderen Script übernehmen (Achtung Config hat einen veränderten Aufbau und kann nicht 1:1 übernommen werden, siehe oben!)
          • Erweiterungen für Advanced Screensaver aus Wiki oder NSPanel.ts (Script mit Beispielen) migrieren
          • FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v4.0.3.tft
        3. Ich hatte nach dem Update das Problem das ich nur Fehler im Protokoll hatte das lag an dem falschen Link:

        ScreensaverEntity: 'accuweather.0.Current.WindDirection', //0_userdata.0.wetter.Windrichtung

        der Link nach den // war hinterlegt.

        Ps: Trotzdem Danke an Alle, ihr macht eine Top arbeit

        ArmilarA Offline
        ArmilarA Offline
        Armilar
        Most Active Forum Testing
        schrieb am zuletzt editiert von Armilar
        #2530

        @sniker sagte in SONOFF NSPanel mit Lovelace UI:

        zuerst hing ich an der Tasmota Version, wollte das ganze gerne in Deutsch und das ging dann nur mir der tasmota32-de.bin - Matthias hatte im Video gesagt man muss die tasmota32-nspanel.bin nehmen sollte bezüglich HASPmoto - welche Version ist jetzt richtiger!?

        Seit Matthias Video ist natürlich wieder eine Menge passiert, aber es ist in den meisten Punkten noch aktuell. Der Vorteil an Videos ist, dass man einen schönen visuellen Leitfaden hat. Der Nachteil ist, dass einige Änderungen mit der Zeit dann anders sind, als zuvor im Video gezeigt.
        Die tasmota32-nspanel.bin wurde entwickelt, da das Panel einen PSRAM beinhaltet. Wir haben später jedoch festgestellt, dass es für unseren Betrieb keine signifikanten Unterschiede in den Versionen gibt. Daher auch die freie Auswahl im Script, siehe:

        // Setzen der bevorzugten Tasmota32-Version
        const tasmotaOtaVersion: string = 'tasmota32-DE.bin';
        // Es können ebenfalls andere Versionen verwendet werden wie zum Beispiel:
        // 'tasmota32-nspanel.bin' oder 'tasmota32.bin' oder 'tasmota32-DE.bin' oder etc.
        

        aktuell Frage ich mich für mein nächstes Update, welche Teile ich dann ins neue Script wieder anpassen muss bzw. wo rein kopieren muss, das alles läuft. Wenn du 2 Monate nichts dran gemacht hast, fängt man wieder von vorne an.
        Das hat mir schon gut geholfen:
        Kurze Upgrade-Empfehlung:

        • Neues TypeScript anlegen und die Version https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/ioBroker/NsPanelTs_without_Examples.ts hineinkopieren
        • altes Script deaktivieren (Fallback)
        • Konfiguration anhand der Variablen aus dem anderen Script übernehmen (Achtung Config hat einen veränderten Aufbau und kann nicht 1:1 übernommen werden, siehe oben!)
        • Erweiterungen für Advanced Screensaver aus Wiki oder NSPanel.ts (Script mit Beispielen) migrieren
        • FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v4.0.3.tft

        In den vergangenen Versionen war es so. Durch die Anforderungen, insbesondere im Screensaver und der Navigation, hat sich vieles im Bereich des oberen Konfigurationspart des Scriptes geändert. Diese Änderungen wurden lange verschoben und gesammelt.
        In der nächsten Zeit sollte damit auch erst einmal wieder Schluss sein, so dass man nicht alle 2 Monate von vorne beginnen muss, sondern lediglich den unteren Teil ersetzen sollte und wieder eine Abwärtskompatibilität entsteht, wenn neue Parameter in das pageItem wandern.

        Ich hatte nach dem Update das Problem das ich nur Fehler im Protokoll hatte das lag an dem falschen Link:

        Ja, da ist mir wohl einer meiner Datenpunkte ins Beispiel gerutscht 😊

        Wird natürlich in folgenden Versionen gegen einen Datenpunkt aus accuweather.0. ersetzt. Danke für den Hinweis.

        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 Antwort Letzte Antwort
        0
        • ArmilarA Armilar

          @icemanmw

          Es werden keine Aliase angelegt, wenn die Datenpunkte unter 0_userdata noch existieren.

          Werde ich demnächst ändern - ist aber im Moment noch so.

          Also nicht die Aliase entfernen, sondern die Datenpunkte:

          a0fc3dc6-26be-497a-b1bb-cfcbb9d9448b-image.png

          I Offline
          I Offline
          icemanmw
          schrieb am zuletzt editiert von
          #2531

          @armilar
          vielen Dank.... funktioniert alles perfekt. schönen Abend

          J 1 Antwort Letzte Antwort
          0
          • I icemanmw

            @armilar
            vielen Dank.... funktioniert alles perfekt. schönen Abend

            J Offline
            J Offline
            joBr99
            schrieb am zuletzt editiert von joBr99
            #2532

            @icemanmw

            zuerst hing ich an der Tasmota Version, wollte das ganze gerne in Deutsch und das ging dann nur mir der tasmota32-de.bin - Matthias hatte im Video gesagt man muss die tasmota32-nspanel.bin nehmen sollte bezüglich HASPmoto - welche Version ist jetzt richtiger!?

            In früheren Versionen brauchte man zwingend die nspanel Version; weil beim flashen mehr zwischengespeichert wurde, bevor es auf das panel gewandert ist, d.h. mehr (PS)RAM gebraucht wurde, aktuell geht beides. (Hab auch ein Panel mit der normalen Version, weil ich da das Shutter zeug von tasmota brauche, welches in der nspanel version nicht vorhanden ist)

            Ansonsten sollte die folgenden Einschränkungen weiterhin gelten:

            If using standard Tasmota32 builds: Current implementation of serial in Arduino core has a bug which can boot loop the device on soft reset. Power cycling the device solves the issue. PSRAM is also not supported.

            https://templates.blakadder.com/sonoff_NSPanel.html

            1 Antwort Letzte Antwort
            0
            • D Offline
              D Offline
              danny_v1
              schrieb am zuletzt editiert von
              #2533

              Hallo, ich habe mich heute mal an die WLED Seite gewagt. Leider mit mäßigem Erfolg, bis auf ein- und ausschalten und Sync ein und aus funktioniert sonst nichts. Ich denke ich habe alles so wie in der Anleitung gemacht.

              T 1 Antwort Letzte Antwort
              0
              • D danny_v1

                Hallo, ich habe mich heute mal an die WLED Seite gewagt. Leider mit mäßigem Erfolg, bis auf ein- und ausschalten und Sync ein und aus funktioniert sonst nichts. Ich denke ich habe alles so wie in der Anleitung gemacht.

                T Offline
                T Offline
                TT-Tom
                schrieb am zuletzt editiert von
                #2534

                Hi @danny_v1
                ich ver suche dir mal zu helfen, habe zwar WLED hier am laufen, aber als RGBSingle.

                ich gehe mal davon aus, dass die Datenpunkte (Alias und 0_userdata) alle richtig angelegt sind.

                • Kannst du denn auf dem Panel alle Punkte sehen?

                • Zeige bitte mal die PageConfig aus dem PanelScript.

                • Zeige bitte mal das JS, welches du separat anlegen musst.

                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

                D 1 Antwort Letzte Antwort
                0
                • T TT-Tom

                  @marc_d0810 sagte in SONOFF NSPanel mit Lovelace UI:

                  MQTT im iOBroker läuft und bekommt anscheinend auch die Werte vom Display gesendet.

                  Kannst du bitte mal den Inhalt vom MQTT Datenpunkt NSPanel.cmnd.CustomSend zeigen.

                  Skript läuft auch und es tauchen keine Fehler auf.

                  Hast du das Script bzw. die Java Instanz mal neu gestartet ?

                  M Offline
                  M Offline
                  marc_d0810
                  schrieb am zuletzt editiert von
                  #2535

                  Hey Tom,

                  @tt-tom said in SONOFF NSPanel mit Lovelace UI:

                  @marc_d0810 sagte in SONOFF NSPanel mit Lovelace UI:

                  MQTT im iOBroker läuft und bekommt anscheinend auch die Werte vom Display gesendet.

                  Kannst du bitte mal den Inhalt vom MQTT Datenpunkt NSPanel.cmnd.CustomSend zeigen.
                  Ja klar:
                  Bildschirm­foto 2023-03-14 um 19.23.45.png
                  Und so sieht es in der Tasmota Console aus:
                  Bildschirm­foto 2023-03-14 um 19.23.35.png

                  Skript läuft auch und es tauchen keine Fehler auf.

                  Hast du das Script bzw. die Java Instanz mal neu gestartet ?

                  Ja wurde alles schon mehrfach neugestartet. 😞

                  T 1 Antwort Letzte Antwort
                  0
                  • ArmilarA Armilar

                    @marc_d0810

                    Kann es sein, dass irgendetwas um 00:30 mit dem Router passiert ist?

                    Bekommt das Panel keine Daten mehr, dann bleibt es in der Urzeit stehen. Sieht auch so aus, als würde es keine Daten mehr empfangen. Spricht alles dafür das die IP des Panels sich geändert hat oder MQTT sich weggehängt hat. Also eher eine Kommunikationsgeschichte. Hat das Panel eine statische IP?

                    M Offline
                    M Offline
                    marc_d0810
                    schrieb am zuletzt editiert von
                    #2536

                    @armilar said in SONOFF NSPanel mit Lovelace UI:

                    @marc_d0810

                    Kann es sein, dass irgendetwas um 00:30 mit dem Router passiert ist?

                    Bekommt das Panel keine Daten mehr, dann bleibt es in der Urzeit stehen. Sieht auch so aus, als würde es keine Daten mehr empfangen. Spricht alles dafür das die IP des Panels sich geändert hat oder MQTT sich weggehängt hat. Also eher eine Kommunikationsgeschichte. Hat das Panel eine statische IP?

                    Hey,
                    also am Router konnte ich nichts in den Logs sehen.
                    Das Panel hat eine statische IP.
                    Daten werden ja anscheinend per MQTT hin und her gesendet, aber das war es dann auch.

                    1 Antwort Letzte Antwort
                    0
                    • T TT-Tom

                      Hi @danny_v1
                      ich ver suche dir mal zu helfen, habe zwar WLED hier am laufen, aber als RGBSingle.

                      ich gehe mal davon aus, dass die Datenpunkte (Alias und 0_userdata) alle richtig angelegt sind.

                      • Kannst du denn auf dem Panel alle Punkte sehen?

                      • Zeige bitte mal die PageConfig aus dem PanelScript.

                      • Zeige bitte mal das JS, welches du separat anlegen musst.

                      D Offline
                      D Offline
                      danny_v1
                      schrieb am zuletzt editiert von
                      #2537

                      @tt-tom Ja auf dem Panel sehe ich alles.

                      Hier die PageConfig

                      let WLED_Bad= <PageGrid>
                                              {
                                                  "type": "cardGrid",
                                                  "heading": "WLED",
                                                  "useColor": true,
                                                  "subPage": true,
                                                  "parent": Bad,
                                                  "items": [
                                                      <PageItem>{ id: "alias.0.Bad.BadWLED.Power", name: "Power", icon: "power", onColor: Blue, offColor: HMIOff},
                                                      <PageItem>{ id: "alias.0.Bad.BadWLED.Synch", name: "Sync", icon: "sync", onColor: Blue, offColor: White},
                                                      <PageItem>{ id: "alias.0.Bad.BadWLED.Timer", name: "Timer", icon: "moon-waxing-crescent", onColor: Blue, offColor: White},
                                                      <PageItem>{ id: "alias.0.Bad.BadWLED.Presets", icon: "heart-outline", name: "Presets", onColor: White, modeList: ['Rainbow', 'Lake']},
                                                      <PageItem>{ id: "alias.0.Bad.BadWLED.Colors", icon: "palette", name: "Colors", onColor: White,
                                                                  modeList: ['Default', '* Color 1', '* Color Gradient', '* Colors 1&2', '* Colors Only', '* Random Cycle', 'Analogus','April Night', 'Aqua Flash', 'Atlantica', 'Aurora', 'Beach', 'Beech', 'Blink Red', 'Breeze', 'C9', 'C9 New', 'Candy', 'Candy2', 'Cloud', 'Cyane', 'Departure', 'Drywet', 'Fairy Reaf', 'Fire', 'Forest', 'etc']},
                                                      <PageItem>{ id: "alias.0.Bad.BadWLED.Effects", icon: "emoticon-outline", name: "Effects", onColor: White,
                                                                  modeList: ['Solid', 'Android', 'Aurora', 'Blends', 'Blink', 'Blink Rainbow', 'Bouncing Balls','Bpm', 'Breathe', 'Candle', 'Candle Multi', 'Candy Cane', 'Chase', 'Chase 1', 'Chase 2', 'Chase 3', 'Chase Flash', 'Chase Flash Rnd', 'Chase Rainbow', 'Chase Random', 'Chunchun', 'Colorful', 'Colorloop', 'Colortwinkles', 'Colorwaves', 'Dancing Shadows', 'etc']},
                                                      //<PageItem>{ id: "alias.0.NSPanel_1.WLED.Example.Segments", icon: "layers", name: "Segments", onColor: White, modeList: ['Segment 0', 'Add Segment']},
                                                  ]
                                              };
                      
                      

                      und hier das JS Skript

                      // Pfad zum WLED-Modul
                      const wledPath = 'wled.0.ecfabcc58b7f.';
                      
                      // Pfad zu 0_userdata Datenpunkten
                      const userdataPath = '0_userdata.0.BadWLED.';
                      
                      // WLED Effektliste als Konstante (Favoriten)
                      // Listen müssen gleiche Werte wie im Panel haben
                      
                      const presetList =    ['Rainbow', 'Lake'];
                              
                      const colorsList =    ['Default', '* Color 1', '* Color Gradient', '* Colors 1&2', '* Colors Only', '* Random Cycle', 'Analogus','April Night', 'Aqua Flash', 'Atlantica', 'Aurora', 
                                              'Beach', 'Beech', 'Blink Red', 'Breeze', 'C9', 'C9 New', 'Candy', 'Candy2', 'Cloud', 
                                              'Cyane', 'Departure', 'Drywet', 'Fairy Reaf', 'Fire', 'Forest', 'etc'
                                          ];
                              
                      const effectsList =   ['Solid', 'Android', 'Aurora', 'Blends', 'Blink', 'Blink Rainbow', 'Bouncing Balls','Bpm', 'Breathe', 'Candle', 'Candle Multi', 
                                          'Candy Cane', 'Chase', 'Chase 1', 'Chase 2', 'Chase 3', 'Chase Flash', 'Chase Flash Rnd', 'Chase Rainbow', 'Chase Random', 
                                          'Chunchun', 'Colorful', 'Colorloop', 'Colortwinkles', 'Colorwaves', 'Dancing Shadows', 'etc'
                                          ];
                      
                      on({id: userdataPath + 'Presets', change: "ne"}, async function (obj) {
                          console.log(wledPath + 'ps' + ' = ' + obj.state.val);
                          setState(wledPath + 'ps', obj.state.val)
                      });
                      
                      // Trigger auf NSPanel Colors
                      on({id: userdataPath + 'Colors', change: "ne"}, async function (obj) {
                          let wledObj = getObject(wledPath + 'seg.0.pal');
                          let tempStringColor = colorsList[obj.state.val]
                      
                          for (let i = 1; i < 71; i++) {
                              if (wledObj.common.states[i] == undefined) {
                                  break;
                              }
                              if (wledObj.common.states[i] == tempStringColor) {
                                  console.log(i + ' - ' + wledObj.common.states[i]);
                                  setState(wledPath + 'seg.0.pal', i)
                                  break;
                              }
                          }
                      });
                      
                      // Trigger auf NSPanel Effekte
                      on({id: userdataPath + 'Effects', change: "ne"}, async function (obj) {
                          let wledObj = getObject(wledPath + 'seg.0.fx');
                          let tempStringEffect = effectsList[obj.state.val]
                      
                          for (let i = 1; i < 118; i++) {
                              if (wledObj.common.states[i] == undefined) {
                                  break;
                              }
                              if (wledObj.common.states[i] == tempStringEffect) {
                                  console.log(i + ' - ' + wledObj.common.states[i]);
                                  setState(wledPath + 'seg.0.fx', i)
                                  break;
                              }
                          }
                      });
                      

                      Danke schon mal für die Hilfe!!!

                      D T 2 Antworten Letzte Antwort
                      0
                      • D danny_v1

                        @tt-tom Ja auf dem Panel sehe ich alles.

                        Hier die PageConfig

                        let WLED_Bad= <PageGrid>
                                                {
                                                    "type": "cardGrid",
                                                    "heading": "WLED",
                                                    "useColor": true,
                                                    "subPage": true,
                                                    "parent": Bad,
                                                    "items": [
                                                        <PageItem>{ id: "alias.0.Bad.BadWLED.Power", name: "Power", icon: "power", onColor: Blue, offColor: HMIOff},
                                                        <PageItem>{ id: "alias.0.Bad.BadWLED.Synch", name: "Sync", icon: "sync", onColor: Blue, offColor: White},
                                                        <PageItem>{ id: "alias.0.Bad.BadWLED.Timer", name: "Timer", icon: "moon-waxing-crescent", onColor: Blue, offColor: White},
                                                        <PageItem>{ id: "alias.0.Bad.BadWLED.Presets", icon: "heart-outline", name: "Presets", onColor: White, modeList: ['Rainbow', 'Lake']},
                                                        <PageItem>{ id: "alias.0.Bad.BadWLED.Colors", icon: "palette", name: "Colors", onColor: White,
                                                                    modeList: ['Default', '* Color 1', '* Color Gradient', '* Colors 1&2', '* Colors Only', '* Random Cycle', 'Analogus','April Night', 'Aqua Flash', 'Atlantica', 'Aurora', 'Beach', 'Beech', 'Blink Red', 'Breeze', 'C9', 'C9 New', 'Candy', 'Candy2', 'Cloud', 'Cyane', 'Departure', 'Drywet', 'Fairy Reaf', 'Fire', 'Forest', 'etc']},
                                                        <PageItem>{ id: "alias.0.Bad.BadWLED.Effects", icon: "emoticon-outline", name: "Effects", onColor: White,
                                                                    modeList: ['Solid', 'Android', 'Aurora', 'Blends', 'Blink', 'Blink Rainbow', 'Bouncing Balls','Bpm', 'Breathe', 'Candle', 'Candle Multi', 'Candy Cane', 'Chase', 'Chase 1', 'Chase 2', 'Chase 3', 'Chase Flash', 'Chase Flash Rnd', 'Chase Rainbow', 'Chase Random', 'Chunchun', 'Colorful', 'Colorloop', 'Colortwinkles', 'Colorwaves', 'Dancing Shadows', 'etc']},
                                                        //<PageItem>{ id: "alias.0.NSPanel_1.WLED.Example.Segments", icon: "layers", name: "Segments", onColor: White, modeList: ['Segment 0', 'Add Segment']},
                                                    ]
                                                };
                        
                        

                        und hier das JS Skript

                        // Pfad zum WLED-Modul
                        const wledPath = 'wled.0.ecfabcc58b7f.';
                        
                        // Pfad zu 0_userdata Datenpunkten
                        const userdataPath = '0_userdata.0.BadWLED.';
                        
                        // WLED Effektliste als Konstante (Favoriten)
                        // Listen müssen gleiche Werte wie im Panel haben
                        
                        const presetList =    ['Rainbow', 'Lake'];
                                
                        const colorsList =    ['Default', '* Color 1', '* Color Gradient', '* Colors 1&2', '* Colors Only', '* Random Cycle', 'Analogus','April Night', 'Aqua Flash', 'Atlantica', 'Aurora', 
                                                'Beach', 'Beech', 'Blink Red', 'Breeze', 'C9', 'C9 New', 'Candy', 'Candy2', 'Cloud', 
                                                'Cyane', 'Departure', 'Drywet', 'Fairy Reaf', 'Fire', 'Forest', 'etc'
                                            ];
                                
                        const effectsList =   ['Solid', 'Android', 'Aurora', 'Blends', 'Blink', 'Blink Rainbow', 'Bouncing Balls','Bpm', 'Breathe', 'Candle', 'Candle Multi', 
                                            'Candy Cane', 'Chase', 'Chase 1', 'Chase 2', 'Chase 3', 'Chase Flash', 'Chase Flash Rnd', 'Chase Rainbow', 'Chase Random', 
                                            'Chunchun', 'Colorful', 'Colorloop', 'Colortwinkles', 'Colorwaves', 'Dancing Shadows', 'etc'
                                            ];
                        
                        on({id: userdataPath + 'Presets', change: "ne"}, async function (obj) {
                            console.log(wledPath + 'ps' + ' = ' + obj.state.val);
                            setState(wledPath + 'ps', obj.state.val)
                        });
                        
                        // Trigger auf NSPanel Colors
                        on({id: userdataPath + 'Colors', change: "ne"}, async function (obj) {
                            let wledObj = getObject(wledPath + 'seg.0.pal');
                            let tempStringColor = colorsList[obj.state.val]
                        
                            for (let i = 1; i < 71; i++) {
                                if (wledObj.common.states[i] == undefined) {
                                    break;
                                }
                                if (wledObj.common.states[i] == tempStringColor) {
                                    console.log(i + ' - ' + wledObj.common.states[i]);
                                    setState(wledPath + 'seg.0.pal', i)
                                    break;
                                }
                            }
                        });
                        
                        // Trigger auf NSPanel Effekte
                        on({id: userdataPath + 'Effects', change: "ne"}, async function (obj) {
                            let wledObj = getObject(wledPath + 'seg.0.fx');
                            let tempStringEffect = effectsList[obj.state.val]
                        
                            for (let i = 1; i < 118; i++) {
                                if (wledObj.common.states[i] == undefined) {
                                    break;
                                }
                                if (wledObj.common.states[i] == tempStringEffect) {
                                    console.log(i + ' - ' + wledObj.common.states[i]);
                                    setState(wledPath + 'seg.0.fx', i)
                                    break;
                                }
                            }
                        });
                        

                        Danke schon mal für die Hilfe!!!

                        D Offline
                        D Offline
                        danny_v1
                        schrieb am zuletzt editiert von
                        #2538

                        Und gleich noch eine Frage, gibt es eine Möglichkeit eine Zeichenkette oder JSON anzuzeigen als Info oder änliches?

                        Ich möchte z.B. anzeigen wie viele Fenster offen sind und wenn ich dann auf einen Button klicke (so wie im Service Menü der "mehr..." Button auf eine Seite navigieren, die mir als Liste die geöffneten Fenster anzeigt.

                        1 Antwort Letzte Antwort
                        0
                        • T Offline
                          T Offline
                          TT-Tom
                          schrieb am zuletzt editiert von
                          #2539

                          @danny_v1
                          Es gibt eine Möglichkeit hier mal nachlesen

                          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

                          D 1 Antwort Letzte Antwort
                          0
                          • T TT-Tom

                            @danny_v1
                            Es gibt eine Möglichkeit hier mal nachlesen

                            D Offline
                            D Offline
                            danny_v1
                            schrieb am zuletzt editiert von
                            #2540

                            @tt-tom
                            Also wenn ich es richtig verstanden habe muss ich einfach bei name: ein getstate einbauen und der Text wird dann dynamisch.

                            ArmilarA 1 Antwort Letzte Antwort
                            0
                            • D danny_v1

                              @tt-tom Ja auf dem Panel sehe ich alles.

                              Hier die PageConfig

                              let WLED_Bad= <PageGrid>
                                                      {
                                                          "type": "cardGrid",
                                                          "heading": "WLED",
                                                          "useColor": true,
                                                          "subPage": true,
                                                          "parent": Bad,
                                                          "items": [
                                                              <PageItem>{ id: "alias.0.Bad.BadWLED.Power", name: "Power", icon: "power", onColor: Blue, offColor: HMIOff},
                                                              <PageItem>{ id: "alias.0.Bad.BadWLED.Synch", name: "Sync", icon: "sync", onColor: Blue, offColor: White},
                                                              <PageItem>{ id: "alias.0.Bad.BadWLED.Timer", name: "Timer", icon: "moon-waxing-crescent", onColor: Blue, offColor: White},
                                                              <PageItem>{ id: "alias.0.Bad.BadWLED.Presets", icon: "heart-outline", name: "Presets", onColor: White, modeList: ['Rainbow', 'Lake']},
                                                              <PageItem>{ id: "alias.0.Bad.BadWLED.Colors", icon: "palette", name: "Colors", onColor: White,
                                                                          modeList: ['Default', '* Color 1', '* Color Gradient', '* Colors 1&2', '* Colors Only', '* Random Cycle', 'Analogus','April Night', 'Aqua Flash', 'Atlantica', 'Aurora', 'Beach', 'Beech', 'Blink Red', 'Breeze', 'C9', 'C9 New', 'Candy', 'Candy2', 'Cloud', 'Cyane', 'Departure', 'Drywet', 'Fairy Reaf', 'Fire', 'Forest', 'etc']},
                                                              <PageItem>{ id: "alias.0.Bad.BadWLED.Effects", icon: "emoticon-outline", name: "Effects", onColor: White,
                                                                          modeList: ['Solid', 'Android', 'Aurora', 'Blends', 'Blink', 'Blink Rainbow', 'Bouncing Balls','Bpm', 'Breathe', 'Candle', 'Candle Multi', 'Candy Cane', 'Chase', 'Chase 1', 'Chase 2', 'Chase 3', 'Chase Flash', 'Chase Flash Rnd', 'Chase Rainbow', 'Chase Random', 'Chunchun', 'Colorful', 'Colorloop', 'Colortwinkles', 'Colorwaves', 'Dancing Shadows', 'etc']},
                                                              //<PageItem>{ id: "alias.0.NSPanel_1.WLED.Example.Segments", icon: "layers", name: "Segments", onColor: White, modeList: ['Segment 0', 'Add Segment']},
                                                          ]
                                                      };
                              
                              

                              und hier das JS Skript

                              // Pfad zum WLED-Modul
                              const wledPath = 'wled.0.ecfabcc58b7f.';
                              
                              // Pfad zu 0_userdata Datenpunkten
                              const userdataPath = '0_userdata.0.BadWLED.';
                              
                              // WLED Effektliste als Konstante (Favoriten)
                              // Listen müssen gleiche Werte wie im Panel haben
                              
                              const presetList =    ['Rainbow', 'Lake'];
                                      
                              const colorsList =    ['Default', '* Color 1', '* Color Gradient', '* Colors 1&2', '* Colors Only', '* Random Cycle', 'Analogus','April Night', 'Aqua Flash', 'Atlantica', 'Aurora', 
                                                      'Beach', 'Beech', 'Blink Red', 'Breeze', 'C9', 'C9 New', 'Candy', 'Candy2', 'Cloud', 
                                                      'Cyane', 'Departure', 'Drywet', 'Fairy Reaf', 'Fire', 'Forest', 'etc'
                                                  ];
                                      
                              const effectsList =   ['Solid', 'Android', 'Aurora', 'Blends', 'Blink', 'Blink Rainbow', 'Bouncing Balls','Bpm', 'Breathe', 'Candle', 'Candle Multi', 
                                                  'Candy Cane', 'Chase', 'Chase 1', 'Chase 2', 'Chase 3', 'Chase Flash', 'Chase Flash Rnd', 'Chase Rainbow', 'Chase Random', 
                                                  'Chunchun', 'Colorful', 'Colorloop', 'Colortwinkles', 'Colorwaves', 'Dancing Shadows', 'etc'
                                                  ];
                              
                              on({id: userdataPath + 'Presets', change: "ne"}, async function (obj) {
                                  console.log(wledPath + 'ps' + ' = ' + obj.state.val);
                                  setState(wledPath + 'ps', obj.state.val)
                              });
                              
                              // Trigger auf NSPanel Colors
                              on({id: userdataPath + 'Colors', change: "ne"}, async function (obj) {
                                  let wledObj = getObject(wledPath + 'seg.0.pal');
                                  let tempStringColor = colorsList[obj.state.val]
                              
                                  for (let i = 1; i < 71; i++) {
                                      if (wledObj.common.states[i] == undefined) {
                                          break;
                                      }
                                      if (wledObj.common.states[i] == tempStringColor) {
                                          console.log(i + ' - ' + wledObj.common.states[i]);
                                          setState(wledPath + 'seg.0.pal', i)
                                          break;
                                      }
                                  }
                              });
                              
                              // Trigger auf NSPanel Effekte
                              on({id: userdataPath + 'Effects', change: "ne"}, async function (obj) {
                                  let wledObj = getObject(wledPath + 'seg.0.fx');
                                  let tempStringEffect = effectsList[obj.state.val]
                              
                                  for (let i = 1; i < 118; i++) {
                                      if (wledObj.common.states[i] == undefined) {
                                          break;
                                      }
                                      if (wledObj.common.states[i] == tempStringEffect) {
                                          console.log(i + ' - ' + wledObj.common.states[i]);
                                          setState(wledPath + 'seg.0.fx', i)
                                          break;
                                      }
                                  }
                              });
                              

                              Danke schon mal für die Hilfe!!!

                              T Offline
                              T Offline
                              TT-Tom
                              schrieb am zuletzt editiert von TT-Tom
                              #2541

                              @danny_v1

                              Muss das Thema mal nach hinten schieben und bei mir erstmal einrichten und nachvollziehen. Vielleicht kann aber schon ein anderer User helfen

                              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

                              1 Antwort Letzte Antwort
                              0
                              • D danny_v1

                                @tt-tom
                                Also wenn ich es richtig verstanden habe muss ich einfach bei name: ein getstate einbauen und der Text wird dann dynamisch.

                                ArmilarA Offline
                                ArmilarA Offline
                                Armilar
                                Most Active Forum Testing
                                schrieb am zuletzt editiert von
                                #2542

                                @danny_v1

                                Also wenn ich es richtig verstanden habe muss ich einfach bei name: ein getstate einbauen und der Text wird dann dynamisch.

                                ja, aber das getState als String übergeben name: "getState(...)"

                                Daher dann auch auf Groß- und Kleinschreibung achten, da im String keine Syntaxprüfung erfolgt.

                                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.

                                D 1 Antwort Letzte Antwort
                                0
                                • M marc_d0810

                                  Hey Tom,

                                  @tt-tom said in SONOFF NSPanel mit Lovelace UI:

                                  @marc_d0810 sagte in SONOFF NSPanel mit Lovelace UI:

                                  MQTT im iOBroker läuft und bekommt anscheinend auch die Werte vom Display gesendet.

                                  Kannst du bitte mal den Inhalt vom MQTT Datenpunkt NSPanel.cmnd.CustomSend zeigen.
                                  Ja klar:
                                  Bildschirm­foto 2023-03-14 um 19.23.45.png
                                  Und so sieht es in der Tasmota Console aus:
                                  Bildschirm­foto 2023-03-14 um 19.23.35.png

                                  Skript läuft auch und es tauchen keine Fehler auf.

                                  Hast du das Script bzw. die Java Instanz mal neu gestartet ?

                                  Ja wurde alles schon mehrfach neugestartet. 😞

                                  T Offline
                                  T Offline
                                  TT-Tom
                                  schrieb am zuletzt editiert von
                                  #2543

                                  @marc_d0810

                                  Deine Ausgaben in der Konsole sehen anders aus als bei mir. Vielleicht kann @Armilar nochmal rüber schauen. Dein MQTT sieht eigentlich richtig aus.

                                  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

                                  ArmilarA 1 Antwort Letzte Antwort
                                  0
                                  • ArmilarA Armilar

                                    @danny_v1

                                    Also wenn ich es richtig verstanden habe muss ich einfach bei name: ein getstate einbauen und der Text wird dann dynamisch.

                                    ja, aber das getState als String übergeben name: "getState(...)"

                                    Daher dann auch auf Groß- und Kleinschreibung achten, da im String keine Syntaxprüfung erfolgt.

                                    D Offline
                                    D Offline
                                    danny_v1
                                    schrieb am zuletzt editiert von
                                    #2544

                                    @armilar
                                    Ok alles klar, vielen Dank! Werd ich morgen mal testen.

                                    Hat jemand noch einen Tipp zu dem WLED Problem?

                                    ArmilarA T 3 Antworten Letzte Antwort
                                    0
                                    • T TT-Tom

                                      @marc_d0810

                                      Deine Ausgaben in der Konsole sehen anders aus als bei mir. Vielleicht kann @Armilar nochmal rüber schauen. Dein MQTT sieht eigentlich richtig aus.

                                      ArmilarA Offline
                                      ArmilarA Offline
                                      Armilar
                                      Most Active Forum Testing
                                      schrieb am zuletzt editiert von
                                      #2545

                                      @tt-tom @marc_d0810

                                      Sieht soweit okay aus. Hast du da irgendetwas eingestellt, dass das Log so ausführlich ist?

                                      Hast du mal versucht nachzusehen, ob der Berry-Driver okay ist? Ansonsten da nochmal die Dateien rauswerfen und erneuern.

                                      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.

                                      M 1 Antwort Letzte Antwort
                                      0
                                      • D danny_v1

                                        @armilar
                                        Ok alles klar, vielen Dank! Werd ich morgen mal testen.

                                        Hat jemand noch einen Tipp zu dem WLED Problem?

                                        ArmilarA Offline
                                        ArmilarA Offline
                                        Armilar
                                        Most Active Forum Testing
                                        schrieb am zuletzt editiert von
                                        #2546

                                        @danny_v1

                                        Hat jemand noch einen Tipp zu dem WLED Problem?

                                        Müsste erstmal sehen, wo das Problem ist. Hatte gelesen, dass im Panel alles okay ist. Werden irgendwelche Fehler im Log ausgelöst, wenn du etwas auswählst?

                                        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 Antwort Letzte Antwort
                                        0
                                        • GarganoG Offline
                                          GarganoG Offline
                                          Gargano
                                          schrieb am zuletzt editiert von
                                          #2547

                                          Wenn man außer Zahlen auch Text in der untersten Zeile anzeigen lassen will :

                                          da919a68-66b2-4afb-9687-7e1522fcc12c-image.png

                                          Die Entity muss dann als Value den Typ "string" haben.

                                           mrIcon1ScreensaverEntity: 
                                                  { 
                                                      ScreensaverEntity: '0_userdata.0.trashschedule.0.next.type', 
                                                      ScreensaverEntityIconOn: null,,                   
                                                      ScreensaverEntityIconOff: null, 
                                                      ScreensaverEntityValue: '0_userdata.0.trashschedule.0.next.type',     
                                                      ScreensaverEntityValueDecimalPlace : 0,                         
                                                      ScreensaverEntityValueUnit: null,                               
                                                      ScreensaverEntityOnColor: MSRed, 
                                                      ScreensaverEntityOffColor: Yellow
                                                  },
                                          

                                          Allerdings ist der Text auf 10 Zeichen begrenzt. Ich habe bei mir das HMI angepasst, deshalb geht da mehr rein.
                                          Aber evtl hat ja @joBr99 bald eine Lösung.

                                          Und bei mir ist nicht so kalt, das ist die Simulation 😊

                                          Änderung im Script ( markiert mit //gargano) :

                                          
                                          // gargano new function
                                          function getMRIconcSreensaverValue (thisMRElement:ScreenSaverMRElement)
                                          {
                                              let payloadString='';
                                              if (thisMRElement.ScreensaverEntityValue != null) {
                                                  if (typeof (getState(thisMRElement.ScreensaverEntityValue).val) == 'string') {
                                                      payloadString = (getState(thisMRElement.ScreensaverEntityValue).val);
                                                  } else {
                                                      payloadString = (getState(thisMRElement.ScreensaverEntityValue).val).toFixed(thisMRElement.ScreensaverEntityValueDecimalPlace);
                                                      payloadString += thisMRElement.ScreensaverEntityValueUnit;                        
                                                  }                             
                                              }
                                              return payloadString;
                                          }
                                          
                                          function HandleScreensaverStatusIcons() : void {
                                              try {
                                                  let payloadString = '';
                                                  let hwBtn1Col: any = config.mrIcon1ScreensaverEntity.ScreensaverEntityOffColor;
                                                  if (config.mrIcon1ScreensaverEntity.ScreensaverEntity != null) {
                                                      if (typeof (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) == 'string') {
                                                          let hwBtn1: string = getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val;
                                                          if (hwBtn1 == 'ON') {
                                                              hwBtn1Col = config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor;
                                                          }
                                                          if (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) {
                                                              payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
                                                          } else {
                                                              if (config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff != null) {
                                                                  payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff);
                                                              } else {
                                                                  payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
                                                              }
                                                          } 
                                                          // gargano 
                                                          payloadString += getMRIconcSreensaverValue (config.mrIcon1ScreensaverEntity);
                                                          payloadString += '~' + rgb_dec565(hwBtn1Col) + '~';
                                                      } else if (typeof (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) == 'boolean') {
                                                          let hwBtn1: boolean = getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val;
                                                          if (hwBtn1) {
                                                              hwBtn1Col = config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor;
                                                          }
                                                          if (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) {
                                                              payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
                                                          } else {
                                                              if (config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff != null) {
                                                                  payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff);
                                                              } else {
                                                                  payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
                                                              }
                                                          } 
                                                          // gargano 
                                                          payloadString += getMRIconcSreensaverValue (config.mrIcon1ScreensaverEntity);
                                                          payloadString += '~' + rgb_dec565(hwBtn1Col) + '~';
                                                      }
                                                  } else if (config.mrIcon1ScreensaverEntity.ScreensaverEntity == null && config.mrIcon1ScreensaverEntity.ScreensaverEntityValue != null){
                                                      
                                                      if(config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor != null){
                                                          hwBtn1Col = config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor;
                                                      }
                                                      if(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn != null){
                                                          payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
                                                      }
                                                      // gargano 
                                                      payloadString += getMRIconcSreensaverValue (config.mrIcon1ScreensaverEntity);
                                                      payloadString += '~' + rgb_dec565(hwBtn1Col) + '~';
                                                  }
                                                  else {
                                                      hwBtn1Col = Black;
                                                      payloadString += '~~';
                                                  }
                                          
                                                  let hwBtn2Col: any = config.mrIcon2ScreensaverEntity.ScreensaverEntityOffColor;
                                                  if (config.mrIcon2ScreensaverEntity.ScreensaverEntity != null) {
                                                      if (typeof (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) == 'string') {
                                                          let hwBtn2: string = getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val;
                                                          if (hwBtn2 == 'ON') {
                                                              hwBtn2Col = config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor;
                                                          }
                                                          if (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) {
                                                              payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
                                                          } else {
                                                              if (config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff != null) {
                                                                  payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff);
                                                              } else {
                                                                  payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
                                                              }
                                                          } 
                                                           // gargano 
                                                          payloadString += getMRIconcSreensaverValue (config.mrIcon2ScreensaverEntity);
                                                          payloadString += '~' + rgb_dec565(hwBtn2Col) + '~';
                                                      } else if (typeof (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) == 'boolean') {
                                                          let hwBtn2: boolean = getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val;
                                                          if (hwBtn2) {
                                                              hwBtn2Col = config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor;
                                                          }
                                                          if (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) {
                                                              payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
                                                          } else {
                                                              if (config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff != null) {
                                                                  payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff);
                                                              } else {
                                                                  payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
                                                              }
                                                          } 
                                                           // gargano 
                                                          payloadString += getMRIconcSreensaverValue (config.mrIcon2ScreensaverEntity);
                                                          payloadString += '~' + rgb_dec565(hwBtn2Col) + '~';
                                                      }
                                                  } else if (config.mrIcon2ScreensaverEntity.ScreensaverEntity == null && config.mrIcon2ScreensaverEntity.ScreensaverEntityValue != null){
                                                      
                                                      if(config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor != null){
                                                          hwBtn2Col = config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor;
                                                      }
                                          
                                                      if(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn != null){
                                                          payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
                                                      }
                                                      // gargano 
                                                      payloadString += getMRIconcSreensaverValue (config.mrIcon2ScreensaverEntity);
                                                      payloadString += '~' + rgb_dec565(hwBtn2Col) + '~';
                                                  } else {
                                                      hwBtn2Col = Black;
                                                      payloadString += '~~';
                                                  }
                                          
                                                  let alternateScreensaverMFRIcon1Size = getState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.1').val
                                                  let alternateScreensaverMFRIcon2Size = getState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.2').val
                                                  //Alternate MRIcon Size
                                                  if (alternateScreensaverMFRIcon1Size) {
                                                      payloadString += '1~';
                                                  } else {
                                                      payloadString += '~';
                                                  }
                                                  if (alternateScreensaverMFRIcon2Size) {
                                                      payloadString += '1~';
                                                  } else {
                                                      payloadString += '~';
                                                  }
                                          
                                                  SendToPanel(<Payload>{ payload: 'statusUpdate~' + payloadString });
                                          
                                              } catch (err) {
                                                  console.log('HandleScreensaverStatusIcons: ' + err.message);
                                              }
                                          }
                                          
                                          
                                          B 1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          566

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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