Sonoff NSPanel + Tasmota Flash / Konfiguration

Vorbereitung:

Um das Sonoff NSPanel flashen zu können benötigt Ihr einen FTDI USB Adapter: ➥ https://amzn.to/3Bc3jd5 ➥ und ein ESP Flashing Tool ➥ https://github.com/Jason2866/ESP_Flasher/releases

Außerdem benötigt Ihr noch die aktuelle Tasmota Software (zum Zeitpunkt dieses Artikels 10.0.0.0, wir updaten diese dann via OTA auf die Developer Version 10.0.0.1) ➥ https://github.com/arendst/Tasmota/releases

Das Sonoff NSPanel bekommt Ihr aktuell nur den Ited Store ➥ https://bit.ly/3Fg6Qtd

Schaut auch mal bei Blakadder (https://github.com/blakadder/nspanel) vorbei der Hat dazu auch eine gute Doku geschrieben und ohne Ihm wäre das ganze hier nicht möglich. An dieser Stelle nochmal herzlichen Dank und super Arbeit!!!

Um das Panel zu flashen ladet Ihr euch die tasmota32.bin Datei herunter. Verbindet dann die Pins des Panels mit dem FTDI Adapter. Vorsicht das Ground Signals des FTDI Adapter wird hier aufgesplittet und geht dann bei Panel an den Pin GND & IO0. Danach öffnet Ihr den ESP Flasher, wählt den USB Port aus öffnet die tasmota32.bin Datei und klickt auf Flash.

Nachdem Das NSPanel geflashed wurde verbindet Ihr euch mit dem Smartphone oder dem PC mit dem verfügbaren Tasmota WiFi und gebt eure WLAN Zugangsdaten ein. Jetzt sollte das Panel online gehen und Ihr könnt euch mit dessen IP Adresse im Browser verbinden.

Tasmota Einstellungen:

Jetzt müssen wir Tasmota konfigurieren. Als erstes geht Ihr auf – Configuration – Configuration Module und wählt bei Module Type ESP32-DevKit (0) aus und klickt auf speichern.

Geht dann auf – Configuration – Configuration Other und füght oben bei Template diese Zeile ein:

{"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,"CMND":"ADCParam 2,64000,10000,3950 | Sleep 0 | BuzzerPWM 1"}

Jetzt könnt Ihr Beide Relais steuern und bekommt auch schon die Temperatur Werte des NSPanel´s angezeigt.

Natürlich könnt Ihr nun eure MQTT Zugangsdaten usw. eingeben.

Um jetzt versch. Widgets, WiFi Signalstärke, Temp & Wetterdaten zu bekommen benötigen wir noch einen Treiber bzw. ein Script.

Dazu geht Ihr auf – Consoles – Manage File system und legt die Datei entweder Manuell an oder Ihr fügt diese nspanel.be Datei hinzu. Um die Datei manuell anzulegen klickt Ihr auf – Create and edit new file gebt dann als Namen nspanel.be ein und fügt die Zeilen aus dieser Datei ein nspanel.be

Um das Ganze jetzt automatisch zu starten müssen wir noch eine weiter Datei anlegen. Klickt wieder auf – Create and edit new file und gebt autoexec.be als Namen ein und fügt diese Zeile ein:

load("nspanel")

Nachdem Ihr diese zwei Dateien hochgeladen habt könnt Ihr noch in die nspanel.be File reingehen und die Location oben welche jetzt mit NorthPole angegeben wird in euren Ort ändern und speichern. Ihr könnt die Location aber auch in der Console eingeben und zwar sucht Ihr euch erst euren Ort auf https://www.latlong.net/convert-address-to-lat-long.html und gebt dann in die Console ein: Longitude 424325 mit Enter bestätigen und Latitude 8789679034 mit Enter bestätigen. Was ich dann noch gesetzt habe war die richtige Uhrzeit. Diese geben wir wiederum in die Console ein mit: timezone 99 , wieder mit Enter bestätigen.

Danach könnt Ihr das Panel vom Strom nehmen. Nach einer kurzen Zeit könnt Ihr dieses dann wieder mit Strom verbinden und die Daten bzw. Widgets sollten sich nach und nach laden. Falls Ihr alles kontrollieren wollt könnt Ihr die Console öffnen und nach evtl. Fehlermeldungen suchen. Nun sollte das ganze dann so aussehen, die Dateien autoexec.bec und nspanel.bec werden automatisch erstellt.

MQTT Signale auslesen:

Sofern alles funktioniert können wir uns jetzt an die Einbindung in ein SmartHome System kümmern. Meine Wahl fällt hier auf openHAB 3 jedoch sollten diese Befehle auch in anderen Systemen wie z.B. HomeAssistant funktionieren.

Meine Vorgehensweiße bei MQTT Geräten bzw. Befehlen ist eigentlich immer die Selbe. Ich schaue mir die Befehle in der Tasmota Console an. Dann bekommen wir Zeilen bzw. Befehle wie diese:

MQT: tele/NSPanel/SENSOR = {"Time":"2021-10-29T17:00:45","ANALOG":{"Temperature1":20.7},"ESP32":{"Temperature":41.8},"TempUnit":"C"}

Nachdem Ihr jetzt den linken unteren Schalter (der das Relais 1 schaltet) gedrückt habt solltet Ihr diese Nachricht bekommen:

17:06:40.102 MQT: stat/NSPanel/RESULT = {"POWER1":"ON"}
17:06:40.113 MQT: stat/NSPanel/POWER1 = ON
17:06:40.184 NSP: Switch state updated with {"switches":[{"outlet":0,"switch":"on"},{"outlet":1,"switch":"off"}]}
17:06:40.188 NSP: Sent = {"switches":[{"outlet":0,"switch":"on"},{"outlet":1,"switch":"off"}]}
17:06:40.416 NSP: Received Raw = bytes('55AA870B007B226572726F72223A307D55010055AA870B007B226572726F7222...')

openHAB 3 Temperatur Sensor Integration:

Mit diesen Daten können wir im Grunde das Relais 1 bzw. den linken Switch und den Temperatur Sensor schon in openHAB 3 einbinden.

Um jetzt nicht ständig in die Console schauen zu müssen benutze ich gerne das Programm mqtt.fx.

Als erstes fügen wir den TemperaturSensor bzw. die Zimmertemperatur in das openHAB 3 System hinzu.

Dazu geht Ihr auf – Settings – Things – dann unten auf das Plus Symbol um ein Neues Thing zu erstellen. Hier wählt Ihr nun das MQTT Binding aus und klickt auf Generic MQTT Thing. Dann vergebt Ihr eine ID einen Namen und eine Location (in meinem Fall NSPanel) und wählt dann bei Bridge euren MQTT Broker aus. Jetzt müssen wir noch Channels hinzufügen dazu geht Ihr im Reiter oben auf Channels und klickt auf Add Channel. Dann vergebt Ihr wieder eine ID und ein Label ich nutze hier NSPanelTempSensor als ID und Namen. Als – Channel type wählt Ihr Text Value aus. Jetzt müsst Ihr unten bei – Configuration ein MQTT State Topic eingeben dieses haben wir ja oben in der Console bzw. mit mqtt.fx herausgefunden:

tele/NSPanel/SENSOR

Dann geht Ihr auf Create und der Channel für die Raumtemp. bzw. Geräte Temperatur ist angelegt. Jetzt wählt Ihr den Channel NSPanel Temp Sensor aus und klickt auf – Add Link to Item. Hier wählt Ihr nun Create a new Item und vergebt wieder einen Namen, ID usw. Als – Type wählt Ihr Number, als – Semantic Class Measurement, als – Semantic Property Temperature.

Dann müsst Ihr unten noch ein Profile auswählen, JSONPATH.

Da gebt Ihr dann folgendes in die JSONPath Expression Zeile ein:

$.ANALOG.Temperature1

Nun bekommt Ihr die Temperatur des Sensors ausgegeben aber im Moment nur als Zahlenwert und nicht in °C. Um das zu ändern geht Ihr in das Item rein und legt eine State Description an:

%.2f °C

So und nun wird die Temperatur sauber dargestellt.

openHAB 3 Relais 1 / Schalter 1 Integration:

Als nächstes Binden wir das Relais1 bzw. den linken Schalter ein. Das ist auch ganz einfach Ihr verwendet dazu wieder das zuvor angelegte Thing NSPanel und legt dann einen neuen Channel an. Dieses mal wählt Ihr bei – MQTT State Topic:

stat/NSPanel/POWER1

und bei dem Command Topic wie wir oben in der Console bzw. mqtt.fx rausbekommen haben diese Zeile ein:

cmnd/NSPanel/POWER1

Klickt auf Create und dann auf +Add Link to Item und legt hier einen einfachen Switch an.

openHAB 3 Touch Widgets Integration:

Das war der einfache Teil und jetzt wird es Interessant 😉 Wir wollen natürlich auch die Touch Widgets und das Thermostat Widget einbinden dazu benötigen wir ein bisschen mehr.

Ihr wählt wieder das NSPanel Thing aus und legt für das Index1 Widget einen Channel an hierzu wähle Ich die ID und den Namen z.b. NSPanelTouch1 und als Channel type – Text Value. Um das MQTT State Topic zu bekommen öffne ich wieder die Tasmota Console oder das mqtt.fx und betätige auf dem NSPanel das Touch Widget Index 1.

17:43:50.385 NSP: Received Raw = bytes('55AA865D007B226374797065223A2267726F7570222C226964223A2231222C22...')
17:43:50.416 MQT: tele/NSPanel/RESULT = {"NSPanel":{"ctype":"group","id":"1","params":{"switch":"off","switches":[{"switch":"off","outlet":0}]}}}

Diese Zeilen werden ausgegeben. Somit wissen wir das wir als MQTT State Topic diese Zeile benötigen:

tele/NSPanel/RESULT

Dann erstellt Ihr ein neues Item wählt hier als Type String aus und unten bei den Profile – JSONPATH. In die JSONPath Expression Zeile geben wir dann folgendes ein:

$.NSPanel[?(@.id =="1")].params.switches[0].switch

Zur Erklärung: wir gehen hier mit $.NSPanel ind die erste Klammer dann “bestätigen” wir dass es sich um die “id”:”1″ handelt gehen dann in die erste Klammer im “Überordner” params mit params.switches[0] rein und wollen darin den Befehl “on” bzw. “off” der “switch” Ausgabe erhalten deswegen nochmal switch am Ende.

So jetzt solltet Ihr beim Betätigen des Widgets Index 1 eine Ausgabe in on oder off bekommen. Um jetzt diesen Touch Befehl mit einem openHAB item zu verknüpfen habe ich einfach zwei Regeln angelegt. Und eine Regel um das Item (in meinem Fall das BüroLicht) einzuschalten und eine um das Licht wieder auszuschalten.

Dazu wählt Ihr bei der Regel bei When – NSPanelTouch1 changed from off to on Then Send command ON to BüroLicht. Diese müsst Ihr natürlich auch noch umdrehen um das Licht wieder auszuschalten.

Nun sollte es euch möglich sein z.b. ein Licht mit dem Touch Befehl des Widgets Index 1 zu schalten.

Leider haben wir nun noch das Problem das die Befehle nicht an das NSPanel zurückgegeben werden, also wenn Ihr den Physischen Lichtschalter oder in openHAB betätigt weiß das NSPanel nichts davon. Um das zu lösen benötigen wir einen weiteren Channel bzw. Item. Diesen Channel habe ich NSPanelTouchSendState benannt und als Channel Type Text Value gewählt und bei MQTT Command Topic diese Zeile eingegeben:

cmnd/NSPanel/nspsend

Dann noch auf +Add Link to Item , dort legt ihr dann das gleichnamige Item an mit dem Standard Profile. Dieses Item ist dazu da Befehle an das NSPanel zu schicken um so den State des Widgets upzudaten.

Jetz benötigen wir dazu noch eine Regel bzw. ein Script. In meinem Fall habe ich die Regel NSPanel Send Office Light State benannt.

In dieser Regel habe ich dann bei When – When BüroLicht changed gesetzt und bei Then ein ECMAScript eingefügt:

state =  itemRegistry.getItem("BüroLicht").getState().toString().toLowerCase();
command = '{"relation":[{"id":"1","online":true,"params":{"switch":"' + state + '"}}]}';
events.sendCommand("NSPanel_NSPanelTouchSendState", command);

Wenn alles gut läuft sollte es euch jetzt möglich sein mittels NSPanel Touch Widget Index 1 das Licht ein und auszuschalten. Auch andersherum sollte es möglich sein das Licht in openHAB oder am physischen Schalter zu bedienen und auf dem Panel den richtigen Status gesetzt zu bekommen.

openHAB 3 Thermostat Control Integration:

Für das Thermostat Control lesen wir wieder die Befehle bzw. die Zeilen aus und wir bekommen:

20:15:29.742 NSP: Received Raw = bytes('55AA841D007B224154434D6F6465223A302C2241544345787065637430223A32...')
20:15:29.766 MQT: tele/NSPanel/RESULT = {"NSPanel":{"ATCMode":0,"ATCExpect0":22}}

Nun legen wir uns einen Channel wieder im Thing NSPanel an den wir NSPanelThermostat benennen, als Channel type wählen wir Text Value und bei dem MQTT State Topic tragen wir diese Zeile ein:

tele/NSPanel/RESULT

Dann +Add Link to Item und wählen hier den Namen NSPanelThermostatSetpoint , als String und Semantic Class Measurement und Semantic Property Temperature. Wenn Ihr dann das Thermostat Panel anschaltet und die Temperatur Werte verstellt solltet Ihr den eingestellten Wert mit diesen Item (NSPanelThermostatSetpoint) in openHAB bekommen.

Jetzt Verknüpfen wir noch unser eigentliches Thermostat von openHAB (in meinem Fall die Küchenheizung – HeizungKuche_SetPointTemperature) mit dem gerade angelegten Item (NSPanelThermostatSetpoint) welches die Daten von dem Panel bekommt. Dazu erstellt Ihr eine neue Rule.

Ich nenne diese Regel NSPanelThermostatSendState1 und wähle bei dem When – When NSPanelThermostatSetpoint changed und bei dem Then dieses ECMAScript:

events.sendCommand("HeizungKuche_SetPointTemperature",itemRegistry.getItem("NSPanelTest_NSPanelThermostatSetpoint").getState());

Jetz benötigt Ihr wieder einen Channel bzw. ein Item das die Signale von openHAB an das NSPanel sendet. Dazu legen wir uns wieder unter dem NSPanel Thing einen Channel an, den benenne ich NSPanelThermostatSendState und als TextValue mit dem MQTT Command Topic

cmnd/NSPanel/nspsend

Dann wieder auf +Add Link to Item und wähle hier String und den Namen NSPanelThermostatSendState.

Jetzt benötigt Ihr noch eine zweite Regel um eben die Daten aus openHAB 3 mit dem NSPanel abgleichen zu können. Dazu erstellt Ihr die Regel NSPanel Send Thermostat State 2. Bei When wählt Ihr When HeizungKuche_SetPointTemperature changed und bei Then legen wir wieder ein ECMAScript an:

state =  itemRegistry.getItem("HeizungKuche_SetPointTemperature").getState().toString().replace(' °C','');
command = '{"ATCExpect0":' + state + '}';
events.sendCommand("NSPanelTest_NSPanelThermostatSendState", command);

Nachdem Ihr beide Rules enabled habt sollten sich die Thermostate synchronisieren.

Da ich im Moment das Panel auf dem Desktop benutze habe ich hier ein 3D Druck Gehäuse entworfen. Leider fehlt mir im Moment die Zeit um es zu verfeinern aber mit deinem Dremel passt das Panel super rein 😉

https://www.thingiverse.com/thing:5078454

TO BE CONTINUED …

51 Gedanken zu “Sonoff NSPanel + Tasmota Flash / Konfiguration

  1. Klasse, vielen Dank für die ausführliche Anleitung.
    Ich würde das Panel gerne an IOBroker testen und bereiben. Einen Sonoff-Adapter gibt es da zumindest.

    Nur eine kurze Frage zu ” Verbindet dann die Pins des Panels mit dem FTDI Adapter”. Muss ich hier was anlöten? Oder gibts dafür irgendwelche Stecker?

    Besten Gruß
    Chris

    1. Danke Dir!
      Das geht ganz einfach mit den Pins der Jumper Kabel, die steckst du in die Löcher vom Panel und drückst sie während des Flashvorgangs bisschen runter um so den Kontakt zu halten.
      Lg

  2. mit dem gedruckten gehäuse sieht das teil aus wie ne nordkoreanische alexa 😀
    btw…wenn du noch was zu dem panel schreiben solltest würde ich mich freuen, wenn du mal auf die touch-widgets eingehst. vlt auch ein paar bilder dazu welche typen es alles gibt. ist so ein touch widget eigentlich auch als item und nicht als gruppe nutzbar? also quasi als toogle schalter ohne eigenes untermenü.

    1. der Artikel wird laufend noch erweitert aber zu den Widgets ist mehr oder weniger schon alles gesagt 😉 evtl. werd ich den Teil noch erweitern falls das unklar sein sollte. Das mit dem Item ist eigentlich auch schon beschrieben ich füge das Index1 Widget (ohne Gruppe) als item bzw. als toggle switch in openhab ein. Evtl. wird das verständlicher wenn du das Teil mal in den Händen hältst 😉

      1. hab gestern 2 geordert und hoffe, dass die im dezember wie versprochen eintrudeln.
        das video aus diesem beitrag hab ich vorhin nur am telefon geschaut. da war leider nicht soviel zu erkennen wie das alles mit dem touch funktioniert. ansonsten werd ich das hier mal im auge behalten ;). danke für deine antwort.
        offtopic…gui items/rules/things config bei openhab3 find ich immer noch echt gruselig. bin seit oh1 dabei und werde wohl auf textconfig bleiben.

  3. Perfekte Anleitung, bekomme leider kein Update der Werte im Display hin, eine “nspanel.bec” wird nicht erstellt … was könnte ich falsch gemacht haben? Danke und Grüße

    1. Servus Olaf, danke Dir!
      Ich denke du hast garnichts falsch gemacht ich habe aktuell das selbe Problem… denke es liegt an der aktuellen Tasmota 10.1.0 oder an der aktuellen nspanel file. Hatte leider noch keine Zeit der Sache näher auf den Grund zu gehen aber wie gesagt mir gehts leider nach dem update von Tasmota genauso evtl. probierst du mal das unstable release oder 10.0.0.1 die ich im Video verwendet habe.
      Lg

      1. Ich habe jetzt die Files autoexec* gelöscht … und nspanel.be umbenannt in autoexec.be und neu gestartet … die Daten werden jetzt angezeigt! … mit Tasmota 10.1.0 Grüße

          1. Ich habe gestern Stunden verschwendet bis ich auf die Idee kam in der autoexec.be den Eintrag auf “load(“nspanel.be”)” zu setzen. Anschließend lässt sich auch mit NSPLocation der Standort auf Berlin etc setzen. Mit Tasmota 10.1.0, tasmota32-nspanel.bin hab ich garnicht zum Laufen bekommen.
            … Neues Problem … mein NSPanel misst -5°C bei Raumtemperatur. Hat noch jemand dieses Problem?

          2. Servus,

            ich hab auf Github den fix für den Temperatur Bug gefunden.
            “AdcParam1 2,19000,10000,3950” in der Konsole kalibriert den Sensor richtig. LG

  4. Hallo, SUPER Anleitung von dir. Danke.

    Ist es dir auch möglich eine Integration in den ioBroker zu Erklären?
    Insbesondere die Thermostat Control Integration.

    DANKE.

  5. Also ich kann mit meinem Paneel machen was ich will, bekomme immer diesen Fehler “Unexpected error: ESP Chip Auto-Detection failed: Failed to connect to Espressif device: Timed out waiting for packet header” TX/RX kann dabei richtig oder getauscht gesteckt sein spielt keine Rolle. Gibt es da etwas das ich nun auch beim 10ten mal überlesen habe? GND & IO0 sind auch verbunden. Für einen kleinen Tipp wäre ich echt dankbar.

    1. Stelle sicher das die einzelnen Pins Kontakt zur Platine haben.
      Ich hatte die gleiche Fehlermeldung, als ich zuerst die einzelnen Jumperkabel lose in die Löcher gesteckt habe.
      Danach habe ich die vier (Vcc, Rx, Tx, GND) Kabel mit Tesafilm zu einer “Stiftleiste” zusammengeklebt. I0 Habe ich mit der vorhanden Stiftleiste “J2” auf Pin: GND gebrückt. (siehe Pinout: https://blakadder.com/nspanel-teardown/).
      So hats dann auch geklappt – ich hoffe es hilft.
      Die Tipps in den Kommentaren zu “Temp Kalibrierung” + “Autostart” musste ich bei Tasmota 10.1.0 beherzigen, danke dafür.

        1. So habe nun glaube ich alle Varianten durch, Stifte direkt aufgelötet, FTDI getauscht – Die Neue Tasmota NS Panel probiert. Da geht ja mal gar nichts. Daher kurze Frage könnte ich das Teil mal wem zusenden der es dann versucht? Wollte eigentlich noch 3 von den Dingern zum Einsatz bringen, aber ohne Tasmota kein IoBroker (zumindest nicht wie ich es brauche). Wäre mir also wichtig zu wissen ob ich einfach nur zu doof bin oder aber hier ein Exemplar liegt das vielleicht einen Defekt hat. Die Boardversion ist übrigens 1.7, vielleicht liegt es ja auch daran. Im voraus mal vielen Dank, auch für die schon geleistete Hilfe!

          1. Ich habe das gleiche Problem wie du. Habe auch bereits gelötet, neuen FTDI und div. Kabel benutzt, aber immer mit der gleichen Fehlermeldung wie bei dir. Bist du mittlerweile schon weiter gekommen ?

          2. hast du das problem lösen können? stehe genau so wie du vor dem gleichen problem und hab schon alles probiert

    1. Hallo Christian,
      ich habe exakt das selbe Problem, mit der identischen Fehlermeldung (Board Version 17.09.2021, V 1.8). Allerdings bin ich mit esp-flasher und esptool auf einem Ubuntu Desktop 20.04 LTS angefangen, und bin dann nach Windows 10 gewechselt. Auf beiden Systemen ohne Erfolg. Der ESP32 braucht mehr Strom ca. 500mA, daher habe ich zuletzt die Platine mit einem externen Netzteil 12V 1,2A via Step-Down-Board (output 3,3V / 5V parallel zu 3,3V TTL) versorgt. Als TTL to USB verwende ich einen Cp210x von DSD TECH. Der ist schon etwas älter und kommt vielleicht mit einem ESP32 Chip nicht zurecht. Morgen kommen noch zwei andere Adapter. Mal sehen, ob es damit geht. Ich habe mit solchen Schwierigkeiten eigentlich nicht gerechnet.

      Konnte jemand das Problem lösen oder kann helfen?
      Viele Grüße Volker

      1. Es lag tatsächlich an dem USB to TTL Serial Adapter von DSD TECH.
        Mit dem AZ-Delivery (siehe Kommentare im Log).

        Hier die Dokumentation zum Flash
        (hab mal Tasmota Version 11.0.0 DE getestet).
        #############################################
        Geflasht mit esp-flasher
        OS Linux Ubuntu Desktop 20.04 LTS
        (sollte aber auch mit Windows 10 funktionieren)
        AZ-Delivery: FT232RL USB to TTL Serial Adapter
        ACHTUNG! Prüfen, ob ein USB Datenkabel
        Typ A Mini Usb Port vorhanden ist.
        (Ich habe etwas länger in meinem Fundus danach
        suchen müssen).
        Tasmota FW: 11-0-0_tasmota32-DE.bin
        #############################################

        Using ‘/dev/ttyUSB1’ as serial port.
        Connecting….
        Detecting chip type… ESP32
        Connecting…

        Chip Info:
        – Chip Family: ESP32
        – Chip Model: ESP32-D0WDQ5-V3 (revision 3)
        – Number of Cores: 2
        – Max CPU Frequency: 240MHz
        – Has Bluetooth: YES
        – Has Embedded Flash: NO
        – Has Factory-Calibrated ADC: YES
        – MAC Address: **:**:**:**:**:**
        Uploading stub…
        Running stub…
        Stub running…
        Changing baud rate to 460800
        Changed.
        – Flash Size: 4MB
        – Flash Mode: dout
        – Flash Frequency: 40MHz
        Erasing flash (this may take a while)…
        Chip erase completed successfully in 14.2s
        Flash will be erased from 0x00001000 to 0x00005fff…
        Flash will be erased from 0x00008000 to 0x00008fff…
        Flash will be erased from 0x0000e000 to 0x0000ffff…
        Flash will be erased from 0x00010000 to 0x0015ffff…
        Compressed 17104 bytes to 11191…
        Writing at 0x00001000… (100 %)
        Wrote 17104 bytes (11191 compressed) at 0x00001000 in 0.5 seconds (effective 294.8 kbit/s)…
        Hash of data verified.
        Compressed 3072 bytes to 129…
        Writing at 0x00008000… (100 %)
        Wrote 3072 bytes (129 compressed) at 0x00008000 in 0.0 seconds (effective 512.3 kbit/s)…
        Hash of data verified.
        Compressed 8192 bytes to 47…
        Writing at 0x0000e000… (100 %)
        Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 682.1 kbit/s)…
        Hash of data verified.
        Compressed 1373664 bytes to 965993…
        Writing at 0x00010000… (1 %)
        Writing at 0x0001694c… (3 %)
        Writing at 0x0001f4cb… (5 %)
        #### Log verkürzt kopiert ####
        Writing at 0x0014ed00… (96 %)
        Writing at 0x00154608… (98 %)
        Writing at 0x00159ae5… (100 %)
        Wrote 1373664 bytes (965993 compressed) at 0x00010000 in 23.0 seconds (effective 478.1 kbit/s)…
        Hash of data verified.

        Leaving…
        Hard Resetting…
        Hard resetting via RTS pin…
        Done! Flashing is complete!

        Showing logs:
        Serial port closed!

        1. Hier das selbe. Hatte einen CP2102 der einfach nicht wollte. Habe es stundenlang probiert. Linux, windows, andere Kabel, nochmal löten und und und….

          Dann den az-delivery mit FT232-RL chip bestellt und es lief sofort mit dem flashen. Schade das der bei mir nicht wollte aber naja zumindest ist jetzt das Rätsel für mich gelöst.

  6. Hallo und erstmal vielen Dank für die tolle Anleitung, es hat soweit alles auf Anhieb geklappt. Jetzt hänge ich an dem Thermostat Control fest. Der “String NSPanelThermostatSendState1” kommt bei mir in der Form
    {“NSPanel”:{“ATCMode”:0,”ATCExpect0″:23}} an. Jetzt kann man das ja mit .replace so umbauen, dass man nur die Zieltemperatur (23) hat, aber das bekomme ich einfach nicht hin. Hat jemand einen Tipp für mich?

    Vielen Dank & Gruß,
    Micha

      1. Hi Michi,
        das wäre echt nett, ich bekomme das irgendwie nicht hin. Du kannst das gerne hier posten, es haben bestimmt noch andere Interesse an der Lösung, könnte ich mir vorstellen.

        Hast Du Dich auch schon mal mit der Ansteuerung eines RGB-Stripes beschäftigt? Das wäre auch noch interessant.

        Dann habe ich gerade gelesen das man mit der uiid=11 ein Rollo-Widget erzeugen kann. Das werde ich mir als nächstes einmal anschauen.

        LG Micha

    1. Genauso kommt das auch bei mir an {“NSPanel”:{“ATCMode”:0,”ATCExpect0″:20}} ,muss auch so,sonst erkennt das NSPanel bzw. der ATC die Änderung nicht an und gibt ERROR aus

      1. Richtig,
        das kommt als String in openHab so an. Das NSPanel ist ab hier raus. Jetzt soll openHAB die Zieltemperatur an das HKT senden. In der Form kann ich den String aber nicht weiterverarbeiten, daher meine Frage wie man den so umbauen kann, dass man die Zieltemperatur aus dem String extrahiert…

        1. JSONPATH:$.NSPanel.ATCEXpect0 fürs auslesen

          Ist aber auch hier beschrieben:
          state = itemRegistry.getItem(“HeizungKuche_SetPointTemperature”).getState().toString().replace(‘ °C’,”);
          command = ‘{“ATCExpect0”:’ + state + ‘}’;
          events.sendCommand(“NSPanelTest_NSPanelThermostatSendState”, command);

          Ich habe es so umgesetzt,in einer Rule als Script:

          state = itemRegistry.getItem(“SetTemp_SetTemp”).getState().toString();
          command = ‘{“NSPanel”:{“ATCMode”:0,”ATCExpect0″:’ + state + ‘}}’;
          events.sendCommand(“NSPanelThermostatSendState”, command);

          musste selber ein wenig probieren,so hat es bei mir funktioniert.

          1. Das ist fürs senden an das Panel,du willst aber nur die Temp des ATCExpect0 an ein TVR oder HKT senden?
            MQTTstate: tele/nspanel/RESULT
            Transforamtion:JSONPATH:$.NSPanel.ATCExpect0 dann bekommst Du den eingestellten Wert
            weiter in einer Rule verarbeiten.

          2. Es funktioniert jetzt alles wie es soll, ich habe den String in einer rule umgebaut.
            Das mit der Transformation “Transforamtion:JSONPATH:$.NSPanel.ATCExpect0” probiere ich aber auch mal, das sieht wesentlich eleganter aus.

            Vielen Dank für die Hilfe

  7. Hat schon jemand versucht ein Scene-Widget in Openhab einzubinden?
    Achso ja,Anleitung echt super,hat fast alles auf Anhieb funktioniert.Habe Openhab als Brücke zu Homeseer4 missbraucht.

  8. 1. – ich hatte beim flash auch Probleme. Denkt daran, dass hinter der Platine Metall ist, ihr sollte die PCB leicht anheben, um Kurzschluss zu vermeiden!

    2. Kann mir jemand kurz erklären, wie ich solch ein Widget im ioBroker integrieren kann? Ich glaube, da steh ich voll auf dem Schlauch, Null Plan.

  9. noch etwas:

    1: in die autoexec.be gehört: load(“nspanel.be”) !! .be wurde vergessen, dann funktioniert das auch.

    2. ich hab echte Probleme mit den widgets. local lassen die sich nicht schalten (gehen immer wieder in den Ausgangszustand) oder reagieren nicht, mit mqtt klappt es. Hab ich einen Denkfehler? Wäre toll, wenn mal jemand ein statement abgibt, wie das bei ihm alles zusammen klappt in iobroker

  10. Erst mal danke für diese gute Video auf dieser Seite.
    Da mir zum Flashen das halten zu unsicher ist, bin Ich wie folgt vorgegangen.Tip von mir: Nehmt eine abgewinkelte 5er Pinleiste ,steckt sie provisorisch in die Flaspoints mit einem 5 poligen Dummystecker oder das was Ihr habt (Abstand) oder Eure Kabel, das ganze haltet Ihr mit einer Klammer gegen die Platine.Nun die Platine umdrehen, und mit einem Printschneider die Pins bündig mit der Platine abschneiden!! Nach dem Abschneiden habe ich noch ein Stück Captonband drüber geklebt, kurzes Metallineal aufs Band aufgelegt und mit der Klammer weiter in Position gehalten. Jetz dreht Ihr das ganze vorsichtig um, und verlötet es von der Bestückungsseite!! Danach entfernt Ihr die Hilfsmittel, und Ihr habt einen glatten sauberen Abschluss auf der Unterseite.Der Abstand zur metallnen Seite des Displays beträgt ja mal knapp 2mm. Die abgewinkelten Pinne passen ohne Probleme ins Gehäuse.Vielleicht findet der ein oder andere ja Idee gut.

  11. Ich hätte eine kurze Frage ich benutze Openhab in Verbindung mit dem Nspanel lokal heißt ohne Zugang zum Internet. Kann ich die Zeiteinstellung irgendwie manuell eingeben? Wie sieht es mit den Wetterdaten aus? Das wird wahrscheinlich ohne Internet ja nicht gehen.

    1. Hallo Jürgen,
      ich habe mir durch Copy&Paste NXPanel installiert aber irgendwie ist es wohl nur durch Openhab zur Ausgabe zu bewegen. Suche gerade einen Weg wieder auf NSPanel mit Tasmota zurück zu kommen. So wie ich es jetzt wahrneme, kann es keine Uhrzeit oder Wetter ohne Openhab anzeigen. Selbst des AnalogenTemperaturfühler wird nicht auf dem Bildschirm dargstellt. Vielleicht liegt es auch daran, dass ich noch mit Openhab nicht ganz klar komme. Nur so direkt nach dem flashen, ist es schlecht einzurichten ohne Anleitung aus dem Netz. Gibt für mich zu wenig erklärung im Web..
      Gruss Udo

  12. Ich habe mit der 11.1.0 das Problem, dass sich das NSPanel nicht per MQTT steuern lässt. Habe Deine Anleitung versucht und auch eine andere. Mit NSPSend über die Konsole funktioniert es ohne Probleme, nur nicht über MQTT.
    Ist das ein feature?

  13. Moin,
    auch von mir Danke für das großartige Video ! Leider meldet sich nach dem Flashen der WiFi AP nicht. Auch nicht versteckt. Habe das tasmota32.bin geflasht nachdem ich es mit dem tasmota32-nspanel.bin versucht hatte. Leider blieb dort das display komplett schwarz nach dem flashen. Im übrigen gabs da auch schon keinen WiFi WP 🙁

    Hat jemand eine Idee, wie ich ggfs wieder auf eine originale Sonoff Version kommen könnte und nochmal komplett von voren anfangen kann ? Btw: Ich habe noch ein nspanle hier, was scheinbar inzwischen ein Brick zu sein scheint. Der FTDI wird ungewöhnlich warm und er kann auch keinerlei Verbindung zu dem brick-nspanel herstellen… Ich denke, dass ich da einen neuen Briefbeschwerer habe 🙁

    1. Habe den Fehler gefunden. Man sollte das richtige .bin File nutzen, dann klappts auch mit dem AccessPoint. Im WebInstaller hatte ich die NSPanel Version glatt übersehen. Nochmal geflasht und “the Brick” lebt wieder.

      Scheinbar reicht eine falsche Firmware um den FTDI Adapter warm/heiss werden zu lassen… strange.

      Wie dem auch sei, einfach das richtige .bin File und dann klappts auch.

      1. Welche bin hast du verwendet? Ich kann erfolgreich fashen aber dann kommt kein Wifi AP. Habe die aktuelle tasmota32.bin und die tasmota32-nspanel.bin probiert.

        1. Bei mir genauso, alle bins probiert, 32, 32nspanel, kein WiFi, schon den 2. Schalter bestellt, anscheinend beide tot, was mach ich falsch? Hat sich eventuell die pinbelegung an dem 8 fach Stecker geändert?

  14. Hallo,
    erst mal danke für die Super Anleitung.
    Die 2 NSPanels von mir fuktionieren damit.
    Jetzt habe ich hier aber das nagelneue NSPanel PRO:
    https://sonoff.tech/product-review/product-insight/sonoff-nspanel-pro-full-display-for-smart-home-control/#2
    Hat sich das vieleicht auch schon mal jemand angesehen?
    Vermutlich wird einfaches Flashen hier nicht gehen da es ein Android sein soll.
    Auf der Platine bedindet sich aber ein USB Anschluss mit Beschriftung “OTG”.
    Auch das würde zu Android passen.
    Hier könnt Ihr ein Foto von der Platine sehen:
    https://ibb.co/34KX37R

Schreibe einen Kommentar zu Frank Thiess Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert