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.
    • 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

                                981
                                Online

                                32.2k
                                Users

                                80.9k
                                Topics

                                1.3m
                                Posts

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