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

donate donate
  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.7k

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

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

SONOFF NSPanel mit Lovelace UI

Geplant Angeheftet Gesperrt Verschoben Hardware
lovelace uinspanelsonoff
7.8k Beiträge 274 Kommentatoren 6.8m Aufrufe 257 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.
  • Andreas_ZA Andreas_Z

    @armilar

    javascript.0	2022-09-23 11:26:32.057	error	at processImmediate (node:internal/timers:468:21)
    javascript.0	2022-09-23 11:26:32.057	error	at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1504:17)
    javascript.0	2022-09-23 11:26:32.057	error	at /opt/iobroker/node_modules/iobroker.javascript/main.js:2017:17
    javascript.0	2022-09-23 11:26:32.057	error	at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1990:37)
    javascript.0	2022-09-23 11:26:32.057	error	at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1679:24)
    javascript.0	2022-09-23 11:26:32.057	error	at Object.createScript (node:vm:265:10)
    javascript.0
    	2022-09-23 11:26:32.057	error	at new Script (node:vm:100:7)
    javascript.0	2022-09-23 11:26:32.057	error	SyntaxError: await is only valid in async functions and the top level bodies of modules
    javascript.0	2022-09-23 11:26:32.057	error	^^^^^
    javascript.0	2022-09-23 11:26:32.057	error	await Datenpunkte_anlegen();
    javascript.0	2022-09-23 11:26:32.057	error	script.js.common.NSPanel_1 compile failed: at script.js.common.NSPanel_1:154
    javascript.0	2022-09-23 11:26:32.054	info	script.js.common.NSPanel_1: TypeScript compilation successful
    javascript.0	2022-09-23 11:26:29.430	info	script.js.common.NSPanel_1: compiling TypeScript source...
    javascript.0	2022-09-23 11:26:29.396	debug	File /home/Javascript/common/NSPanel_1.ts change
    

    Nachtrag: Ich habe angefangen meine anderen Scripte einmal zu deaktivieren, auf halber Strecke fing das nspanel.ts Script dann plötzlich an zu laufen, kann aber noch nicht sagen welches Script es war. Zumindest sind nun die Datenpunkte schon einmal angelegt

    11:42:20.850 info javascript.0 (1013313) script.js.common.NSPanel_1: compiling TypeScript source...
    11:42:21.046 info javascript.0 (1013313) script.js.common.NSPanel_1: source code did not change, using cached compilation result...
    11:42:21.065 info javascript.0 (1013313) script.js.common.NSPanel_1: registered 12 subscriptions, 6 schedules, 0 messages, 0 logs and 0 file subscriptions
    11:42:21.372 warn javascript.0 (1013313) at script.js.common.NSPanel_1:1185:46
    11:42:21.372 warn javascript.0 (1013313) at step (script.js.common.NSPanel_1:33:23)
    11:42:21.372 warn javascript.0 (1013313) at Object.next (script.js.common.NSPanel_1:14:53)
    11:42:21.372 warn javascript.0 (1013313) at fulfilled (script.js.common.NSPanel_1:5:58)

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

    @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

    @armilar

    javascript.0	2022-09-23 11:26:32.057	error	at processImmediate (node:internal/timers:468:21)
    javascript.0	2022-09-23 11:26:32.057	error	at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1504:17)
    javascript.0	2022-09-23 11:26:32.057	error	at /opt/iobroker/node_modules/iobroker.javascript/main.js:2017:17
    javascript.0	2022-09-23 11:26:32.057	error	at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1990:37)
    javascript.0	2022-09-23 11:26:32.057	error	at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1679:24)
    javascript.0	2022-09-23 11:26:32.057	error	at Object.createScript (node:vm:265:10)
    javascript.0
    	2022-09-23 11:26:32.057	error	at new Script (node:vm:100:7)
    javascript.0	2022-09-23 11:26:32.057	error	SyntaxError: await is only valid in async functions and the top level bodies of modules
    javascript.0	2022-09-23 11:26:32.057	error	^^^^^
    javascript.0	2022-09-23 11:26:32.057	error	await Datenpunkte_anlegen();
    javascript.0	2022-09-23 11:26:32.057	error	script.js.common.NSPanel_1 compile failed: at script.js.common.NSPanel_1:154
    javascript.0	2022-09-23 11:26:32.054	info	script.js.common.NSPanel_1: TypeScript compilation successful
    javascript.0	2022-09-23 11:26:29.430	info	script.js.common.NSPanel_1: compiling TypeScript source...
    javascript.0	2022-09-23 11:26:29.396	debug	File /home/Javascript/common/NSPanel_1.ts change
    

    Bekomme immer noch nicht auf den Schirm, wo dieser Funktionsaufruf await Datenpunkte_anlegen() herkommt :male-detective: . Also ein Funktionsaufruf, der in einer Funktion aufgerufen wird, die nicht async ist... Und vor allem, die kein Teil dieses Scriptes ist? :face_with_rolling_eyes:

    Welche Version vom JS-Controller und welche NodeJS Version benutzt du?

    Nachtrag - gute Idee - Die Lokalisierung des Skriptes nacheinander. Ist bestimmt diese komische Funktion drin

    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.

    Andreas_ZA 1 Antwort Letzte Antwort
    0
    • ArmilarA Armilar

      @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

      @armilar

      javascript.0	2022-09-23 11:26:32.057	error	at processImmediate (node:internal/timers:468:21)
      javascript.0	2022-09-23 11:26:32.057	error	at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1504:17)
      javascript.0	2022-09-23 11:26:32.057	error	at /opt/iobroker/node_modules/iobroker.javascript/main.js:2017:17
      javascript.0	2022-09-23 11:26:32.057	error	at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1990:37)
      javascript.0	2022-09-23 11:26:32.057	error	at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1679:24)
      javascript.0	2022-09-23 11:26:32.057	error	at Object.createScript (node:vm:265:10)
      javascript.0
      	2022-09-23 11:26:32.057	error	at new Script (node:vm:100:7)
      javascript.0	2022-09-23 11:26:32.057	error	SyntaxError: await is only valid in async functions and the top level bodies of modules
      javascript.0	2022-09-23 11:26:32.057	error	^^^^^
      javascript.0	2022-09-23 11:26:32.057	error	await Datenpunkte_anlegen();
      javascript.0	2022-09-23 11:26:32.057	error	script.js.common.NSPanel_1 compile failed: at script.js.common.NSPanel_1:154
      javascript.0	2022-09-23 11:26:32.054	info	script.js.common.NSPanel_1: TypeScript compilation successful
      javascript.0	2022-09-23 11:26:29.430	info	script.js.common.NSPanel_1: compiling TypeScript source...
      javascript.0	2022-09-23 11:26:29.396	debug	File /home/Javascript/common/NSPanel_1.ts change
      

      Bekomme immer noch nicht auf den Schirm, wo dieser Funktionsaufruf await Datenpunkte_anlegen() herkommt :male-detective: . Also ein Funktionsaufruf, der in einer Funktion aufgerufen wird, die nicht async ist... Und vor allem, die kein Teil dieses Scriptes ist? :face_with_rolling_eyes:

      Welche Version vom JS-Controller und welche NodeJS Version benutzt du?

      Nachtrag - gute Idee - Die Lokalisierung des Skriptes nacheinander. Ist bestimmt diese komische Funktion drin

      Andreas_ZA Offline
      Andreas_ZA Offline
      Andreas_Z
      schrieb am zuletzt editiert von
      #38

      @armilar
      javascript.0 v6.0.3
      Node.js v16.17.0

      ArmilarA 1 Antwort Letzte Antwort
      0
      • Andreas_ZA Andreas_Z

        @armilar
        javascript.0 v6.0.3
        Node.js v16.17.0

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

        @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

        @armilar
        javascript.0 v6.0.3
        Node.js v16.17.0

        Siehe Erweiterung (Nachtrag) und wenn du diesen ominösen Funktionsaufruf gefunden hast, dann entweder "async" vor die function oder "await" rausnehmen

        Beschreibe "auf halber Strecke fing das nspanel.ts Script dann plötzlich an zu laufen". Funktioniert das Panel nun oder nicht?

        Wenn ich tippen müsste, dann würde ich sagen: "sehe mal in das andere Script "testansage" im global-Verzeichnis, ob das diese Funktion hat."

        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.

        Andreas_ZA 1 Antwort Letzte Antwort
        0
        • ArmilarA Armilar

          @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

          @armilar
          javascript.0 v6.0.3
          Node.js v16.17.0

          Siehe Erweiterung (Nachtrag) und wenn du diesen ominösen Funktionsaufruf gefunden hast, dann entweder "async" vor die function oder "await" rausnehmen

          Beschreibe "auf halber Strecke fing das nspanel.ts Script dann plötzlich an zu laufen". Funktioniert das Panel nun oder nicht?

          Wenn ich tippen müsste, dann würde ich sagen: "sehe mal in das andere Script "testansage" im global-Verzeichnis, ob das diese Funktion hat."

          Andreas_ZA Offline
          Andreas_ZA Offline
          Andreas_Z
          schrieb am zuletzt editiert von Andreas_Z
          #40

          @armilar
          Das Verursachende Script habe ich gefunden, eine Altlast aus den Anfängen mit Alexa, dieses habe ich nun deaktiviert und wird auch nicht mehr benötigt.
          Auf dem Panel selbst wird leider noch nichts angezeigt, aktuell wird an mqtt.1.SmartHome.NSPanel_1.cmnd.CustomSend immer timeout~15 gesendet
          Es war die Testansage :-)

          ArmilarA 1 Antwort Letzte Antwort
          0
          • Andreas_ZA Andreas_Z

            @armilar
            Das Verursachende Script habe ich gefunden, eine Altlast aus den Anfängen mit Alexa, dieses habe ich nun deaktiviert und wird auch nicht mehr benötigt.
            Auf dem Panel selbst wird leider noch nichts angezeigt, aktuell wird an mqtt.1.SmartHome.NSPanel_1.cmnd.CustomSend immer timeout~15 gesendet
            Es war die Testansage :-)

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

            @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

            @armilar
            Das Verursachende Script habe ich gefunden, eine Altlast aus den Anfängen mit Alexa, dieses habe ich nun deaktiviert und wird auch nicht mehr benötigt.
            Auf dem Panel selbst wird leider noch nichts angezeigt, aktuell wird an mqtt.1.SmartHome.NSPanel_1.cmnd.CustomSend immer timeout~15 gesendet
            Es war die Testansage :-)

            Das kostet dich mindestens einen Daumen nach oben ;-)

            Die Nachricht ist perfekt. Jetzt haben wir wahrscheinlich noch ein Problem im mqtt.1.

            Edit:

            Was macht denn das Panel gerade? Waiting for content?

            Kommt im mqtt.1.SmartHome.NSPanel_1.tele.RESULT etwas an?

            Häufigste Ursachen:

            • mqtt.1. hat einen Port eingestellt, der bereits in mqtt.0. oder sonsoff.0. oder shelly.0. verwendet wird.
            • mqtt.1. ist falsch konfiguriert in der Instanz
            • berry-Driver ist nicht korrekt installiert. Dann alle Daten rauswerfen und autoexec.be neu anlegen + starten
            • tasmota hat die falschen mqtt Einstellungen (auch Portnummer sollte analog mqtt.1. sein)

            Hier findest du ebenfalls Hinweise und Configs für mqtt.X. :
            https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker---Basisinstallation (Punkt 4 und 6)

            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.

            Andreas_ZA 1 Antwort Letzte Antwort
            0
            • ArmilarA Armilar

              @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

              @armilar
              Das Verursachende Script habe ich gefunden, eine Altlast aus den Anfängen mit Alexa, dieses habe ich nun deaktiviert und wird auch nicht mehr benötigt.
              Auf dem Panel selbst wird leider noch nichts angezeigt, aktuell wird an mqtt.1.SmartHome.NSPanel_1.cmnd.CustomSend immer timeout~15 gesendet
              Es war die Testansage :-)

              Das kostet dich mindestens einen Daumen nach oben ;-)

              Die Nachricht ist perfekt. Jetzt haben wir wahrscheinlich noch ein Problem im mqtt.1.

              Edit:

              Was macht denn das Panel gerade? Waiting for content?

              Kommt im mqtt.1.SmartHome.NSPanel_1.tele.RESULT etwas an?

              Häufigste Ursachen:

              • mqtt.1. hat einen Port eingestellt, der bereits in mqtt.0. oder sonsoff.0. oder shelly.0. verwendet wird.
              • mqtt.1. ist falsch konfiguriert in der Instanz
              • berry-Driver ist nicht korrekt installiert. Dann alle Daten rauswerfen und autoexec.be neu anlegen + starten
              • tasmota hat die falschen mqtt Einstellungen (auch Portnummer sollte analog mqtt.1. sein)

              Hier findest du ebenfalls Hinweise und Configs für mqtt.X. :
              https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker---Basisinstallation (Punkt 4 und 6)

              Andreas_ZA Offline
              Andreas_ZA Offline
              Andreas_Z
              schrieb am zuletzt editiert von Andreas_Z
              #42

              @armilar Daumen hoch auf jeden Fall :+1:
              Waiting for content.
              Als MQTT verwende ich mosquitto, hier funktioniert die Anbindung:
              1663929903: New connection from 192.168.178.140:62638 on port 1883.
              1663929903: New client connected from 192.168.178.140:62638 as NSPanel_1 (p2, c1, k30, u'DVES_E7EFAC').

              Der IOBroker ist nur als Client konfiguriert.
              Im mqtt.1.SmartHome.NSPanel_1.tele.RESULT kommt an:
              {"CustomRecv":"event,startup,42,eu"}

              Im MQTT kommt auch etwas an:

              d3051e90-0d3b-4d8c-88f5-bf15ebfdc215-grafik.png

              ArmilarA 1 Antwort Letzte Antwort
              0
              • Andreas_ZA Andreas_Z

                @armilar Daumen hoch auf jeden Fall :+1:
                Waiting for content.
                Als MQTT verwende ich mosquitto, hier funktioniert die Anbindung:
                1663929903: New connection from 192.168.178.140:62638 on port 1883.
                1663929903: New client connected from 192.168.178.140:62638 as NSPanel_1 (p2, c1, k30, u'DVES_E7EFAC').

                Der IOBroker ist nur als Client konfiguriert.
                Im mqtt.1.SmartHome.NSPanel_1.tele.RESULT kommt an:
                {"CustomRecv":"event,startup,42,eu"}

                Im MQTT kommt auch etwas an:

                d3051e90-0d3b-4d8c-88f5-bf15ebfdc215-grafik.png

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

                @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

                @armilar
                Waiting for content.
                Als MQTT verwende ich mosquitto, hier funktioniert die Anbindung:
                1663929903: New connection from 192.168.178.140:62638 on port 1883.
                1663929903: New client connected from 192.168.178.140:62638 as NSPanel_1 (p2, c1, k30, u'DVES_E7EFAC').

                Der IOBroker ist nur als Client konfiguriert.
                Im mqtt.1.SmartHome.NSPanel_1.tele.RESULT kommt an:
                {"CustomRecv":"event,startup,42,eu"}

                Im MQTT kommt auch etwas an:

                d3051e90-0d3b-4d8c-88f5-bf15ebfdc215-grafik.png

                Berry Driver nochmal neu gemacht? Also autoexe.be und autoexec.bec weggeworfen?

                https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be

                danach Panel restarten

                und falls dann immer noch nicht funktioniert nochmal:

                FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.4.0.tft
                

                Das Tasmota und das Script sprechen schon miteinander. Das Nextion aber noch nicht mit Tasmota...

                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.

                Andreas_ZA 1 Antwort Letzte Antwort
                0
                • ArmilarA Armilar

                  @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

                  @armilar
                  Waiting for content.
                  Als MQTT verwende ich mosquitto, hier funktioniert die Anbindung:
                  1663929903: New connection from 192.168.178.140:62638 on port 1883.
                  1663929903: New client connected from 192.168.178.140:62638 as NSPanel_1 (p2, c1, k30, u'DVES_E7EFAC').

                  Der IOBroker ist nur als Client konfiguriert.
                  Im mqtt.1.SmartHome.NSPanel_1.tele.RESULT kommt an:
                  {"CustomRecv":"event,startup,42,eu"}

                  Im MQTT kommt auch etwas an:

                  d3051e90-0d3b-4d8c-88f5-bf15ebfdc215-grafik.png

                  Berry Driver nochmal neu gemacht? Also autoexe.be und autoexec.bec weggeworfen?

                  https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be

                  danach Panel restarten

                  und falls dann immer noch nicht funktioniert nochmal:

                  FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.4.0.tft
                  

                  Das Tasmota und das Script sprechen schon miteinander. Das Nextion aber noch nicht mit Tasmota...

                  Andreas_ZA Offline
                  Andreas_ZA Offline
                  Andreas_Z
                  schrieb am zuletzt editiert von
                  #44

                  @armilar

                  14:31:31.836 CMD: FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.4.0.tft
                  14:31:31.853 MQT: SmartHome/NSPanel_1/stat/RESULT = {"FlashNextion":"Done"}
                  14:31:31.894 FLH: host: nspanel.pky.eu, port: 80, get: /lovelace-ui/github/nspanel-v3.4.0.tft
                  14:31:33.187 FLH: Send (High Speed) flash start
                  14:31:33.621 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 0, "time_elapsed": 0}}
                  14:31:34.169 FLH: host: nspanel.pky.eu, port: 80, get: /lovelace-ui/github/nspanel-v3.4.0.tft
                  14:31:35.294 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 90, "time_elapsed": 2}}
                  14:31:36.710 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 91, "time_elapsed": 3}}
                  14:31:39.662 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 92, "time_elapsed": 6}}
                  14:31:42.604 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 93, "time_elapsed": 9}}
                  14:31:45.691 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 94, "time_elapsed": 12}}
                  14:31:48.630 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 95, "time_elapsed": 15}}
                  14:31:51.587 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 96, "time_elapsed": 18}}
                  14:31:54.341 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 97, "time_elapsed": 21}}
                  14:31:57.284 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 98, "time_elapsed": 24}}
                  14:32:00.266 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 99, "time_elapsed": 27}}
                  14:32:00.673 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                  14:32:06.701 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                  14:32:06.709 NXP: Screen Initialized
                  14:32:06.831 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                  14:32:06.930 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                  14:32:06.993 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                  

                  Keine Ahnung was da schief läuft, die autoexec.be habe ich nun zum x-ten mal erneuert (alte Dateien zuvor gelöscht), dann nspanel-v3.4.0.tft erneut geflasht, das fängt dann aber nicht bei 1% an sondern wie oben zu sehen bei 90%

                  00:00:00.003 HDW: ESP32-D0WD-V3 
                  00:00:00.088 UFS: FlashFS mounted with 292 kB free
                  00:00:00.182 CFG: Loaded from File, Anzahl 21
                  00:00:00.197 QPC: Count 1
                  00:00:00.423 BRY: Berry initialized, RAM used=3735 bytes
                  00:00:00.455 Projekt tasmota - Tasmota Version 12.1.1(tasmota)-2_0_4_1(2022.08.25 11:41:45)
                  00:00:00.173 NXP: Initializing Driver
                  00:00:00.181 BRY: Successfully loaded 'autoexec.be'
                  00:00:01.889 WIF: verbinden mit AP1 suppe2 Channel 6 BSSId 2C:3A:FD:A2:BE:A6 in Modus 11n als NSPanel-1-4012...
                  00:00:06.127 RSL: RESULT = {"CustomRecv":"event,startup,42,eu"}
                  00:00:06.765 WIF: verbunden
                  14:36:26.131 HTP: Web-Server aktiv bei NSPanel-1-4012 mit IP-Adresse 192.168.178.140
                  14:36:27.787 QPC: Reset
                  14:36:30.757 MQT: Verbindungsversuch...
                  14:36:30.796 MQT: verbunden
                  14:36:30.802 MQT: SmartHome/NSPanel_1/tele/LWT = Online (beibehalten)
                  14:36:30.806 MQT: SmartHome/NSPanel_1/cmnd/POWER = 
                  14:36:30.823 MQT: SmartHome/NSPanel_1/tele/INFO1 = {"Info1":{"Module":"NSPanel","Version":"12.1.1(tasmota)","FallbackTopic":"cmnd/NSPanel_1_fb/","GroupTopic":"SmartHome/tasmotas/cmnd/"}}
                  14:36:30.842 MQT: SmartHome/NSPanel_1/tele/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"NSPanel-1-4012","IPAddress":"192.168.178.140"}}
                  14:36:30.858 MQT: SmartHome/NSPanel_1/tele/INFO3 = {"Info3":{"RestartReason":"Software reset CPU","BootCount":10}}
                  14:36:30.863 MQT: SmartHome/NSPanel_1/stat/RESULT = {"POWER1":"OFF"}
                  14:36:30.867 MQT: SmartHome/NSPanel_1/stat/POWER1 = OFF
                  14:36:30.882 MQT: SmartHome/NSPanel_1/stat/RESULT = {"POWER2":"OFF"}
                  14:36:30.886 MQT: SmartHome/NSPanel_1/stat/POWER2 = OFF
                  14:36:32.098 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                  14:36:32.214 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                  14:36:32.258 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                  14:36:32.560 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                  14:36:34.949 MQT: SmartHome/NSPanel_1/tele/STATE = {"Time":"2022-09-23T14:36:34","Uptime":"0T00:00:15","UptimeSec":15,"Heap":133,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":70,"MqttCount":1,"Berry":{"HeapUsed":13,"Objects":213},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"suppe2","BSSId":"2C:3A:FD:A2:BE:A6","Channel":6,"Mode":"11n","RSSI":86,"Signal":-57,"LinkCount":1,"Downtime":"0T00:00:06"}}
                  14:36:34.996 MQT: SmartHome/NSPanel_1/tele/SENSOR = {"Time":"2022-09-23T14:36:34","ANALOG":{"Temperature1":3.6},"ESP32":{"Temperature":67.8},"TempUnit":"C"}
                  14:36:38.352 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                  14:36:38.473 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                  14:36:38.524 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                  14:36:38.581 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                  14:36:44.359 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                  14:36:44.430 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                  14:36:44.476 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                  14:36:44.524 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                  14:36:50.335 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                  14:36:50.452 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                  
                  ArmilarA 1 Antwort Letzte Antwort
                  0
                  • Andreas_ZA Andreas_Z

                    @armilar

                    14:31:31.836 CMD: FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.4.0.tft
                    14:31:31.853 MQT: SmartHome/NSPanel_1/stat/RESULT = {"FlashNextion":"Done"}
                    14:31:31.894 FLH: host: nspanel.pky.eu, port: 80, get: /lovelace-ui/github/nspanel-v3.4.0.tft
                    14:31:33.187 FLH: Send (High Speed) flash start
                    14:31:33.621 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 0, "time_elapsed": 0}}
                    14:31:34.169 FLH: host: nspanel.pky.eu, port: 80, get: /lovelace-ui/github/nspanel-v3.4.0.tft
                    14:31:35.294 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 90, "time_elapsed": 2}}
                    14:31:36.710 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 91, "time_elapsed": 3}}
                    14:31:39.662 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 92, "time_elapsed": 6}}
                    14:31:42.604 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 93, "time_elapsed": 9}}
                    14:31:45.691 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 94, "time_elapsed": 12}}
                    14:31:48.630 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 95, "time_elapsed": 15}}
                    14:31:51.587 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 96, "time_elapsed": 18}}
                    14:31:54.341 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 97, "time_elapsed": 21}}
                    14:31:57.284 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 98, "time_elapsed": 24}}
                    14:32:00.266 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 99, "time_elapsed": 27}}
                    14:32:00.673 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:32:06.701 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                    14:32:06.709 NXP: Screen Initialized
                    14:32:06.831 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:32:06.930 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:32:06.993 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    

                    Keine Ahnung was da schief läuft, die autoexec.be habe ich nun zum x-ten mal erneuert (alte Dateien zuvor gelöscht), dann nspanel-v3.4.0.tft erneut geflasht, das fängt dann aber nicht bei 1% an sondern wie oben zu sehen bei 90%

                    00:00:00.003 HDW: ESP32-D0WD-V3 
                    00:00:00.088 UFS: FlashFS mounted with 292 kB free
                    00:00:00.182 CFG: Loaded from File, Anzahl 21
                    00:00:00.197 QPC: Count 1
                    00:00:00.423 BRY: Berry initialized, RAM used=3735 bytes
                    00:00:00.455 Projekt tasmota - Tasmota Version 12.1.1(tasmota)-2_0_4_1(2022.08.25 11:41:45)
                    00:00:00.173 NXP: Initializing Driver
                    00:00:00.181 BRY: Successfully loaded 'autoexec.be'
                    00:00:01.889 WIF: verbinden mit AP1 suppe2 Channel 6 BSSId 2C:3A:FD:A2:BE:A6 in Modus 11n als NSPanel-1-4012...
                    00:00:06.127 RSL: RESULT = {"CustomRecv":"event,startup,42,eu"}
                    00:00:06.765 WIF: verbunden
                    14:36:26.131 HTP: Web-Server aktiv bei NSPanel-1-4012 mit IP-Adresse 192.168.178.140
                    14:36:27.787 QPC: Reset
                    14:36:30.757 MQT: Verbindungsversuch...
                    14:36:30.796 MQT: verbunden
                    14:36:30.802 MQT: SmartHome/NSPanel_1/tele/LWT = Online (beibehalten)
                    14:36:30.806 MQT: SmartHome/NSPanel_1/cmnd/POWER = 
                    14:36:30.823 MQT: SmartHome/NSPanel_1/tele/INFO1 = {"Info1":{"Module":"NSPanel","Version":"12.1.1(tasmota)","FallbackTopic":"cmnd/NSPanel_1_fb/","GroupTopic":"SmartHome/tasmotas/cmnd/"}}
                    14:36:30.842 MQT: SmartHome/NSPanel_1/tele/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"NSPanel-1-4012","IPAddress":"192.168.178.140"}}
                    14:36:30.858 MQT: SmartHome/NSPanel_1/tele/INFO3 = {"Info3":{"RestartReason":"Software reset CPU","BootCount":10}}
                    14:36:30.863 MQT: SmartHome/NSPanel_1/stat/RESULT = {"POWER1":"OFF"}
                    14:36:30.867 MQT: SmartHome/NSPanel_1/stat/POWER1 = OFF
                    14:36:30.882 MQT: SmartHome/NSPanel_1/stat/RESULT = {"POWER2":"OFF"}
                    14:36:30.886 MQT: SmartHome/NSPanel_1/stat/POWER2 = OFF
                    14:36:32.098 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                    14:36:32.214 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:32.258 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:32.560 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:34.949 MQT: SmartHome/NSPanel_1/tele/STATE = {"Time":"2022-09-23T14:36:34","Uptime":"0T00:00:15","UptimeSec":15,"Heap":133,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":70,"MqttCount":1,"Berry":{"HeapUsed":13,"Objects":213},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"suppe2","BSSId":"2C:3A:FD:A2:BE:A6","Channel":6,"Mode":"11n","RSSI":86,"Signal":-57,"LinkCount":1,"Downtime":"0T00:00:06"}}
                    14:36:34.996 MQT: SmartHome/NSPanel_1/tele/SENSOR = {"Time":"2022-09-23T14:36:34","ANALOG":{"Temperature1":3.6},"ESP32":{"Temperature":67.8},"TempUnit":"C"}
                    14:36:38.352 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                    14:36:38.473 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:38.524 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:38.581 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:44.359 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                    14:36:44.430 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:44.476 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:44.524 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:50.335 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                    14:36:50.452 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    
                    ArmilarA Offline
                    ArmilarA Offline
                    Armilar
                    Most Active Forum Testing
                    schrieb am zuletzt editiert von Armilar
                    #45

                    @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

                    @armilar

                    14:31:31.836 CMD: FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.4.0.tft
                    14:31:31.853 MQT: SmartHome/NSPanel_1/stat/RESULT = {"FlashNextion":"Done"}
                    14:31:31.894 FLH: host: nspanel.pky.eu, port: 80, get: /lovelace-ui/github/nspanel-v3.4.0.tft
                    14:31:33.187 FLH: Send (High Speed) flash start
                    14:31:33.621 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 0, "time_elapsed": 0}}
                    14:31:34.169 FLH: host: nspanel.pky.eu, port: 80, get: /lovelace-ui/github/nspanel-v3.4.0.tft
                    14:31:35.294 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 90, "time_elapsed": 2}}
                    14:31:36.710 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 91, "time_elapsed": 3}}
                    14:31:39.662 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 92, "time_elapsed": 6}}
                    14:31:42.604 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 93, "time_elapsed": 9}}
                    14:31:45.691 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 94, "time_elapsed": 12}}
                    14:31:48.630 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 95, "time_elapsed": 15}}
                    14:31:51.587 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 96, "time_elapsed": 18}}
                    14:31:54.341 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 97, "time_elapsed": 21}}
                    14:31:57.284 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 98, "time_elapsed": 24}}
                    14:32:00.266 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 99, "time_elapsed": 27}}
                    14:32:00.673 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:32:06.701 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                    14:32:06.709 NXP: Screen Initialized
                    14:32:06.831 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:32:06.930 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:32:06.993 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    

                    Keine Ahnung was da schief läuft, die autoexec.be habe ich nun zum x-ten mal erneuert (alte Dateien zuvor gelöscht), dann nspanel-v3.4.0.tft erneut geflasht, das fängt dann aber nicht bei 1% an sondern wie oben zu sehen bei 90%

                    00:00:00.003 HDW: ESP32-D0WD-V3 
                    00:00:00.088 UFS: FlashFS mounted with 292 kB free
                    00:00:00.182 CFG: Loaded from File, Anzahl 21
                    00:00:00.197 QPC: Count 1
                    00:00:00.423 BRY: Berry initialized, RAM used=3735 bytes
                    00:00:00.455 Projekt tasmota - Tasmota Version 12.1.1(tasmota)-2_0_4_1(2022.08.25 11:41:45)
                    00:00:00.173 NXP: Initializing Driver
                    00:00:00.181 BRY: Successfully loaded 'autoexec.be'
                    00:00:01.889 WIF: verbinden mit AP1 suppe2 Channel 6 BSSId 2C:3A:FD:A2:BE:A6 in Modus 11n als NSPanel-1-4012...
                    00:00:06.127 RSL: RESULT = {"CustomRecv":"event,startup,42,eu"}
                    00:00:06.765 WIF: verbunden
                    14:36:26.131 HTP: Web-Server aktiv bei NSPanel-1-4012 mit IP-Adresse 192.168.178.140
                    14:36:27.787 QPC: Reset
                    14:36:30.757 MQT: Verbindungsversuch...
                    14:36:30.796 MQT: verbunden
                    14:36:30.802 MQT: SmartHome/NSPanel_1/tele/LWT = Online (beibehalten)
                    14:36:30.806 MQT: SmartHome/NSPanel_1/cmnd/POWER = 
                    14:36:30.823 MQT: SmartHome/NSPanel_1/tele/INFO1 = {"Info1":{"Module":"NSPanel","Version":"12.1.1(tasmota)","FallbackTopic":"cmnd/NSPanel_1_fb/","GroupTopic":"SmartHome/tasmotas/cmnd/"}}
                    14:36:30.842 MQT: SmartHome/NSPanel_1/tele/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"NSPanel-1-4012","IPAddress":"192.168.178.140"}}
                    14:36:30.858 MQT: SmartHome/NSPanel_1/tele/INFO3 = {"Info3":{"RestartReason":"Software reset CPU","BootCount":10}}
                    14:36:30.863 MQT: SmartHome/NSPanel_1/stat/RESULT = {"POWER1":"OFF"}
                    14:36:30.867 MQT: SmartHome/NSPanel_1/stat/POWER1 = OFF
                    14:36:30.882 MQT: SmartHome/NSPanel_1/stat/RESULT = {"POWER2":"OFF"}
                    14:36:30.886 MQT: SmartHome/NSPanel_1/stat/POWER2 = OFF
                    14:36:32.098 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                    14:36:32.214 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:32.258 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:32.560 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:34.949 MQT: SmartHome/NSPanel_1/tele/STATE = {"Time":"2022-09-23T14:36:34","Uptime":"0T00:00:15","UptimeSec":15,"Heap":133,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":70,"MqttCount":1,"Berry":{"HeapUsed":13,"Objects":213},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"suppe2","BSSId":"2C:3A:FD:A2:BE:A6","Channel":6,"Mode":"11n","RSSI":86,"Signal":-57,"LinkCount":1,"Downtime":"0T00:00:06"}}
                    14:36:34.996 MQT: SmartHome/NSPanel_1/tele/SENSOR = {"Time":"2022-09-23T14:36:34","ANALOG":{"Temperature1":3.6},"ESP32":{"Temperature":67.8},"TempUnit":"C"}
                    14:36:38.352 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                    14:36:38.473 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:38.524 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:38.581 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:44.359 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                    14:36:44.430 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:44.476 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:44.524 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    14:36:50.335 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                    14:36:50.452 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                    

                    Sieht für mich auch alles normal aus.

                    Was passiert, wenn du in die Tasmota-Console das Command eingibst?

                    CustomSend time~12:00
                    

                    mqtt.1. empfängt zwar Daten, aber wie sieht es mit dem Senden aus?

                    Ich sag es ja ungern, aber evtl. mal den Weg ohne den Mosquitto wie beschrieben versuchen

                    Also nur weil in dem Datenpunkt CustomSend Daten drin stehen, heißt das noch nicht, dass dein Mosquitto die auch auf das Device bringt.

                    Und für den Fall das du es testest, verwende bitte nicht schon wieder den Port 1883

                    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.

                    J 1 Antwort Letzte Antwort
                    0
                    • ArmilarA Armilar

                      @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

                      @armilar

                      14:31:31.836 CMD: FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.4.0.tft
                      14:31:31.853 MQT: SmartHome/NSPanel_1/stat/RESULT = {"FlashNextion":"Done"}
                      14:31:31.894 FLH: host: nspanel.pky.eu, port: 80, get: /lovelace-ui/github/nspanel-v3.4.0.tft
                      14:31:33.187 FLH: Send (High Speed) flash start
                      14:31:33.621 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 0, "time_elapsed": 0}}
                      14:31:34.169 FLH: host: nspanel.pky.eu, port: 80, get: /lovelace-ui/github/nspanel-v3.4.0.tft
                      14:31:35.294 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 90, "time_elapsed": 2}}
                      14:31:36.710 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 91, "time_elapsed": 3}}
                      14:31:39.662 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 92, "time_elapsed": 6}}
                      14:31:42.604 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 93, "time_elapsed": 9}}
                      14:31:45.691 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 94, "time_elapsed": 12}}
                      14:31:48.630 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 95, "time_elapsed": 15}}
                      14:31:51.587 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 96, "time_elapsed": 18}}
                      14:31:54.341 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 97, "time_elapsed": 21}}
                      14:31:57.284 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 98, "time_elapsed": 24}}
                      14:32:00.266 MQT: SmartHome/NSPanel_1/tele/RESULT = {"Flashing":{"complete": 99, "time_elapsed": 27}}
                      14:32:00.673 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                      14:32:06.701 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                      14:32:06.709 NXP: Screen Initialized
                      14:32:06.831 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                      14:32:06.930 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                      14:32:06.993 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                      

                      Keine Ahnung was da schief läuft, die autoexec.be habe ich nun zum x-ten mal erneuert (alte Dateien zuvor gelöscht), dann nspanel-v3.4.0.tft erneut geflasht, das fängt dann aber nicht bei 1% an sondern wie oben zu sehen bei 90%

                      00:00:00.003 HDW: ESP32-D0WD-V3 
                      00:00:00.088 UFS: FlashFS mounted with 292 kB free
                      00:00:00.182 CFG: Loaded from File, Anzahl 21
                      00:00:00.197 QPC: Count 1
                      00:00:00.423 BRY: Berry initialized, RAM used=3735 bytes
                      00:00:00.455 Projekt tasmota - Tasmota Version 12.1.1(tasmota)-2_0_4_1(2022.08.25 11:41:45)
                      00:00:00.173 NXP: Initializing Driver
                      00:00:00.181 BRY: Successfully loaded 'autoexec.be'
                      00:00:01.889 WIF: verbinden mit AP1 suppe2 Channel 6 BSSId 2C:3A:FD:A2:BE:A6 in Modus 11n als NSPanel-1-4012...
                      00:00:06.127 RSL: RESULT = {"CustomRecv":"event,startup,42,eu"}
                      00:00:06.765 WIF: verbunden
                      14:36:26.131 HTP: Web-Server aktiv bei NSPanel-1-4012 mit IP-Adresse 192.168.178.140
                      14:36:27.787 QPC: Reset
                      14:36:30.757 MQT: Verbindungsversuch...
                      14:36:30.796 MQT: verbunden
                      14:36:30.802 MQT: SmartHome/NSPanel_1/tele/LWT = Online (beibehalten)
                      14:36:30.806 MQT: SmartHome/NSPanel_1/cmnd/POWER = 
                      14:36:30.823 MQT: SmartHome/NSPanel_1/tele/INFO1 = {"Info1":{"Module":"NSPanel","Version":"12.1.1(tasmota)","FallbackTopic":"cmnd/NSPanel_1_fb/","GroupTopic":"SmartHome/tasmotas/cmnd/"}}
                      14:36:30.842 MQT: SmartHome/NSPanel_1/tele/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"NSPanel-1-4012","IPAddress":"192.168.178.140"}}
                      14:36:30.858 MQT: SmartHome/NSPanel_1/tele/INFO3 = {"Info3":{"RestartReason":"Software reset CPU","BootCount":10}}
                      14:36:30.863 MQT: SmartHome/NSPanel_1/stat/RESULT = {"POWER1":"OFF"}
                      14:36:30.867 MQT: SmartHome/NSPanel_1/stat/POWER1 = OFF
                      14:36:30.882 MQT: SmartHome/NSPanel_1/stat/RESULT = {"POWER2":"OFF"}
                      14:36:30.886 MQT: SmartHome/NSPanel_1/stat/POWER2 = OFF
                      14:36:32.098 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                      14:36:32.214 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                      14:36:32.258 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                      14:36:32.560 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                      14:36:34.949 MQT: SmartHome/NSPanel_1/tele/STATE = {"Time":"2022-09-23T14:36:34","Uptime":"0T00:00:15","UptimeSec":15,"Heap":133,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":70,"MqttCount":1,"Berry":{"HeapUsed":13,"Objects":213},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"suppe2","BSSId":"2C:3A:FD:A2:BE:A6","Channel":6,"Mode":"11n","RSSI":86,"Signal":-57,"LinkCount":1,"Downtime":"0T00:00:06"}}
                      14:36:34.996 MQT: SmartHome/NSPanel_1/tele/SENSOR = {"Time":"2022-09-23T14:36:34","ANALOG":{"Temperature1":3.6},"ESP32":{"Temperature":67.8},"TempUnit":"C"}
                      14:36:38.352 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                      14:36:38.473 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                      14:36:38.524 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                      14:36:38.581 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                      14:36:44.359 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                      14:36:44.430 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                      14:36:44.476 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                      14:36:44.524 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                      14:36:50.335 MQT: SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,startup,42,eu"}
                      14:36:50.452 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}
                      

                      Sieht für mich auch alles normal aus.

                      Was passiert, wenn du in die Tasmota-Console das Command eingibst?

                      CustomSend time~12:00
                      

                      mqtt.1. empfängt zwar Daten, aber wie sieht es mit dem Senden aus?

                      Ich sag es ja ungern, aber evtl. mal den Weg ohne den Mosquitto wie beschrieben versuchen

                      Also nur weil in dem Datenpunkt CustomSend Daten drin stehen, heißt das noch nicht, dass dein Mosquitto die auch auf das Device bringt.

                      Und für den Fall das du es testest, verwende bitte nicht schon wieder den Port 1883

                      J Offline
                      J Offline
                      joBr99
                      schrieb am zuletzt editiert von
                      #46

                      Wenn FlashNextion geht, sollte das Berry Skript passen, wenn über MQTT trotzdem nichts kommt, ist es in der regel etwas mit den tasmota mqtt settings

                      1 Antwort Letzte Antwort
                      0
                      • Andreas_ZA Offline
                        Andreas_ZA Offline
                        Andreas_Z
                        schrieb am zuletzt editiert von Andreas_Z
                        #47

                        Grundsätzlich scheint etwas über MQTT anzukommen, das Schalten von POWER1 manuell über das Objekt SmartHome/NSPanel_1/cmnd/POWER funktioniert.
                        Wenn ich CustomSend time~12:00 in der Konsole absende, wird aber nichts auf dem Display angezeigt.
                        autexec.be:

                        # Sonoff NSPanel Tasmota Lovelace UI Berry Driver | code by joBr99
                        # based on;
                        # Sonoff NSPanel Tasmota (Nextion with Flashing) driver | code by peepshow-21
                        # based on;
                        # Sonoff NSPanel Tasmota driver v0.47 | code by blakadder and s-hadinger
                        
                        # Example Flash
                        # FlashNextion http://ip-address-of-your-homeassistant:8123/local/nspanel.tft
                        # FlashNextion http://nspanel.pky.eu/lui.tft
                        
                        class Nextion : Driver
                        
                            static header = bytes('55BB')
                        
                            static flash_block_size = 4096
                        
                            var flash_mode
                        	var flash_start_millis
                            var flash_size
                            var flash_written
                            var flash_buff
                            var flash_offset
                            var awaiting_offset
                            var tcp
                            var ser
                            var last_per
                        	var url
                        
                            def split_55(b)
                              var ret = []
                              var s = size(b)   
                              var i = s-2   # start from last-1
                              while i > 0
                                if b[i] == 0x55 && b[i+1] == 0xBB           
                                  ret.push(b[i..s-1]) # push last msg to list
                                  b = b[(0..i-1)]   # write the rest back to b
                                end
                                i -= 1
                              end
                              ret.push(b)
                              return ret
                            end
                        
                            def crc16(data, poly)
                              if !poly  poly = 0xA001 end
                              # CRC-16 MODBUS HASHING ALGORITHM
                              var crc = 0xFFFF
                              for i:0..size(data)-1
                                crc = crc ^ data[i]
                                for j:0..7
                                  if crc & 1
                                    crc = (crc >> 1) ^ poly
                                  else
                                    crc = crc >> 1
                                  end
                                end
                              end
                              return crc
                            end
                        
                        	# encode using custom protocol 55 BB [payload length] [payload length] [payload] [crc] [crc]
                            def encode(payload)
                              var b = bytes()
                              b += self.header
                              b.add(size(payload), 2)   # add size as 2 bytes, little endian
                              b += bytes().fromstring(payload)
                              var msg_crc = self.crc16(b)
                              b.add(msg_crc, 2)       # crc 2 bytes, little endian
                              return b
                            end
                        
                            def encodenx(payload)
                                var b = bytes().fromstring(payload)
                                b += bytes('FFFFFF')
                                return b
                            end
                        
                            def sendnx(payload)
                                import string
                                var payload_bin = self.encodenx(payload)
                                self.ser.write(payload_bin)
                                log(string.format("NXP: Nextion command sent = %s",str(payload_bin)), 3)       
                            end
                        
                            def send(payload)
                                var payload_bin = self.encode(payload)
                                if self.flash_mode==1
                                    log("NXP: skipped command becuase still flashing", 3)
                                else 
                                    self.ser.write(payload_bin)
                                    log("NXP: payload sent = " + str(payload_bin), 3)
                                end
                            end
                        
                            def write_to_nextion(b)
                                self.ser.write(b)
                            end
                        
                            def screeninit()
                                log("NXP: Screen Initialized")
                        		self.sendnx("recmod=1")		
                            end
                        
                            def write_block()
                                
                                import string
                                log("FLH: Read block",3)
                                while size(self.flash_buff)<self.flash_block_size && self.tcp.connected()
                                    if self.tcp.available()>0
                                        self.flash_buff += self.tcp.readbytes()
                                    else
                                        tasmota.delay(50)
                                        log("FLH: Wait for available...",3)
                                    end
                                end
                                log("FLH: Buff size "+str(size(self.flash_buff)),3)
                                var to_write
                                if size(self.flash_buff)>self.flash_block_size
                                    to_write = self.flash_buff[0..self.flash_block_size-1]
                                    self.flash_buff = self.flash_buff[self.flash_block_size..]
                                else
                                    to_write = self.flash_buff
                                    self.flash_buff = bytes()
                                end
                                log("FLH: Writing "+str(size(to_write)),3)
                                var per = (self.flash_written*100)/self.flash_size
                                if (self.last_per!=per) 
                                    self.last_per = per
                                    tasmota.publish_result(string.format("{\"Flashing\":{\"complete\": %d, \"time_elapsed\": %d}}",per , (tasmota.millis()-self.flash_start_millis)/1000), "RESULT") 
                                end
                                if size(to_write)>0
                                    self.flash_written += size(to_write)
                                    self.ser.write(to_write)
                                end
                                log("FLH: Total "+str(self.flash_written),3)
                                if (self.flash_written==self.flash_size)
                                    log("FLH: Flashing complete - Time elapsed: %d", (tasmota.millis()-self.flash_start_millis)/1000)
                                    self.flash_mode = 0
                        			self.ser = nil
                        			tasmota.gc()
                        			self.ser = serial(17, 16, 115200, serial.SERIAL_8N1)
                                end
                        
                            end
                        
                            def every_100ms()
                                import string
                                if self.ser.available() > 0
                                    var msg = self.ser.read()
                                    if size(msg) > 0
                                        log(string.format("NXP: Received Raw = %s",str(msg)), 3)
                                        if (self.flash_mode==1)
                                            var strv = msg[0..-4].asstring()
                                            if string.find(strv,"comok 2")>=0
                                                log("FLH: Send (High Speed) flash start")
                        						self.flash_start_millis = tasmota.millis()
                                                #self.sendnx(string.format("whmi-wris %d,115200,res0",self.flash_size))
                                                self.sendnx(string.format("whmi-wris %d,921600,res0",self.flash_size))
                        						self.ser = serial(17, 16, 921600, serial.SERIAL_8N1)
                                            elif size(msg)==1 && msg[0]==0x08
                                                log("FLH: Waiting offset...",3)
                                                self.awaiting_offset = 1
                                            elif size(msg)==4 && self.awaiting_offset==1
                                                self.awaiting_offset = 0
                                                self.flash_offset = msg.get(0,4)
                                                log("FLH: Flash offset marker "+str(self.flash_offset),3)
                        						if self.flash_offset != 0
                        							self.open_url_at(self.url, self.flash_offset)
                        							self.flash_written = self.flash_offset
                        						end
                                                self.write_block()
                                            elif size(msg)==1 && msg[0]==0x05
                                                self.write_block()
                                            else
                                                log("FLH: Something has gone wrong flashing display firmware ["+str(msg)+"]",2)
                                            end
                                        else
                                            var msg_list = self.split_55(msg)
                                            for i:0..size(msg_list)-1
                                                msg = msg_list[i]
                                                if size(msg) > 0
                                                    if msg == bytes('000000FFFFFF88FFFFFF')
                                                        self.screeninit()
                                                    elif size(msg)>=2 && msg[0]==0x55 && msg[1]==0xBB
                                                        var jm = string.format("{\"CustomRecv\":\"%s\"}",msg[4..-3].asstring())
                                                        tasmota.publish_result(jm, "RESULT")        
                                                    elif msg[0]==0x07 && size(msg)==1 # BELL/Buzzer
                                                        tasmota.cmd("buzzer 1,1")
                                                    else
                                                        var jm = string.format("{\"nextion\":\"%s\"}",str(msg[0..-4]))
                                                        tasmota.publish_result(jm, "RESULT")        
                                                    end
                                                end       
                                            end
                                        end
                                    end
                                end
                            end      
                        
                            def begin_nextion_flash()
                                self.flash_written = 0
                                self.awaiting_offset = 0
                                self.flash_offset = 0
                                self.sendnx('DRAKJHSUYDGBNCJHGJKSHBDN')
                                self.sendnx('recmod=0')
                                self.sendnx('recmod=0')
                                self.flash_mode = 1
                                self.sendnx("connect")        
                            end
                            
                            def open_url_at(url, pos)
                        		self.url = url
                                import string
                                var host
                                var port
                                var s1 = string.split(url,7)[1]
                                var i = string.find(s1,":")
                                var sa
                                if i<0
                                    port = 80
                                    i = string.find(s1,"/")
                                    sa = string.split(s1,i)
                                    host = sa[0]
                                else
                                    sa = string.split(s1,i)
                                    host = sa[0]
                                    s1 = string.split(sa[1],1)[1]
                                    i = string.find(s1,"/")
                                    sa = string.split(s1,i)
                                    port = int(sa[0])
                                end
                                var get = sa[1]
                                log(string.format("FLH: host: %s, port: %s, get: %s",host,port,get))
                                self.tcp = tcpclient()
                                self.tcp.connect(host,port)
                                log("FLH: Connected:"+str(self.tcp.connected()),3)
                                var get_req = "GET "+get+" HTTP/1.0\r\n"
                        		get_req += string.format("Range: bytes=%d-\r\n", pos)
                        		get_req += string.format("HOST: %s:%s\r\n\r\n",host,port)
                                self.tcp.write(get_req)
                                var a = self.tcp.available()
                                i = 1
                                while a==0 && i<5
                                  tasmota.delay(100*i)
                                  tasmota.yield() 
                                  i += 1
                                  log("FLH: Retry "+str(i),3)
                                  a = self.tcp.available()
                                end
                                if a==0
                                    log("FLH: Nothing available to read!",3)
                                    return
                                end
                                var b = self.tcp.readbytes()
                                i = 0
                                var end_headers = false;
                                var headers
                                while i<size(b) && headers==nil
                                    if b[i..(i+3)]==bytes().fromstring("\r\n\r\n") 
                                        headers = b[0..(i+3)].asstring()
                                        self.flash_buff = b[(i+4)..]
                                    else
                                        i += 1
                                    end
                                end
                                #print(headers)
                        		# check http respose for code 200/206
                                if string.find(headers,"200 OK")>0 || string.find(headers,"206 Partial Content")>0
                                    log("FLH: HTTP Respose is 200 OK or 206 Partial Content",3)
                        		else
                                    log("FLH: HTTP Respose is not 200 OK or 206 Partial Content",3)
                        			print(headers)
                        			return -1
                                end
                        		# only set flash size if pos is zero
                        		if pos == 0
                        			# check http respose for content-length
                        			var tag = "Content-Length: "
                        			i = string.find(headers,tag)
                        			if (i>0) 
                        				var i2 = string.find(headers,"\r\n",i)
                        				var s = headers[i+size(tag)..i2-1]
                        				self.flash_size=int(s)
                        			end
                        			log("FLH: Flash file size: "+str(self.flash_size),3)
                        		end
                        
                            end
                        
                            def flash_nextion(url)
                                self.flash_size = 0
                                var res = self.open_url_at(url, 0)
                        		if res != -1
                        			self.begin_nextion_flash()
                        		end
                            end
                        
                            def init()
                                log("NXP: Initializing Driver")
                                self.ser = serial(17, 16, 115200, serial.SERIAL_8N1)
                                self.flash_mode = 0
                            end
                        
                        end
                        
                        var nextion = Nextion()
                        
                        tasmota.add_driver(nextion)
                        
                        def get_current_version(cmd, idx, payload, payload_json)
                        	import string
                        	var version_of_this_script = 4
                        	var jm = string.format("{\"nlui_driver_version\":\"%s\"}", version_of_this_script)
                        	tasmota.publish_result(jm, "RESULT")
                        end
                        
                        tasmota.add_cmd('GetDriverVersion', get_current_version)
                        
                        def update_berry_driver(cmd, idx, payload, payload_json)
                        	def task()
                        		import string
                        		var cl = webclient()
                        		cl.begin(payload)
                        		var r = cl.GET()
                        		if r == 200
                        			print("Sucessfully downloaded nspanel-lovelace-ui berry driver")
                        		else
                        			print("Error while downloading nspanel-lovelace-ui berry driver")
                        		end
                        		r = cl.write_file("autoexec.be")
                        		if r < 0
                        			print("Error while writeing nspanel-lovelace-ui berry driver")
                        		else
                        			print("Sucessfully written nspanel-lovelace-ui berry driver")
                        			var s = load('autoexec.be')
                        			if s == true
                        				var jm = string.format("{\"nlui_driver_update\":\"%s\"}", "succeeded")
                        				tasmota.publish_result(jm, "RESULT")
                        			else 
                        				var jm = string.format("{\"nlui_driver_update\":\"%s\"}", "failed")
                        				tasmota.publish_result(jm, "RESULT")
                        			end
                        			
                        		end
                        	end
                        	tasmota.set_timer(0,task)
                        	tasmota.resp_cmnd_done()
                        end
                        
                        tasmota.add_cmd('UpdateDriverVersion', update_berry_driver)
                        
                        def flash_nextion(cmd, idx, payload, payload_json)
                            def task()
                                nextion.flash_nextion(payload)
                            end
                            tasmota.set_timer(0,task)
                            tasmota.resp_cmnd_done()
                        end
                        
                        def send_cmd(cmd, idx, payload, payload_json)
                            nextion.sendnx(payload)
                            tasmota.resp_cmnd_done()
                        end
                        
                        def send_cmd2(cmd, idx, payload, payload_json)
                            nextion.send(payload)
                            tasmota.resp_cmnd_done()
                        end
                        
                        tasmota.add_cmd('Nextion', send_cmd)
                        tasmota.add_cmd('CustomSend', send_cmd2)
                        tasmota.add_cmd('FlashNextion', flash_nextion)
                        

                        MQTT-Settings:
                        cda2f93c-4ac6-4ac6-931b-621dfa4b9060-grafik.png

                        Sonstige Einstellungen/Vorlage

                        {"NAME":"NSPanel","GPIO":[0,0,0,0,3872,0,0,0,0,0,32,0,0,0,0,225,0,480,224,1,0,0,0,33,0,0,0,0,0,0,0,0,0,0,4736,0],"FLAG":0,"BASE":1}
                        

                        f7092fcf-15c4-47e7-bbbb-80637be9c156-grafik.png

                        ArmilarA 1 Antwort Letzte Antwort
                        0
                        • Andreas_ZA Andreas_Z

                          Grundsätzlich scheint etwas über MQTT anzukommen, das Schalten von POWER1 manuell über das Objekt SmartHome/NSPanel_1/cmnd/POWER funktioniert.
                          Wenn ich CustomSend time~12:00 in der Konsole absende, wird aber nichts auf dem Display angezeigt.
                          autexec.be:

                          # Sonoff NSPanel Tasmota Lovelace UI Berry Driver | code by joBr99
                          # based on;
                          # Sonoff NSPanel Tasmota (Nextion with Flashing) driver | code by peepshow-21
                          # based on;
                          # Sonoff NSPanel Tasmota driver v0.47 | code by blakadder and s-hadinger
                          
                          # Example Flash
                          # FlashNextion http://ip-address-of-your-homeassistant:8123/local/nspanel.tft
                          # FlashNextion http://nspanel.pky.eu/lui.tft
                          
                          class Nextion : Driver
                          
                              static header = bytes('55BB')
                          
                              static flash_block_size = 4096
                          
                              var flash_mode
                          	var flash_start_millis
                              var flash_size
                              var flash_written
                              var flash_buff
                              var flash_offset
                              var awaiting_offset
                              var tcp
                              var ser
                              var last_per
                          	var url
                          
                              def split_55(b)
                                var ret = []
                                var s = size(b)   
                                var i = s-2   # start from last-1
                                while i > 0
                                  if b[i] == 0x55 && b[i+1] == 0xBB           
                                    ret.push(b[i..s-1]) # push last msg to list
                                    b = b[(0..i-1)]   # write the rest back to b
                                  end
                                  i -= 1
                                end
                                ret.push(b)
                                return ret
                              end
                          
                              def crc16(data, poly)
                                if !poly  poly = 0xA001 end
                                # CRC-16 MODBUS HASHING ALGORITHM
                                var crc = 0xFFFF
                                for i:0..size(data)-1
                                  crc = crc ^ data[i]
                                  for j:0..7
                                    if crc & 1
                                      crc = (crc >> 1) ^ poly
                                    else
                                      crc = crc >> 1
                                    end
                                  end
                                end
                                return crc
                              end
                          
                          	# encode using custom protocol 55 BB [payload length] [payload length] [payload] [crc] [crc]
                              def encode(payload)
                                var b = bytes()
                                b += self.header
                                b.add(size(payload), 2)   # add size as 2 bytes, little endian
                                b += bytes().fromstring(payload)
                                var msg_crc = self.crc16(b)
                                b.add(msg_crc, 2)       # crc 2 bytes, little endian
                                return b
                              end
                          
                              def encodenx(payload)
                                  var b = bytes().fromstring(payload)
                                  b += bytes('FFFFFF')
                                  return b
                              end
                          
                              def sendnx(payload)
                                  import string
                                  var payload_bin = self.encodenx(payload)
                                  self.ser.write(payload_bin)
                                  log(string.format("NXP: Nextion command sent = %s",str(payload_bin)), 3)       
                              end
                          
                              def send(payload)
                                  var payload_bin = self.encode(payload)
                                  if self.flash_mode==1
                                      log("NXP: skipped command becuase still flashing", 3)
                                  else 
                                      self.ser.write(payload_bin)
                                      log("NXP: payload sent = " + str(payload_bin), 3)
                                  end
                              end
                          
                              def write_to_nextion(b)
                                  self.ser.write(b)
                              end
                          
                              def screeninit()
                                  log("NXP: Screen Initialized")
                          		self.sendnx("recmod=1")		
                              end
                          
                              def write_block()
                                  
                                  import string
                                  log("FLH: Read block",3)
                                  while size(self.flash_buff)<self.flash_block_size && self.tcp.connected()
                                      if self.tcp.available()>0
                                          self.flash_buff += self.tcp.readbytes()
                                      else
                                          tasmota.delay(50)
                                          log("FLH: Wait for available...",3)
                                      end
                                  end
                                  log("FLH: Buff size "+str(size(self.flash_buff)),3)
                                  var to_write
                                  if size(self.flash_buff)>self.flash_block_size
                                      to_write = self.flash_buff[0..self.flash_block_size-1]
                                      self.flash_buff = self.flash_buff[self.flash_block_size..]
                                  else
                                      to_write = self.flash_buff
                                      self.flash_buff = bytes()
                                  end
                                  log("FLH: Writing "+str(size(to_write)),3)
                                  var per = (self.flash_written*100)/self.flash_size
                                  if (self.last_per!=per) 
                                      self.last_per = per
                                      tasmota.publish_result(string.format("{\"Flashing\":{\"complete\": %d, \"time_elapsed\": %d}}",per , (tasmota.millis()-self.flash_start_millis)/1000), "RESULT") 
                                  end
                                  if size(to_write)>0
                                      self.flash_written += size(to_write)
                                      self.ser.write(to_write)
                                  end
                                  log("FLH: Total "+str(self.flash_written),3)
                                  if (self.flash_written==self.flash_size)
                                      log("FLH: Flashing complete - Time elapsed: %d", (tasmota.millis()-self.flash_start_millis)/1000)
                                      self.flash_mode = 0
                          			self.ser = nil
                          			tasmota.gc()
                          			self.ser = serial(17, 16, 115200, serial.SERIAL_8N1)
                                  end
                          
                              end
                          
                              def every_100ms()
                                  import string
                                  if self.ser.available() > 0
                                      var msg = self.ser.read()
                                      if size(msg) > 0
                                          log(string.format("NXP: Received Raw = %s",str(msg)), 3)
                                          if (self.flash_mode==1)
                                              var strv = msg[0..-4].asstring()
                                              if string.find(strv,"comok 2")>=0
                                                  log("FLH: Send (High Speed) flash start")
                          						self.flash_start_millis = tasmota.millis()
                                                  #self.sendnx(string.format("whmi-wris %d,115200,res0",self.flash_size))
                                                  self.sendnx(string.format("whmi-wris %d,921600,res0",self.flash_size))
                          						self.ser = serial(17, 16, 921600, serial.SERIAL_8N1)
                                              elif size(msg)==1 && msg[0]==0x08
                                                  log("FLH: Waiting offset...",3)
                                                  self.awaiting_offset = 1
                                              elif size(msg)==4 && self.awaiting_offset==1
                                                  self.awaiting_offset = 0
                                                  self.flash_offset = msg.get(0,4)
                                                  log("FLH: Flash offset marker "+str(self.flash_offset),3)
                          						if self.flash_offset != 0
                          							self.open_url_at(self.url, self.flash_offset)
                          							self.flash_written = self.flash_offset
                          						end
                                                  self.write_block()
                                              elif size(msg)==1 && msg[0]==0x05
                                                  self.write_block()
                                              else
                                                  log("FLH: Something has gone wrong flashing display firmware ["+str(msg)+"]",2)
                                              end
                                          else
                                              var msg_list = self.split_55(msg)
                                              for i:0..size(msg_list)-1
                                                  msg = msg_list[i]
                                                  if size(msg) > 0
                                                      if msg == bytes('000000FFFFFF88FFFFFF')
                                                          self.screeninit()
                                                      elif size(msg)>=2 && msg[0]==0x55 && msg[1]==0xBB
                                                          var jm = string.format("{\"CustomRecv\":\"%s\"}",msg[4..-3].asstring())
                                                          tasmota.publish_result(jm, "RESULT")        
                                                      elif msg[0]==0x07 && size(msg)==1 # BELL/Buzzer
                                                          tasmota.cmd("buzzer 1,1")
                                                      else
                                                          var jm = string.format("{\"nextion\":\"%s\"}",str(msg[0..-4]))
                                                          tasmota.publish_result(jm, "RESULT")        
                                                      end
                                                  end       
                                              end
                                          end
                                      end
                                  end
                              end      
                          
                              def begin_nextion_flash()
                                  self.flash_written = 0
                                  self.awaiting_offset = 0
                                  self.flash_offset = 0
                                  self.sendnx('DRAKJHSUYDGBNCJHGJKSHBDN')
                                  self.sendnx('recmod=0')
                                  self.sendnx('recmod=0')
                                  self.flash_mode = 1
                                  self.sendnx("connect")        
                              end
                              
                              def open_url_at(url, pos)
                          		self.url = url
                                  import string
                                  var host
                                  var port
                                  var s1 = string.split(url,7)[1]
                                  var i = string.find(s1,":")
                                  var sa
                                  if i<0
                                      port = 80
                                      i = string.find(s1,"/")
                                      sa = string.split(s1,i)
                                      host = sa[0]
                                  else
                                      sa = string.split(s1,i)
                                      host = sa[0]
                                      s1 = string.split(sa[1],1)[1]
                                      i = string.find(s1,"/")
                                      sa = string.split(s1,i)
                                      port = int(sa[0])
                                  end
                                  var get = sa[1]
                                  log(string.format("FLH: host: %s, port: %s, get: %s",host,port,get))
                                  self.tcp = tcpclient()
                                  self.tcp.connect(host,port)
                                  log("FLH: Connected:"+str(self.tcp.connected()),3)
                                  var get_req = "GET "+get+" HTTP/1.0\r\n"
                          		get_req += string.format("Range: bytes=%d-\r\n", pos)
                          		get_req += string.format("HOST: %s:%s\r\n\r\n",host,port)
                                  self.tcp.write(get_req)
                                  var a = self.tcp.available()
                                  i = 1
                                  while a==0 && i<5
                                    tasmota.delay(100*i)
                                    tasmota.yield() 
                                    i += 1
                                    log("FLH: Retry "+str(i),3)
                                    a = self.tcp.available()
                                  end
                                  if a==0
                                      log("FLH: Nothing available to read!",3)
                                      return
                                  end
                                  var b = self.tcp.readbytes()
                                  i = 0
                                  var end_headers = false;
                                  var headers
                                  while i<size(b) && headers==nil
                                      if b[i..(i+3)]==bytes().fromstring("\r\n\r\n") 
                                          headers = b[0..(i+3)].asstring()
                                          self.flash_buff = b[(i+4)..]
                                      else
                                          i += 1
                                      end
                                  end
                                  #print(headers)
                          		# check http respose for code 200/206
                                  if string.find(headers,"200 OK")>0 || string.find(headers,"206 Partial Content")>0
                                      log("FLH: HTTP Respose is 200 OK or 206 Partial Content",3)
                          		else
                                      log("FLH: HTTP Respose is not 200 OK or 206 Partial Content",3)
                          			print(headers)
                          			return -1
                                  end
                          		# only set flash size if pos is zero
                          		if pos == 0
                          			# check http respose for content-length
                          			var tag = "Content-Length: "
                          			i = string.find(headers,tag)
                          			if (i>0) 
                          				var i2 = string.find(headers,"\r\n",i)
                          				var s = headers[i+size(tag)..i2-1]
                          				self.flash_size=int(s)
                          			end
                          			log("FLH: Flash file size: "+str(self.flash_size),3)
                          		end
                          
                              end
                          
                              def flash_nextion(url)
                                  self.flash_size = 0
                                  var res = self.open_url_at(url, 0)
                          		if res != -1
                          			self.begin_nextion_flash()
                          		end
                              end
                          
                              def init()
                                  log("NXP: Initializing Driver")
                                  self.ser = serial(17, 16, 115200, serial.SERIAL_8N1)
                                  self.flash_mode = 0
                              end
                          
                          end
                          
                          var nextion = Nextion()
                          
                          tasmota.add_driver(nextion)
                          
                          def get_current_version(cmd, idx, payload, payload_json)
                          	import string
                          	var version_of_this_script = 4
                          	var jm = string.format("{\"nlui_driver_version\":\"%s\"}", version_of_this_script)
                          	tasmota.publish_result(jm, "RESULT")
                          end
                          
                          tasmota.add_cmd('GetDriverVersion', get_current_version)
                          
                          def update_berry_driver(cmd, idx, payload, payload_json)
                          	def task()
                          		import string
                          		var cl = webclient()
                          		cl.begin(payload)
                          		var r = cl.GET()
                          		if r == 200
                          			print("Sucessfully downloaded nspanel-lovelace-ui berry driver")
                          		else
                          			print("Error while downloading nspanel-lovelace-ui berry driver")
                          		end
                          		r = cl.write_file("autoexec.be")
                          		if r < 0
                          			print("Error while writeing nspanel-lovelace-ui berry driver")
                          		else
                          			print("Sucessfully written nspanel-lovelace-ui berry driver")
                          			var s = load('autoexec.be')
                          			if s == true
                          				var jm = string.format("{\"nlui_driver_update\":\"%s\"}", "succeeded")
                          				tasmota.publish_result(jm, "RESULT")
                          			else 
                          				var jm = string.format("{\"nlui_driver_update\":\"%s\"}", "failed")
                          				tasmota.publish_result(jm, "RESULT")
                          			end
                          			
                          		end
                          	end
                          	tasmota.set_timer(0,task)
                          	tasmota.resp_cmnd_done()
                          end
                          
                          tasmota.add_cmd('UpdateDriverVersion', update_berry_driver)
                          
                          def flash_nextion(cmd, idx, payload, payload_json)
                              def task()
                                  nextion.flash_nextion(payload)
                              end
                              tasmota.set_timer(0,task)
                              tasmota.resp_cmnd_done()
                          end
                          
                          def send_cmd(cmd, idx, payload, payload_json)
                              nextion.sendnx(payload)
                              tasmota.resp_cmnd_done()
                          end
                          
                          def send_cmd2(cmd, idx, payload, payload_json)
                              nextion.send(payload)
                              tasmota.resp_cmnd_done()
                          end
                          
                          tasmota.add_cmd('Nextion', send_cmd)
                          tasmota.add_cmd('CustomSend', send_cmd2)
                          tasmota.add_cmd('FlashNextion', flash_nextion)
                          

                          MQTT-Settings:
                          cda2f93c-4ac6-4ac6-931b-621dfa4b9060-grafik.png

                          Sonstige Einstellungen/Vorlage

                          {"NAME":"NSPanel","GPIO":[0,0,0,0,3872,0,0,0,0,0,32,0,0,0,0,225,0,480,224,1,0,0,0,33,0,0,0,0,0,0,0,0,0,0,4736,0],"FLAG":0,"BASE":1}
                          

                          f7092fcf-15c4-47e7-bbbb-80637be9c156-grafik.png

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

                          @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

                          Grundsätzlich scheint etwas über MQTT anzukommen, das Schalten von POWER1 manuell über das Objekt SmartHome/NSPanel_1/cmnd/POWER funktioniert.
                          Wenn ich CustomSend time~12:00 in der Konsole absende, wird aber nichts auf dem Display angezeigt.
                          autexec.be:

                          # Sonoff NSPanel Tasmota Lovelace UI Berry Driver | code by joBr99
                          # based on;
                          # Sonoff NSPanel Tasmota (Nextion with Flashing) driver | code by peepshow-21
                          # based on;
                          # Sonoff NSPanel Tasmota driver v0.47 | code by blakadder and s-hadinger
                          
                          # Example Flash
                          # FlashNextion http://ip-address-of-your-homeassistant:8123/local/nspanel.tft
                          # FlashNextion http://nspanel.pky.eu/lui.tft
                          
                          class Nextion : Driver
                          
                              static header = bytes('55BB')
                          
                              static flash_block_size = 4096
                          
                              var flash_mode
                          	var flash_start_millis
                              var flash_size
                              var flash_written
                              var flash_buff
                              var flash_offset
                              var awaiting_offset
                              var tcp
                              var ser
                              var last_per
                          	var url
                          
                              def split_55(b)
                                var ret = []
                                var s = size(b)   
                                var i = s-2   # start from last-1
                                while i > 0
                                  if b[i] == 0x55 && b[i+1] == 0xBB           
                                    ret.push(b[i..s-1]) # push last msg to list
                                    b = b[(0..i-1)]   # write the rest back to b
                                  end
                                  i -= 1
                                end
                                ret.push(b)
                                return ret
                              end
                          
                              def crc16(data, poly)
                                if !poly  poly = 0xA001 end
                                # CRC-16 MODBUS HASHING ALGORITHM
                                var crc = 0xFFFF
                                for i:0..size(data)-1
                                  crc = crc ^ data[i]
                                  for j:0..7
                                    if crc & 1
                                      crc = (crc >> 1) ^ poly
                                    else
                                      crc = crc >> 1
                                    end
                                  end
                                end
                                return crc
                              end
                          
                          	# encode using custom protocol 55 BB [payload length] [payload length] [payload] [crc] [crc]
                              def encode(payload)
                                var b = bytes()
                                b += self.header
                                b.add(size(payload), 2)   # add size as 2 bytes, little endian
                                b += bytes().fromstring(payload)
                                var msg_crc = self.crc16(b)
                                b.add(msg_crc, 2)       # crc 2 bytes, little endian
                                return b
                              end
                          
                              def encodenx(payload)
                                  var b = bytes().fromstring(payload)
                                  b += bytes('FFFFFF')
                                  return b
                              end
                          
                              def sendnx(payload)
                                  import string
                                  var payload_bin = self.encodenx(payload)
                                  self.ser.write(payload_bin)
                                  log(string.format("NXP: Nextion command sent = %s",str(payload_bin)), 3)       
                              end
                          
                              def send(payload)
                                  var payload_bin = self.encode(payload)
                                  if self.flash_mode==1
                                      log("NXP: skipped command becuase still flashing", 3)
                                  else 
                                      self.ser.write(payload_bin)
                                      log("NXP: payload sent = " + str(payload_bin), 3)
                                  end
                              end
                          
                              def write_to_nextion(b)
                                  self.ser.write(b)
                              end
                          
                              def screeninit()
                                  log("NXP: Screen Initialized")
                          		self.sendnx("recmod=1")		
                              end
                          
                              def write_block()
                                  
                                  import string
                                  log("FLH: Read block",3)
                                  while size(self.flash_buff)<self.flash_block_size && self.tcp.connected()
                                      if self.tcp.available()>0
                                          self.flash_buff += self.tcp.readbytes()
                                      else
                                          tasmota.delay(50)
                                          log("FLH: Wait for available...",3)
                                      end
                                  end
                                  log("FLH: Buff size "+str(size(self.flash_buff)),3)
                                  var to_write
                                  if size(self.flash_buff)>self.flash_block_size
                                      to_write = self.flash_buff[0..self.flash_block_size-1]
                                      self.flash_buff = self.flash_buff[self.flash_block_size..]
                                  else
                                      to_write = self.flash_buff
                                      self.flash_buff = bytes()
                                  end
                                  log("FLH: Writing "+str(size(to_write)),3)
                                  var per = (self.flash_written*100)/self.flash_size
                                  if (self.last_per!=per) 
                                      self.last_per = per
                                      tasmota.publish_result(string.format("{\"Flashing\":{\"complete\": %d, \"time_elapsed\": %d}}",per , (tasmota.millis()-self.flash_start_millis)/1000), "RESULT") 
                                  end
                                  if size(to_write)>0
                                      self.flash_written += size(to_write)
                                      self.ser.write(to_write)
                                  end
                                  log("FLH: Total "+str(self.flash_written),3)
                                  if (self.flash_written==self.flash_size)
                                      log("FLH: Flashing complete - Time elapsed: %d", (tasmota.millis()-self.flash_start_millis)/1000)
                                      self.flash_mode = 0
                          			self.ser = nil
                          			tasmota.gc()
                          			self.ser = serial(17, 16, 115200, serial.SERIAL_8N1)
                                  end
                          
                              end
                          
                              def every_100ms()
                                  import string
                                  if self.ser.available() > 0
                                      var msg = self.ser.read()
                                      if size(msg) > 0
                                          log(string.format("NXP: Received Raw = %s",str(msg)), 3)
                                          if (self.flash_mode==1)
                                              var strv = msg[0..-4].asstring()
                                              if string.find(strv,"comok 2")>=0
                                                  log("FLH: Send (High Speed) flash start")
                          						self.flash_start_millis = tasmota.millis()
                                                  #self.sendnx(string.format("whmi-wris %d,115200,res0",self.flash_size))
                                                  self.sendnx(string.format("whmi-wris %d,921600,res0",self.flash_size))
                          						self.ser = serial(17, 16, 921600, serial.SERIAL_8N1)
                                              elif size(msg)==1 && msg[0]==0x08
                                                  log("FLH: Waiting offset...",3)
                                                  self.awaiting_offset = 1
                                              elif size(msg)==4 && self.awaiting_offset==1
                                                  self.awaiting_offset = 0
                                                  self.flash_offset = msg.get(0,4)
                                                  log("FLH: Flash offset marker "+str(self.flash_offset),3)
                          						if self.flash_offset != 0
                          							self.open_url_at(self.url, self.flash_offset)
                          							self.flash_written = self.flash_offset
                          						end
                                                  self.write_block()
                                              elif size(msg)==1 && msg[0]==0x05
                                                  self.write_block()
                                              else
                                                  log("FLH: Something has gone wrong flashing display firmware ["+str(msg)+"]",2)
                                              end
                                          else
                                              var msg_list = self.split_55(msg)
                                              for i:0..size(msg_list)-1
                                                  msg = msg_list[i]
                                                  if size(msg) > 0
                                                      if msg == bytes('000000FFFFFF88FFFFFF')
                                                          self.screeninit()
                                                      elif size(msg)>=2 && msg[0]==0x55 && msg[1]==0xBB
                                                          var jm = string.format("{\"CustomRecv\":\"%s\"}",msg[4..-3].asstring())
                                                          tasmota.publish_result(jm, "RESULT")        
                                                      elif msg[0]==0x07 && size(msg)==1 # BELL/Buzzer
                                                          tasmota.cmd("buzzer 1,1")
                                                      else
                                                          var jm = string.format("{\"nextion\":\"%s\"}",str(msg[0..-4]))
                                                          tasmota.publish_result(jm, "RESULT")        
                                                      end
                                                  end       
                                              end
                                          end
                                      end
                                  end
                              end      
                          
                              def begin_nextion_flash()
                                  self.flash_written = 0
                                  self.awaiting_offset = 0
                                  self.flash_offset = 0
                                  self.sendnx('DRAKJHSUYDGBNCJHGJKSHBDN')
                                  self.sendnx('recmod=0')
                                  self.sendnx('recmod=0')
                                  self.flash_mode = 1
                                  self.sendnx("connect")        
                              end
                              
                              def open_url_at(url, pos)
                          		self.url = url
                                  import string
                                  var host
                                  var port
                                  var s1 = string.split(url,7)[1]
                                  var i = string.find(s1,":")
                                  var sa
                                  if i<0
                                      port = 80
                                      i = string.find(s1,"/")
                                      sa = string.split(s1,i)
                                      host = sa[0]
                                  else
                                      sa = string.split(s1,i)
                                      host = sa[0]
                                      s1 = string.split(sa[1],1)[1]
                                      i = string.find(s1,"/")
                                      sa = string.split(s1,i)
                                      port = int(sa[0])
                                  end
                                  var get = sa[1]
                                  log(string.format("FLH: host: %s, port: %s, get: %s",host,port,get))
                                  self.tcp = tcpclient()
                                  self.tcp.connect(host,port)
                                  log("FLH: Connected:"+str(self.tcp.connected()),3)
                                  var get_req = "GET "+get+" HTTP/1.0\r\n"
                          		get_req += string.format("Range: bytes=%d-\r\n", pos)
                          		get_req += string.format("HOST: %s:%s\r\n\r\n",host,port)
                                  self.tcp.write(get_req)
                                  var a = self.tcp.available()
                                  i = 1
                                  while a==0 && i<5
                                    tasmota.delay(100*i)
                                    tasmota.yield() 
                                    i += 1
                                    log("FLH: Retry "+str(i),3)
                                    a = self.tcp.available()
                                  end
                                  if a==0
                                      log("FLH: Nothing available to read!",3)
                                      return
                                  end
                                  var b = self.tcp.readbytes()
                                  i = 0
                                  var end_headers = false;
                                  var headers
                                  while i<size(b) && headers==nil
                                      if b[i..(i+3)]==bytes().fromstring("\r\n\r\n") 
                                          headers = b[0..(i+3)].asstring()
                                          self.flash_buff = b[(i+4)..]
                                      else
                                          i += 1
                                      end
                                  end
                                  #print(headers)
                          		# check http respose for code 200/206
                                  if string.find(headers,"200 OK")>0 || string.find(headers,"206 Partial Content")>0
                                      log("FLH: HTTP Respose is 200 OK or 206 Partial Content",3)
                          		else
                                      log("FLH: HTTP Respose is not 200 OK or 206 Partial Content",3)
                          			print(headers)
                          			return -1
                                  end
                          		# only set flash size if pos is zero
                          		if pos == 0
                          			# check http respose for content-length
                          			var tag = "Content-Length: "
                          			i = string.find(headers,tag)
                          			if (i>0) 
                          				var i2 = string.find(headers,"\r\n",i)
                          				var s = headers[i+size(tag)..i2-1]
                          				self.flash_size=int(s)
                          			end
                          			log("FLH: Flash file size: "+str(self.flash_size),3)
                          		end
                          
                              end
                          
                              def flash_nextion(url)
                                  self.flash_size = 0
                                  var res = self.open_url_at(url, 0)
                          		if res != -1
                          			self.begin_nextion_flash()
                          		end
                              end
                          
                              def init()
                                  log("NXP: Initializing Driver")
                                  self.ser = serial(17, 16, 115200, serial.SERIAL_8N1)
                                  self.flash_mode = 0
                              end
                          
                          end
                          
                          var nextion = Nextion()
                          
                          tasmota.add_driver(nextion)
                          
                          def get_current_version(cmd, idx, payload, payload_json)
                          	import string
                          	var version_of_this_script = 4
                          	var jm = string.format("{\"nlui_driver_version\":\"%s\"}", version_of_this_script)
                          	tasmota.publish_result(jm, "RESULT")
                          end
                          
                          tasmota.add_cmd('GetDriverVersion', get_current_version)
                          
                          def update_berry_driver(cmd, idx, payload, payload_json)
                          	def task()
                          		import string
                          		var cl = webclient()
                          		cl.begin(payload)
                          		var r = cl.GET()
                          		if r == 200
                          			print("Sucessfully downloaded nspanel-lovelace-ui berry driver")
                          		else
                          			print("Error while downloading nspanel-lovelace-ui berry driver")
                          		end
                          		r = cl.write_file("autoexec.be")
                          		if r < 0
                          			print("Error while writeing nspanel-lovelace-ui berry driver")
                          		else
                          			print("Sucessfully written nspanel-lovelace-ui berry driver")
                          			var s = load('autoexec.be')
                          			if s == true
                          				var jm = string.format("{\"nlui_driver_update\":\"%s\"}", "succeeded")
                          				tasmota.publish_result(jm, "RESULT")
                          			else 
                          				var jm = string.format("{\"nlui_driver_update\":\"%s\"}", "failed")
                          				tasmota.publish_result(jm, "RESULT")
                          			end
                          			
                          		end
                          	end
                          	tasmota.set_timer(0,task)
                          	tasmota.resp_cmnd_done()
                          end
                          
                          tasmota.add_cmd('UpdateDriverVersion', update_berry_driver)
                          
                          def flash_nextion(cmd, idx, payload, payload_json)
                              def task()
                                  nextion.flash_nextion(payload)
                              end
                              tasmota.set_timer(0,task)
                              tasmota.resp_cmnd_done()
                          end
                          
                          def send_cmd(cmd, idx, payload, payload_json)
                              nextion.sendnx(payload)
                              tasmota.resp_cmnd_done()
                          end
                          
                          def send_cmd2(cmd, idx, payload, payload_json)
                              nextion.send(payload)
                              tasmota.resp_cmnd_done()
                          end
                          
                          tasmota.add_cmd('Nextion', send_cmd)
                          tasmota.add_cmd('CustomSend', send_cmd2)
                          tasmota.add_cmd('FlashNextion', flash_nextion)
                          

                          MQTT-Settings:
                          cda2f93c-4ac6-4ac6-931b-621dfa4b9060-grafik.png

                          Sonstige Einstellungen/Vorlage

                          {"NAME":"NSPanel","GPIO":[0,0,0,0,3872,0,0,0,0,0,32,0,0,0,0,225,0,480,224,1,0,0,0,33,0,0,0,0,0,0,0,0,0,0,4736,0],"FLAG":0,"BASE":1}
                          

                          f7092fcf-15c4-47e7-bbbb-80637be9c156-grafik.png

                          Das mqtt.1. muss in beide Richtungen kommunizieren. RESULT funktioniert. Teste es doch bitte so wie beschrieben. Deinen Mosquitto kannst du anschließend immer noch bemühen.

                          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.

                          Andreas_ZA 1 Antwort Letzte Antwort
                          0
                          • ArmilarA Armilar

                            @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

                            Grundsätzlich scheint etwas über MQTT anzukommen, das Schalten von POWER1 manuell über das Objekt SmartHome/NSPanel_1/cmnd/POWER funktioniert.
                            Wenn ich CustomSend time~12:00 in der Konsole absende, wird aber nichts auf dem Display angezeigt.
                            autexec.be:

                            # Sonoff NSPanel Tasmota Lovelace UI Berry Driver | code by joBr99
                            # based on;
                            # Sonoff NSPanel Tasmota (Nextion with Flashing) driver | code by peepshow-21
                            # based on;
                            # Sonoff NSPanel Tasmota driver v0.47 | code by blakadder and s-hadinger
                            
                            # Example Flash
                            # FlashNextion http://ip-address-of-your-homeassistant:8123/local/nspanel.tft
                            # FlashNextion http://nspanel.pky.eu/lui.tft
                            
                            class Nextion : Driver
                            
                                static header = bytes('55BB')
                            
                                static flash_block_size = 4096
                            
                                var flash_mode
                            	var flash_start_millis
                                var flash_size
                                var flash_written
                                var flash_buff
                                var flash_offset
                                var awaiting_offset
                                var tcp
                                var ser
                                var last_per
                            	var url
                            
                                def split_55(b)
                                  var ret = []
                                  var s = size(b)   
                                  var i = s-2   # start from last-1
                                  while i > 0
                                    if b[i] == 0x55 && b[i+1] == 0xBB           
                                      ret.push(b[i..s-1]) # push last msg to list
                                      b = b[(0..i-1)]   # write the rest back to b
                                    end
                                    i -= 1
                                  end
                                  ret.push(b)
                                  return ret
                                end
                            
                                def crc16(data, poly)
                                  if !poly  poly = 0xA001 end
                                  # CRC-16 MODBUS HASHING ALGORITHM
                                  var crc = 0xFFFF
                                  for i:0..size(data)-1
                                    crc = crc ^ data[i]
                                    for j:0..7
                                      if crc & 1
                                        crc = (crc >> 1) ^ poly
                                      else
                                        crc = crc >> 1
                                      end
                                    end
                                  end
                                  return crc
                                end
                            
                            	# encode using custom protocol 55 BB [payload length] [payload length] [payload] [crc] [crc]
                                def encode(payload)
                                  var b = bytes()
                                  b += self.header
                                  b.add(size(payload), 2)   # add size as 2 bytes, little endian
                                  b += bytes().fromstring(payload)
                                  var msg_crc = self.crc16(b)
                                  b.add(msg_crc, 2)       # crc 2 bytes, little endian
                                  return b
                                end
                            
                                def encodenx(payload)
                                    var b = bytes().fromstring(payload)
                                    b += bytes('FFFFFF')
                                    return b
                                end
                            
                                def sendnx(payload)
                                    import string
                                    var payload_bin = self.encodenx(payload)
                                    self.ser.write(payload_bin)
                                    log(string.format("NXP: Nextion command sent = %s",str(payload_bin)), 3)       
                                end
                            
                                def send(payload)
                                    var payload_bin = self.encode(payload)
                                    if self.flash_mode==1
                                        log("NXP: skipped command becuase still flashing", 3)
                                    else 
                                        self.ser.write(payload_bin)
                                        log("NXP: payload sent = " + str(payload_bin), 3)
                                    end
                                end
                            
                                def write_to_nextion(b)
                                    self.ser.write(b)
                                end
                            
                                def screeninit()
                                    log("NXP: Screen Initialized")
                            		self.sendnx("recmod=1")		
                                end
                            
                                def write_block()
                                    
                                    import string
                                    log("FLH: Read block",3)
                                    while size(self.flash_buff)<self.flash_block_size && self.tcp.connected()
                                        if self.tcp.available()>0
                                            self.flash_buff += self.tcp.readbytes()
                                        else
                                            tasmota.delay(50)
                                            log("FLH: Wait for available...",3)
                                        end
                                    end
                                    log("FLH: Buff size "+str(size(self.flash_buff)),3)
                                    var to_write
                                    if size(self.flash_buff)>self.flash_block_size
                                        to_write = self.flash_buff[0..self.flash_block_size-1]
                                        self.flash_buff = self.flash_buff[self.flash_block_size..]
                                    else
                                        to_write = self.flash_buff
                                        self.flash_buff = bytes()
                                    end
                                    log("FLH: Writing "+str(size(to_write)),3)
                                    var per = (self.flash_written*100)/self.flash_size
                                    if (self.last_per!=per) 
                                        self.last_per = per
                                        tasmota.publish_result(string.format("{\"Flashing\":{\"complete\": %d, \"time_elapsed\": %d}}",per , (tasmota.millis()-self.flash_start_millis)/1000), "RESULT") 
                                    end
                                    if size(to_write)>0
                                        self.flash_written += size(to_write)
                                        self.ser.write(to_write)
                                    end
                                    log("FLH: Total "+str(self.flash_written),3)
                                    if (self.flash_written==self.flash_size)
                                        log("FLH: Flashing complete - Time elapsed: %d", (tasmota.millis()-self.flash_start_millis)/1000)
                                        self.flash_mode = 0
                            			self.ser = nil
                            			tasmota.gc()
                            			self.ser = serial(17, 16, 115200, serial.SERIAL_8N1)
                                    end
                            
                                end
                            
                                def every_100ms()
                                    import string
                                    if self.ser.available() > 0
                                        var msg = self.ser.read()
                                        if size(msg) > 0
                                            log(string.format("NXP: Received Raw = %s",str(msg)), 3)
                                            if (self.flash_mode==1)
                                                var strv = msg[0..-4].asstring()
                                                if string.find(strv,"comok 2")>=0
                                                    log("FLH: Send (High Speed) flash start")
                            						self.flash_start_millis = tasmota.millis()
                                                    #self.sendnx(string.format("whmi-wris %d,115200,res0",self.flash_size))
                                                    self.sendnx(string.format("whmi-wris %d,921600,res0",self.flash_size))
                            						self.ser = serial(17, 16, 921600, serial.SERIAL_8N1)
                                                elif size(msg)==1 && msg[0]==0x08
                                                    log("FLH: Waiting offset...",3)
                                                    self.awaiting_offset = 1
                                                elif size(msg)==4 && self.awaiting_offset==1
                                                    self.awaiting_offset = 0
                                                    self.flash_offset = msg.get(0,4)
                                                    log("FLH: Flash offset marker "+str(self.flash_offset),3)
                            						if self.flash_offset != 0
                            							self.open_url_at(self.url, self.flash_offset)
                            							self.flash_written = self.flash_offset
                            						end
                                                    self.write_block()
                                                elif size(msg)==1 && msg[0]==0x05
                                                    self.write_block()
                                                else
                                                    log("FLH: Something has gone wrong flashing display firmware ["+str(msg)+"]",2)
                                                end
                                            else
                                                var msg_list = self.split_55(msg)
                                                for i:0..size(msg_list)-1
                                                    msg = msg_list[i]
                                                    if size(msg) > 0
                                                        if msg == bytes('000000FFFFFF88FFFFFF')
                                                            self.screeninit()
                                                        elif size(msg)>=2 && msg[0]==0x55 && msg[1]==0xBB
                                                            var jm = string.format("{\"CustomRecv\":\"%s\"}",msg[4..-3].asstring())
                                                            tasmota.publish_result(jm, "RESULT")        
                                                        elif msg[0]==0x07 && size(msg)==1 # BELL/Buzzer
                                                            tasmota.cmd("buzzer 1,1")
                                                        else
                                                            var jm = string.format("{\"nextion\":\"%s\"}",str(msg[0..-4]))
                                                            tasmota.publish_result(jm, "RESULT")        
                                                        end
                                                    end       
                                                end
                                            end
                                        end
                                    end
                                end      
                            
                                def begin_nextion_flash()
                                    self.flash_written = 0
                                    self.awaiting_offset = 0
                                    self.flash_offset = 0
                                    self.sendnx('DRAKJHSUYDGBNCJHGJKSHBDN')
                                    self.sendnx('recmod=0')
                                    self.sendnx('recmod=0')
                                    self.flash_mode = 1
                                    self.sendnx("connect")        
                                end
                                
                                def open_url_at(url, pos)
                            		self.url = url
                                    import string
                                    var host
                                    var port
                                    var s1 = string.split(url,7)[1]
                                    var i = string.find(s1,":")
                                    var sa
                                    if i<0
                                        port = 80
                                        i = string.find(s1,"/")
                                        sa = string.split(s1,i)
                                        host = sa[0]
                                    else
                                        sa = string.split(s1,i)
                                        host = sa[0]
                                        s1 = string.split(sa[1],1)[1]
                                        i = string.find(s1,"/")
                                        sa = string.split(s1,i)
                                        port = int(sa[0])
                                    end
                                    var get = sa[1]
                                    log(string.format("FLH: host: %s, port: %s, get: %s",host,port,get))
                                    self.tcp = tcpclient()
                                    self.tcp.connect(host,port)
                                    log("FLH: Connected:"+str(self.tcp.connected()),3)
                                    var get_req = "GET "+get+" HTTP/1.0\r\n"
                            		get_req += string.format("Range: bytes=%d-\r\n", pos)
                            		get_req += string.format("HOST: %s:%s\r\n\r\n",host,port)
                                    self.tcp.write(get_req)
                                    var a = self.tcp.available()
                                    i = 1
                                    while a==0 && i<5
                                      tasmota.delay(100*i)
                                      tasmota.yield() 
                                      i += 1
                                      log("FLH: Retry "+str(i),3)
                                      a = self.tcp.available()
                                    end
                                    if a==0
                                        log("FLH: Nothing available to read!",3)
                                        return
                                    end
                                    var b = self.tcp.readbytes()
                                    i = 0
                                    var end_headers = false;
                                    var headers
                                    while i<size(b) && headers==nil
                                        if b[i..(i+3)]==bytes().fromstring("\r\n\r\n") 
                                            headers = b[0..(i+3)].asstring()
                                            self.flash_buff = b[(i+4)..]
                                        else
                                            i += 1
                                        end
                                    end
                                    #print(headers)
                            		# check http respose for code 200/206
                                    if string.find(headers,"200 OK")>0 || string.find(headers,"206 Partial Content")>0
                                        log("FLH: HTTP Respose is 200 OK or 206 Partial Content",3)
                            		else
                                        log("FLH: HTTP Respose is not 200 OK or 206 Partial Content",3)
                            			print(headers)
                            			return -1
                                    end
                            		# only set flash size if pos is zero
                            		if pos == 0
                            			# check http respose for content-length
                            			var tag = "Content-Length: "
                            			i = string.find(headers,tag)
                            			if (i>0) 
                            				var i2 = string.find(headers,"\r\n",i)
                            				var s = headers[i+size(tag)..i2-1]
                            				self.flash_size=int(s)
                            			end
                            			log("FLH: Flash file size: "+str(self.flash_size),3)
                            		end
                            
                                end
                            
                                def flash_nextion(url)
                                    self.flash_size = 0
                                    var res = self.open_url_at(url, 0)
                            		if res != -1
                            			self.begin_nextion_flash()
                            		end
                                end
                            
                                def init()
                                    log("NXP: Initializing Driver")
                                    self.ser = serial(17, 16, 115200, serial.SERIAL_8N1)
                                    self.flash_mode = 0
                                end
                            
                            end
                            
                            var nextion = Nextion()
                            
                            tasmota.add_driver(nextion)
                            
                            def get_current_version(cmd, idx, payload, payload_json)
                            	import string
                            	var version_of_this_script = 4
                            	var jm = string.format("{\"nlui_driver_version\":\"%s\"}", version_of_this_script)
                            	tasmota.publish_result(jm, "RESULT")
                            end
                            
                            tasmota.add_cmd('GetDriverVersion', get_current_version)
                            
                            def update_berry_driver(cmd, idx, payload, payload_json)
                            	def task()
                            		import string
                            		var cl = webclient()
                            		cl.begin(payload)
                            		var r = cl.GET()
                            		if r == 200
                            			print("Sucessfully downloaded nspanel-lovelace-ui berry driver")
                            		else
                            			print("Error while downloading nspanel-lovelace-ui berry driver")
                            		end
                            		r = cl.write_file("autoexec.be")
                            		if r < 0
                            			print("Error while writeing nspanel-lovelace-ui berry driver")
                            		else
                            			print("Sucessfully written nspanel-lovelace-ui berry driver")
                            			var s = load('autoexec.be')
                            			if s == true
                            				var jm = string.format("{\"nlui_driver_update\":\"%s\"}", "succeeded")
                            				tasmota.publish_result(jm, "RESULT")
                            			else 
                            				var jm = string.format("{\"nlui_driver_update\":\"%s\"}", "failed")
                            				tasmota.publish_result(jm, "RESULT")
                            			end
                            			
                            		end
                            	end
                            	tasmota.set_timer(0,task)
                            	tasmota.resp_cmnd_done()
                            end
                            
                            tasmota.add_cmd('UpdateDriverVersion', update_berry_driver)
                            
                            def flash_nextion(cmd, idx, payload, payload_json)
                                def task()
                                    nextion.flash_nextion(payload)
                                end
                                tasmota.set_timer(0,task)
                                tasmota.resp_cmnd_done()
                            end
                            
                            def send_cmd(cmd, idx, payload, payload_json)
                                nextion.sendnx(payload)
                                tasmota.resp_cmnd_done()
                            end
                            
                            def send_cmd2(cmd, idx, payload, payload_json)
                                nextion.send(payload)
                                tasmota.resp_cmnd_done()
                            end
                            
                            tasmota.add_cmd('Nextion', send_cmd)
                            tasmota.add_cmd('CustomSend', send_cmd2)
                            tasmota.add_cmd('FlashNextion', flash_nextion)
                            

                            MQTT-Settings:
                            cda2f93c-4ac6-4ac6-931b-621dfa4b9060-grafik.png

                            Sonstige Einstellungen/Vorlage

                            {"NAME":"NSPanel","GPIO":[0,0,0,0,3872,0,0,0,0,0,32,0,0,0,0,225,0,480,224,1,0,0,0,33,0,0,0,0,0,0,0,0,0,0,4736,0],"FLAG":0,"BASE":1}
                            

                            f7092fcf-15c4-47e7-bbbb-80637be9c156-grafik.png

                            Das mqtt.1. muss in beide Richtungen kommunizieren. RESULT funktioniert. Teste es doch bitte so wie beschrieben. Deinen Mosquitto kannst du anschließend immer noch bemühen.

                            Andreas_ZA Offline
                            Andreas_ZA Offline
                            Andreas_Z
                            schrieb am zuletzt editiert von
                            #49

                            @armilar
                            Habe ich, MQTT.2 ist als Server (mit anderem Port) konfiguriert und identischem Resultat, es wird nichts auf dem Display angezeigt:

                            mqtt.2	2022-09-23 19:32:17.692	info	Client [NSPanel_1] publishOnSubscribe send all known states
                            mqtt.2	2022-09-23 19:32:17.691	info	Client [NSPanel_1] publishOnSubscribe send all known states
                            mqtt.2	2022-09-23 19:32:17.689	info	Client [NSPanel_1] publishOnSubscribe send all known states
                            mqtt.2	2022-09-23 19:32:17.492	info	Client [NSPanel_1] subscribes on "cmnd/NSPanel_1_fb/#" with regex /^mqtt\.2\.cmnd\.NSPanel_1_fb(\..*)?/
                            mqtt.2	2022-09-23 19:32:17.492	info	Client [NSPanel_1] subscribes on "cmnd/NSPanel_1_fb/#" with regex /^cmnd\.NSPanel_1_fb(\..*)?/
                            mqtt.2	2022-09-23 19:32:17.491	info	Client [NSPanel_1] subscribes on "SmartHome/tasmotas/cmnd/#" with regex /^mqtt\.2\.SmartHome\.tasmotas\.cmnd(\..*)?/
                            mqtt.2	2022-09-23 19:32:17.490	info	Client [NSPanel_1] subscribes on "SmartHome/tasmotas/cmnd/#" with regex /^SmartHome\.tasmotas\.cmnd(\..*)?/
                            mqtt.2	2022-09-23 19:32:17.489	info	Client [NSPanel_1] subscribes on "SmartHome/NSPanel_1/cmnd/#" with regex /^mqtt\.2\.SmartHome\.NSPanel_1\.cmnd(\..*)?/
                            mqtt.2	2022-09-23 19:32:17.489	info	Client [NSPanel_1] subscribes on "SmartHome/NSPanel_1/cmnd/#" with regex /^SmartHome\.NSPanel_1\.cmnd(\..*)?/
                            mqtt.2	2022-09-23 19:32:17.454	info	Client [NSPanel_1] connected with secret 1663954337450_1441
                            mqtt.2	2022-09-23 19:32:07.977	info	Client [NSPanel_1] connection closed: closed
                            javascript.0	2022-09-23 19:30:27.658	info	script.js.common.NSPanel_1: registered 12 subscriptions, 6 schedules, 0 messages, 0 logs and 0 file subscriptions
                            javascript.0	2022-09-23 19:30:27.636	info	script.js.common.NSPanel_1: TypeScript compilation successful
                            javascript.0	2022-09-23 19:30:25.964	info	script.js.common.NSPanel_1: compiling TypeScript source...
                            javascript.0	2022-09-23 19:30:25.924	debug	File /home/Javascript/common/NSPanel_1.ts change
                            javascript.0	2022-09-23 19:30:25.924	info	Stop script script.js.common.NSPanel_1
                            javascript.0	2022-09-23 19:30:25.917	debug	Update /home/Javascript/common/NSPanel_1.ts on disk
                            

                            Werte im Script habe ich auf MQTT.2 geändert gehabt.

                            ArmilarA 1 Antwort Letzte Antwort
                            0
                            • Andreas_ZA Andreas_Z

                              @armilar
                              Habe ich, MQTT.2 ist als Server (mit anderem Port) konfiguriert und identischem Resultat, es wird nichts auf dem Display angezeigt:

                              mqtt.2	2022-09-23 19:32:17.692	info	Client [NSPanel_1] publishOnSubscribe send all known states
                              mqtt.2	2022-09-23 19:32:17.691	info	Client [NSPanel_1] publishOnSubscribe send all known states
                              mqtt.2	2022-09-23 19:32:17.689	info	Client [NSPanel_1] publishOnSubscribe send all known states
                              mqtt.2	2022-09-23 19:32:17.492	info	Client [NSPanel_1] subscribes on "cmnd/NSPanel_1_fb/#" with regex /^mqtt\.2\.cmnd\.NSPanel_1_fb(\..*)?/
                              mqtt.2	2022-09-23 19:32:17.492	info	Client [NSPanel_1] subscribes on "cmnd/NSPanel_1_fb/#" with regex /^cmnd\.NSPanel_1_fb(\..*)?/
                              mqtt.2	2022-09-23 19:32:17.491	info	Client [NSPanel_1] subscribes on "SmartHome/tasmotas/cmnd/#" with regex /^mqtt\.2\.SmartHome\.tasmotas\.cmnd(\..*)?/
                              mqtt.2	2022-09-23 19:32:17.490	info	Client [NSPanel_1] subscribes on "SmartHome/tasmotas/cmnd/#" with regex /^SmartHome\.tasmotas\.cmnd(\..*)?/
                              mqtt.2	2022-09-23 19:32:17.489	info	Client [NSPanel_1] subscribes on "SmartHome/NSPanel_1/cmnd/#" with regex /^mqtt\.2\.SmartHome\.NSPanel_1\.cmnd(\..*)?/
                              mqtt.2	2022-09-23 19:32:17.489	info	Client [NSPanel_1] subscribes on "SmartHome/NSPanel_1/cmnd/#" with regex /^SmartHome\.NSPanel_1\.cmnd(\..*)?/
                              mqtt.2	2022-09-23 19:32:17.454	info	Client [NSPanel_1] connected with secret 1663954337450_1441
                              mqtt.2	2022-09-23 19:32:07.977	info	Client [NSPanel_1] connection closed: closed
                              javascript.0	2022-09-23 19:30:27.658	info	script.js.common.NSPanel_1: registered 12 subscriptions, 6 schedules, 0 messages, 0 logs and 0 file subscriptions
                              javascript.0	2022-09-23 19:30:27.636	info	script.js.common.NSPanel_1: TypeScript compilation successful
                              javascript.0	2022-09-23 19:30:25.964	info	script.js.common.NSPanel_1: compiling TypeScript source...
                              javascript.0	2022-09-23 19:30:25.924	debug	File /home/Javascript/common/NSPanel_1.ts change
                              javascript.0	2022-09-23 19:30:25.924	info	Stop script script.js.common.NSPanel_1
                              javascript.0	2022-09-23 19:30:25.917	debug	Update /home/Javascript/common/NSPanel_1.ts on disk
                              

                              Werte im Script habe ich auf MQTT.2 geändert gehabt.

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

                              @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

                              @armilar
                              Habe ich, MQTT.2 ist als Server (mit anderem Port) konfiguriert und identischem Resultat, es wird nichts auf dem Display angezeigt:

                              mqtt.2	2022-09-23 19:32:17.692	info	Client [NSPanel_1] publishOnSubscribe send all known states
                              mqtt.2	2022-09-23 19:32:17.691	info	Client [NSPanel_1] publishOnSubscribe send all known states
                              mqtt.2	2022-09-23 19:32:17.689	info	Client [NSPanel_1] publishOnSubscribe send all known states
                              mqtt.2	2022-09-23 19:32:17.492	info	Client [NSPanel_1] subscribes on "cmnd/NSPanel_1_fb/#" with regex /^mqtt\.2\.cmnd\.NSPanel_1_fb(\..*)?/
                              mqtt.2	2022-09-23 19:32:17.492	info	Client [NSPanel_1] subscribes on "cmnd/NSPanel_1_fb/#" with regex /^cmnd\.NSPanel_1_fb(\..*)?/
                              mqtt.2	2022-09-23 19:32:17.491	info	Client [NSPanel_1] subscribes on "SmartHome/tasmotas/cmnd/#" with regex /^mqtt\.2\.SmartHome\.tasmotas\.cmnd(\..*)?/
                              mqtt.2	2022-09-23 19:32:17.490	info	Client [NSPanel_1] subscribes on "SmartHome/tasmotas/cmnd/#" with regex /^SmartHome\.tasmotas\.cmnd(\..*)?/
                              mqtt.2	2022-09-23 19:32:17.489	info	Client [NSPanel_1] subscribes on "SmartHome/NSPanel_1/cmnd/#" with regex /^mqtt\.2\.SmartHome\.NSPanel_1\.cmnd(\..*)?/
                              mqtt.2	2022-09-23 19:32:17.489	info	Client [NSPanel_1] subscribes on "SmartHome/NSPanel_1/cmnd/#" with regex /^SmartHome\.NSPanel_1\.cmnd(\..*)?/
                              mqtt.2	2022-09-23 19:32:17.454	info	Client [NSPanel_1] connected with secret 1663954337450_1441
                              mqtt.2	2022-09-23 19:32:07.977	info	Client [NSPanel_1] connection closed: closed
                              javascript.0	2022-09-23 19:30:27.658	info	script.js.common.NSPanel_1: registered 12 subscriptions, 6 schedules, 0 messages, 0 logs and 0 file subscriptions
                              javascript.0	2022-09-23 19:30:27.636	info	script.js.common.NSPanel_1: TypeScript compilation successful
                              javascript.0	2022-09-23 19:30:25.964	info	script.js.common.NSPanel_1: compiling TypeScript source...
                              javascript.0	2022-09-23 19:30:25.924	debug	File /home/Javascript/common/NSPanel_1.ts change
                              javascript.0	2022-09-23 19:30:25.924	info	Stop script script.js.common.NSPanel_1
                              javascript.0	2022-09-23 19:30:25.917	debug	Update /home/Javascript/common/NSPanel_1.ts on disk
                              

                              Werte im Script habe ich auf MQTT.2 geändert gehabt.

                              So und jetzt bitte mal die mqtt-Einstellungen aus dem mqtt.2. und aus Tasmota posten. Ich denke wir finden den Fehler noch

                              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.

                              Andreas_ZA 1 Antwort Letzte Antwort
                              0
                              • ArmilarA Armilar

                                @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

                                @armilar
                                Habe ich, MQTT.2 ist als Server (mit anderem Port) konfiguriert und identischem Resultat, es wird nichts auf dem Display angezeigt:

                                mqtt.2	2022-09-23 19:32:17.692	info	Client [NSPanel_1] publishOnSubscribe send all known states
                                mqtt.2	2022-09-23 19:32:17.691	info	Client [NSPanel_1] publishOnSubscribe send all known states
                                mqtt.2	2022-09-23 19:32:17.689	info	Client [NSPanel_1] publishOnSubscribe send all known states
                                mqtt.2	2022-09-23 19:32:17.492	info	Client [NSPanel_1] subscribes on "cmnd/NSPanel_1_fb/#" with regex /^mqtt\.2\.cmnd\.NSPanel_1_fb(\..*)?/
                                mqtt.2	2022-09-23 19:32:17.492	info	Client [NSPanel_1] subscribes on "cmnd/NSPanel_1_fb/#" with regex /^cmnd\.NSPanel_1_fb(\..*)?/
                                mqtt.2	2022-09-23 19:32:17.491	info	Client [NSPanel_1] subscribes on "SmartHome/tasmotas/cmnd/#" with regex /^mqtt\.2\.SmartHome\.tasmotas\.cmnd(\..*)?/
                                mqtt.2	2022-09-23 19:32:17.490	info	Client [NSPanel_1] subscribes on "SmartHome/tasmotas/cmnd/#" with regex /^SmartHome\.tasmotas\.cmnd(\..*)?/
                                mqtt.2	2022-09-23 19:32:17.489	info	Client [NSPanel_1] subscribes on "SmartHome/NSPanel_1/cmnd/#" with regex /^mqtt\.2\.SmartHome\.NSPanel_1\.cmnd(\..*)?/
                                mqtt.2	2022-09-23 19:32:17.489	info	Client [NSPanel_1] subscribes on "SmartHome/NSPanel_1/cmnd/#" with regex /^SmartHome\.NSPanel_1\.cmnd(\..*)?/
                                mqtt.2	2022-09-23 19:32:17.454	info	Client [NSPanel_1] connected with secret 1663954337450_1441
                                mqtt.2	2022-09-23 19:32:07.977	info	Client [NSPanel_1] connection closed: closed
                                javascript.0	2022-09-23 19:30:27.658	info	script.js.common.NSPanel_1: registered 12 subscriptions, 6 schedules, 0 messages, 0 logs and 0 file subscriptions
                                javascript.0	2022-09-23 19:30:27.636	info	script.js.common.NSPanel_1: TypeScript compilation successful
                                javascript.0	2022-09-23 19:30:25.964	info	script.js.common.NSPanel_1: compiling TypeScript source...
                                javascript.0	2022-09-23 19:30:25.924	debug	File /home/Javascript/common/NSPanel_1.ts change
                                javascript.0	2022-09-23 19:30:25.924	info	Stop script script.js.common.NSPanel_1
                                javascript.0	2022-09-23 19:30:25.917	debug	Update /home/Javascript/common/NSPanel_1.ts on disk
                                

                                Werte im Script habe ich auf MQTT.2 geändert gehabt.

                                So und jetzt bitte mal die mqtt-Einstellungen aus dem mqtt.2. und aus Tasmota posten. Ich denke wir finden den Fehler noch

                                Andreas_ZA Offline
                                Andreas_ZA Offline
                                Andreas_Z
                                schrieb am zuletzt editiert von
                                #51

                                @armilar
                                e1652012-6fd2-438d-abc2-f94ba4e0970a-grafik.png
                                2ce24076-bdd3-4220-9366-35967ae6130a-grafik.png
                                478e3ba9-2c46-4b93-a3fd-70d8e8ecfa30-grafik.png

                                By the way, Respekt und dank für deine Geduld :+1:

                                ArmilarA 1 Antwort Letzte Antwort
                                0
                                • Andreas_ZA Andreas_Z

                                  @armilar
                                  e1652012-6fd2-438d-abc2-f94ba4e0970a-grafik.png
                                  2ce24076-bdd3-4220-9366-35967ae6130a-grafik.png
                                  478e3ba9-2c46-4b93-a3fd-70d8e8ecfa30-grafik.png

                                  By the way, Respekt und dank für deine Geduld :+1:

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

                                  @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

                                  @armilar
                                  e1652012-6fd2-438d-abc2-f94ba4e0970a-grafik.png
                                  2ce24076-bdd3-4220-9366-35967ae6130a-grafik.png
                                  478e3ba9-2c46-4b93-a3fd-70d8e8ecfa30-grafik.png

                                  By the way, Respekt und dank für deine Geduld :+1:

                                  Denke ich habe was ... Bitte nach und nach..

                                  Haken "unbedingt" raus... und raus lassen
                                  7a55f046-e18d-44c5-9bcc-475e50ee9de9-image.png

                                  Haken rein...
                                  492d66f8-8230-41d1-b9fc-3f8b45d39268-image.png

                                  Setze mal höher
                                  83b9a637-c580-4d5d-bbe9-7b589d19d940-image.png

                                  Wärst so ziemlich der erste bei dem es nicht funktioniert. Können wir irgendwie nicht auf uns sitzen lassen... ;-)

                                  und zum Schluss noch die beiden Zeilen aktualisieren, falls noch nicht geschehen...

                                      panelRecvTopic: 'mqtt.2.SmartHome.NSPanel_1.tele.RESULT',       // anpassen
                                      panelSendTopic: 'mqtt.2.SmartHome.NSPanel_1.cmnd.CustomSend',   // anpassen
                                  

                                  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.

                                  Andreas_ZA 1 Antwort Letzte Antwort
                                  0
                                  • ArmilarA Armilar

                                    @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

                                    @armilar
                                    e1652012-6fd2-438d-abc2-f94ba4e0970a-grafik.png
                                    2ce24076-bdd3-4220-9366-35967ae6130a-grafik.png
                                    478e3ba9-2c46-4b93-a3fd-70d8e8ecfa30-grafik.png

                                    By the way, Respekt und dank für deine Geduld :+1:

                                    Denke ich habe was ... Bitte nach und nach..

                                    Haken "unbedingt" raus... und raus lassen
                                    7a55f046-e18d-44c5-9bcc-475e50ee9de9-image.png

                                    Haken rein...
                                    492d66f8-8230-41d1-b9fc-3f8b45d39268-image.png

                                    Setze mal höher
                                    83b9a637-c580-4d5d-bbe9-7b589d19d940-image.png

                                    Wärst so ziemlich der erste bei dem es nicht funktioniert. Können wir irgendwie nicht auf uns sitzen lassen... ;-)

                                    und zum Schluss noch die beiden Zeilen aktualisieren, falls noch nicht geschehen...

                                        panelRecvTopic: 'mqtt.2.SmartHome.NSPanel_1.tele.RESULT',       // anpassen
                                        panelSendTopic: 'mqtt.2.SmartHome.NSPanel_1.cmnd.CustomSend',   // anpassen
                                    
                                    Andreas_ZA Offline
                                    Andreas_ZA Offline
                                    Andreas_Z
                                    schrieb am zuletzt editiert von
                                    #53

                                    @armilar Alles Umgesetzt, ohne Erfolg, was aber bisher immer passiert (Mit Mosqitto und über Iobroker Intern MQTT), wenn ich das Script neu gestartet oder geändert habe, das "This is taking longer ....." verschwindet für einen Moment und erscheint danach wieder, also scheint es ja doch eine Gewisse Kommunikation zu geben

                                    ArmilarA K 2 Antworten Letzte Antwort
                                    0
                                    • Andreas_ZA Andreas_Z

                                      @armilar Alles Umgesetzt, ohne Erfolg, was aber bisher immer passiert (Mit Mosqitto und über Iobroker Intern MQTT), wenn ich das Script neu gestartet oder geändert habe, das "This is taking longer ....." verschwindet für einen Moment und erscheint danach wieder, also scheint es ja doch eine Gewisse Kommunikation zu geben

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

                                      @andreas_z sagte in SONOFF NSPanel mit Lovelace UI:

                                      @armilar Alles Umgesetzt, ohne Erfolg, was aber bisher immer passiert (Mit Mosqitto und über Iobroker Intern MQTT), wenn ich das Script neu gestartet oder geändert habe, das "This is taking longer ....." verschwindet für einen Moment und erscheint danach wieder, also scheint es ja doch eine Gewisse Kommunikation zu geben

                                      Okay ich gebe auf. Kannst noch mal versuchen die IP im Broker auf den Server zusetzten und beide Kisten iobroker und Panel durchstarten. Mehr geht eigentlich nicht...

                                      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.

                                      1 Antwort Letzte Antwort
                                      0
                                      • K Kuckuckmann

                                        Hallo Community,

                                        wir haben viel zeit und Getippsel investiert und unserer Wiki ein bissel Glanz und Struktur gegönnt.
                                        Ja, wir wissen wir sind am Anfang und eine Wiki ist ja bekanntlich nie zu Ende, bzw. lebt von dem was wir alle noch hinzufügen werden.

                                        --> ZUR WIKI <--

                                        Neben dem alten klassischen Menü, welches man noch aufklappen kann, gibt es jetzt links ein neues hübsches Menü, welches Euch mit einem kurzen Blick&Klick in den richtigen Bereich führt.
                                        Am unteren Ende einer Seite gibt es einen "nach oben Scroll Button".

                                        Wir hoffen, die neue Struktur hilft Euch in der Zukunft euch noch besser zurecht zu finden.

                                        Viel Spaß :-)

                                        Euer NSPanel LUI Team :-)

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

                                        @kuckuckmann (nur für deine Tests)

                                        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.

                                        1 Antwort Letzte Antwort
                                        0
                                        • Andreas_ZA Andreas_Z

                                          @armilar Alles Umgesetzt, ohne Erfolg, was aber bisher immer passiert (Mit Mosqitto und über Iobroker Intern MQTT), wenn ich das Script neu gestartet oder geändert habe, das "This is taking longer ....." verschwindet für einen Moment und erscheint danach wieder, also scheint es ja doch eine Gewisse Kommunikation zu geben

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

                                          @andreas_z
                                          Hi Andreas,

                                          was ich bei dem ganzen vermisse, ist die Bestätigung, dass CustomSend funktioniert.
                                          Da ich gerade selbst damit zu kämpfen hatte, stell bitte sicher, dass der entweder aus der Tasmota Konsole oder dem Mosquitto Explorer so wie in der Anleitung im Wiki auch passiert. Ich könnte mir vorstellen, dass dies die Lösung ist.

                                          LG

                                          NSPanel Dokumentation im GitHub Wiki:

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

                                          Andreas_ZA 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

                                          780

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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