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 Developer @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
            • 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
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                1.2k
                                Online

                                32.2k
                                Users

                                80.9k
                                Topics

                                1.3m
                                Posts

                                lovelace ui nspanel sonoff
                                270
                                7673
                                6442997
                                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