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.
    • T
      TT-Tom @MichaelF last edited by

      @michaelf

      Kannst du bitte mal im Script diese Funktion suchen und hinter if (result != undefined) {diese Zeile
      log(MQTT-PORT-Check Result + JSON.stringify(result)); einfügen, siehe unten Zeile 18. dann mal die Ausgabe posten, aber den Portcheck wieder einschalten.

      async function CheckMQTTPorts() {
          try {
              let instanceName: string = config.panelRecvTopic.substring(0, 6);
      
              if (isSetOptionActive) {
                  await createStateAsync(NSPanel_Path + 'Config.MQTT.portCheck', true, { type: 'boolean', write: true });
                  setObject(AliasPath + 'Config.MQTT.portCheck', { type: 'channel', common: { role: 'socket', name: 'mqttPortCheck' }, native: {} });
                  await createAliasAsync(AliasPath + 'Config.MQTT.portCheck.ACTUAL', NSPanel_Path + 'Config.MQTT.portCheck', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch', name: 'ACTUAL' });
                  await createAliasAsync(AliasPath + 'Config.MQTT.portCheck.SET', NSPanel_Path + 'Config.MQTT.portCheck', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch', name: 'SET' });
              }
      
              if (getState(NSPanel_Path + 'Config.MQTT.portCheck').val) {
                  let adapterArray: any = [];
                  let portArray: any = [];
                  exec('iob l i --port --enabled', async (error, result, stderr) => {
                      if (error == null) {
                          if (result != undefined) {
                              log(`MQTT-PORT-Check Result ` + JSON.stringify(result));
                              log('Start MQTT-Port-Check -------------------------------------', 'info');
                              let resultString1 = result.split('+');
                              for (let i: number = 1; i < resultString1.length - 1; i++) {
                                  let resultString2: any = resultString1[i].split(':')
                                  let adapterInstanceName: string = resultString2[0].substring(16);
                                  let adapterInstancePort: string = resultString2[3].substring(1, 5);
                                  log('-- ' + adapterInstanceName + ' - ' + adapterInstancePort, 'info');
                                  adapterArray[i] = adapterInstanceName.trim();
                                  portArray[i] = adapterInstancePort.trim();
                              }
      
      MichaelF 1 Reply Last reply Reply Quote 0
      • T
        TT-Tom @lustig29 last edited by

        @lustig29

        welche Daten stehen in diesen Parametern??

        const jsonEventName1: string = '';    // Vergleichstring für Schwarze Tonne
        const jsonEventName2: string = '';    // Vergleichstring für Gelbe Tonne / Sack
        const jsonEventName3: string = '';    // Vergleichstring für Blaue Tonne
        const jsonEventName4: string = '';   // Vergleichstring für Braune Tonne
        const jsonEventName5: string = '';   // Vergleichstring für Event 5
        const jsonEventName6: string = '';   // Vergleichstring für Event 6
        
        L 1 Reply Last reply Reply Quote 0
        • L
          lustig29 @TT-Tom last edited by

          @tt-tom

          const jsonEventName1: string = 'Graue Tonne'; // Vergleichstring für Schwarze Tonne
          const customEventName1: string = 'schwarze tonne';        // benutzerdefinierter Text für schwarze Tonne
          const jsonEventName2: string = 'Gelbe Tonne'; // Vergleichstring für Gelbe Tonne / Sack
          const customEventName2: string = '';        // benutzerdefinierter Text für gelbe Tonne
          const jsonEventName3: string = 'Altpapier';    // Vergleichstring für Blaue Tonne
          const customEventName3: string = 'blaue Tonne';       // benutzerdefinierter Text für blaue Tonne
          const jsonEventName4: string = 'Grüne Tonne';   // Vergleichstring für Braune Tonne
          const customEventName4: string = '';        // benutzerdefinierter Text für braune Tonne
          const jsonEventName5: string = 'Treppe';   // Vergleichstring für Event 5
          const customEventName5: string = 'Besen schwingen';        // benutzerdefinierter Text für Event 5
          const jsonEventName6: string = '';   // Vergleichstring für Event 6
          const customEventName6: string = '';        // benutzerdefinierter Text für Event 6
          
          T 1 Reply Last reply Reply Quote 0
          • T
            TT-Tom @lustig29 last edited by TT-Tom

            @lustig29

            in diesen Parametern müssen die Namen aus dem Kalender eingetragen werden, z.B für die Schwarze Tonne 'Restmüll' usw. die Namen findest du in der debug Ausgabe vom Script

            L 1 Reply Last reply Reply Quote 0
            • MichaelF
              MichaelF @TT-Tom last edited by

              @tt-tom said in SONOFF NSPanel mit Lovelace UI:

              @michaelf

              Kannst du bitte mal im Script diese Funktion suchen und hinter if (result != undefined) {diese Zeile
              log(MQTT-PORT-Check Result + JSON.stringify(result)); einfügen, siehe unten Zeile 18. dann mal die Ausgabe posten, aber den Portcheck wieder einschalten.

              async function CheckMQTTPorts() {
                  try {
                      let instanceName: string = config.panelRecvTopic.substring(0, 6);
              
                      if (isSetOptionActive) {
                          await createStateAsync(NSPanel_Path + 'Config.MQTT.portCheck', true, { type: 'boolean', write: true });
                          setObject(AliasPath + 'Config.MQTT.portCheck', { type: 'channel', common: { role: 'socket', name: 'mqttPortCheck' }, native: {} });
                          await createAliasAsync(AliasPath + 'Config.MQTT.portCheck.ACTUAL', NSPanel_Path + 'Config.MQTT.portCheck', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch', name: 'ACTUAL' });
                          await createAliasAsync(AliasPath + 'Config.MQTT.portCheck.SET', NSPanel_Path + 'Config.MQTT.portCheck', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch', name: 'SET' });
                      }
              
                      if (getState(NSPanel_Path + 'Config.MQTT.portCheck').val) {
                          let adapterArray: any = [];
                          let portArray: any = [];
                          exec('iob l i --port --enabled', async (error, result, stderr) => {
                              if (error == null) {
                                  if (result != undefined) {
                                      log(`MQTT-PORT-Check Result ` + JSON.stringify(result));
                                      log('Start MQTT-Port-Check -------------------------------------', 'info');
                                      let resultString1 = result.split('+');
                                      for (let i: number = 1; i < resultString1.length - 1; i++) {
                                          let resultString2: any = resultString1[i].split(':')
                                          let adapterInstanceName: string = resultString2[0].substring(16);
                                          let adapterInstancePort: string = resultString2[3].substring(1, 5);
                                          log('-- ' + adapterInstanceName + ' - ' + adapterInstancePort, 'info');
                                          adapterArray[i] = adapterInstanceName.trim();
                                          portArray[i] = adapterInstancePort.trim();
                                      }
              

              Der Log :

              javascript.0
              2024-05-05 11:48:51.835	error	at ChildProcess.emit (node:domain:489:12)
              
              javascript.0
              2024-05-05 11:48:51.835	error	at ChildProcess.emit (node:events:517:28)
              
              javascript.0
              2024-05-05 11:48:51.835	error	at ChildProcess.exithandler (node:child_process:414:7)
              
              javascript.0
              2024-05-05 11:48:51.834	error	at script.js.common.NsPanelWz:1276:100
              
              javascript.0
              2024-05-05 11:48:51.834	error	at __awaiter (script.js.common.NsPanelWz:4:12)
              
              javascript.0
              2024-05-05 11:48:51.834	error	at new Promise (<anonymous>)
              
              javascript.0
              2024-05-05 11:48:51.833	error	at script.js.common.NsPanelWz:8:71
              
              javascript.0
              2024-05-05 11:48:51.833	error	at Object.next (script.js.common.NsPanelWz:14:53)
              
              javascript.0
              2024-05-05 11:48:51.832	error	at step (script.js.common.NsPanelWz:33:23)
              
              javascript.0
              2024-05-05 11:48:51.832	error	at script.js.common.NsPanelWz:1287:84
              
              javascript.0
              2024-05-05 11:48:51.831	error	script.js.common.NsPanelWz: TypeError: Cannot read properties of undefined (reading 'substring')
              
              javascript.0
              2024-05-05 11:48:51.820	info	script.js.common.NsPanelWz: -- sonoff.0 - 1883
              
              javascript.0
              2024-05-05 11:48:51.820	info	script.js.common.NsPanelWz: -- simple-api.0 - 8087
              
              javascript.0
              2024-05-05 11:48:51.819	info	script.js.common.NsPanelWz: -- sainlogic.0 - 4500
              
              javascript.0
              2024-05-05 11:48:51.819	info	script.js.common.NsPanelWz: -- pioneer_sc_vsx.0 - 23
              
              javascript.0
              2024-05-05 11:48:51.818	info	script.js.common.NsPanelWz: -- mqtt.3 - 1886
              
              javascript.0
              2024-05-05 11:48:51.818	info	script.js.common.NsPanelWz: -- mqtt.1 - 1883
              
              javascript.0
              2024-05-05 11:48:51.818	info	script.js.common.NsPanelWz: -- mihome-vacuum.0 - 5432
              
              javascript.0
              2024-05-05 11:48:51.817	info	script.js.common.NsPanelWz: -- influxdb.1 - 8086
              
              javascript.0
              2024-05-05 11:48:51.817	info	script.js.common.NsPanelWz: -- influxdb.0 - 8086
              
              javascript.0
              2024-05-05 11:48:51.816	info	script.js.common.NsPanelWz: -- hm-rpc.3 - 0
              
              javascript.0
              2024-05-05 11:48:51.816	info	script.js.common.NsPanelWz: -- hm-rpc.2 - 0
              
              javascript.0
              2024-05-05 11:48:51.816	info	script.js.common.NsPanelWz: -- hm-rpc.1 - 0
              
              javascript.0
              2024-05-05 11:48:51.815	info	script.js.common.NsPanelWz: -- hm-rpc.0 - 0
              
              javascript.0
              2024-05-05 11:48:51.814	info	script.js.common.NsPanelWz: -- admin.0 - 8081
              
              javascript.0
              2024-05-05 11:48:51.814	info	script.js.common.NsPanelWz: Start MQTT-Port-Check -------------------------------------
              
              javascript.0
              2024-05-05 11:48:51.813	info	script.js.common.NsPanelWz: MQTT-PORT-Check Result "+ system.adapter.admin.0 : admin : iobroker - enabled, port: 8081, bind: 0.0.0.0, run as: admin\n+ system.adapter.hm-rpc.0 : hm-rpc : iobroker - enabled, port: 0\n+ system.adapter.hm-rpc.1 : hm-rpc : iobroker - enabled, port: 0\n+ system.adapter.hm-rpc.2 : hm-rpc : iobroker - enabled, port: 0\n+ system.adapter.hm-rpc.3 : hm-rpc : iobroker - enabled, port: 0\n+ system.adapter.influxdb.0 : influxdb : iobroker - enabled, port: 8086\n+ system.adapter.influxdb.1 : influxdb : iobroker - enabled, port: 8086\n+ system.adapter.mihome-vacuum.0 : mihome-vacuum : IoBroker64Bit - enabled, port: 54321\n+ system.adapter.mqtt.1 : mqtt : iobroker - enabled, port: 1883, bind: 0.0.0.0\n+ system.adapter.mqtt.3 : mqtt : iobroker - enabled, port: 1886, bind: 192.168.178.69\n+ system.adapter.pioneer_sc_vsx.0 : pioneer_sc_vsx : iobroker - enabled, port: 23\n+ system.adapter.sainlogic.0 : sainlogic : iobroker - enabled, port: 45000, bind: 192.168.178.69\n+ system.adapter.simple-api.0 : simple-api : iobroker - enabled, port: 8087, bind: 0.0.0.0, run as: admin\n+ system.adapter.sonoff.0 : sonoff : IoBroker64Bit - enabled, port: 1883, bind: 0.0.0.0\n+ system.adapter.sql.0 : sql : iobroker - enabled\n+ system.adapter.synology.0 : synology : iobroker - enabled, port: 5000\n+ system.adapter.synology.1 : synology : iobroker - enabled, port: 5000\n+ system.adapter.telegram.0 : telegram : iobroker - enabled, port: 8443, bind: 0.0.0.0\n+ system.adapter.web.0 : web : iobroker - enabled, port: 8082, bind: 0.0.0.0, run as: admin\n\n+ instance is alive\n"
              
              javascript.0
              2024-05-05 11:48:45.347	info	script.js.common.NsPanelWz: Installed TFT Firmware: 53 / v4.3.3
              
              javascript.0
              2024-05-05 11:48:45.346	info	script.js.common.NsPanelWz: Desired TFT Firmware: 53 / v4.3.3
              
              javascript.0
              2024-05-05 11:48:45.332	info	script.js.common.NsPanelWz: Installed TFT Firmware: 53 / v4.3.3
              
              javascript.0
              2024-05-05 11:48:45.331	info	script.js.common.NsPanelWz: Desired TFT Firmware: 53 / v4.3.3
              
              javascript.0
              2024-05-05 11:48:43.925	info	script.js.common.NsPanelWz: Debug mode disabled
              
              javascript.0
              2024-05-05 11:48:43.577	info	script.js.common.NsPanelWz: Installed TFT Firmware: 53 / v4.3.3
              
              javascript.0
              2024-05-05 11:48:43.576	info	script.js.common.NsPanelWz: Desired TFT Firmware: 53 / v4.3.3
              
              javascript.0
              2024-05-05 11:48:42.445	info	script.js.common.NsPanelWz: No Updates for NSPanel available
              
              javascript.0
              2024-05-05 11:48:42.437	info	script.js.common.NsPanelWz: registered 32 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
              
              javascript.0
              2024-05-05 11:48:42.436	info	script.js.common.NsPanelWz: No Updates for NSPanel available
              
              javascript.0
              2024-05-05 11:48:42.416	info	script.js.common.NsPanelWz: weather alias for accuweather.0. already exists
              
              javascript.0
              2024-05-05 11:48:42.411	info	script.js.common.NsPanelWz: setObjects enabled - create Alias Channels possible
              
              javascript.0
              2024-05-05 11:48:42.114	info	script.js.common.NsPanelWz: source code did not change, using cached compilation result...
              
              javascript.0
              2024-05-05 11:48:40.470	info	script.js.common.NsPanelWz: compiling TypeScript source...
              
              admin.0
              2024-05-05 11:48:40.046	info	<== Disconnect system.user.admin from ::ffff:192.168.178.52 javascript
              
              javascript.0
              2024-05-05 11:48:38.935	info	Stop script script.js.common.NsPanelWz
              
              T 1 Reply Last reply Reply Quote 0
              • L
                lustig29 @TT-Tom last edited by

                @tt-tom So???

                const jsonEventName1: string = 'Graue Tonne'; // Vergleichstring für Schwarze Tonne
                const customEventName1: string = 'Graue Tonne';        // benutzerdefinierter Text für schwarze Tonne
                const jsonEventName2: string = 'Gelbe Tonne'; // Vergleichstring für Gelbe Tonne / Sack
                const customEventName2: string = 'Gelbe Tonne';        // benutzerdefinierter Text für gelbe Tonne
                const jsonEventName3: string = 'Altpapier';    // Vergleichstring für Blaue Tonne
                const customEventName3: string = 'Altpapier';       // benutzerdefinierter Text für blaue Tonne
                const jsonEventName4: string = 'Grüne Tonne';   // Vergleichstring für Braune Tonne
                const customEventName4: string = 'Grüne Tonne';        // benutzerdefinierter Text für braune Tonne
                const jsonEventName5: string = 'Treppe';   // Vergleichstring für Event 5
                const customEventName5: string = 'Besen schwingen';        // benutzerdefinierter Text für Event 5
                const jsonEventName6: string = '';   // Vergleichstring für Event 6
                const customEventName6: string = '';        // benutzerdefinierter Text für Event 6
                
                T 1 Reply Last reply Reply Quote 0
                • T
                  TT-Tom @MichaelF last edited by

                  @michaelf

                  der SQL liefert kein Port, darum läuft die Abfrage auf einen Fehler. Werde mal deine Daten nutzen für ein Fix. aktuell hilft da nur den check ausschalten, wir melden uns wenn der fix verfügbar ist.

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

                    @lustig29
                    nein, du musst die jsonEventNameX Parameter anpassen.

                    const jsonEventName1: string = 'Restmüll';
                    

                    Die customEventNameX sind alternativ Texte für die Anzeige auf dem Panel, siehe Event5. Dort wird nach Treppe im Kalender gesucht und auf dem Panel Besen schwingen angezeigt.

                    L 1 Reply Last reply Reply Quote 0
                    • MichaelF
                      MichaelF @TT-Tom last edited by

                      @tt-tom said in SONOFF NSPanel mit Lovelace UI:

                      @michaelf

                      der SQL liefert kein Port, darum läuft die Abfrage auf einen Fehler. Werde mal deine Daten nutzen für ein Fix. aktuell hilft da nur den check ausschalten, wir melden uns wenn der fix verfügbar ist.

                      Super danke.

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

                        @tt-tom Super, danke. Das war es

                        1 Reply Last reply Reply Quote 0
                        • L
                          lustig29 last edited by

                          Ich möchte gerne mein Nuki Türschloss in diese Card intigrieren. Kann mir jemand dabei helfen?

                          let Garage: PageType =
                          {
                              'type': 'cardGrid',
                              'heading': 'Übersicht',
                              'useColor': true,
                              'subPage': false,
                              'items': [
                                  { id: 'alias.0.Garagentor', icon: 'garage', icon2: 'garage-open', offColor: MSRed, onColor: MSGreen, name: 'Garagentor'},
                                  { id: 'alias.0.Alias_Geräte.Alle_Rollos', icon: 'roller-shade', icon2: 'roller-shade-closed', offColor: MSRed, onColor: MSGreen, name: 'Alle Rollos'},
                              ]
                          };
                          
                          {
                            "type": "state",
                            "common": {
                              "name": "Tür auf-/abschließen",
                              "type": "boolean",
                              "write": true,
                              "role": "switch.lock.door"
                            },
                            "native": {},
                            "from": "system.adapter.nuki.0",
                            "user": "system.user.admin",
                            "ts": 1714916320263,
                            "_id": "nuki.0.607002684.actions.lockAction",
                            "acl": {
                              "object": 1636,
                              "state": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                            }
                          }
                          
                          T 1 Reply Last reply Reply Quote 0
                          • T
                            TT-Tom @lustig29 last edited by

                            @lustig29

                            Hast du schon einen Alias für den Nuki angelegt.
                            Hier kannst du nachschauen. https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#verschluss-channel-lock

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

                              @michaelf

                              probiere bitte mal den Fix der DEV Version, danke.

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

                              MichaelF 2 Replies Last reply Reply Quote 0
                              • L
                                lustig29 @TT-Tom last edited by

                                @tt-tom Danke. Hat schon mal soweit super geklappt. Schloss schließt und öffnet über das Ns Panel. Jetzt muss ich nur noch den Status (Offen/Geschlossen) im Alias irgendwie angeben.

                                Kannst du mir da bitte nochmal kurz helfen?

                                Das ist der Datenpunkt vom Nuki.

                                {
                                  "type": "state",
                                  "common": {
                                    "name": "Aktion",
                                    "type": "number",
                                    "states": {
                                      "0": "",
                                      "1": "unlock",
                                      "2": "lock",
                                      "3": "unlatch",
                                      "4": "lock‘n’go",
                                      "5": "lock‘n’go with unlatch"
                                    },
                                    "role": "value"
                                  },
                                  "native": {},
                                  "from": "system.adapter.nuki.0",
                                  "user": "system.user.admin",
                                  "ts": 1714916320263,
                                  "_id": "nuki.0.607002684.actions.action",
                                  "acl": {
                                    "object": 1636,
                                    "state": 1636,
                                    "owner": "system.user.admin",
                                    "ownerGroup": "system.group.administrator"
                                  }
                                }
                                
                                T 1 Reply Last reply Reply Quote 0
                                • B
                                  bakerman23 last edited by

                                  Sorry schonmal. Mein Problem kam sicherlich schon tausend mal.

                                  Ich habe das NSPanel jetzt soweit eingerichtet, daß ich eine eigene Seite erstellen kann.
                                  Egal, was ich aus der Beispielseite unter
                                  //-- Start for your own pages -- some self-defined aliases required ----------------
                                  eintrage, nach dem Starten des Scipts erscheint auf dem NSPanel immer nur die Serviceseite.
                                  Das Script läuft ohne Fehler durch.

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

                                    @bakerman23 sagte in SONOFF NSPanel mit Lovelace UI:

                                    Mein Problem kam sicherlich schon tausend mal.

                                    Ja, hier z.B.:

                                    https://forum.iobroker.net/post/1153993

                                    B 1 Reply Last reply Reply Quote 1
                                    • B
                                      bakerman23 @Marc Berg last edited by

                                      @marc-berg oh Gott. So dumm. Jetzt geht es.
                                      Ich bin allerdings auch der Meinung, das es nicht im Wiki steht.

                                      H T 2 Replies Last reply Reply Quote 0
                                      • H
                                        Hansi1234 @bakerman23 last edited by

                                        @bakerman23 said in SONOFF NSPanel mit Lovelace UI:

                                        @marc-berg oh Gott. So dumm. Jetzt geht es.
                                        Ich bin allerdings auch der Meinung, das es nicht im Wiki steht.

                                        Jep, daran hing ich auch ewig

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

                                          @bakerman23

                                          Doch hier im letzten Absatz. Vielleicht etwas versteckt. @Kuckuckmann kann da bestimmt, noch ein Beispiel einfügen. 😉

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

                                            @lustig29 wie sieht dein Alias Datenpunkt jetzt aus??

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            602
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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