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 – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    SONOFF NSPanel mit Lovelace UI

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      australien @Armilar last edited by

      @armilar said in SONOFF NSPanel mit Lovelace UI:

      @australien

      weiter versuchen und vorher Tasmota rebooten...

      das habe ich gefühlt schon 100x gemacht mit FlashNextion, Adv0, Adv2

      immer das gleiche, wie gesagt bei einem neuen NSPanel gabe es keine Probleme.

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

        @australien

        zieh mal das orangefarbene Kabel ab und stecke es neu auf:

        7df521f6-08d8-4263-ae05-29a7f092293f-image.png

        Da könnte der Wurm drin sein, wenn die Übertragung zwischen ESP32 und TFT abbricht... Zumal ein anderes ja auch funktioniert...

        A teletapi 2 Replies Last reply Reply Quote 0
        • A
          australien @Armilar last edited by

          @armilar bringt leider auch nichts.
          bleibt beim Update mit

          FlashNextionAdv0 http://nspanel.de/nspanel-v5.0.0.tft
          

          oder Adv0 oder ohne dem immer bei 4784128 stehen.

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

            @armilar oder @australien hat das gleiche problem wie ich mit meinem US panel. Das lässt sich pardou nicht auf diesem Weg mit der 4.95 oder der 5.00 in Landsscape (Porträt geht auch) flashen jede andere Version egal ob US oder EU lässt sich auf diesem Weg flashen nur die neusten nicht daher wähle ich beim Update die Möglichkeit das per Nextion Editor per RX/TX zu flashen das funktioniert ohne Probleme und dauert mit Löten gerade mal 5-10 Minuten.

            Dazu einen USB to Serial Adapter nutzen den man auch zum Tasmota flashen nutzt. Dann 5V und GND an den Stromanschluss des Display´s und RX an RX und TX an TX an dem extra RX/TX am TFT nicht an den vom ESP des NS Panels

            Und nicht vergessen am Adapter die 5V einstellen das Display brauch 5V

            Hier ein Bild vom US-Panel

            WhatsApp Bild 2025-08-18 um 03.00.11_5b7d692d.jpg

            Und hier eins vom EU Panel

            IMG_1886.JPG

            Und hier noch eins vom Adapter

            WhatsApp Bild 2025-09-19 um 12.34.55_a33f0f8f.jpg

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

              @australien

              hier ist es etwas detaillierter beschrieben, wie das NSPanel-TFT direkt per Nextion Editor geflashed wird:

              https://github.com/Blackymas/NSPanel_HA_Blueprint/issues/166#issue-1524561202

              Kleinheribert created this issue in Blackymas/NSPanel_HA_Blueprint

              closed Error: Model does not match-Nextion Display bricked-Solution #166

              A 1 Reply Last reply Reply Quote 1
              • W
                welli @Armilar last edited by

                @armilar
                Habe dies jetzt mit den 2 Panels gemacht, mal schauen ob dies den Fehler behebt.
                Danke noch mal für den Support.

                W 1 Reply Last reply Reply Quote 0
                • A
                  australien @Armilar last edited by

                  @armilar @teletapi
                  leider bringt das auch nichts, ab es mit Geschwindigkeiten von 19200 bis 115200 versucht, bleibt immer beim gleichen Speicherwert hängen.
                  😞

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

                    Guten Morgen, ich habe seit einiger zeit diesen Fehler in meinem Log. Habt ihr eine Idee was das sein könnte?
                    error: javascript.0 (3090) script.js.NS_Panels.Panel_Erdgeschoss_1_0: existsObject has been called with id of type "object" but expects a string

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

                      @venice
                      version des scripts? Da müsste auch ne Zeilennummer hinter dem Fehler gestanden haben.

                      arteck 1 Reply Last reply Reply Quote 0
                      • T
                        TT-Tom @Venice last edited by

                        @venice
                        Wann tritt der Fehler auf. Bei welcher Seite?
                        Welche Script Version und welche TFT Version??

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

                          @armilar,
                          Wollte dir noch mal Rückmeldung geben und dir sagen dass das Problem nicht mehr vorgekommen ist.
                          Danke für den Support.

                          1 Reply Last reply Reply Quote 0
                          • Marc Berg
                            Marc Berg Most Active last edited by

                            Meine Card für das Ein-/ Ausschalten des Gäste-WLAN-Zuganges und zur Darstellung des QR-Codes sieht so aus:

                            let WLAN:PageType=
                            {
                                'type': 'cardQR',
                                'heading': 'Gäste WLAN',
                                'subPage': true,
                                'parent': Start_Panel1,
                                'items': [
                            		{ id: "alias.0.NSPanel.1.GuestWifi",
                                        hidePassword: true, // true = Switch; false = Password
                                        hideEntity2: false // true = Switch or Password is hide
                                    }
                            	]
                            };
                            

                            Gibt es eine Möglichkeit, beim Ein-/Ausschalter (hideEntity2) dynamisch festzulegen, ob der Schalter dargestellt werden soll oder nicht?

                            1 Reply Last reply Reply Quote 0
                            • arteck
                              arteck Developer Most Active @ticaki last edited by arteck

                              @ticaki sagemal ist es ein Bug oder soll so

                                      { id: 'alias.0.NSPanel.Garten.horstOnline', name: 'Status', offColor: Red, onColor: MSGreen, useValue: true, fontSize: 3}
                              

                              der alias klann offline und online sein.. wird auch angezeigt allerdings immer in der Farbe MSGreen.. würde bei offline das ding gerne in Rot haben

                              so ist der alias definiert

                              {
                                "_id": "alias.0.NSPanel.Garten.horstOnline.ACTUAL",
                                "common": {
                                  "name": "ACTUAL",
                                  "role": "state",
                                  "type": "mixed",
                                  "read": true,
                                  "write": false,
                                  "alias": {
                                    "id": "worx.0.2019501385029008727F.mower.online",
                                    "read": "val==true?\"online\":val==false?\"offline\":null"
                                  }
                                },
                                "native": {},
                                "type": "state",
                                "acl": {
                                  "object": 1638,
                                  "state": 1638,
                                  "owner": "system.user.admin",
                                  "ownerGroup": "system.group.administrator"
                                },
                                "from": "system.adapter.admin.1",
                                "user": "system.user.admin",
                                "ts": 1758280070290
                              }
                              
                              T 1 Reply Last reply Reply Quote 0
                              • T
                                ticaki Developer @arteck last edited by ticaki

                                @arteck

                                Kein Bug - bei dir ist das val = 'online' oder 'offline' das ist laut code... - ok also wenn nicht true ist es onColor

                                Codeausschnitt:

                                                     case 'info':
                                                            iconId = pageItem.icon !== undefined ? Icons.GetIcon(pageItem.icon) : Icons.GetIcon('gesture-tap-button');
                                                            iconId2 = pageItem.icon2 !== undefined ? Icons.GetIcon(pageItem.icon2) : iconId;
                                
                                                            buttonText = pageItem.buttonText !== undefined ? pageItem.buttonText : existsState(pageItem.id + '.BUTTONTEXT') ? getState(pageItem.id + '.BUTTONTEXT').val : 'PRESS';
                                                            if (existsState(pageItem.id + '.COLORDEC')) {
                                                                iconColor = getState(pageItem.id + '.COLORDEC').val;
                                                            } else {
                                                                if (val === true || val === 'true') {
                                                                    iconColor = GetIconColor(pageItem, false, useColors);
                                                                } else {
                                                                    iconColor = GetIconColor(pageItem, true, useColors);
                                                                }
                                                            }
                                

                                mit COLORDEC sollte es gehen, da muß aber die dec rein:

                                /**
                                 * Converts an RGB color to a 16-bit 565 color format.
                                 * 
                                 * This function takes an RGB color object and converts it to a 16-bit 565 color format.
                                 * 
                                 * @function rgb_dec565
                                 * @param {RGB} rgb - The RGB color object.
                                 * @returns {number} The 16-bit 565 color value.
                                 */
                                function rgb_dec565 (rgb: RGB): number {    //return ((Math.floor(rgb.red / 255 * 31) << 11) | (Math.floor(rgb.green / 255 * 63) << 5) | (Math.floor(rgb.blue / 255 * 31)));
                                    return ((rgb.red >> 3) << 11) | ((rgb.green >> 2) << 5) | (rgb.blue >> 3);
                                }
                                

                                Also nen Alias anlegen der COLORDEC heißt und die Farbe vorgeben mit der read Funktion mit schalten.

                                hm COLORDEC muß beschrieben sein, wenn ACTUAL aktualisiert wird - da ist kein delay auf dem Pfad soweit ich sehe.

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

                                  @ticaki
                                  @arteck

                                  Welche Rolle hat dein Channel? Vielleicht liegt da schon der Fehler.
                                  Colordec muss ein Datenpunkt im Channel sein, der sollte auch triggern bei Änderung.

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    ticaki Developer @TT-Tom last edited by ticaki

                                    @tt-tom

                                    Dann passt es ja, ich hab nicht den Pfad von COLORDEC geguckt sondern nur den von ACTUAL.

                                    das hier sieht aber "ist zwar falsch aber kompatible" aus:

                                                                    if (val === true || val === 'true') {
                                                                        iconColor = GetIconColor(pageItem, false, useColors);
                                                                    } else {
                                                                        iconColor = GetIconColor(pageItem, true, useColors);
                                                                    }
                                    

                                    EDIT:

                                    Welche Rolle hat dein Channel? Vielleicht liegt da schon der Fehler.

                                    da kommt als Wert online und offline die sind bei einem üblichen true vergleich immer wahr und bei einem === true Vergleich immer false.

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

                                      @ticaki

                                      die Info rolle unterstütz nur Number und boolean.

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

                                        @arteck
                                        @TT-Tom

                                        Sry ich hab im Navzweig geguckt - Im normalen Zeig ist das anders - sry

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

                                          @arteck
                                          So rumwühlen ergebnis - geht nicht

                                          Ändere hier den code:

                                          if (existsState(pageItem.id + '.ACTUAL') && pageItem.icon2 != undefined) {
                                                                  // Read Alias Datapoint Objectdata
                                                                  let obj = getObject(pageItem.id + ".ACTUAL");
                                                                  // Read origin Datapoint Objectdata
                                                                  if (existsState(obj.common.alias.id)) {
                                                                      let obj2 = getObject(obj.common.alias.id);
                                                                      // Register Origin Datapoint
                                                                      RegisterEntityWatcher(obj.common.alias.id);
                                                                      // Check Data-Type (This must be boolean)
                                                                      if (obj2.type === 'state' && obj2.common.type == "boolean") {
                                                                          if (Debug) log(getState(obj.common.alias.id).val, 'info');
                                                                          if (getState(obj.common.alias.id).val) {
                                                                              iconId = pageItem.icon != undefined ? Icons.GetIcon(pageItem.icon) : iconId;
                                                                              iconColor = pageItem.onColor != undefined ? rgb_dec565(pageItem.onColor) : iconColor;
                                                                          } else {
                                                                              iconId = pageItem.icon2 != undefined ? Icons.GetIcon(pageItem.icon2) : iconId;
                                                                              iconColor = pageItem.offColor != undefined ? rgb_dec565(pageItem.offColor) : iconColor;
                                                                          }
                                                                      }
                                                                  }
                                                              }
                                          

                                          EDIT - das ist Käse drunter ist besser

                                                            if (existsState(pageItem.id + '.ACTUAL') && (pageItem.icon2 != undefined || pageItem.useValue)) {
                                                                  // Read Alias Datapoint Objectdata
                                                                  let obj = getObject(pageItem.id + ".ACTUAL");
                                                                  // Read origin Datapoint Objectdata
                                                                  if (existsState(obj.common.alias.id)) {
                                                                      let obj2 = getObject(obj.common.alias.id);
                                                                      // Register Origin Datapoint
                                                                      RegisterEntityWatcher(obj.common.alias.id);
                                                                      // Check Data-Type (This must be boolean)
                                                                      if (obj2.type === 'state' && obj2.common.type == "boolean") {
                                                                          if (Debug) log(getState(obj.common.alias.id).val, 'info');
                                                                          if (getState(obj.common.alias.id).val) {
                                                                              if (!pageItem.useValue) iconId = pageItem.icon != un defined ? Icons.GetIcon(pageItem.icon) : iconId;
                                                                              iconColor = pageItem.onColor != undefined ? rgb_dec565(pageItem.onColor) : iconColor;
                                                                          } else {
                                                                              if (!pageItem.useValue) iconId = pageItem.icon2 != undefined ? Icons.GetIcon(pageItem.icon2) : iconId;
                                                                              iconColor = pageItem.offColor != undefined ? rgb_dec565(pageItem.offColor) : iconColor;
                                                                          }
                                                                      }
                                                                  }
                                                              }
                                          

                                          Käse ende 😄

                                          Kopiere den if hier der aktuell oberhalb von ^der funktion steht, einfach drunter und füge das useValue in den If ^ wie da ein.

                                                          if (pageItem.useValue) {
                                                                  if (pageItem.fontSize != undefined) {
                                                                      if (pageItem.suffixName == undefined) {
                                                                          iconId = optVal + '¬' + pageItem.fontSize;
                                                                      } else {
                                                                          iconId = optVal + pageItem.suffixName + '¬' + pageItem.fontSize;
                                                                      }
                                                                  } else {
                                                                      iconId = optVal;
                                                                  }
                                                              }
                                          

                                          EDIT2 - das müsste eigentlcih dann doch ein BUG sein - Armilar und TT-Tom sind da mehr drin als ich.

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

                                            @ticaki sagte in SONOFF NSPanel mit Lovelace UI:

                                            if (existsState(pageItem.id + '.ACTUAL') && pageItem.icon2 != undefined) {

                                            die Funktion lauft bei der Konfiguration nicht da kein icon2 definiert ist.

                                            { id: 'alias.0.NSPanel.Garten.horstOnline', name: 'Status', offColor: Red, onColor: MSGreen, useValue: true, fontSize: 3}
                                            

                                            also läuft das normal durch

                                                            if (pageItem.useValue) {
                                                                    if (pageItem.fontSize != undefined) {
                                                                        if (pageItem.suffixName == undefined) {
                                                                            iconId = optVal + '¬' + pageItem.fontSize;
                                                                        } else {
                                                                            iconId = optVal + pageItem.suffixName + '¬' + pageItem.fontSize;
                                                                        }
                                                                    } else {
                                                                        iconId = optVal;
                                                                    }
                                                                }
                                            

                                            EDIT: Problem ist wirkliche der Text in ACTUAL
                                            EDIT2 bin jetzt am überlegen warum wir nicht COLORDEC da haben, ist doch die Info-rolle, diese Universell sein sollte.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            932
                                            Online

                                            32.1k
                                            Users

                                            80.8k
                                            Topics

                                            1.3m
                                            Posts

                                            lovelace ui nspanel sonoff
                                            270
                                            7647
                                            6303545
                                            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