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

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    SONOFF NSPanel mit Lovelace UI

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      drloksoft @drloksoft last edited by

      AH!
      Ich glaube ich habs!
      Ich lausche den MQTT Events in einem anderen Script:

      on({ id: 'mqtt.0.NSPANEL_REY.tele.RESULT', change: 'any' }, (obj) => {
      const val = obj?.state?.val;
      if (typeof val !== 'string' || !val.includes('CustomRecv')) return;

      try {
          const payload = JSON.parse(val);
          const event = payload?.CustomRecv;
      
          // === BUTTON 1 ===
          if (event === 'event,button1') {
              const dp = 'alias.0.NSPanel.wohnzimmer.WledRey.ON';
              const current = getState(dp)?.val;
              const newVal = !current;
              setState(dp, newVal);
      
              if (newVal === true) {
                  setState('wled.0.781c3ca4b32c.seg.0.bri', 128);
                  setState('wled.0.781c3ca4b32c.seg.0.col.0', [255, 255, 255, 0]);
                  setState('wled.0.781c3ca4b32c.seg.0.cct', 50);
              }
          }
      
          // === BUTTON 2 ===
          else if (event === 'event,button2') {
              const dp = 'nanoleaf-lightpanels.1.LightPanels.state';
              const current = getState(dp)?.val;
              const newVal = !current;
              setState(dp, newVal);
      
              if (newVal === true) {
                  setState('nanoleaf-lightpanels.1.LightPanels.brightness', 100);
              }
          }
      
      } catch (err) {
          log('Fehler beim Parsen von CustomRecv: ' + err.message, 'warn');
      }
      

      });

      D 1 Reply Last reply Reply Quote 0
      • D
        drloksoft @drloksoft last edited by

        Eine Frage habe ich noch ...
        Gibt es ein "best practice", um das Script mit wenig Aufwand auf seine aktuelle Version zu bringen? Ich würde gerne die cartThermo2 nutzen. Einfach den Bereich " DE: Ab hier keine Konfiguration mehr" austauschen?

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

          @drloksoft
          Jo - ich hab das so oft gemach das ich nach no more suche und alles ab da tausche.

          D 1 Reply Last reply Reply Quote 1
          • D
            drloksoft @ticaki last edited by

            @ticaki top, danke!

            1 Reply Last reply Reply Quote 1
            • T
              Toysman last edited by Toysman

              Hallo zusammen,
              hallo @Armilar

              ich habe die Config mal auf "Pirate-Weather" umgestellt, bekomme aber z.T. keine sinnvollen bzw. keine Werte angezeigt.

              Die Datenpunkte unter

              const weatherEntityPath: string = 'alias.0.Pirate-Wetter';
              

              werden nicht geschrieben, obwohl unter

              const autoCreateAlias = true;
              

              der richtige Wert gesetzt ist.

              Würde mich freuen, wenn ich einen hilfreichen Tip erhalte...

              Danke & Gruß

              /***********************************************************************
                   **                                                                   **
                   **                    Screensaver Configuration                      **
                   **                                                                   **
                   ***********************************************************************/
                  leftScreensaverEntity: [
                      // Examples for Advanced-Screensaver: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Config-Screensaver#entity-status-icons-ab-v400 
                  ],    
                  bottomScreensaverEntity: [
                      // bottomScreensaverEntity 1
                      {
                          ScreensaverEntity: 'pirate-weather.0.weather.daily.00.sunsetTime',
                          ScreensaverEntityFactor: 1,
                          ScreensaverEntityDecimalPlaces: 0,
                          ScreensaverEntityDateFormat: {hour: '2-digit', minute: '2-digit'}, // Description at Wiki-Pages
                          ScreensaverEntityIconOn: 'weather-sunset-down',
                          ScreensaverEntityIconOff: null,
                          ScreensaverEntityText: 'Sonne',
                          ScreensaverEntityUnitText: '%',
                          ScreensaverEntityIconColor: MSYellow //{'val_min': 0, 'val_max': 100}
                      },
                      // bottomScreensaverEntity 2
                      {
                          ScreensaverEntity: 'pirate-weather.0.weather.currently.windSpeed',
                          ScreensaverEntityFactor: (1000 / 3600),
                          ScreensaverEntityDecimalPlaces: 1,
                          ScreensaverEntityIconOn: 'weather-windy',
                          ScreensaverEntityIconOff: null,
                          ScreensaverEntityText: "Wind",
                          ScreensaverEntityUnitText: 'km/h',
                          ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 120}
                      },
                      // bottomScreensaverEntity 3
                      {
                          ScreensaverEntity: 'pirate-weather.0.weather.currently.windGust',
                          ScreensaverEntityFactor: (1000 / 3600),
                          ScreensaverEntityDecimalPlaces: 1,
                          ScreensaverEntityIconOn: 'weather-tornado',
                          ScreensaverEntityIconOff: null,
                          ScreensaverEntityText: 'Böen',
                          ScreensaverEntityUnitText: 'km/h',
                          ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 120}
                      },
                      // bottomScreensaverEntity 4
                      {
                          ScreensaverEntity: 'pirate-weather.0.weather.currently.windBearingText',
                          ScreensaverEntityFactor: 1,
                          ScreensaverEntityDecimalPlaces: 0,
                          ScreensaverEntityIconOn: 'windsock',
                          ScreensaverEntityIconOff: null,
                          ScreensaverEntityText: 'Windr.',
                          ScreensaverEntityUnitText: '°',
                          ScreensaverEntityIconColor: White
                      },
                      // bottomScreensaverEntity 5 (for Alternative and Advanced Screensaver)
                      {
                          ScreensaverEntity: 'pirate-weather.0.weather.currently.humidity',
                          ScreensaverEntityFactor: 1,
                          ScreensaverEntityDecimalPlaces: 1,
                          ScreensaverEntityIconOn: 'water-percent',
                          ScreensaverEntityIconOff: null,
                          ScreensaverEntityText: 'Feuchte',
                          ScreensaverEntityUnitText: '%',
                          ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100, 'val_best': 65}
                      },
                      // bottomScreensaverEntity 6 (for Advanced Screensaver)
                      {
                          ScreensaverEntity: NSPanel_Path + 'Relay.1',
                          ScreensaverEntityIconOn: 'coach-lamp-variant',
                          ScreensaverEntityText: 'Street',
                          ScreensaverEntityOnColor: Yellow,
                          ScreensaverEntityOffColor: White,
                          ScreensaverEntityOnText: 'Is ON',
                          ScreensaverEntityOffText: 'Not ON'
                      },        
              	// Examples for Advanced-Screensaver: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Config-Screensaver#entity-status-icons-ab-v400 
                  ],
              
                  indicatorScreensaverEntity: [
                      // Examples for Advanced-Screensaver: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Config-Screensaver#entity-status-icons-ab-v400 
                  ],
              
                  // Status Icon 
                  mrIcon1ScreensaverEntity: {
                      ScreensaverEntity: NSPanel_Path + 'Relay.1',
                      ScreensaverEntityIconOn: 'lightbulb',
                      ScreensaverEntityIconOff: null,
                      ScreensaverEntityValue: null,
                      ScreensaverEntityValueDecimalPlace: 0,
                      ScreensaverEntityValueUnit: null,
                      ScreensaverEntityOnColor: On,
                      ScreensaverEntityOffColor: HMIOff
                  },
                  mrIcon2ScreensaverEntity: {
                      ScreensaverEntity: NSPanel_Path + 'Relay.2',
                      ScreensaverEntityIconOn: 'lightbulb',
                      ScreensaverEntityIconOff: null,
                      ScreensaverEntityValue: null,
                      ScreensaverEntityValueDecimalPlace: 0,
                      ScreensaverEntityValueUnit: null,
                      ScreensaverEntityOnColor: On,
                      ScreensaverEntityOffColor: HMIOff
                  },
                  // ------ DE: Ende der Screensaver Einstellungen --------------------
                  // ------ EN: End of screensaver settings ---------------------------
              
              

              359EC206-61EC-4E4A-9BCC-D4EE09B77F3C_1_201_a.jpeg

              90F40E11-2337-48A7-A086-A65BA23648DA_1_201_a.jpeg

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

                @toysman

                der autoCreateAlias dürfte da keinen Einfluss haben... Der kommt nur bei speziellen Cards zum Einsatz...

                Um den Forecast und das aktuelle Wetter zu nutzen, solltest du deine Config so wie hier anpassen:

                /***** 3. Weather adapter Config *****/
                
                    // DE: Mögliche Wetteradapter 'accuweather.0.' oder 'daswetter.0.' oder 'openweathermap.0.' oder 'pirate-weather.0.'
                    // EN: Possible weather adapters 'accuweather.0.' or 'daswetter.0.' or 'openweathermap.0. or 'pirate-weather.0.'
                    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.PWWetter';
                

                Der Wetter-Alias wird automatisch angelegt, sofern er nicht vorhanden ist... Deshalb steht da auch PWWetter (kann man natürlich auch anders nennen)

                Das Script verfolgt immer nur einen bevorzugten Wetteradapter und der muss in

                const weatherAdapterInstance: string = 'pirate-weather.0.';

                eingetragen sein...

                Bei sunsetTime kann es durchaus sein, dass die Date-Formatierung nicht durchgeht... Ansonsten im Alias per Formatierung auf einen Uhrzeit-String zurückgreifen...

                T 1 Reply Last reply Reply Quote 0
                • T
                  Toysman @Armilar last edited by

                  @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                  Das Script verfolgt immer nur einen bevorzugten Wetteradapter und der muss in

                  const weatherAdapterInstance: string = 'pirate-weather.0.';

                  da fehlte tatsächloch der letzte "Punkt"

                  eingetragen sein...

                  Bei sunsetTime kann es durchaus sein, dass die Date-Formatierung nicht durchgeht... Ansonsten im Alias per Formatierung auf einen Uhrzeit-String zurückgreifen...

                  In dem Alias wird kein DP für sunset angelegt und der Wert von Pirate-Weather wird in Millisekunden in die Objekte geschrieben.

                  Bildschirmfoto 2025-08-16 um 18.35.02.png

                  Wie wandel ich das denn um? Sorry, aber so tief stecke ich das nicht drin 😧

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

                    @toysman

                    32ad5ac9-2193-4934-8e70-270bc4ef009e-image.png

                    ohne Sekunden:

                    (new Date(val)).toLocaleTimeString('de', { hour: '2-digit', minute: '2-digit' })
                    

                    mit Sekunden

                    (new Date(val)).toLocaleTimeString('de')
                    

                    oder als String

                    String((new Date(val)).toLocaleTimeString('de', { hour: '2-digit', minute: '2-digit' }))
                    
                    T 1 Reply Last reply Reply Quote 1
                    • T
                      Toysman @Armilar last edited by

                      @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                      (new Date(val)).toLocaleTimeString('de', { hour: '2-digit', minute: '2-digit' })

                      Danke für Deine Unterstützung - wo füge ich den den oben stehenden Wert ohne Sekunden ein?

                      Wenn ich ihn in der Screensaver Configuration unter

                      ScreensaverEntityDateFormat: (new Date(val)).toLocaleTimeString('de', { hour: '2-digit', minute: '2-digit' }) 
                      

                      einfüge, erhalte ich Fehlermeldungen... bin etwas hilflos 🙄

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

                        @toysman
                        Im Alias der die Daten bereitstellt auf den Stift klicken rechts
                        Bildschirmfoto 2025-08-17 um 10.28.13.png
                        und dort da:
                        Bildschirmfoto 2025-08-17 um 10.27.24.png
                        bei Konverter beim lesen

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

                          @toysman

                          Du erstellst dir einen Alias vom Typ info:

                          bb364426-0bb7-405b-8e0b-f582206293e5-image.png

                          Klickst hinten beim ACTUAL auf das fx

                          und trägst dort

                          String((new Date(val)).toLocaleTimeString('de', { hour: '2-digit', minute: '2-digit' }))
                          

                          54c3d8fc-70ac-4a3c-89a8-2dc0bf4aef8c-image.png

                          ein

                          okay und speichern...

                          // bottomScreensaverEntity 1
                                      {
                                          ScreensaverEntity: 'alias.0.NSPanel.EMU.Sunset.ACTUAL',
                                          ScreensaverEntityFactor: 1,
                                          ScreensaverEntityDecimalPlaces: 0,
                                          ScreensaverEntityDateFormat: { hour: '2-digit', minute: '2-digit' },
                                          ScreensaverEntityIconOn: 'weather-sunset-down',
                                          ScreensaverEntityIconOff: null,
                                          ScreensaverEntityText: 'Sonne',
                                          ScreensaverEntityIconColor: MSYellow
                                      },
                          

                          Und jetzt der Sonnenuntergang vom Pirate-Weather Adapter korrekt im Screensaver:
                          bb74aadf-3065-443a-a951-4f559b8e9ab9-image.png

                          EDIT: Habe den bottomScreensaverEntity nochmal editiert...

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

                            @ticaki
                            @Armilar

                            Dank eurer Hilfe funktioniert es jetzt 🙂

                            ABER die Wettervorhersage ist noch komplett leer....

                            2732f122-282a-43de-aff7-42488b1dd10e-grafik.png

                            Da stand unter Sccuweather immer der Forecast für die nächsten Tage.

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

                              @toysman

                              f0ea91fa-8327-472f-85ce-de4ba3fd1b0f-image.png

                              Kommt alles aus dem Skript-Part:

                              /***** 3. Weather adapter Config *****/
                              
                                  // DE: Mögliche Wetteradapter 'accuweather.0.' oder 'daswetter.0.' oder 'openweathermap.0.' oder 'pirate-weather.0.'
                                  // EN: Possible weather adapters 'accuweather.0.' or 'daswetter.0.' or 'openweathermap.0. or 'pirate-weather.0.'
                                  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.PWWetter';
                              

                              Das Skript erzeugt dabei einen neuen Wetteralias...

                              Einfach austauschen Skript starten und dann sollte der Forecast laufen

                              EDIT:
                              oder Alternate:
                              da07842e-c460-4929-bd63-4e301a520c6f-image.png

                              oder Advanced:
                              b343e436-de16-40f4-ad9d-6671969a0fe9-image.png

                              oder Easyview:
                              05159fab-4fc3-4e2d-b934-ee2cebb83659-image.png

                              EDIT2: aber das Skript in der Version v4.9.5.1 (unterer Teil) benutzt du, oder? Sonst wird es nicht funktionieren!!!
                              23ad1c99-f184-49ca-aee3-fc860a5e2077-image.png

                              T 1 Reply Last reply Reply Quote 0
                              • T
                                Toysman @Armilar last edited by Toysman

                                @armilar

                                das sieht bei mir identisch aus...

                                /***** 3. Weather adapter Config *****/
                                
                                // DE: Mögliche Wetteradapter 'accuweather.0.' oder 'daswetter.0.'
                                // EN: Possible weather adapters 'accuweather.0.' or 'the weather.0.'
                                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.PWWetter';
                                

                                In alias.0.PWWETTER sind aber nurr 4 DP angelegt worden.

                                Bildschirmfoto 2025-08-17 um 11.07.04.png

                                Der Forecast fehlt da offensichtlich

                                und ja, das aktuelle TS verwende ich...

                                /*-----------------------------------------------------------------------
                                TypeScript v4.9.5.1 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @ticaki / @Britzelpuf / @Sternmiere / @ravenS0ne
                                - abgestimmt auf TFT 58 / v4.9.5 / BerryDriver 10 / Tasmota 15.0.1
                                
                                Armilar 1 Reply Last reply Reply Quote 0
                                • Armilar
                                  Armilar Most Active Forum Testing @Toysman last edited by Armilar

                                  @toysman

                                  Der Forecast wird nicht aus dem Alias geholt...

                                  Wenn deine Pirate-Weather Instanz diese Daten hat, dann kommt auch der Forecast

                                  826de59e-ce7f-45fa-9807-10031e76b669-image.png

                                  Also unter:

                                  • pirate-weather.0.weather.daily.00.
                                  • pirate-weather.0.weather.daily.01.
                                  • pirate-weather.0.weather.daily.02.
                                  • pirate-weather.0.weather.daily.03.
                                  • pirate-weather.0.weather.daily.04.
                                  • etc.

                                  Soll heißen, der Forecast greift direkt auf die Datenpunkte der Adapterinstanz zu:

                                  • icon,
                                  • time,
                                  • temperatureMin,
                                  • temperatureMax
                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    Toysman @Armilar last edited by

                                    @armilar

                                    das laden der Forecast Werte hat wohl etwas länger gedauert als erwartet... zu ungeduldig ich bin 😉

                                    Danke für Deine Unterstützung 👍

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

                                      @toysman

                                      Die sind da sobald im log die Startup Meldung vom pirate Adapter mit den Koordinaten erscheint. Außer dein Netzwerk spinnt - oder deren 😄

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

                                        @ticaki

                                        scheint jetzt zu laufen 😊

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        724
                                        Online

                                        32.0k
                                        Users

                                        80.4k
                                        Topics

                                        1.3m
                                        Posts

                                        lovelace ui nspanel sonoff
                                        267
                                        7490
                                        5340955
                                        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