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

    • Amazon Alexa - ioBroker Skill läuft aus ?

    • Monatsrückblick – September 2025

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

    SONOFF NSPanel mit Lovelace UI

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      ticaki @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 @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 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

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

                              @armilar Guten Morgen.
                              Kurze Rückmeldung: Alles wieder super. Auch die Simulation läuft wieder.

                              Danke schön und schönen Feiertag.

                              LG aus dem Sauerland

                              Jörg

                              1 Reply Last reply Reply Quote 1
                              • M
                                mschmidt last edited by

                                SONOFF NSPanel mit Lovelace UI - Scriptupdate 4.7.12 --> 5.0.0.1

                                Hi, nachdem ja Accuwetter keinen free Account mehr anbietet, wollte ich auch das Script auf die aktuelle Version anpassen.

                                Nach einigen Schwierigkeiten mit der TFT Firmware sehe ich am Panel wieder die Serviceseite. Nachdem Start des Scripts läuft einstmal der MQTT Check:

                                javascript.0 12:13:03.650 info Compiling TypeScript source script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001
                                javascript.0 12:13:04.605 info source code did not change, using cached compilation result...
                                javascript.0 12:13:04.960 info --- start of NsPanelTs: 0_userdata.0.NSPanels.NSPanel-UG-KZ. ---
                                javascript.0 12:13:05.067 info setObjects enabled - create Alias Channels possible
                                javascript.0 12:13:05.069 info weather alias for pirate-weather.0. already exists
                                javascript.0 12:13:05.097 info registered 41 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                                javascript.0 12:13:05.100 info No Updates for NSPanel available
                                javascript.0 12:13:05.303 info Desired TFT Firmware: 59 / v5.0.0
                                javascript.0 12:13:05.303 info Installed TFT Firmware: 59 / v5.0.0
                                javascript.0 12:13:05.467 info Debug mode disabled
                                javascript.0 12:13:06.548 info Desired TFT Firmware: 59 / v5.0.0
                                javascript.0 12:13:06.549 info Installed TFT Firmware: 59 / v5.0.0
                                javascript.0 12:13:06.673 info hidden Cards disabled
                                javascript.0 12:13:08.286 info Start MQTT-Port-Check -------------------------------------
                                javascript.0 12:13:08.286 info -- admin.0 - 8081
                                javascript.0 12:13:08.286 info -- hm-rpc.0 - 1870
                                javascript.0 12:13:08.286 info -- hm-rpc.1 - 1200
                                javascript.0 12:13:08.286 info -- hm-rpc.2 - 1201
                                javascript.0 12:13:08.286 info -- hue.0 - 443
                                javascript.0 12:13:08.286 info -- influxdb.0 - 8086
                                javascript.0 12:13:08.286 info -- mqtt.0 - 1887
                                javascript.0 12:13:08.286 info -- node-red.0 - 1880
                                javascript.0 12:13:08.286 info -- shelly.0 - 1886
                                javascript.0 12:13:08.286 info -- telegram.0 - 8443
                                javascript.0 12:13:08.286 info -- web.0 - 8082
                                javascript.0 12:13:08.287 info - MQTT-Port-Check OK: Instance of Adapter: mqtt.0 is running on Port:1887
                                javascript.0 12:13:08.287 info End MQTT-Port-Check ---------------------------------------

                                Leider kommen dann nach einer kurzen Pause jede Menge Warnungen:

                                javascript.0 12:13:35.143 warn at HandleScreensaverUpdate (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14315:31)
                                javascript.0 12:13:35.143 warn at Object.<anonymous> (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:4226:17)
                                javascript.0 12:13:35.143 warn at step (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:33:23)
                                usw.

                                Ich habe dann versucht noch meine Pages aus dem alten Script wieder einzufügen. Leider ohne Erfolg! Wird nur das Servicemenü angezeigt.

                                Bin für jeden Hinweis dankbar.

                                VG MS

                                T Armilar 2 Replies Last reply Reply Quote 0
                                • T
                                  ticaki @mschmidt last edited by

                                  @mschmidt

                                  das usw. wäre schon interessant bis zur ersten wiederholung 🙂

                                  M 1 Reply Last reply Reply Quote 0
                                  • M
                                    mschmidt @ticaki last edited by

                                    @ticaki


                                    javascript.0 14:01:01.030 warn at HandleScreensaverUpdate (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14315:31)
                                    javascript.0 14:01:01.031 warn at HandleScreensaver (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:13894:5)
                                    javascript.0 14:01:01.031 warn at HandleMessage (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:5771:21)
                                    javascript.0 14:01:01.031 warn at script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:5458:21
                                    javascript.0 14:01:01.031 warn at step (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:33:23)
                                    javascript.0 14:01:01.031 warn at Object.next (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14:53)
                                    javascript.0 14:01:01.031 warn at script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:8:71
                                    javascript.0 14:01:01.031 warn at HandleScreensaverUpdate (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14315:31)
                                    javascript.0 14:01:01.031 warn at HandleScreensaver (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:13894:5)
                                    javascript.0 14:01:01.031 warn at HandleMessage (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:5771:21)
                                    javascript.0 14:01:01.031 warn at script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:5458:21
                                    javascript.0 14:01:01.031 warn at step (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:33:23)
                                    javascript.0 14:01:01.031 warn at Object.next (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14:53)
                                    javascript.0 14:01:01.031 warn at script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:8:71
                                    javascript.0 14:01:01.032 warn at HandleScreensaverUpdate (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14315:31)
                                    javascript.0 14:01:01.032 warn at HandleScreensaver (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:13894:5)
                                    javascript.0 14:01:01.032 warn at HandleMessage (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:5771:21)
                                    javascript.0 14:01:01.032 warn at script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:5458:21
                                    javascript.0 14:01:01.032 warn at step (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:33:23)
                                    javascript.0 14:01:01.032 warn at Object.next (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14:53)
                                    javascript.0 14:01:01.032 warn at script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:8:71
                                    javascript.0 14:01:01.032 warn at HandleScreensaverUpdate (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14315:31)
                                    javascript.0 14:01:01.032 warn at HandleScreensaver (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:13894:5)
                                    javascript.0 14:01:01.032 warn at HandleMessage (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:5771:21)
                                    javascript.0 14:01:01.032 warn at script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:5458:21
                                    javascript.0 14:01:01.032 warn at step (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:33:23)
                                    javascript.0 14:01:01.032 warn at Object.next (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14:53)
                                    javascript.0 14:01:01.032 warn at script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:8:71


                                    Dann wiederholt es sich etwa jede Minute.

                                    VG MS

                                    T M 2 Replies Last reply Reply Quote 0
                                    • T
                                      ticaki @mschmidt last edited by

                                      @mschmidt sagte in SONOFF NSPanel mit Lovelace UI:

                                      14315

                                      Danke - kopiere mir jetzt noch gerade hier rein was bei dir in Zeile 14315 im skript steht - wegen der Nutzer-Konfig ist das immer unterschiedlich.

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

                                        @mschmidt sagte in SONOFF NSPanel mit Lovelace UI:

                                        Leider ohne Erfolg! Wird nur das Servicemenü angezeigt.

                                        kein Screensaver?

                                        Falls da doch ein Screensaver ist, was zeigt der an?

                                        Hast du im neuen Script auch wieder das Pagearray eingefügt?

                                        02a5d0f9-f29a-45f0-8347-a8f6a2af96c0-image.png

                                        M 1 Reply Last reply Reply Quote 0
                                        • M
                                          mameier1234 @mschmidt last edited by

                                          @mschmidt

                                          Ich hatte das selbe Problem, da war im Script bei den Screensavern noch openweather. ... anstatt pirate-weather hinterlegt..

                                          M 1 Reply Last reply Reply Quote 0
                                          • M
                                            mschmidt @ticaki last edited by

                                            @ticaki

                                            Zeile 14315 wäre ein Kommentarende. Habe mal die Zeilen davor und danach mit dazugenommen:

                                            /**

                                            • Determines the icon ID for a given page item based on the provided value thresholds.
                                            • If the icon3 property is missing or invalid, it immediately returns the fallback icon ID.
                                            • Otherwise, it delegates to determineStatusIcon, passing the relevant parameters.
                                            • @param {PageItem} pageItem - Contains icon references (icon, icon2, icon3) and threshold values.
                                            • @param {number} val - The current value used to evaluate thresholds.
                                            • @param {string} iconId - The fallback icon ID if no matching icon is found.
                                            • @param {[string, string, string]} [def] - Optional array of default icons corresponding to threshold levels. [low, high, between]
                                            • @returns {string} The icon ID determined by value, thresholds, and defaults.
                                              */ Zeile 14315
                                              function determinePageItemStatusIcon (pageItem: PageItem, val: number, iconId: string, def?: [string, string, string]): string {
                                              if (!pageItem.icon3 || typeof pageItem.icon3 !== 'string') {
                                              return iconId;
                                              }
                                              const max = pageItem.maxValueLevel ?? pageItem.maxValue ?? 100;
                                              const min = pageItem.minValueLevel ?? pageItem.minValue ?? 0;
                                              return determineStatusIcon(pageItem.icon, pageItem.icon2, pageItem.icon3, val, min, max, iconId, def);
                                              }

                                            /**

                                            • Determines an icon for the screensaver based on the provided value and icon configuration.
                                            • @param {NSPanel.ScreenSaverElement} ss - Object containing the ScreensaverEntityIconSelect array.
                                            • @param {number} val - The current value used to determine which icon to select.
                                            • @param {string} iconId - A fallback icon ID if no suitable icon can be retrieved.
                                            • @returns {string} The icon ID that matches the value thresholds, or the fallback icon ID.
                                              */
                                              function determineScreensaverStatusIcon(ss: NSPanel.ScreenSaverElement, val: number, iconId: string): string {
                                              if (!ss) {
                                              return iconId;
                                              }
                                              if (!ss.ScreensaverEntityIconSelect || !Array.isArray(ss.ScreensaverEntityIconSelect)) {
                                              return iconId;
                                              }
                                              ss.ScreensaverEntityIconSelect = ss.ScreensaverEntityIconSelect.filter((item) => item);
                                              ss.ScreensaverEntityIconSelect = ss.ScreensaverEntityIconSelect.sort((a, b) => a.value - b.value);
                                              for (const item of ss.ScreensaverEntityIconSelect) {
                                              if (val <= item.value) {
                                              return Icons.GetIcon(item.icon) || iconId;
                                              }
                                              }
                                              return Icons.GetIcon(ss.ScreensaverEntityIconSelect[ss.ScreensaverEntityIconSelect.length - 1].icon) || iconId;
                                              }

                                            Bei Screensaver habe ich den standard gelassen, und der wird auch korrekt auf dem Display angezeigt!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            874
                                            Online

                                            32.3k
                                            Users

                                            80.9k
                                            Topics

                                            1.3m
                                            Posts

                                            lovelace ui nspanel sonoff
                                            270
                                            7680
                                            6487606
                                            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