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

      @vumer

      rot ist auch nicht meine Farbe im Log. Mit gelb kann ich leben, wenns nicht von meinen Sachen kommt 😂

      1 Reply Last reply Reply Quote 1
      • T
        TT-Tom @Vumer last edited by

        HI @vumer,

        schön das es läuft. Viel Spass weiter mit dem Panel.

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

          Hallo

          Bin auch dabei meine Erfahrungen mit dem Panel zu sammeln.
          Soweit läuft's auch.
          Bin jedoch noch etwas mit dem Screensaver am verhandeln... 😑
          Wer kann mir die einzelnen Einstellungen kurz erklären? Siehe Bild.
          screensaver.jpg

          Ebenfalls ändert sich nichts wenn ich folgenden Wert in der Script Datei ändere:

          dimmode: 8,
          

          Wie verhalten sich all diese Einstellungen untereinander? 🙄

          Danke 🙏

          Armilar 1 Reply Last reply Reply Quote 0
          • F
            froitzheims @Armilar last edited by froitzheims

            @armilar

            vielen leben Dank

            nach dem Update auf die 16.X gab es noch das Problem mit dem nicht angezeigten device Adapter.

            Ich habe auf Ubuntu eine IOBROKER Test installation dort habe ich aus meinem Echtsystem einmal das Backup zurück gespielt.
            Und siehe da man konnte dort den Device Adapter danach installieren.
            Ich habe versucht heraus zu finden warum das so ist.
            Bin aber nicht wirklich weitergekommen hatten den Sourceanalytics im Verdacht.

            Heute habe ich dann einfach ein Backup auf meinem Echtsystem zurückgespielt.
            Dan konnte ich den Device Adapter installieren und kann jetzt endlich weiter testen .

            Gruß Marcus

            Armilar 1 Reply Last reply Reply Quote 0
            • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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