Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. SONOFF NSPanel mit Lovelace UI

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

SONOFF NSPanel mit Lovelace UI

Geplant Angeheftet Gesperrt Verschoben Hardware
lovelace uinspanelsonoff
7.8k Beiträge 272 Kommentatoren 6.7m Aufrufe 254 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • W Offline
    W Offline
    wolwin
    schrieb am zuletzt editiert von wolwin
    #6465

    @armilar
    Dein Tipp zum Einstiegspunkt war genau richtig ...

    @Alle
    Wie in der ioBroker Basisinstallation beschrieben, hatte ich auf dem MQTT-Server mit dem MQTT-Explorer den CMND-Topic über PUBLISH (json) angelegt:

    myHOME/devices/nspanel_xyz/cmnd/CustomSend

    Im ioBroker taucht der Eintrag dann auch im MQTT-Client auf ... und jetzt ganz wichtig: mit dem Wert (null) - und genau DAS war mein Fehler: ich hatte übersehen, dass mit dem Topic auch '12:00' als Wert mit zu übergeben ist, damit der Topic eben NICHT (null) ist!!!

    Achtung: wenn man den MQTT-Client einsetzt, wird der Wert '12:00' NICHT im ioBroker gesetzt - dh. der MQTT-Pfad wird erzeugt, aber der Wert steht auf (null) und nicht auf '12:00'. Es muss zuerst für 'CustomSend' die Publish-Funktion aktiviert werden (Zahnrad rechte Seite) - erst jetzt kann man nochmal den Wert mit dem MQTT-Explorer publischen oder den Wert '12:00' direkt im ioBroker unter 'CustomSend' eingeben.

    Anmerkung: ich habe im MQTT-Client für alle Topics des NSPanels das Publish-Flag gesetzt.

    Erläuterung: ... für die Experten, warum dieser kleine Fehler dazu geführt hat, dass das NSPanel nicht angelaufen ist ...
    Alle MQTT-Ausgaben im Script laufen über die Funktion 'setIfExists'. In dieser Funktion wird mit der JS-Funktion 'existsState' überprüft, ob die Objekt-Instanz vorhanden ist. Im vorliegenden Fall zeigt die Instanz bei mir auf:
    mqtt-client.0.myHOME.devices.nspanel_xyz.cmnd.CustomSend
    Beim Starten des Skripts war der MQTT-Pfad im Objektbaum zwar vorhanden, jedoch sorgte '(null)' dafür, dass die JS-Funktion 'existsState' in der Script-Funktion 'setIfExists' immer 'false' zurück gibt ... Ergebnis: es fand keine MQTT-Ausgabe zum NSPanel statt. Sobald im MQTT-Client Topic etwas eingetragen wurde, läuft die Verbindung zum NSPanel sofort an.

    @armilar
    Beim Debuggen sind mir noch zwei Dinge aufgefallen, die Du bitte noch korrigieren kannst:

    1.) Fehler Zeile 1074 - a enthält 'mqtt' oder 'mqtt-client'

        Original:   if (a === 'mqtt' && !isNaN(Number(i))) {
             Neu:   if (a.substring(0, 4) === 'mqtt' && !isNaN(Number(i))) {
    

    2.) Fehlende Debug-Ausgabe in Funktion 'SendToPanel' hinzugefügt - ab Zeile 3520

    async function SendToPanel(val: NSPanel.Payload | NSPanel.Payload[]) {
        try {
            if (Array.isArray(val)) {
                val.forEach(function (id) {
                    setIfExists(config.panelSendTopic, id.payload);
                    if (Debug) {
                        log('function SendToPanel id-payload: ' + id.payload, 'info');
                    }
                });
            } else {
                setIfExists(config.panelSendTopic, val.payload);
                if (Debug) {
                    log('function SendToPanel val-payload: ' + val.payload, 'info');
                }
            }
        } catch (err: any) {
            log('error at function SendToPanel: ' + err.message, 'warn');
        }
    }
    
    

    Danke für die Unterstützung - ich hoffe der Beitrag hilft den Leuten, die nur einen MQTT-Client einsetzen :blush:

    ArmilarA 1 Antwort Letzte Antwort
    2
    • W wolwin

      @armilar
      Dein Tipp zum Einstiegspunkt war genau richtig ...

      @Alle
      Wie in der ioBroker Basisinstallation beschrieben, hatte ich auf dem MQTT-Server mit dem MQTT-Explorer den CMND-Topic über PUBLISH (json) angelegt:

      myHOME/devices/nspanel_xyz/cmnd/CustomSend

      Im ioBroker taucht der Eintrag dann auch im MQTT-Client auf ... und jetzt ganz wichtig: mit dem Wert (null) - und genau DAS war mein Fehler: ich hatte übersehen, dass mit dem Topic auch '12:00' als Wert mit zu übergeben ist, damit der Topic eben NICHT (null) ist!!!

      Achtung: wenn man den MQTT-Client einsetzt, wird der Wert '12:00' NICHT im ioBroker gesetzt - dh. der MQTT-Pfad wird erzeugt, aber der Wert steht auf (null) und nicht auf '12:00'. Es muss zuerst für 'CustomSend' die Publish-Funktion aktiviert werden (Zahnrad rechte Seite) - erst jetzt kann man nochmal den Wert mit dem MQTT-Explorer publischen oder den Wert '12:00' direkt im ioBroker unter 'CustomSend' eingeben.

      Anmerkung: ich habe im MQTT-Client für alle Topics des NSPanels das Publish-Flag gesetzt.

      Erläuterung: ... für die Experten, warum dieser kleine Fehler dazu geführt hat, dass das NSPanel nicht angelaufen ist ...
      Alle MQTT-Ausgaben im Script laufen über die Funktion 'setIfExists'. In dieser Funktion wird mit der JS-Funktion 'existsState' überprüft, ob die Objekt-Instanz vorhanden ist. Im vorliegenden Fall zeigt die Instanz bei mir auf:
      mqtt-client.0.myHOME.devices.nspanel_xyz.cmnd.CustomSend
      Beim Starten des Skripts war der MQTT-Pfad im Objektbaum zwar vorhanden, jedoch sorgte '(null)' dafür, dass die JS-Funktion 'existsState' in der Script-Funktion 'setIfExists' immer 'false' zurück gibt ... Ergebnis: es fand keine MQTT-Ausgabe zum NSPanel statt. Sobald im MQTT-Client Topic etwas eingetragen wurde, läuft die Verbindung zum NSPanel sofort an.

      @armilar
      Beim Debuggen sind mir noch zwei Dinge aufgefallen, die Du bitte noch korrigieren kannst:

      1.) Fehler Zeile 1074 - a enthält 'mqtt' oder 'mqtt-client'

          Original:   if (a === 'mqtt' && !isNaN(Number(i))) {
               Neu:   if (a.substring(0, 4) === 'mqtt' && !isNaN(Number(i))) {
      

      2.) Fehlende Debug-Ausgabe in Funktion 'SendToPanel' hinzugefügt - ab Zeile 3520

      async function SendToPanel(val: NSPanel.Payload | NSPanel.Payload[]) {
          try {
              if (Array.isArray(val)) {
                  val.forEach(function (id) {
                      setIfExists(config.panelSendTopic, id.payload);
                      if (Debug) {
                          log('function SendToPanel id-payload: ' + id.payload, 'info');
                      }
                  });
              } else {
                  setIfExists(config.panelSendTopic, val.payload);
                  if (Debug) {
                      log('function SendToPanel val-payload: ' + val.payload, 'info');
                  }
              }
          } catch (err: any) {
              log('error at function SendToPanel: ' + err.message, 'warn');
          }
      }
      
      

      Danke für die Unterstützung - ich hoffe der Beitrag hilft den Leuten, die nur einen MQTT-Client einsetzen :blush:

      ArmilarA Offline
      ArmilarA Offline
      Armilar
      Most Active Forum Testing
      schrieb am zuletzt editiert von
      #6466

      @wolwin

      Vielen Dank für den Beitrag...

      Wir werden die Anleitung für den MQTT-Client Adapter mit ins Wiki übernehmen... Auch die beiden Änderungen machen im Kontext mit dem MQTT-Client Adapter sinn...

      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
      https://github.com/joBr99/nspanel-lovelace-ui/wiki

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      ArmilarA 1 Antwort Letzte Antwort
      0
      • ArmilarA Armilar

        @wolwin

        Vielen Dank für den Beitrag...

        Wir werden die Anleitung für den MQTT-Client Adapter mit ins Wiki übernehmen... Auch die beiden Änderungen machen im Kontext mit dem MQTT-Client Adapter sinn...

        ArmilarA Offline
        ArmilarA Offline
        Armilar
        Most Active Forum Testing
        schrieb am zuletzt editiert von Armilar
        #6467

        840e6e36-0fbe-42cb-85f5-c67273e3d418-image.png

        https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts

        Änderungen betreffen ausschließlich den unteren Teil ab:

        5f868619-ca74-45cb-ac87-8d1ee6aff0f9-image.png

        PR hatte @TT-Tom schon vorbereitet :blush:

        Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
        https://github.com/joBr99/nspanel-lovelace-ui/wiki

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        W 1 Antwort Letzte Antwort
        2
        • ArmilarA Armilar

          840e6e36-0fbe-42cb-85f5-c67273e3d418-image.png

          https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts

          Änderungen betreffen ausschließlich den unteren Teil ab:

          5f868619-ca74-45cb-ac87-8d1ee6aff0f9-image.png

          PR hatte @TT-Tom schon vorbereitet :blush:

          W Offline
          W Offline
          wolwin
          schrieb am zuletzt editiert von
          #6468

          @armilar

          ... und da ist ja noch die Sache mit der manuellen Erstinstallation eines NSPanels im ioBroker ...

          Gut, dass es Proxmox gibt ... nach vielen Debug-Sitzungen mit einer minimal Default-Konfiguration denke ich, dass ich jetzt verstanden habe, warum und wann der beschriebene Fehler auftritt: beim erstmaligen Start des Scripts installiert der automatische Updater (bei mir reproduzierbar) die online TFT-Firmware, obwohl die aktuelle Firmware auf dem NSPanel vorhanden ist. Das Ganze endet immer mit einer um 90 Grad gedrehten Fehlermeldung im Display des NSPanels.

          Zuerst habe ich im ioBroker / Script gesucht, warum dort die Firmware 3.3.1 eingetragen ist - gefunden habe ich folgendes unter:

          0_userdata.0.nspanel_073.1.Display_Firmware.TFT.currentVersion = 0 / v3.3.1

          Erzeugt wird dieser Eintrag an dieser Stelle (ab Scriptzeile1266):

          async function Init_Release() {
              const FWVersion = [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56];
              const FWRelease = ['3.3.1', '3.4.0', '3.5.0', '3.5.X', '3.6.0', '3.7.3', '3.8.0', '3.8.3', '3.9.4', '4.0.5', '4.1.4', '4.2.1', '4.4.0', '4.4.0', '4.5.0', '4.6.0'];
              try {
                  if (existsObject(NSPanel_Path + 'Display_Firmware.desiredVersion') == false) {
                      await createStateAsync(NSPanel_Path + 'Display_Firmware.desiredVersion', desired_display_firmware_version, { type: 'number', write: false });
                  } else {
                      await setStateAsync(NSPanel_Path + 'Display_Firmware.desiredVersion', desired_display_firmware_version, true);
                  }
          
                  if (existsObject(NSPanel_Path + 'Config.Update.activ') == false) {
                      await createStateAsync(NSPanel_Path + 'Config.Update.activ', 1, { type: 'number', write: false });
                  } else {
                      await setStateAsync(NSPanel_Path + 'Config.Update.activ', 0, true);
                  }
          
                  let currentFW = 0;
                  let findFWIndex = 0;
                  log('Desired TFT Firmware: ' + desired_display_firmware_version + ' / ' + tft_version, 'info');
                  if (existsObject(NSPanel_Path + 'Display_Firmware.currentVersion')) {
                      currentFW = parseInt(getState(NSPanel_Path + 'Display_Firmware.currentVersion').val);
                      findFWIndex = FWVersion.indexOf(currentFW);
                      log('Installed TFT Firmware: ' + currentFW + ' / v' + FWRelease[findFWIndex], 'info');
                  }
          

          Beim ersten Durchlauf gibt es zwar das Objekt 'Display_Firmware.currentVersion', aber der Inhalt ist leer ... das führt dann zu dem Index '0', der dann aus 'FWRelease' den ersten Eintrag '3.3.1' nimmt ... und schon steht '0 / v3.3.1' als aktuelle TFT-Firmware Version da (btw: besser wäre bei 'unbekannt' der Eintrag '0 / v0' gewesen).

          Aber warum kommt es überhaupt soweit, dass der Objekt-Eintrag leer ist? Der Knackpunkt liegt in den Scriptzeilen ab Zeile 2687:

          // Updates currently compare every 12 hours
          let scheduleCheckUpdates = adapterSchedule(undefined, 60 * 60 * 12, () => {
              get_tasmota_status0();
              get_panel_update_data();
              check_updates();
          });
          
          // Check for updates with Start
          get_locales();
          get_locales_servicemenu();
          setIfExists(config.panelSendTopic, 'pageType~pageStartup');
          get_tasmota_status0();
          get_panel_update_data();
          check_updates();
          

          Nach Aufruf der Initialisierungsfunktionen sollen beim Start die Updates gecheckt werden (8 ... 14) - dabei werden dann auch fehlende Objekt-Einträge automatisch angelegt. Gleichzeitig ist jedoch auch der Scheduler 'scheduleCheckUpdates' gestartet worden (2 ... 6) ... und hier lauert jetzt der Fehler: der startet (direkt) parallel zum laufenden Update-Prozess einen zweiten Update-Prozess, in dem die gleichen Funktionen 'get_tasmota_status0', 'get_panel_update_data' und 'check_updates' aufgerufen werden. So kommt es dann zu einer 'undefinierten Initialisierung' - zufällig wird bei mir eben die TFT-Firmware aktualisiert ... bei anderen Konstellationen kann was anderes dabei rauskommen.

          Ich habe mehrere Szenarien für die Inbetriebnahme durchgespielt - das würde aber diesen Rahmen hier sprengen - Github ist da vielleicht besser zur Diskussion geeignet. Leider habe ich keinen 'einfachen Weg' gefunden - es wären m.E. immer einige Code-Anpassungen notwendig ... und da möchte ich Dir nicht vorgreifen.

          Vielleicht hast Du ja auch noch die ioBroker Integration im Blick ... :relaxed:

          T 1 Antwort Letzte Antwort
          2
          • W wolwin

            @armilar

            ... und da ist ja noch die Sache mit der manuellen Erstinstallation eines NSPanels im ioBroker ...

            Gut, dass es Proxmox gibt ... nach vielen Debug-Sitzungen mit einer minimal Default-Konfiguration denke ich, dass ich jetzt verstanden habe, warum und wann der beschriebene Fehler auftritt: beim erstmaligen Start des Scripts installiert der automatische Updater (bei mir reproduzierbar) die online TFT-Firmware, obwohl die aktuelle Firmware auf dem NSPanel vorhanden ist. Das Ganze endet immer mit einer um 90 Grad gedrehten Fehlermeldung im Display des NSPanels.

            Zuerst habe ich im ioBroker / Script gesucht, warum dort die Firmware 3.3.1 eingetragen ist - gefunden habe ich folgendes unter:

            0_userdata.0.nspanel_073.1.Display_Firmware.TFT.currentVersion = 0 / v3.3.1

            Erzeugt wird dieser Eintrag an dieser Stelle (ab Scriptzeile1266):

            async function Init_Release() {
                const FWVersion = [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56];
                const FWRelease = ['3.3.1', '3.4.0', '3.5.0', '3.5.X', '3.6.0', '3.7.3', '3.8.0', '3.8.3', '3.9.4', '4.0.5', '4.1.4', '4.2.1', '4.4.0', '4.4.0', '4.5.0', '4.6.0'];
                try {
                    if (existsObject(NSPanel_Path + 'Display_Firmware.desiredVersion') == false) {
                        await createStateAsync(NSPanel_Path + 'Display_Firmware.desiredVersion', desired_display_firmware_version, { type: 'number', write: false });
                    } else {
                        await setStateAsync(NSPanel_Path + 'Display_Firmware.desiredVersion', desired_display_firmware_version, true);
                    }
            
                    if (existsObject(NSPanel_Path + 'Config.Update.activ') == false) {
                        await createStateAsync(NSPanel_Path + 'Config.Update.activ', 1, { type: 'number', write: false });
                    } else {
                        await setStateAsync(NSPanel_Path + 'Config.Update.activ', 0, true);
                    }
            
                    let currentFW = 0;
                    let findFWIndex = 0;
                    log('Desired TFT Firmware: ' + desired_display_firmware_version + ' / ' + tft_version, 'info');
                    if (existsObject(NSPanel_Path + 'Display_Firmware.currentVersion')) {
                        currentFW = parseInt(getState(NSPanel_Path + 'Display_Firmware.currentVersion').val);
                        findFWIndex = FWVersion.indexOf(currentFW);
                        log('Installed TFT Firmware: ' + currentFW + ' / v' + FWRelease[findFWIndex], 'info');
                    }
            

            Beim ersten Durchlauf gibt es zwar das Objekt 'Display_Firmware.currentVersion', aber der Inhalt ist leer ... das führt dann zu dem Index '0', der dann aus 'FWRelease' den ersten Eintrag '3.3.1' nimmt ... und schon steht '0 / v3.3.1' als aktuelle TFT-Firmware Version da (btw: besser wäre bei 'unbekannt' der Eintrag '0 / v0' gewesen).

            Aber warum kommt es überhaupt soweit, dass der Objekt-Eintrag leer ist? Der Knackpunkt liegt in den Scriptzeilen ab Zeile 2687:

            // Updates currently compare every 12 hours
            let scheduleCheckUpdates = adapterSchedule(undefined, 60 * 60 * 12, () => {
                get_tasmota_status0();
                get_panel_update_data();
                check_updates();
            });
            
            // Check for updates with Start
            get_locales();
            get_locales_servicemenu();
            setIfExists(config.panelSendTopic, 'pageType~pageStartup');
            get_tasmota_status0();
            get_panel_update_data();
            check_updates();
            

            Nach Aufruf der Initialisierungsfunktionen sollen beim Start die Updates gecheckt werden (8 ... 14) - dabei werden dann auch fehlende Objekt-Einträge automatisch angelegt. Gleichzeitig ist jedoch auch der Scheduler 'scheduleCheckUpdates' gestartet worden (2 ... 6) ... und hier lauert jetzt der Fehler: der startet (direkt) parallel zum laufenden Update-Prozess einen zweiten Update-Prozess, in dem die gleichen Funktionen 'get_tasmota_status0', 'get_panel_update_data' und 'check_updates' aufgerufen werden. So kommt es dann zu einer 'undefinierten Initialisierung' - zufällig wird bei mir eben die TFT-Firmware aktualisiert ... bei anderen Konstellationen kann was anderes dabei rauskommen.

            Ich habe mehrere Szenarien für die Inbetriebnahme durchgespielt - das würde aber diesen Rahmen hier sprengen - Github ist da vielleicht besser zur Diskussion geeignet. Leider habe ich keinen 'einfachen Weg' gefunden - es wären m.E. immer einige Code-Anpassungen notwendig ... und da möchte ich Dir nicht vorgreifen.

            Vielleicht hast Du ja auch noch die ioBroker Integration im Blick ... :relaxed:

            T Offline
            T Offline
            TT-Tom
            schrieb am zuletzt editiert von
            #6469

            @wolwin
            Danke für deinen ausführlichen Test. Die einfachste Variante wäre vielleicht die 0/0, wird aber auch zum Fehler führen, da es die Datei nicht gibt. Wir werden uns zusammen tun und eine Lösung finden.

            Gruß Tom
            https://github.com/tt-tom17
            Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

            NSPanel Script Wiki
            https://github.com/joBr99/nspanel-lovelace-ui/wiki

            NSPanel Adapter Wiki
            https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

            ArmilarA 1 Antwort Letzte Antwort
            1
            • T TT-Tom

              @wolwin
              Danke für deinen ausführlichen Test. Die einfachste Variante wäre vielleicht die 0/0, wird aber auch zum Fehler führen, da es die Datei nicht gibt. Wir werden uns zusammen tun und eine Lösung finden.

              ArmilarA Offline
              ArmilarA Offline
              Armilar
              Most Active Forum Testing
              schrieb am zuletzt editiert von Armilar
              #6470

              @tt-tom
              @wolwin

              Ich würde check_updates(); einfach gar nicht mehr durchführen, wenn der Versions-Datenpunkt 0 oder null oder undefined ist.

              Bzw. diese Prüfung in die function check_updates() legen...

              Der Datenpunkt kann beim allerersten Start des Skriptes ja nur:

              • nicht vorhanden sein
              • vorhanden und nicht gefüllt, d.h. null sein
              • vorhanden und gefüllt sein

              In dem Fall brauchst du auch nicht mehr auf 0 prüfen


              Ebenfalls kann in der function Init_Release() eine Prüfung auf !null erfolgen

              Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
              https://github.com/joBr99/nspanel-lovelace-ui/wiki

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              W 1 Antwort Letzte Antwort
              1
              • ArmilarA Armilar

                @tt-tom
                @wolwin

                Ich würde check_updates(); einfach gar nicht mehr durchführen, wenn der Versions-Datenpunkt 0 oder null oder undefined ist.

                Bzw. diese Prüfung in die function check_updates() legen...

                Der Datenpunkt kann beim allerersten Start des Skriptes ja nur:

                • nicht vorhanden sein
                • vorhanden und nicht gefüllt, d.h. null sein
                • vorhanden und gefüllt sein

                In dem Fall brauchst du auch nicht mehr auf 0 prüfen


                Ebenfalls kann in der function Init_Release() eine Prüfung auf !null erfolgen

                W Offline
                W Offline
                wolwin
                schrieb am zuletzt editiert von wolwin
                #6471

                @armilar

                Ganz so einfach ist es leider nicht ...

                Ich habe in den letzten Tagen das Script v4.4.0.6 von allen 'Warnungen' / 'Fehlern' bei der Erstinbetriebnahme (mit oder ohne angeschlossenem NSPanel) befreit ... einige kleine Bugs, die ich dabei gefunden habe, habe ich ebenfalls bereinigt.

                Gerne kann ich Dir die Änderungen / das Script zukommen lassen.

                Ich habe noch eine kleine Macke im Script, die ich noch heraushaben möchte: beim erstmaligen hochstarten wird ja die Einstellung 'en-US' benutzt ... es wird dann zwar nach der Initialisierung die Darstellung des Bildschirmschoners in 'de-DE' gesetzt, jedoch sind die 'Service Menü' Seiten weiterhin in 'en-US' (also nicht in Deutsch). Startet man das Script ein zweites Mal, dann ist ja alles initialisiert und die Seiten werden korrekt in 'de-DE' dargestellt.

                BTW: genau das gleiche Verhalten kann man auch im aktuellen Script nachvollziehen, wenn man den Zeichensatz umstellt: der Bildschirmschoner übernimmt den eingestellten Zeichensatz, die Seiten bleiben jedoch unverändert.

                Mein Frage ist, wie ich den Seitenaufbau noch einmal neu starten kann (am besten mit welchen Funktionen) ...

                ArmilarA 1 Antwort Letzte Antwort
                0
                • W wolwin

                  @armilar

                  Ganz so einfach ist es leider nicht ...

                  Ich habe in den letzten Tagen das Script v4.4.0.6 von allen 'Warnungen' / 'Fehlern' bei der Erstinbetriebnahme (mit oder ohne angeschlossenem NSPanel) befreit ... einige kleine Bugs, die ich dabei gefunden habe, habe ich ebenfalls bereinigt.

                  Gerne kann ich Dir die Änderungen / das Script zukommen lassen.

                  Ich habe noch eine kleine Macke im Script, die ich noch heraushaben möchte: beim erstmaligen hochstarten wird ja die Einstellung 'en-US' benutzt ... es wird dann zwar nach der Initialisierung die Darstellung des Bildschirmschoners in 'de-DE' gesetzt, jedoch sind die 'Service Menü' Seiten weiterhin in 'en-US' (also nicht in Deutsch). Startet man das Script ein zweites Mal, dann ist ja alles initialisiert und die Seiten werden korrekt in 'de-DE' dargestellt.

                  BTW: genau das gleiche Verhalten kann man auch im aktuellen Script nachvollziehen, wenn man den Zeichensatz umstellt: der Bildschirmschoner übernimmt den eingestellten Zeichensatz, die Seiten bleiben jedoch unverändert.

                  Mein Frage ist, wie ich den Seitenaufbau noch einmal neu starten kann (am besten mit welchen Funktionen) ...

                  ArmilarA Offline
                  ArmilarA Offline
                  Armilar
                  Most Active Forum Testing
                  schrieb am zuletzt editiert von Armilar
                  #6472

                  @wolwin sagte in SONOFF NSPanel mit Lovelace UI:

                  Gerne kann ich Dir die Änderungen / das Script zukommen lassen.

                  Stelle besser einen PR ins Github ein... dann könne wir Änderungen dort auch diskutieren...

                  Ich habe noch eine kleine Macke im Script, die ich noch heraushaben möchte: beim erstmaligen hochstarten wird ja die Einstellung 'en-US' benutzt ... es wird dann zwar nach der Initialisierung die Darstellung des Bildschirmschoners in 'de-DE' gesetzt, jedoch sind die 'Service Menü' Seiten weiterhin in 'en-US' (also nicht in Deutsch). Startet man das Script ein zweites Mal, dann ist ja alles initialisiert und die Seiten werden korrekt in 'de-DE' dargestellt.

                  Ist aktuell nicht getriggert, da wir der Ansicht waren, dass man nur einmal die Sprache festlegen wird...

                  BTW: genau das gleiche Verhalten kann man auch im aktuellen Script nachvollziehen, wenn man den Zeichensatz umstellt: der Bildschirmschoner übernimmt den eingestellten Zeichensatz, die Seiten bleiben jedoch unverändert.

                  Welcher Zeichensatz?

                  Mein Frage ist, wie ich den Seitenaufbau noch einmal neu starten kann (am besten mit welchen Funktionen) ...

                  GeneratePage

                  Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                  https://github.com/joBr99/nspanel-lovelace-ui/wiki

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  L W 2 Antworten Letzte Antwort
                  0
                  • ArmilarA Armilar

                    @wolwin sagte in SONOFF NSPanel mit Lovelace UI:

                    Gerne kann ich Dir die Änderungen / das Script zukommen lassen.

                    Stelle besser einen PR ins Github ein... dann könne wir Änderungen dort auch diskutieren...

                    Ich habe noch eine kleine Macke im Script, die ich noch heraushaben möchte: beim erstmaligen hochstarten wird ja die Einstellung 'en-US' benutzt ... es wird dann zwar nach der Initialisierung die Darstellung des Bildschirmschoners in 'de-DE' gesetzt, jedoch sind die 'Service Menü' Seiten weiterhin in 'en-US' (also nicht in Deutsch). Startet man das Script ein zweites Mal, dann ist ja alles initialisiert und die Seiten werden korrekt in 'de-DE' dargestellt.

                    Ist aktuell nicht getriggert, da wir der Ansicht waren, dass man nur einmal die Sprache festlegen wird...

                    BTW: genau das gleiche Verhalten kann man auch im aktuellen Script nachvollziehen, wenn man den Zeichensatz umstellt: der Bildschirmschoner übernimmt den eingestellten Zeichensatz, die Seiten bleiben jedoch unverändert.

                    Welcher Zeichensatz?

                    Mein Frage ist, wie ich den Seitenaufbau noch einmal neu starten kann (am besten mit welchen Funktionen) ...

                    GeneratePage

                    L Offline
                    L Offline
                    lustig29
                    schrieb am zuletzt editiert von
                    #6473

                    Ich möchte gerne im Bad 2 Lichtszenen zur Auswahl haben. Einmal gedimmtes Licht und einmal 100%. Wie realisiere ich das am besten?

                    1 Antwort Letzte Antwort
                    0
                    • ArmilarA Offline
                      ArmilarA Offline
                      Armilar
                      Most Active Forum Testing
                      schrieb am zuletzt editiert von
                      #6474

                      @lustig29

                      Ist ja immer eine Frage, was man bevorzugt und wie man es gerne hätte...

                      Eine Variante wäre das:
                      https://forum.iobroker.net/post/1096881

                      Muss nicht zwingend in einer cardGrid sein...

                      Eine andere Variante wäre im popupLight die Auswahl zu treffen (gleiche Nutzung, jedoch nicht auf Shelly Duo bezogen):

                      https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker---FAQ-&-Anleitungen#23-shelly-duo-lampen

                      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      K 1 Antwort Letzte Antwort
                      0
                      • ArmilarA Armilar

                        @lustig29

                        Ist ja immer eine Frage, was man bevorzugt und wie man es gerne hätte...

                        Eine Variante wäre das:
                        https://forum.iobroker.net/post/1096881

                        Muss nicht zwingend in einer cardGrid sein...

                        Eine andere Variante wäre im popupLight die Auswahl zu treffen (gleiche Nutzung, jedoch nicht auf Shelly Duo bezogen):

                        https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker---FAQ-&-Anleitungen#23-shelly-duo-lampen

                        K Offline
                        K Offline
                        Kuckuckmann
                        schrieb am zuletzt editiert von
                        #6475

                        @armilar
                        Sehr cool, dass Du das anbringst. Ich habe grade drüber nachgedacht, wie ich es hin bekomme, dass ich von den 5 Birnen in der Lampe welche unterschiedlich gestalte. Mit dem InselPopup auf der Card könnte das gehen :-D

                        NSPanel Dokumentation im GitHub Wiki:

                        https://github.com/joBr99/nspanel-lovelace-ui/wiki

                        1 Antwort Letzte Antwort
                        1
                        • ArmilarA Armilar

                          @wolwin sagte in SONOFF NSPanel mit Lovelace UI:

                          Gerne kann ich Dir die Änderungen / das Script zukommen lassen.

                          Stelle besser einen PR ins Github ein... dann könne wir Änderungen dort auch diskutieren...

                          Ich habe noch eine kleine Macke im Script, die ich noch heraushaben möchte: beim erstmaligen hochstarten wird ja die Einstellung 'en-US' benutzt ... es wird dann zwar nach der Initialisierung die Darstellung des Bildschirmschoners in 'de-DE' gesetzt, jedoch sind die 'Service Menü' Seiten weiterhin in 'en-US' (also nicht in Deutsch). Startet man das Script ein zweites Mal, dann ist ja alles initialisiert und die Seiten werden korrekt in 'de-DE' dargestellt.

                          Ist aktuell nicht getriggert, da wir der Ansicht waren, dass man nur einmal die Sprache festlegen wird...

                          BTW: genau das gleiche Verhalten kann man auch im aktuellen Script nachvollziehen, wenn man den Zeichensatz umstellt: der Bildschirmschoner übernimmt den eingestellten Zeichensatz, die Seiten bleiben jedoch unverändert.

                          Welcher Zeichensatz?

                          Mein Frage ist, wie ich den Seitenaufbau noch einmal neu starten kann (am besten mit welchen Funktionen) ...

                          GeneratePage

                          W Offline
                          W Offline
                          wolwin
                          schrieb am zuletzt editiert von
                          #6476

                          @armilar

                          Habe den PR eingestellt:

                          https://github.com/joBr99/nspanel-lovelace-ui/pull/1263

                          L 1 Antwort Letzte Antwort
                          2
                          • W wolwin

                            @armilar

                            Habe den PR eingestellt:

                            https://github.com/joBr99/nspanel-lovelace-ui/pull/1263

                            L Offline
                            L Offline
                            lustig29
                            schrieb am zuletzt editiert von
                            #6477

                            Bekomme ich irgendwie die Luftfeuchtigkeitsanzeige von einem externen Luftfeuchtigkeitsmesser in dem Screensaver integriert?

                            T 1 Antwort Letzte Antwort
                            0
                            • L lustig29

                              Bekomme ich irgendwie die Luftfeuchtigkeitsanzeige von einem externen Luftfeuchtigkeitsmesser in dem Screensaver integriert?

                              T Offline
                              T Offline
                              TT-Tom
                              schrieb am zuletzt editiert von
                              #6478

                              @lustig29
                              ja

                              mit ein paar Infos mehr bekommst du auch mehr ;)
                              gibt den Datenpunkte im ioBroker??

                              Gruß Tom
                              https://github.com/tt-tom17
                              Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                              NSPanel Script Wiki
                              https://github.com/joBr99/nspanel-lovelace-ui/wiki

                              NSPanel Adapter Wiki
                              https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                              1 Antwort Letzte Antwort
                              0
                              • L Offline
                                L Offline
                                lustig29
                                schrieb am zuletzt editiert von lustig29
                                #6479

                                @tt-tom
                                Die bekommst du natürlich. Das sind die Datenpunkte des Govee Hyrometers.

                                cee0bbe2-a602-4b78-8e46-cd2f7a9f0bbd-image.png

                                T 1 Antwort Letzte Antwort
                                0
                                • L lustig29

                                  @tt-tom
                                  Die bekommst du natürlich. Das sind die Datenpunkte des Govee Hyrometers.

                                  cee0bbe2-a602-4b78-8e46-cd2f7a9f0bbd-image.png

                                  T Offline
                                  T Offline
                                  TT-Tom
                                  schrieb am zuletzt editiert von TT-Tom
                                  #6480

                                  @lustig29

                                  Wenn du mir jetzt noch sagst welcher Screensaver und wo dort der Wert angezeigt werden soll haben wir alle Infos zusammen. :)

                                  Gruß Tom
                                  https://github.com/tt-tom17
                                  Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                                  NSPanel Script Wiki
                                  https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                  NSPanel Adapter Wiki
                                  https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                                  L 1 Antwort Letzte Antwort
                                  1
                                  • T TT-Tom

                                    @lustig29

                                    Wenn du mir jetzt noch sagst welcher Screensaver und wo dort der Wert angezeigt werden soll haben wir alle Infos zusammen. :)

                                    L Offline
                                    L Offline
                                    lustig29
                                    schrieb am zuletzt editiert von
                                    #6481

                                    @tt-tom IMG_5867.jpeg

                                    Am liebsten hier auf diesen Screensaver.

                                    T 1 Antwort Letzte Antwort
                                    0
                                    • L lustig29

                                      @tt-tom IMG_5867.jpeg

                                      Am liebsten hier auf diesen Screensaver.

                                      T Offline
                                      T Offline
                                      TT-Tom
                                      schrieb am zuletzt editiert von TT-Tom
                                      #6482

                                      @lustig29

                                      erstelle dir einen Alias vom Type Feuchte, hier zum nachlesen

                                      dann passt du dein Screensaver an.

                                      // bottomScreensaverEntity 1
                                                  {
                                                                  ScreensaverEntity: 'alias.0.nspanel..... humid.ACTUAL', // pfad zum Alias-Datenpunkt
                                                                  ScreensaverEntityFactor: (1/100),
                                                                  ScreensaverEntityDecimalPlaces: 1,
                                                                  ScreensaverEntityIconOn: 'water-percent',
                                                                  ScreensaverEntityIconOff: null,
                                                                  ScreensaverEntityText: 'Feuchte',
                                                                  ScreensaverEntityUnitText: '%',
                                                                  ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100, 'val_best': 65}
                                                              },
                                      

                                      EDIT: hier sind die Infos zum Screensaver

                                      Gruß Tom
                                      https://github.com/tt-tom17
                                      Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                                      NSPanel Script Wiki
                                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                      NSPanel Adapter Wiki
                                      https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                                      ArmilarA 1 Antwort Letzte Antwort
                                      1
                                      • T TT-Tom

                                        @lustig29

                                        erstelle dir einen Alias vom Type Feuchte, hier zum nachlesen

                                        dann passt du dein Screensaver an.

                                        // bottomScreensaverEntity 1
                                                    {
                                                                    ScreensaverEntity: 'alias.0.nspanel..... humid.ACTUAL', // pfad zum Alias-Datenpunkt
                                                                    ScreensaverEntityFactor: (1/100),
                                                                    ScreensaverEntityDecimalPlaces: 1,
                                                                    ScreensaverEntityIconOn: 'water-percent',
                                                                    ScreensaverEntityIconOff: null,
                                                                    ScreensaverEntityText: 'Feuchte',
                                                                    ScreensaverEntityUnitText: '%',
                                                                    ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100, 'val_best': 65}
                                                                },
                                        

                                        EDIT: hier sind die Infos zum Screensaver

                                        ArmilarA Offline
                                        ArmilarA Offline
                                        Armilar
                                        Most Active Forum Testing
                                        schrieb am zuletzt editiert von Armilar
                                        #6483

                                        dc6c30c4-d7e9-4762-a114-77f44e80e08e-image.png

                                        • 75e32367-e740-4200-997b-6a922d4fdd07-image.png

                                        • Achtung

                                          dieser Fix hat keinen Einfluss auf laufende Installationen, sondern lediglich auf die Erstinbetriebnahme... Es muss daher aktuell kein Update gemacht werden, wenn das NSPanel mit dem TS-Script bereits läuft.

                                        https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts

                                        Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                        https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                        N 1 Antwort Letzte Antwort
                                        1
                                        • ArmilarA Armilar

                                          dc6c30c4-d7e9-4762-a114-77f44e80e08e-image.png

                                          • 75e32367-e740-4200-997b-6a922d4fdd07-image.png

                                          • Achtung

                                            dieser Fix hat keinen Einfluss auf laufende Installationen, sondern lediglich auf die Erstinbetriebnahme... Es muss daher aktuell kein Update gemacht werden, wenn das NSPanel mit dem TS-Script bereits läuft.

                                          https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts

                                          N Offline
                                          N Offline
                                          Neral12
                                          schrieb am zuletzt editiert von
                                          #6484

                                          Mal eine einfache Frage, wie schalte ich denn den Screensaver komplett aus? Hab da nirgends was gefunden und einfach 0_userdata.0.NSPanel.1.Config.Screensaver.timeoutScreensaver auf 0 geht leider nicht.

                                          K 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          522

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe