NEWS
SONOFF NSPanel mit Lovelace UI
SONOFF NSPanel mit Lovelace UI
-
-
@armilar
Sorry ich kann dir nicht so ganz folgen. Wieso kann ich denn mit den vorhandenen DP im IOB nicht die Relays steuern? -
@armilar
Sorry ich kann dir nicht so ganz folgen. Wieso kann ich denn mit den vorhandenen DP im IOB nicht die Relays steuern?@cdn sagte in SONOFF NSPanel mit Lovelace UI:
Wieso kann ich denn mit den vorhandenen DP im IOB nicht die Relays steuern
Du musst nicht entkoppeln. Du kannst sowohl über das NSPanel schalten, als auch über die DP's. Beides funktioniert bei uns...
Die oben beschriebene Lösung zeigt, wenn sie umgesetzt wird, die Status-Icons der Relay's im Tasmota an...
Also Steuerung mit
- Hardware-Button (nicht entkoppelt) + korrekte Anzeige im Icon
- Über Relay-DP's + korrekte Anzeige im Icon
-
@armilar @ticaki
Naja das Problem ist doch, dass der Datenpunkt unter 0_userdata.0.NSPanels.XXX.Relay. sich nicht aktualisiert.
In meinem Fall möchte ich eine Wechselschaltung realisieren. Wenn ich nun also an einem anderen Schalter mit einem Shelly eine Zustandsänderung habe, dann kann ich dem NSPanel nicht sagen mach Aus oder An, da ich nicht weiß in welchem Zustand sich der Schalter befindet.Wenn im DP true steht, aber das Relay in wirklichkeit aus, dann muss ich den Wert erst einmal auf false ändern um ihn dann wieder auf true zu ändern um das Licht anzumachen.
-
@armilar @ticaki
Naja das Problem ist doch, dass der Datenpunkt unter 0_userdata.0.NSPanels.XXX.Relay. sich nicht aktualisiert.
In meinem Fall möchte ich eine Wechselschaltung realisieren. Wenn ich nun also an einem anderen Schalter mit einem Shelly eine Zustandsänderung habe, dann kann ich dem NSPanel nicht sagen mach Aus oder An, da ich nicht weiß in welchem Zustand sich der Schalter befindet.Wenn im DP true steht, aber das Relay in wirklichkeit aus, dann muss ich den Wert erst einmal auf false ändern um ihn dann wieder auf true zu ändern um das Licht anzumachen.
https://forum.iobroker.net/post/1109627 (ganz unten)
siehe oben... @ticaki hat es bereits in der DEV implementiert --> kommt in 1-2 Tagen. Du musst dich solange gedulden

Kannst das natürlich auch gerne (falls nicht soviel Geduld und muss jetzt sofort) selbst schnell in ein Script tippen...
Der stat vom MQTT enthält den aktuellen Wert. Den ändert auch der Hardware Button...
über cmnd wird das Relais gesteuert:
//Control Relays from DP's on({id: [String(NSPanel_Path) + 'Relay.1',String(NSPanel_Path) + 'Relay.2'], change: "ne"}, async function (obj) { try { let Button = obj.id!.split('.'); let urlString: string = ['http://',get_current_tasmota_ip_address(),'/cm?cmnd=Power',Button[Button.length - 1],' ',(obj.state ? obj.state.val : "")].join(''); axios.get(urlString) .then(async function (response) { if (response.status === 200) { if (Debug) { log(response.data, 'info'); } } }) .catch(function (error) { if (error.code === 'EHOSTUNREACH') { log(`Can't connect to display!`, 'warn') } else log(error, 'warn'); }) } catch (err: any) { log('error at Trigger Relay1/2: ' + err.message, 'warn'); } });Ist die Funktion
Sorry - die DEV ist gerade in einem wichtigen Test und kann heute nicht released werden...

-
https://forum.iobroker.net/post/1109627 (ganz unten)
siehe oben... @ticaki hat es bereits in der DEV implementiert --> kommt in 1-2 Tagen. Du musst dich solange gedulden

Kannst das natürlich auch gerne (falls nicht soviel Geduld und muss jetzt sofort) selbst schnell in ein Script tippen...
Der stat vom MQTT enthält den aktuellen Wert. Den ändert auch der Hardware Button...
über cmnd wird das Relais gesteuert:
//Control Relays from DP's on({id: [String(NSPanel_Path) + 'Relay.1',String(NSPanel_Path) + 'Relay.2'], change: "ne"}, async function (obj) { try { let Button = obj.id!.split('.'); let urlString: string = ['http://',get_current_tasmota_ip_address(),'/cm?cmnd=Power',Button[Button.length - 1],' ',(obj.state ? obj.state.val : "")].join(''); axios.get(urlString) .then(async function (response) { if (response.status === 200) { if (Debug) { log(response.data, 'info'); } } }) .catch(function (error) { if (error.code === 'EHOSTUNREACH') { log(`Can't connect to display!`, 'warn') } else log(error, 'warn'); }) } catch (err: any) { log('error at Trigger Relay1/2: ' + err.message, 'warn'); } });Ist die Funktion
Sorry - die DEV ist gerade in einem wichtigen Test und kann heute nicht released werden...

-
@armilar @ticaki
Naja das Problem ist doch, dass der Datenpunkt unter 0_userdata.0.NSPanels.XXX.Relay. sich nicht aktualisiert.
In meinem Fall möchte ich eine Wechselschaltung realisieren. Wenn ich nun also an einem anderen Schalter mit einem Shelly eine Zustandsänderung habe, dann kann ich dem NSPanel nicht sagen mach Aus oder An, da ich nicht weiß in welchem Zustand sich der Schalter befindet.Wenn im DP true steht, aber das Relay in wirklichkeit aus, dann muss ich den Wert erst einmal auf false ändern um ihn dann wieder auf true zu ändern um das Licht anzumachen.
@cdn sagte in SONOFF NSPanel mit Lovelace UI:
@armilar @ticaki
Naja das Problem ist doch, dass der Datenpunkt unter 0_userdata.0.NSPanels.XXX.Relay. sich nicht aktualisiert.
In meinem Fall möchte ich eine Wechselschaltung realisieren. Wenn ich nun also an einem anderen Schalter mit einem Shelly eine Zustandsänderung habe, dann kann ich dem NSPanel nicht sagen mach Aus oder An, da ich nicht weiß in welchem Zustand sich der Schalter befindet.Wenn im DP true steht, aber das Relay in wirklichkeit aus, dann muss ich den Wert erst einmal auf false ändern um ihn dann wieder auf true zu ändern um das Licht anzumachen.
Hi @cdn,
also wenn Du den Shelly Adapter drin hast und den Shelly darauf verbunden hast, dann hast Du im Relay0 einen Switch. Der gibt dir immer den aktuellen Status zurück. Darauf kannst Du einen Blockly machen und den dann mit was auch immer (Hardware Button am Panel, Lichtschalter, etc.) schalten. Ich empfehle dafür aber dann den Button am Panel wirklich zu entkoppeln, solltest Du darüber schalten wollen.
LG
-
@cdn sagte in SONOFF NSPanel mit Lovelace UI:
@armilar @ticaki
Naja das Problem ist doch, dass der Datenpunkt unter 0_userdata.0.NSPanels.XXX.Relay. sich nicht aktualisiert.
In meinem Fall möchte ich eine Wechselschaltung realisieren. Wenn ich nun also an einem anderen Schalter mit einem Shelly eine Zustandsänderung habe, dann kann ich dem NSPanel nicht sagen mach Aus oder An, da ich nicht weiß in welchem Zustand sich der Schalter befindet.Wenn im DP true steht, aber das Relay in wirklichkeit aus, dann muss ich den Wert erst einmal auf false ändern um ihn dann wieder auf true zu ändern um das Licht anzumachen.
Hi @cdn,
also wenn Du den Shelly Adapter drin hast und den Shelly darauf verbunden hast, dann hast Du im Relay0 einen Switch. Der gibt dir immer den aktuellen Status zurück. Darauf kannst Du einen Blockly machen und den dann mit was auch immer (Hardware Button am Panel, Lichtschalter, etc.) schalten. Ich empfehle dafür aber dann den Button am Panel wirklich zu entkoppeln, solltest Du darüber schalten wollen.
LG
@kuckuckmann
Ja mein setup ist aber genau andersrum. Licht hängt am NSPanel und der Shelly i4 erkennt nur ob wir den Schalter drücken
Aus reinem Interesse, da ich einige andere NSPanel im Einsatz habe, worüber ich nur Funktionen schalte, aber am Relay nichts hängt: Wieso empfiehlst du die Entkopplung? -
@kuckuckmann
Ja mein setup ist aber genau andersrum. Licht hängt am NSPanel und der Shelly i4 erkennt nur ob wir den Schalter drücken
Aus reinem Interesse, da ich einige andere NSPanel im Einsatz habe, worüber ich nur Funktionen schalte, aber am Relay nichts hängt: Wieso empfiehlst du die Entkopplung?@cdn
Weil angezogene Relais Strom verbrauchen. -
@kuckuckmann
Ja mein setup ist aber genau andersrum. Licht hängt am NSPanel und der Shelly i4 erkennt nur ob wir den Schalter drücken
Aus reinem Interesse, da ich einige andere NSPanel im Einsatz habe, worüber ich nur Funktionen schalte, aber am Relay nichts hängt: Wieso empfiehlst du die Entkopplung?Ich würde bei einem direkt am Schaltaktor verbauten Leuchtmittel ebenfalls aus Fallback und Redundanzgründen keine Entkoppelung vornehmen

