Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. SONOFF NSPanel mit Lovelace UI

    NEWS

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    SONOFF NSPanel mit Lovelace UI

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      TT-Tom @ticaki last edited by

      @ticaki
      @arteck

      Welche Rolle hat dein Channel? Vielleicht liegt da schon der Fehler.
      Colordec muss ein Datenpunkt im Channel sein, der sollte auch triggern bei Änderung.

      T 1 Reply Last reply Reply Quote 0
      • T
        ticaki Developer @TT-Tom last edited by ticaki

        @tt-tom

        Dann passt es ja, ich hab nicht den Pfad von COLORDEC geguckt sondern nur den von ACTUAL.

        das hier sieht aber "ist zwar falsch aber kompatible" aus:

                                        if (val === true || val === 'true') {
                                            iconColor = GetIconColor(pageItem, false, useColors);
                                        } else {
                                            iconColor = GetIconColor(pageItem, true, useColors);
                                        }
        

        EDIT:

        Welche Rolle hat dein Channel? Vielleicht liegt da schon der Fehler.

        da kommt als Wert online und offline die sind bei einem üblichen true vergleich immer wahr und bei einem === true Vergleich immer false.

        T 1 Reply Last reply Reply Quote 0
        • T
          TT-Tom @ticaki last edited by

          @ticaki

          die Info rolle unterstütz nur Number und boolean.

          1 Reply Last reply Reply Quote 0
          • T
            ticaki Developer last edited by

            @arteck
            @TT-Tom

            Sry ich hab im Navzweig geguckt - Im normalen Zeig ist das anders - sry

            1 Reply Last reply Reply Quote 0
            • T
              ticaki Developer last edited by ticaki

              @arteck
              So rumwühlen ergebnis - geht nicht

              Ändere hier den code:

              if (existsState(pageItem.id + '.ACTUAL') && pageItem.icon2 != undefined) {
                                      // Read Alias Datapoint Objectdata
                                      let obj = getObject(pageItem.id + ".ACTUAL");
                                      // Read origin Datapoint Objectdata
                                      if (existsState(obj.common.alias.id)) {
                                          let obj2 = getObject(obj.common.alias.id);
                                          // Register Origin Datapoint
                                          RegisterEntityWatcher(obj.common.alias.id);
                                          // Check Data-Type (This must be boolean)
                                          if (obj2.type === 'state' && obj2.common.type == "boolean") {
                                              if (Debug) log(getState(obj.common.alias.id).val, 'info');
                                              if (getState(obj.common.alias.id).val) {
                                                  iconId = pageItem.icon != undefined ? Icons.GetIcon(pageItem.icon) : iconId;
                                                  iconColor = pageItem.onColor != undefined ? rgb_dec565(pageItem.onColor) : iconColor;
                                              } else {
                                                  iconId = pageItem.icon2 != undefined ? Icons.GetIcon(pageItem.icon2) : iconId;
                                                  iconColor = pageItem.offColor != undefined ? rgb_dec565(pageItem.offColor) : iconColor;
                                              }
                                          }
                                      }
                                  }
              

              EDIT - das ist Käse drunter ist besser

                                if (existsState(pageItem.id + '.ACTUAL') && (pageItem.icon2 != undefined || pageItem.useValue)) {
                                      // Read Alias Datapoint Objectdata
                                      let obj = getObject(pageItem.id + ".ACTUAL");
                                      // Read origin Datapoint Objectdata
                                      if (existsState(obj.common.alias.id)) {
                                          let obj2 = getObject(obj.common.alias.id);
                                          // Register Origin Datapoint
                                          RegisterEntityWatcher(obj.common.alias.id);
                                          // Check Data-Type (This must be boolean)
                                          if (obj2.type === 'state' && obj2.common.type == "boolean") {
                                              if (Debug) log(getState(obj.common.alias.id).val, 'info');
                                              if (getState(obj.common.alias.id).val) {
                                                  if (!pageItem.useValue) iconId = pageItem.icon != un defined ? Icons.GetIcon(pageItem.icon) : iconId;
                                                  iconColor = pageItem.onColor != undefined ? rgb_dec565(pageItem.onColor) : iconColor;
                                              } else {
                                                  if (!pageItem.useValue) iconId = pageItem.icon2 != undefined ? Icons.GetIcon(pageItem.icon2) : iconId;
                                                  iconColor = pageItem.offColor != undefined ? rgb_dec565(pageItem.offColor) : iconColor;
                                              }
                                          }
                                      }
                                  }
              

              Käse ende 😄

              Kopiere den if hier der aktuell oberhalb von ^der funktion steht, einfach drunter und füge das useValue in den If ^ wie da ein.

                              if (pageItem.useValue) {
                                      if (pageItem.fontSize != undefined) {
                                          if (pageItem.suffixName == undefined) {
                                              iconId = optVal + '¬' + pageItem.fontSize;
                                          } else {
                                              iconId = optVal + pageItem.suffixName + '¬' + pageItem.fontSize;
                                          }
                                      } else {
                                          iconId = optVal;
                                      }
                                  }
              

              EDIT2 - das müsste eigentlcih dann doch ein BUG sein - Armilar und TT-Tom sind da mehr drin als ich.

              T 1 Reply Last reply Reply Quote 0
              • T
                TT-Tom @ticaki last edited by TT-Tom

                @ticaki sagte in SONOFF NSPanel mit Lovelace UI:

                if (existsState(pageItem.id + '.ACTUAL') && pageItem.icon2 != undefined) {

                die Funktion lauft bei der Konfiguration nicht da kein icon2 definiert ist.

                { id: 'alias.0.NSPanel.Garten.horstOnline', name: 'Status', offColor: Red, onColor: MSGreen, useValue: true, fontSize: 3}
                

                also läuft das normal durch

                                if (pageItem.useValue) {
                                        if (pageItem.fontSize != undefined) {
                                            if (pageItem.suffixName == undefined) {
                                                iconId = optVal + '¬' + pageItem.fontSize;
                                            } else {
                                                iconId = optVal + pageItem.suffixName + '¬' + pageItem.fontSize;
                                            }
                                        } else {
                                            iconId = optVal;
                                        }
                                    }
                

                EDIT: Problem ist wirkliche der Text in ACTUAL
                EDIT2 bin jetzt am überlegen warum wir nicht COLORDEC da haben, ist doch die Info-rolle, diese Universell sein sollte.

                T 1 Reply Last reply Reply Quote 0
                • T
                  ticaki Developer @TT-Tom last edited by

                  @tt-tom

                  Bei dem C&P Vorschlag müsste man noch icon2 definieren - richtig - aber dann würde es halt laufen - zum Colordec hab ich ja schon was im discord geschrieben 🙂

                  Wurde gezwungen im adapter überall colordec und buttontext einzubauen ^^

                  T 1 Reply Last reply Reply Quote 0
                  • T
                    TT-Tom @ticaki last edited by TT-Tom

                    @ticaki

                    if (existsState(pageItem.id + '.COLORDEC')) {
                                            if (Debug) log('iconcolor von ' + pageItem.id + '.COLORDEC: ' + getState(pageItem.id + '.COLORDEC').val, 'info');
                                            RegisterEntityWatcher(pageItem.id + '.COLORDEC');
                                            iconColor = getState(pageItem.id + '.COLORDEC').val;
                                        }
                    

                    ich würde das so ans Ende des Case setzen

                    T 1 Reply Last reply Reply Quote 1
                    • T
                      ticaki Developer @TT-Tom last edited by

                      @tt-tom Würde ich so ins Skript übernehmen, das ist auch kompatibel zum Adapter.

                      1 Reply Last reply Reply Quote 0
                      • T
                        ticaki Developer last edited by ticaki

                        Ich darf verkünden, das @TT-Tom in seiner Weisheit sich herabgelassen hat die Funktion für @arteck anzupassen

                        Bitte die aktuell dev testen 🙂

                        https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/DEV/NSPanelTs.ts

                        FYI: @Armilar

                        EDIT:
                        COLORDEC geht jetzt da
                        Sowie wenn useValue=true und wenn der State, der die Quelle des alias ist, vom common.type='boolean' ist - wird onColor, offColor verwendet.

                        C 1 Reply Last reply Reply Quote 2
                        • C
                          c3b @ticaki last edited by

                          Hi Leutz

                          Ich bin auch mal wieder hier. Über 7600 posts. Respekt meine Damen und Herren.

                          Ich hatte mitbekommen, dass akkuweather abgeschaltet werden soll. Also wollte ich direkt auf das neuste skript updaten. Hat auch alles super geklapp. Natürlich nur wegen eurer Hilfestellung. Danke schön dafür.

                          Als ich alle NSPanel angepasst hatte (13 Stück) hab ich noch den javaskript Adapter geuppt. Als er fertig war, kam ein weißer Bildschirm mit einer Fehlermeldung und mein iobroker ist abgeschmiert. Läuft aber alles wieder.

                          Obwohl alles funktioniert und das Wetter auch richtig auf den NSPaneln angezeigt wird bekomme ich folgende Fehlermeldunk im Log:

                          41a2d280-86c7-4f64-86d0-1b4d60b7fd7a-grafik.png

                          Ich habe nachgeschaut. Die aliase sind aber vorhanden.

                          6275102e-d161-4ab6-81d6-2e39f75f2f61-grafik.png

                          Ich habe pirate-weather installiert und auch im Panel eingetragen.

                          Weiß jemand, warum das so ist oder gibt es hierzu schon einen extra fred?

                          So wie es aussieht kommen die Alarme jede Stunde einmal.

                          LG aus dem Sauerland

                          Jörg

                          Armilar 1 Reply Last reply Reply Quote 0
                          • Armilar
                            Armilar Most Active Forum Testing @c3b last edited by Armilar

                            @c3b

                            Benenne mal den Wetter-Alias im Skript um. Deiner steht auf OWMWetter (openweathermap.0...) und wird nicht aktualisiert. Daher muss der für den anderen Wetteradapter neu geschrieben werden.

                            Für Pirate-Weather so:

                            /***** 3. Weather adapter Config *****/
                            
                            // DE: Mögliche Wetteradapter 'pirate-weather.0.' oder 'brightsky.0.' oder 'openweathermap.0.' oder 'daswetter.0.' (deprecated) oder 'accuweather.0.' (deprecated)
                            // EN: Possible weather adapters 'pirate-weather.0.' or 'brightsky.0.' or 'openweathermap.0.' or 'daswetter.0.' (deprecated) or 'accuweather.0.' (deprecated)
                            const weatherAdapterInstance: string = 'pirate-weather.0.';
                            
                            // DE: Mögliche Werte: 'Min', 'Max' oder 'MinMax' im Screensaver
                            // EN: Possible values: 'Min', 'Max' or 'MinMax' in the screensaver
                            const weatherScreensaverTempMinMax: string = 'MinMax';
                            
                            // DE: Dieser Alias wird automatisch für den gewählten Wetter erstellt und kann entsprechend angepasst werden
                            // EN: This alias is automatically created for the selected weather and can be adjusted accordingly
                            const weatherEntityPath: string = 'alias.0.PirateWeather'; //Please rename if change weatherAdapterInstance!
                            
                            C 1 Reply Last reply Reply Quote 0
                            • C
                              c3b @Armilar last edited by c3b

                              @armilar Vielen Dank für die schnelle Antwort.
                              Meinst du das hier? Das steht alles auf pirate-weather.

                              ***** 3. Weather adapter Config *****/
                              
                              // DE: Mögliche Wetteradapter 'pirate-weather.0.' oder 'brightsky.0.' oder 'openweathermap.0.' oder 'daswetter.0.' (deprecated) oder 'accuweather.0.' (deprecated)
                              // EN: Possible weather adapters 'pirate-weather.0.' or 'brightsky.0.' or 'openweathermap.0.' or 'daswetter.0.' (deprecated) or 'accuweather.0.' (deprecated)
                              const weatherAdapterInstance: string = 'pirate-weather.0.';
                              
                              // DE: Mögliche Werte: 'Min', 'Max' oder 'MinMax' im Screensaver
                              // EN: Possible values: 'Min', 'Max' or 'MinMax' in the screensaver
                              const weatherScreensaverTempMinMax: string = 'MinMax';
                              
                              // DE: Dieser Alias wird automatisch für den gewählten Wetter erstellt und kann entsprechend angepasst werden
                              // EN: This alias is automatically created for the selected weather and can be adjusted accordingly
                              const weatherEntityPath: string = 'alias.0.Pirate_Weather'; //Please rename if change weatherAdapterInstance!
                              

                              ???

                              LG aus dem Sauerland

                              Jörg

                              Armilar 1 Reply Last reply Reply Quote 0
                              • Armilar
                                Armilar Most Active Forum Testing @c3b last edited by

                                @c3b

                                Dein Alias zeigt aber auf OWM
                                0dec62f6-026e-4bec-9f23-9533496d703c-image.png

                                Ist der alias.0.Pirate_Weather auch vorhanden? Und in allen 13 Skripten drin?

                                C 1 Reply Last reply Reply Quote 0
                                • C
                                  c3b @Armilar last edited by

                                  @armilar Ja, die sind auch vorhanden. Ich habe ein Reservepanel, falls mal eins defekt ist. Damit habe ich das skript angepasst. Anschließend habe ich dieses skript kopiert und nur noch die Pfade angepasst. Somit sollten sie alle gleich sein.

                                  a3068f7f-70b8-490d-81b9-1a123ff91824-grafik.png

                                  C Armilar 2 Replies Last reply Reply Quote 0
                                  • C
                                    c3b @c3b last edited by

                                    @c3b Hi Amilar

                                    Du bist der beste. Ich habe es gefunden. Ich habe ein skript für den simulator. Das lief noch und das habe ich nicht umgestellt.

                                    Dafür habe ich ja einen ESP32 und die Nextionsoftware. Damit hatte ich versucht das aktuelle skript anzupassen. Das bekomme ich aber nicht mehr ans laufen. Das sollte aber doch auch noch gehen, oder?

                                    Ich habe dieses skript gestoppt und beobachte mein log.

                                    Ich gebe Rückmeldung.

                                    Vielen Dank erst einmal.

                                    LG aus dem Sauerland

                                    Jörg

                                    Armilar 1 Reply Last reply Reply Quote 1
                                    • Armilar
                                      Armilar Most Active Forum Testing @c3b last edited by Armilar

                                      @c3b

                                      Nicht mehr relevant

                                      1 Reply Last reply Reply Quote 0
                                      • Armilar
                                        Armilar Most Active Forum Testing @c3b last edited by

                                        @c3b sagte in SONOFF NSPanel mit Lovelace UI:

                                        Dafür habe ich ja einen ESP32 und die Nextionsoftware. Damit hatte ich versucht das aktuelle skript anzupassen. Das bekomme ich aber nicht mehr ans laufen. Das sollte aber doch auch noch gehen, oder?

                                        Ja geht auch... Nur der Berry bleibt der alte für die Emulation

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        915
                                        Online

                                        32.2k
                                        Users

                                        80.8k
                                        Topics

                                        1.3m
                                        Posts

                                        lovelace ui nspanel sonoff
                                        270
                                        7655
                                        6343318
                                        Loading More Posts
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        Community
                                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                        The ioBroker Community 2014-2023
                                        logo