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

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    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 @valbuz last edited by Armilar

      @valbuz

      Ich mach es dann mal mit der Erklärung 😉

      Das Panel hat die Aliase vom Typ Slider erstellt, die wiederum greifen auf 4 Datenpunkte in 0_userdata (hat das Script dir ebenfalls erstellt) zu.

      93835a84-449c-42e0-8773-7ab1fd404a10-image.png

      0_userdata.0.NSPanel.1.NSPanel_Dimmode_brightnessDay ist die Helligkeit (bei dir aktuell 10) des Displays, die mit der Stunde Tag (bei dir aktuell 10:00 Uhr = hourDay) beginnt.

      0_userdata.0.NSPanel.1.NSPanel_Dimmode_brightnessDay ist die Helligkeit (bei dir aktuell 2) des Displays, die mit der Stunde Nacht (bei dir aktuell 5:00 Uhr = hourNight) beginnt.

      c5ba1ca7-4c7c-4c6c-a135-a9c823dbec47-image.png

      Deine aktuellen Einstellungen:
      Bei dir fängt der Abend/Nacht um 5:00 Uhr an. In dieser Zeit bis zum Tagesbeginn um 10:00 Uhr (d.h. 5 Stunden später) wird das Screensaver-Display auf Helligkeit 2% gestellt. Ab 10:00 Uhr fängt bei dir der Tag an. Das Display wechselt im Screensaver auf 10% Helligkeit.

      Der Parameter dimmode: 8, ist noch ein Relikt aus alten Zeiten (Als es noch keine DP's gab und das Panel nur einen Zustand kannte) und wird nirgendwo mehr im Code verwendet.

      Zu den definierten Stunden stellt jeweils ein Scheduler im Script die Helligkeiit um. Bei Start des Scriptes erfolgt ebenfalls eine initiale Überprüfung.

      //Subpage 2 von Subpages_2
             let NSPanel_Einstellungen: PageEntities =
             {
                 'type': 'cardEntities',
                 'heading': 'Screensaver',
                 'useColor': true,
                 'subPage': true,
                 'parent': Service,
                 'items': [
                     <PageItem>{ id: AliasPath + 'Dimmode.brightnessDay', name: 'Brightness Tag', icon: 'brightness-5', offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 5, maxValue: 10},
                     <PageItem>{ id: AliasPath + 'Dimmode.brightnessNight', name: 'Brightness Nacht', icon: 'brightness-4', offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 0, maxValue: 4},
                     <PageItem>{ id: AliasPath + 'Dimmode.hourDay', name: 'Stunde Tag', icon: 'sun-clock', offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 0, maxValue: 23},
                     <PageItem>{ id: AliasPath + 'Dimmode.hourNight', name: 'Stunde Nacht', icon: 'sun-clock-outline', offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 0, maxValue: 23}
                 ]
             };
      

      In diesen pageItems findest du ebenfalls die Einstellungen für die Slider in Form von minValue und maxValue. Die können natürlich angepasst werden.

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

        @froitzheims

        Sehr gerne. Noch ein Tipp für die Zukunft...

        3004b4f9-4abd-4587-9835-78f043c9599f-image.png

        Unter Info und dann unter Systeminformationen rechts:
        926d6c8c-2a7e-4fcb-b6b0-1e9bfc8bc09c-image.png

        findest du die Node.js Version ebenfalls. Wenn die gelb oder rot wird, steht in der Regel auch die empfohlene Version dabei. Wenn es eine empfohlene Version gibt, sollte die nach Möglichkeit auch unmittelbar installiert werden. Die wird immer entsprechend korrekte Funktionalitäten für den ioBroker zur Verfügung stellen. Anderenfalls kann es zu Problemen in der Ausführung kommen!

        Der Satz "Never touch a running System" ist das dümmste was man in der Server-Welt machen kann. Die vorherige Version ist bereits fehlerbehaftet und die neue Version beinhaltet bereits das "Pflaster" für diese Fehler. Gilt auch für das Betriebssystem.

        Konntest du damit auch das Sprachthema erledigen?

        1 Reply Last reply Reply Quote 0
        • V
          valbuz @Armilar last edited by

          @armilar Da Danke ich vielmals! 👍 😊
          Ja bei Relikten aus alten Zeiten, wird's schwierig um eine Logik zu finden 😳

          Danke nochmals.

          Pat

          1 Reply Last reply Reply Quote 0
          • W
            Woffi1967 @joBr99 last edited by

            @jobr99 : Hallo jobr99,
            sorry wenn ich jetzt diesen Weg wähle.
            Leider finde ich keinen Button um ein neues Thema zu öffnen.

            Ich habe ein Problem, das Scritpt NSPanelTS.ts zu starten. Ich bekomme die Fehlermeldung

            javascript.0 (1433) script.js.common.NSPANEL_1_3_6_0_3 compile failed: at script.js.common.NSPANEL_1_3_6_0_3:166

            In der Zeile 166 steht folgender Befehl: let timeoutSlider: any;

            Würde mich über eine Hilfe freuen.

            Mfg Wolfgang

            Armilar 2 Replies Last reply Reply Quote 0
            • Armilar
              Armilar Most Active Forum Testing @Woffi1967 last edited by Armilar

              @woffi1967

              Hi und erstmal herzlich willkommen.

              Neues Thema ist gar nicht erforderlich und somit absolut korrekt gemacht. @joBr99 ist übrigens für die Nextion-TFT-Firmware und Home Assistant zuständig. Deshalb übernehme ich mal im Bereich TS-Script und ioBroker...

              Könntest du das Log mit den Fehlern kurz in Code-Tags posten? Oben in der Menüleiste f163ce7f-a28b-419e-b388-5c144fff3ec8-image.png

              Nur mit der Info des timeoutSlider kann ich erstmal alleine nichts anfangen.

              EDIT: Die Fehlersuche ist oft nicht einfach, da die Zeilennummern (in deinem Fall 166) nicht auf den Fehler hinweisen. Ist eher eine Näherung 😉

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

                @woffi1967

                Ich tippe übrigens auf die IconSelector, also das 2. TypeScript, dass die Icons enthält und im global angelegt sein muss (und natürlich angeschaltet)

                Bist du nach dieser Anleitung vorgegangen?
                https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker---Basisinstallation

                1 Reply Last reply Reply Quote 0
                • B
                  bean last edited by bean

                  Seit neuesten bekomme ich beim Start des Scripts zwei Zeilen mit den roten Fehlern

                  Error by subscription (trigger): empty ID defined. All states matched.
                  

                  Ich vermute, irgendein Datenpunkt in den Aliasen passt nicht, aber kann ich das irgendwie debuggen bzw selber draufkommen, welche Subscription den Fehler auslöst?
                  Das Skript startet trotzdem und läuft scheinbar auch fehlerfrei, aber rot ist doch störend 😰

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

                    @bean

                    rot ist nicht so schön 😉 Ich habe auch nicht die geringste Ahnung, warum sich das nicht in Pink umstellen lässt.

                    Nee, mal kurz Spaß beiseite. Stell mal im Script-Editor oben in der Ecke:
                    79d85721-50fa-49fb-947c-d8101e60768e-image.png
                    im Schraubenschlüssel den Haken bei "Ausführliche Protokollausgaben" rein und starte mal durch. Danach sende mal das Log mit den Fehlern in rot und so ein klein wenig an Log-Infos drumherum hier in Code-Tags.

                    Evtl. siehst du selbst die Fehlerquelle schon...

                    B 1 Reply Last reply Reply Quote 1
                    • B
                      bean @Armilar last edited by bean

                      @armilar said in SONOFF NSPanel mit Lovelace UI:

                      im Schraubenschlüssel den Haken bei "Ausführliche Protokollausgaben" rein und starte mal durch. Danach sende mal das Log mit den Fehlern in rot und so ein klein wenig an Log-Infos drumherum hier in Code-Tags.
                      Evtl. siehst du selbst die Fehlerquelle schon...

                      Ah! Aber die Fehlerquelle ist noch unklar

                      19:30:47.180	info	javascript.0 (557640) script.js.common.NSPanel.1: subscribe: {"pattern":{"id":"0_userdata.0.NSPanel_1.Relay.1","change":"ne","q":0},"name":"script.js.common.NSPanel.1"}
                      19:30:47.181	info	javascript.0 (557640) script.js.common.NSPanel.1: subscribe: {"pattern":{"id":"0_userdata.0.NSPanel_1.Relay.2","change":"ne","q":0},"name":"script.js.common.NSPanel.1"}
                      19:30:47.181	error	javascript.0 (557640) script.js.common.NSPanel.1 Error by subscription (trigger): empty ID defined. All states matched.
                      19:30:47.181	error	javascript.0 (557640) script.js.common.NSPanel.1 Error by subscription (trigger): empty ID defined. All states matched.
                      19:30:47.182	info	javascript.0 (557640) script.js.common.NSPanel.1: Wetter-Alias existiert bereits
                      19:30:47.183	info	javascript.0 (557640) script.js.common.NSPanel.1: subscribe: {"pattern":{"id":"0_userdata.0.NSPanel_1.PageNavi","change":"any","q":0},"name":"script.js.common.NSPanel.1"}
                      
                      

                      Scheinbar werden die beiden Relais-Datenpunkte abonniert, dann zwei Fehler, und dann geht es mit dem Wetter etc. weiter. Oder lese ich das falsch? Danke!

                      EDIT: Hat sicher erledigt - ich hatte bei mrIcon1ScreensaverEntity und mrIcon2ScreensaverEntity unter entity "null" eingetragen weil ich keine Icons oben haben wollte, in der letzten Scriptversion warf das noch keinen Fehler.

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

                        @bean

                        Super, danke für die Info.

                        "null" sollte auch künftig wieder möglich sein. Ich prüfe das für die nächste Version und werde vorher abfragen, ob einer von den Icons "null" ist. Dann sollte null auch ohne Fehler funktionieren, da die Init für die Subscriptions der jeweiligen Icons nicht mehr durchlaufen werden.

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

                          @bean

                          Wenn du es direkt wieder ohne Buttons haben möchtest kannst du den Teil suchen (relativ weit oben):

                          on({id: [].concat(config.mrIcon1ScreensaverEntity.ScreensaverEntity).concat(config.mrIcon2ScreensaverEntity.ScreensaverEntity), change: "ne"}, async function (obj) {
                              if (obj.id.substring(0,4) == 'mqtt') {
                                  let Button = obj.id.split('.'); 
                                  if (getState(NSPanel_Path + 'Relay.' + Button[Button.length - 1].substring(5,6)).val != obj.state.val) {
                                      await setStateAsync(NSPanel_Path + 'Relay.' + Button[Button.length - 1].substring(5,6), obj.state.val == 'ON' ? true : false);
                                  }
                              }
                          });
                          

                          und gegen den Teil ersetzen:

                          async function SubscribeMRIcons () { 
                              if (config.mrIcon1ScreensaverEntity.ScreensaverEntity != null) {
                                  on({id: config.mrIcon1ScreensaverEntity.ScreensaverEntity, change: "ne"}, async function (obj) {
                                      if (obj.id.substring(0,4) == 'mqtt') {
                                          let Button = obj.id.split('.'); 
                                          if (getState(NSPanel_Path + 'Relay.' + Button[Button.length - 1].substring(5,6)).val != obj.state.val) {
                                              await setStateAsync(NSPanel_Path + 'Relay.' + Button[Button.length - 1].substring(5,6), obj.state.val == 'ON' ? true : false);
                                          }
                                      }
                                  });
                              }
                              if (config.mrIcon2ScreensaverEntity.ScreensaverEntity != null) {
                                  on({id: config.mrIcon2ScreensaverEntity.ScreensaverEntity, change: "ne"}, async function (obj) {
                                      if (obj.id.substring(0,4) == 'mqtt') {
                                          let Button = obj.id.split('.'); 
                                          if (getState(NSPanel_Path + 'Relay.' + Button[Button.length - 1].substring(5,6)).val != obj.state.val) {
                                              await setStateAsync(NSPanel_Path + 'Relay.' + Button[Button.length - 1].substring(5,6), obj.state.val == 'ON' ? true : false);
                                          }
                                      }
                                  });
                              }
                          }
                          SubscribeMRIcons();
                          

                          dann sollte auch "null" wieder möglich sein.

                          LG

                          B 1 Reply Last reply Reply Quote 2
                          • M
                            michael_4358 last edited by

                            hallo

                            habe den Biobroker heute neu aufgesetzt.
                            nun zeigt das Panel nicht mehr die richtige Uhrzeit...
                            Uhrzeit im pi und im Broker sind aber richtig...
                            muss ich noch was beachten?

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

                              @michael_4358

                              Abweichungen der Uhrzeit waren bislang Bestandteil von:

                              • Einstellungen der loacales im pi

                                sudo raspi-config
                                

                                dann zu Set Locale navigieren und de_DE.UTF-8 auswählen (falls noch nicht aktiv)

                                Ebenfalls bitte noch nachsehen, ob Timezone auf Europa/Berlin steht

                              • Node.js
                                Welche Version ist aktuell auf dem pi installiert? Die node.js Version bekommst du im Systemterminal mit

                                node -v
                                

                                heraus und dann wäre noch interessant, welches Betriebssystem auf dem pi läuft (buster oder bullseye)

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

                                @armilar said in SONOFF NSPanel mit Lovelace UI:

                                dann sollte auch "null" wieder möglich sein.

                                Super, funktioniert!

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

                                  @bean sagte in SONOFF NSPanel mit Lovelace UI:

                                  dann sollte auch "null" wieder möglich sein.

                                  Super, funktioniert!

                                  Perfekt, dann kommt es so auch in die folgenden Versionen...

                                  B 1 Reply Last reply Reply Quote 0
                                  • B
                                    bean @Armilar last edited by

                                    @armilar
                                    Kommando zurück, funktioniert doch nicht (Hattte übergangsweise eine andere Entity eingetragen und das vergessen)
                                    Der Unterschied: Ich darf nun gar kein 'none' eintragen (wird gleich rot unterstrichen), das ging vorher noch, dann kam der Fehler aber erst beim kompilieren.
                                    Wenn ich zwei Anführungszeichen ohne Inhalt einfüge, kommt der Fehler "empty id defined" wie davor

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

                                      @bean sagte in SONOFF NSPanel mit Lovelace UI:

                                      none

                                      null wird abgefragt - kein "none"

                                      B 1 Reply Last reply Reply Quote 0
                                      • B
                                        bean @Armilar last edited by

                                        @armilar said in SONOFF NSPanel mit Lovelace UI:

                                        @bean sagte in SONOFF NSPanel mit Lovelace UI:

                                        none

                                        null wird abgefragt - kein "none"

                                        Autsch 🤦 Sorry, es ist noch früh - so gehts natürlich

                                        1 Reply Last reply Reply Quote 0
                                        • V
                                          valbuz last edited by

                                          Hallo zusammen.
                                          Habe einige Erfahrungen mit diesem tollen Tool machen dürfen. Danke hierfür 👍

                                          Nun wollte ich wiederum zurück auf Tasmota. Flashen via OTA und seriell funktionierte, jedoch ist das Display immer noch
                                          auf "waiting for content...".
                                          Ebenso wurden die Dateien nspanel.be und autoexec.be angelegt.
                                          Wer hat mir eine Hilfe wie ich das Nextion wieder weg bekomme?

                                          Danke

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

                                            @valbuz

                                            Du meinst Tasmota mit der Original TFT-Firmware. Dazu benötigst du die Original Sonoff- Firmware. Soweit ich das verfolgt habe, gab es ein oder 2 User im Forum, die den Weg ebenfalls gegangen sind. Evtl. hilft dir das weiter?:

                                            Going back to Stock Screen firmware

                                            You can easily revert back to stock HMI firmware at any time, if you want. Simply use the same process as above. You just need to use the original TFT file. A link to that is here;
                                            https://community.home-assistant.io/t/sonoff-nspanel-smart-scene-wall-switch-by-itead-coming-soon-on-kickstarter/332962/145?u=m-home

                                            This will revert the Nextion HMI to stock, not the Tasmota side. This process would involve re-flashing the backup taking during the flash of Tasmota. This is not in scope here.

                                            Weitere Infos dazu habe ich aber auch nicht...

                                            V 2 Replies Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            714
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            lovelace ui nspanel sonoff
                                            260
                                            7128
                                            4289907
                                            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