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.
    • 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
          • M
            mschmidt @mameier1234 last edited by

            @mameier1234

            Meinst du diese Stelle im Script?

            // 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.';

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

              @mschmidt
              Ja Mist, da wird das globale Skript davor kopiert, da stimmen die Zeilennummern nicht mehr. AFAIK

              Gucke mal was Armilar meint, der kennt sich mit dem Skript richtig gut aus. 🙂

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

                @armilar

                ok, dein Hinweis mit den Pages hat geholfen, dass ich die Seiten nun wieder aufrufen kann. Das hatte ich in der Tat vergessen! 😞
                Das mit den Warnungen habe ich aber immer noch.

                Beim Screensaver habe ich alles auf Standard gelassen. (Zeit mit Wettervorhersage der nächsten 4 Tage) Das wird auch angezeigt.

                Das sind die Warnungen die sich dann immer wieder wiederholen:

                #########
                javascript.0 10:35:04.670 warn at HandleScreensaverUpdate (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14318:31)
                javascript.0 10:35:04.670 warn at Object.<anonymous> (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:4229:17)
                javascript.0 10:35:04.670 warn at step (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:33:23)
                javascript.0 10:35:04.670 warn at Object.next (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14:53)
                javascript.0 10:35:04.670 warn at script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:8:71
                javascript.0 10:35:04.670 warn at __awaiter (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:4:12)
                javascript.0 10:35:04.670 warn at Object.<anonymous> (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:4225:12)
                javascript.0 10:35:04.671 warn at HandleScreensaverUpdate (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14318:31)
                javascript.0 10:35:04.671 warn at Object.<anonymous> (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:4229:17)
                javascript.0 10:35:04.671 warn at step (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:33:23)
                javascript.0 10:35:04.671 warn at Object.next (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14:53)
                javascript.0 10:35:04.671 warn at script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:8:71
                javascript.0 10:35:04.671 warn at __awaiter (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:4:12)
                javascript.0 10:35:04.671 warn at Object.<anonymous> (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:4225:12)
                javascript.0 10:35:04.671 warn at HandleScreensaverUpdate (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14318:31)
                javascript.0 10:35:04.671 warn at Object.<anonymous> (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:4229:17)
                javascript.0 10:35:04.671 warn at step (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:33:23)
                javascript.0 10:35:04.671 warn at Object.next (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14:53)
                javascript.0 10:35:04.671 warn at script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:8:71
                javascript.0 10:35:04.672 warn at __awaiter (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:4:12)
                javascript.0 10:35:04.672 warn at Object.<anonymous> (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:4225:12)
                javascript.0 10:35:04.672 warn at HandleScreensaverUpdate (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14318:31)
                javascript.0 10:35:04.672 warn at Object.<anonymous> (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:4229:17)
                javascript.0 10:35:04.672 warn at step (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:33:23)
                javascript.0 10:35:04.672 warn at Object.next (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:14:53)
                javascript.0 10:35:04.673 warn at script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:8:71
                javascript.0 10:35:04.673 warn at __awaiter (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:4:12)
                javascript.0 10:35:04.673 warn at Object.<anonymous> (script.js.NSPANELS.NSPanel-UG-KZ.NSPanel-UG-KZv5001:4225:12)7
                ################

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

                  @mschmidt

                  2 Absätze darunter wird ein Alias durch das Script für den Wetteradapter erstellt. Dieser Alias wird nicht automatisch gelöscht. Am Besten ist, den Alias-Namen umzubenennen:

                  /***** 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!
                  

                  Und mal kurz dein Page-Array posten (siehe Post vom 8.10.)
                  https://forum.iobroker.net/post/1298989

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

                    @armilar

                    /***** 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!
                    

                    ok das habe ich gefunden, aber ich stehe ein wenig auf dem Schlauch was ich dort ändern soll?

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

                      @mschmidt

                      Nee ist okay... der ist ja schon umbenannt...

                      Gibt es zwischen den Warnungen auch richtige info Logs? Ich sehe da nur warn und damit kann ich nicht wirklich etwas anfangen...

                      Würde dennoch gerne einen Blick auf die Daten des alias.0.Pirate_Weather werfen:

                      bei mir:
                      fb10f78c-5795-4e05-b26f-20981e2d936a-image.png

                      Übrigens kannst du wenn du die Infos geschrieben hast den entsprechenden Text markieren und dann auf a1182e43-56de-4d32-a043-665033e3002b-image.png klicken... Dann wird der Inhalt besser formatiert dargestellt...

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

                        @armilar

                        e7962ec6-815d-4745-88b5-f1f6a7b7a114-image.png

                        08a1dd6e-30d1-4487-adce-f6074ab512ab-image.png

                        ausser den Warnungen ist nichts im Log zu sehen

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

                          @mschmidt sagte in SONOFF NSPanel mit Lovelace UI:

                          Zu den Bildern... Ich hatte mir dabei erhofft, Werte zu sehen... Inhalte aus dem Pirate-Weather Adapter...

                          Hintergrund: In den Warnungen stehen Funktionen mit HandleScreensaverUpdate... Dort wird der Screensaver regelmäßig upgedatet und u.a. die Wetterdaten durchlaufen und aktualisiert. An dieser Stelle funktioniert etwas nicht...

                          Kann alles mögliche sein:

                          • Script ist nicht komplett erneuert und nicht 5.0.0.1 oder 5.0.0.2 (Voraussetzung für Pirate-Weather)
                          • Adapter Pirate-Weather liefert keine Min-Max Temperaturdaten oder Icon oder Zeitstempel
                          • Alias wurde erst umbenannt, dann der Adapter umgestellt --> Dann wären im Alias falsche Adapterdaten
                          • ioBroker nicht aktuell
                          • ioBroker lange nicht restartet
                          • niedrige nodeJS Version
                          • etc. (also alles mögliche)

                          Wenn du nicht minimalistisch mal etwas mehr zeigst, wird jegliche Hilfe sehr kompliziert...

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

                            @armilar

                            Script ist nicht komplett erneuert und nicht 5.0.0.1 oder 5.0.0.2 (Voraussetzung für Pirate-Weather) -> noch mal neu erstellt mit der letzten verfügbaren Version von "https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/ioBroker/NsPanelTs.ts"

                            Adapter Pirate-Weather liefert keine Min-Max Temperaturdaten oder Icon oder Zeitstempel ->
                            b3fa4dc1-e25c-4a16-bcb1-66e0ea11a625-image.png
                            aktuelle Wetterdaten sind in den Objekten unter pirate-weather zu sehen

                            Alias wurde erst umbenannt, dann der Adapter umgestellt --> Dann wären im Alias falsche Adapterdaten

                            9c3b2562-b1fb-4a19-a96c-307629640115-image.png

                            die Daten die in den Adapterobjekten zu sehen sind stimmen mit den alias Daten überein!

                            ioBroker nicht aktuell --> 7.7.2

                            ioBroker lange nicht restartet --> Uptime < 2h
                            niedrige nodeJS Version -> Node.js: v20.19.5

                            Ich weiß leider nicht was du für Infos benötigt aber bin gerne bereit diese zu teilen wenn ich weiß welche!

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

                              @mschmidt

                              okay passt...

                              Wenn du den Screensaver ansiehst, ist da etwas falsch dargestellt?

                              Muss nicht unbedingt nur das Wetter sein, kann auch jeder andere Wert sein... Falls weitere Datenpunkte dargestellt werden, die ggfs. ebenfalls aus anderen Adaptern kommen und evtl. nicht mehr existieren, kann das ebenfalls passieren.

                              Beispiel: Windgeschwindigkeit aus Accuweather definiert, aber Accuweather deinstalliert?

                              fcbbfb56-8249-49d9-b527-98dead2ab223-image.png

                              Bitte den Debug im Skript mal auf true stellen und das Log senden

                              1 Reply Last reply Reply Quote 0
                              • W
                                welli last edited by

                                Hallo
                                Bekomme seit einigen Tagen diese Info im Protokoll Fenster.
                                Hat jemand ein Idee wie was das sein könnte?

                                mqtt.0
                                2025-10-10 18:32:45.158 info Client [DVES_0B8CD4] connection closed: Error: read ECONNRESET

                                mqtt.0
                                2025-10-10 18:30:47.717 info Client [DVES_0B8CD4] publishOnSubscribe send all known states

                                mqtt.0
                                2025-10-10 18:30:47.717 info Client [DVES_0B8CD4] publishOnSubscribe send all known states

                                mqtt.0
                                2025-10-10 18:30:47.715 info Client [DVES_0B8CD4] publishOnSubscribe send all known states

                                mqtt.0
                                2025-10-10 18:30:47.516 info Client [DVES_0B8CD4] subscribes on "cmnd/DVES_0B8CD4_fb/#" with regex /^mqtt.0.cmnd.DVES_0B8CD4_fb..*/

                                mqtt.0
                                2025-10-10 18:30:47.516 info Client [DVES_0B8CD4] subscribes on "cmnd/DVES_0B8CD4_fb/#" with regex /^cmnd.DVES_0B8CD4_fb..*/

                                mqtt.0
                                2025-10-10 18:30:47.516 info Client [DVES_0B8CD4] subscribes on "SmartHome/tasmotas/cmnd/#" with regex /^mqtt.0.SmartHome.tasmotas.cmnd..*/

                                mqtt.0
                                2025-10-10 18:30:47.516 info Client [DVES_0B8CD4] subscribes on "SmartHome/tasmotas/cmnd/#" with regex /^SmartHome.tasmotas.cmnd..*/

                                mqtt.0
                                2025-10-10 18:30:47.516 info Client [DVES_0B8CD4] subscribes on "SmartHome/NSPanel_2/cmnd/#" with regex /^mqtt.0.SmartHome.NSPanel_2.cmnd..*/

                                mqtt.0
                                2025-10-10 18:30:47.516 info Client [DVES_0B8CD4] subscribes on "SmartHome/NSPanel_2/cmnd/#" with regex /^SmartHome.NSPanel_2.cmnd..*/

                                mqtt.0
                                2025-10-10 18:30:47.463 info Client [DVES_0B8CD4] connected with secret 1760113847461_6512

                                mqtt.0
                                2025-10-10 18:30:47.277 info Client [DVES_0B8CD4] connection closed: Error: Cannot parse topic

                                mqtt.0
                                2025-10-10 18:30:47.277 info Client [DVES_0B8CD4] Received pubrel for unknown message ID: 25964

                                mqtt.0
                                2025-10-10 18:30:47.277 info Client [DVES_0B8CD4] Received pubrel for unknown message ID: 25964

                                mqtt.0
                                2025-10-10 18:30:47.277 info Client [DVES_0B8CD4] Received pubrel for unknown message ID: 25964

                                mqtt.0
                                2025-10-10 18:30:42.684 info Client [DVES_0B8CD4] Received pubrel for unknown message ID: 25964

                                mqtt.0
                                2025-10-10 18:30:42.558 info Client [DVES_0B8CD4] Received pubrel for unknown message ID: 25964

                                mqtt.0
                                2025-10-10 18:30:42.268 info Client [DVES_0B8CD4] Received pubrel for unknown message ID: 25964

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

                                  @welli

                                  d90c989c-c00c-42dc-8757-5d8d8bdc512f-image.png

                                  Sieh mal nach, ob da ein Haken bei "Ausgabe jeder Nachricht loggen (debug)" gesetzt ist. Falls ja, entfernen...

                                  Mir quatscht der MQTT-Adapter sowieso zu viel... Habe den Log-Level auf warn eingestellt. Dann kommt nur noch das wichtige...

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  997
                                  Online

                                  32.2k
                                  Users

                                  80.9k
                                  Topics

                                  1.3m
                                  Posts

                                  lovelace ui nspanel sonoff
                                  270
                                  7675
                                  6445012
                                  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