Bei einem entfernten Shelly sehe ich den Sinn eines aktiv angezogenen NSPanel-Relais ehrlich gesagt aber auch nicht.
-
Ich würde bei einem direkt am Schaltaktor verbauten Leuchtmittel ebenfalls aus Fallback und Redundanzgründen keine Entkoppelung vornehmen

Bei einem entfernten Shelly sehe ich den Sinn eines aktiv angezogenen NSPanel-Relais ehrlich gesagt aber auch nicht.
@armilar
Ja wie soll ich denn sonst das Leuchtmittel steuern?
Der Shelly hat keine physische Verbindung mit dem Licht.
Stell dir vor, dass dort wo früher der Lichtschalter saß, nun das Panel ist und an einer Stelle wo es keine Verbindung zur Lampe gibt, aber Strom, ein Shelly i4 sitzt. -
@cdn sagte in SONOFF NSPanel mit Lovelace UI:
Ja wie soll ich denn sonst das Leuchtmittel steuern?
Nee, ist alles richtig so.
-
Ich setze Skript Version 4.3.1.1 ein. Ich möchte gerne als erste Seite wenn man auf das Display tippt, um den Screensaver zu entfernen, einen Button haben, der einen Datenpunkt auf true setzt. Ich habe mir das Wiki angeschaut aber habe nicht das richtige gefunden.
Welches let wäre dafür am Besten? Geht es mit CardGrid - 6 PageItems?
Muss ich mit einem Alias dabei arbeiten? Es ist ein eigener Datenpunkt:0_userdata.0.EigeneDatenpunkte.Tasmota.FusswaermerProgramm (ich habe einen Fusswärmer, der nach bestimmter Zeit immer ausgeht. Ich habe mir ein kleines Blockly geschrieben, dass bei Aktivierung mit true den Strom über eine Tasmota Schaltsteck deaktiviert und nach 5 Sek. wieder aktiviert)
-
Ich setze Skript Version 4.3.1.1 ein. Ich möchte gerne als erste Seite wenn man auf das Display tippt, um den Screensaver zu entfernen, einen Button haben, der einen Datenpunkt auf true setzt. Ich habe mir das Wiki angeschaut aber habe nicht das richtige gefunden.
Welches let wäre dafür am Besten? Geht es mit CardGrid - 6 PageItems?
Muss ich mit einem Alias dabei arbeiten? Es ist ein eigener Datenpunkt:0_userdata.0.EigeneDatenpunkte.Tasmota.FusswaermerProgramm (ich habe einen Fusswärmer, der nach bestimmter Zeit immer ausgeht. Ich habe mir ein kleines Blockly geschrieben, dass bei Aktivierung mit true den Strom über eine Tasmota Schaltsteck deaktiviert und nach 5 Sek. wieder aktiviert)
Ich möchte gerne als erste Seite wenn man auf das Display tippt, um den Screensaver zu entfernen
Seite an erste Stelle in der Sortierung des Pages-Array in der Config setzen.
einen Button haben, der einen Datenpunkt auf true setzt
Ist der Alias Taste (button)
Muss ich mit einem Alias dabei arbeiten?
Ja

Funktionier mit cardEntities, cardGrid und cardGrid2. Nachfolgend beispiel mit cardGrid.
let Seite_1: PageType = { 'type': 'cardGrid', 'heading': 'Fußwärmer', 'useColor': true, 'items': [ { id: 'alias.0.NSPanel_1.Fusswaermer', icon: 'heating-coil', name: 'Fusswaermer' }, ] }; -
Ich möchte gerne als erste Seite wenn man auf das Display tippt, um den Screensaver zu entfernen
Seite an erste Stelle in der Sortierung des Pages-Array in der Config setzen.
einen Button haben, der einen Datenpunkt auf true setzt
Ist der Alias Taste (button)
Muss ich mit einem Alias dabei arbeiten?
Ja

Funktionier mit cardEntities, cardGrid und cardGrid2. Nachfolgend beispiel mit cardGrid.
let Seite_1: PageType = { 'type': 'cardGrid', 'heading': 'Fußwärmer', 'useColor': true, 'items': [ { id: 'alias.0.NSPanel_1.Fusswaermer', icon: 'heating-coil', name: 'Fusswaermer' }, ] }; -
-
@armilar sagte in SONOFF NSPanel mit Lovelace UI:
let Seite_1: PageType =
wow danke für euren Support, dachte schon, dass es mit meiner älteren Version aus dem Wiki nicht passt, da es Fehler gab, als ich versucht habe, es einzufügen. Ich gehe auf die neuste Version und füge es dann hinzu.
Danke nochmal für eure Unterstützung!
-
@armilar sagte in SONOFF NSPanel mit Lovelace UI:
let Seite_1: PageType =
wow danke für euren Support, dachte schon, dass es mit meiner älteren Version aus dem Wiki nicht passt, da es Fehler gab, als ich versucht habe, es einzufügen. Ich gehe auf die neuste Version und füge es dann hinzu.
Danke nochmal für eure Unterstützung!
-
SONOFF NSPanel Touch Display Switch
mit Lovelace UI und TASMOTA Firmware

Das Thema https://forum.iobroker.net/topic/50888/sonoff-nspanel/1542 wird hier jetzt fortgesetzt...
An alle begeisterten NSPanel'er
Dieser Thread soll sich jetzt ausschließlich mit den Fragen und Themen rund um das SONOFF NSPanel mit Lovelace UI beschäftigen.
Wie alles begann:
- 22.10.2021
Blakadder's Dokumentation der Dekodierung des NSPanel-Kommunikationsprotokolls und Einrichtung der Steuerung des Nextion-Bildschirms mit benutzerdefinierter Firmware.
https://blakadder.com/nspanel-hacking/ - 01.01.2022
Erste Gehversuche mit Blockly-Scripts auf der Original-Firmware nach einer ersten coolen Anleitung für den ioBroker von @haus-automatisierung. - ...
Funkstille auf allen Kanälen, da das Panel in der Originalsoftware einfach zu wenig Funktionalität hat. Ein Vergleich mit "Jugend forscht" wäre maßlos übertrieben... - 15.01.2022
@jobr99 Erstes POC von Lovelace Konzept mit ESPhome Komponente, da Nextion Upload Protcol unter tasmota nicht umsetzbar ist (berry tcpclient crashed ESP, HTTP Libary ist auf viel zu kleine Dateien limitiert) - 17.01.2022
peepshow-21 Erste implementierung von Nextion Upload Protocol 1.1 mit Workaround für HTTP Libary über Java Converter um tft files für tasmota vorzubereiten - 20.01.2022
s-hadinger fixt bug in berry tcpclient - 31.01.2022
Erste Version für HomeAssistant mit Nodered und Tasmota - 08.02.2022
@joBr99 Erste Implementierung von Nextion Upload Protokoll 1.2 in Berry basiertend auf HTTP Range Header Requests und lokalem Buffer (funktioniert nur mit -nspanel tasmota build uns PSRAM Support) - 12.02.2022
peepshow-21 Implementierung von Nextion Upload Protocol 1.2 mit vollständigem Download und "streaming" zum Nextion Screen während dem Download - 05.03.2022
@joBr99 Portierung von Node-Red Flow zu AppDaemon, da AppDaemon sich besser eignet zur Implementierung vom Backend - 13.03.2022
@joBr99 Erste Version von Lovelace Berry Driver basierend auf Upload Protocol Implementierung von peepshow-21, da diese etwas stabiler läuft mit zusätzlichem Error Handling - 30.03.2022
@joBr99 kommt mit der Info um die Ecke, dass es ein erstes Script v1.9.0 für den ioBroker von @Britzelpuf gibt. Zu diesem Zeitpunkt gab es bereits den Screensaver die Seitennavigation und die Möglichkeit eine Lampe, einen Dimmer eine Taste und eine Info, sowie die popUps für Licht (Brightness) und Shutter (Position) und einen Thermostaten zur Steuerung einzubinden. - 10.04.2022
@joBr99 Firmware got bigger and bigger with >15 Minutes Flashing Time for the tft file
Increased Flashing Speed of Berry Driver from 115200 to 921600 and added skipping to the End with HTTP Range Headers, resulted in faster display flashing - 11.04.2022
@Armilar macht seine ersten Änderungen auf github und hört seit dem nicht mehr auf, weitere Funktionen in das TSScript hinzuzufügen...
@joBr99 entwickelt die HMI und neue Funktionen für Home Assistant schneller als der Wind - und macht das Panel zur echten Bereicherung für jedes Smart Home

heute
- Eine der besten Community's die ich jemals erlebt habe. Hilfsbereit und kompetent wird jeder mit Hilfestellungen und Problemlösungen in kürzester Zeit versorgt.
Es macht großen Spaß zusammen mit euch...
VG
Armilar
Beispiele:










Features:
- cardEntities für die Unterstützung diverser Steuerelemente (siehe Beispiele)
- cardGrid (3x2-Raster) für die Unterstützung diverser Steuerelemente (siehe Beispiele)
- cardGrid2 (4x2) für die Unterstützung diverser Steuerelemente (siehe Beispiele)
- cardGrid3 (2x2) für die Unterstützung diverser Steuerelemente (siehe Beispiele)
- cardPower zur Visualisierung der Energieverteilung
- cardAlarm als Seite für Alarmanlagen
- cardMedia - der Media-Player (Diverse Adapter)
- cardThermo - Seite für Thermostat oder Klimaanlage
- cardQR - Seite mit QRCode zur Anzeige von WLAN-Informationen
- cardChart - Balkendiagramme
- Detailseiten für Leuchtmittel (Helligkeit, Temperatur und Farbe)
- Detailseite für Jalousien/Rollos (Position und Tilt)
- Detailseite für Ventilatoren
- Detailseite für Timer
- Auswahl Detailseite für Werteliste
- Bildschirmschonerseite mit Uhrzeit, Datum und Wetterinformationen oder/und Infos
- Multilingual (unterstützt über 40 Sprachen)
- Unbegrenzte Anzahl an Seiten und Unterseiten
- Abfallkalender
- Favoritenseiten
- etc.
NsPanel Lovelace UI ist eine Firmware für den Nextion-Bildschirm innerhalb des NSPanel.
Die allgemeine Idee ist, dass das Nextion-Display einen Seitenzähler durchläuft und der ESP32 dem Display sagt, was zu tun ist. Alles ist dynamisch durch Alias-Erstellung konfigurierbar, es ist nicht erforderlich, Nextion Editor zu programmieren. Neben der Seiten-Definition sind im ioBroker keine Programmierkenntnisse erforderlich. Es ist im ioBroker ebenfalls kein Lovelace-Adapter erforderlich.
Das Panel arbeitet mit Tasmota und MQTT. Um das Panel zu steuern und mit Inhalten von ioBroker zu aktualisieren, gibt es ein vordefiniertes TypeScript (TS) für den JavaScript-Adapter.
Aktuelle Wiki (Anleitung) für den ioBroker
https://github.com/joBr99/nspanel-lovelace-ui/wiki by @Kuckuckmann
NsPanelTs.ts (TypeScript) für ioBroker v4.9.3.X
zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar und @TT-Tom
https://github.com/joBr99/nspanel-lovelace-ui/tree/main/ioBroker
abgestimmt auf:- TFT 58 / v4.9.3 ( by @joBr99 / Armilar > 4.4.0)
- BerryDriver 9 ( by peepshow-21 (based on code by blakadder and s-hadinger))
- Tasmota 15.1.0 ( by Theo Arends ) --> Theo-Arends-Sonoff-MQTT-OTA
Projekt:
by @joBr99
- main (Home Assistant - Version und Nextion HMI): https://github.com/joBr99/nspanel-lovelace-ui by @joBr99
- ioBroker: https://github.com/joBr99/nspanel-lovelace-ui/tree/main/ioBroker by @Armilar (HA - Adaption)
Icon-Mapper:
- icon_mapping.ts:
https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/icon_mapping.ts
(TypeScript muss in global liegen)
Icons:
unter: https://docs.nspanel.pky.eu/icon-cheatsheet.html
Video-Tutorial:
https://www.youtube.com/watch?v=ZPLJk2ZLo_8 by @haus-automatisierung
@armilar @TT-Tom @haus-automatisierung @Kuckuckmann @joBr99
hab mir mal 10 NS Panels organisiert und schaffe mich gerade rein.. muss nur mal DANKE sagen, was ein mächtiges Tool!!

- 22.10.2021


