NEWS
Test Adapter NSPanel-lovelace-ui v0.17.x
-
Hallo ich stelle hier mal eine Feststellung rein, die eventuell auch von euch schon beobachtet wurde.
Ich nutze einen externen MQTT-Sever (Mosquitto), wenn ich diesen neu starte werden auch meine Panels mit der TFT Firmware neu geflasht.
Habe schon mit @ticaki RĂŒcksprache gehalten, wir versuchen das zu verifizieren und eine Lösung zu finden.@tt-tom
Ja jetzt wird ein schuh draus, deswegen flashen sich meine Panels weil ich natĂŒrlich den Mqtt adapter als Client bzw den Mosquitto server ab und an neu starte. bzw der wird ja auch neu gestartet wenn ich den raspi per "sudo reboot" neu starte -
@tt-tom
Ja jetzt wird ein schuh draus, deswegen flashen sich meine Panels weil ich natĂŒrlich den Mqtt adapter als Client bzw den Mosquitto server ab und an neu starte. bzw der wird ja auch neu gestartet wenn ich den raspi per "sudo reboot" neu starteIch hab das im ĂŒbrigen gerademal getestet und hab eins der EU panele per Flash Nextion Befehl auf das US-L geflasht auch das hat nicht funktioniert. ZurĂŒck auf die EU version wieder auf Anhieb.
Daher muss ich wohl davon ausgehen das irgendwo bei mir ein "Kleiner Hund" (Redensart) begraben sein muss :-) -
@tt-tom
Ja jetzt wird ein schuh draus, deswegen flashen sich meine Panels weil ich natĂŒrlich den Mqtt adapter als Client bzw den Mosquitto server ab und an neu starte. bzw der wird ja auch neu gestartet wenn ich den raspi per "sudo reboot" neu starte@teletapi
Man könnte natĂŒrlich auch die Einstellung im iobroker mqtt client auf brauchbar umstellen. Mit dem Adapter als solches hat das Problem soweit ich sehe nichts zu tun.@all
Wenn man einen externen MQTT-Server benutzt, wird erwartet das man diesen auch wie ein fortgeschrittener Amateur betreibt - sonst internen benutzen und keinen anderen Client mit diesem internen verbinden.
EDIT:
Habs im Adapter jetzt soweit entschĂ€rft das der Topic cmd/Backlog nach einem Flashbefehl mit '' ĂŒberschrieben wird, so das ein falsch konfigurierter Client/Server nicht einen weiteres Update starten kann. -
@teletapi
Man könnte natĂŒrlich auch die Einstellung im iobroker mqtt client auf brauchbar umstellen. Mit dem Adapter als solches hat das Problem soweit ich sehe nichts zu tun.@all
Wenn man einen externen MQTT-Server benutzt, wird erwartet das man diesen auch wie ein fortgeschrittener Amateur betreibt - sonst internen benutzen und keinen anderen Client mit diesem internen verbinden.
EDIT:
Habs im Adapter jetzt soweit entschĂ€rft das der Topic cmd/Backlog nach einem Flashbefehl mit '' ĂŒberschrieben wird, so das ein falsch konfigurierter Client/Server nicht einen weiteres Update starten kann. -
@ticaki said in Betatest NSPanel-lovelace-ui v0.2.x:
Wenn man einen externen MQTT-Server benutzt, wird erwartet das man diesen auch wie ein fortgeschrittener Amateur betreibt
könntest du das evtl. mal etwas genauer ausfĂŒhren...?
So nicht:

Die Maske die man fĂŒr das NSPanel benutzt, sorgt dafĂŒr das alle States in mqtt.1.* als
Eigene Stateszu verstehen sind
Die Option die im Bild einen Hacken hat, sorgt dafĂŒr das beim Verbinden alle eigenen States gesendet werden.Wenn ich nun auf den Topic
.../cmd/Backlogimmer mal wieder den gleichen Befehl sende - steht der ebenfalls unter mqtt.1. und wird beim Restart von mqtt.1, iobroker, iobroker-server oder mqtt-server an das Panel gesendet. Da ja Eigene States beim Verbinden publiziert werdenDenke nicht das man dafĂŒr ein mqtt-pro-user sein muĂ - bin selbst nĂ€mlich bei weitem keiner.
EDIT: Adapter schickt jetzt einen leeren String auf den Topic, kann fĂŒr ein "kein Plan" Warnung von Tasmota sorgen, hab nicht in die console geschaut. Auf jeden Fall entfernt es den Flashbefehl aus cmd/Backlog und beim restart sendet er dann höchstes einen leeren String.
-
So nicht:

Die Maske die man fĂŒr das NSPanel benutzt, sorgt dafĂŒr das alle States in mqtt.1.* als
Eigene Stateszu verstehen sind
Die Option die im Bild einen Hacken hat, sorgt dafĂŒr das beim Verbinden alle eigenen States gesendet werden.Wenn ich nun auf den Topic
.../cmd/Backlogimmer mal wieder den gleichen Befehl sende - steht der ebenfalls unter mqtt.1. und wird beim Restart von mqtt.1, iobroker, iobroker-server oder mqtt-server an das Panel gesendet. Da ja Eigene States beim Verbinden publiziert werdenDenke nicht das man dafĂŒr ein mqtt-pro-user sein muĂ - bin selbst nĂ€mlich bei weitem keiner.
EDIT: Adapter schickt jetzt einen leeren String auf den Topic, kann fĂŒr ein "kein Plan" Warnung von Tasmota sorgen, hab nicht in die console geschaut. Auf jeden Fall entfernt es den Flashbefehl aus cmd/Backlog und beim restart sendet er dann höchstes einen leeren String.
@ticaki Interessant und ist genau die Einstellung die ich bereits nutze und die Panele versuchen sich trotzdem zu flashen bei 1 funktioniert das , das 2te macht garnichts und das US Panel bleibt wie gesagt nach dem flashen hÀngen und zeigt System Data Error. (Lösung hab ich noch nicht gefunden)
ist aber nicht weiter schlimm wenn man weiĂ woran es liegt dann kann man die panele abschalten bevor man neu startet geht natĂŒrlich nur bei mobilen Panelen mit Schalter.
Das mit dem internen Mqtt Adapter hab ich zwar mal kurzfristig versucht lief aber nicht auf Anhieb und hab daher den Mqquitto genutzt weil er jka eh lÀuft und das auch sehr zuverlÀssig bisher. -
@ticaki Interessant und ist genau die Einstellung die ich bereits nutze und die Panele versuchen sich trotzdem zu flashen bei 1 funktioniert das , das 2te macht garnichts und das US Panel bleibt wie gesagt nach dem flashen hÀngen und zeigt System Data Error. (Lösung hab ich noch nicht gefunden)
ist aber nicht weiter schlimm wenn man weiĂ woran es liegt dann kann man die panele abschalten bevor man neu startet geht natĂŒrlich nur bei mobilen Panelen mit Schalter.
Das mit dem internen Mqtt Adapter hab ich zwar mal kurzfristig versucht lief aber nicht auf Anhieb und hab daher den Mqquitto genutzt weil er jka eh lĂ€uft und das auch sehr zuverlĂ€ssig bisher.Der interne lief bis dato ĂŒberall auf anhieb - muĂt halt initialisieren. Benutzt du die einstellen wie im Bild? Die sind falsch! - hab ein so nicht oben ergĂ€nzt
-
@ticaki Interessant und ist genau die Einstellung die ich bereits nutze und die Panele versuchen sich trotzdem zu flashen bei 1 funktioniert das , das 2te macht garnichts und das US Panel bleibt wie gesagt nach dem flashen hÀngen und zeigt System Data Error. (Lösung hab ich noch nicht gefunden)
ist aber nicht weiter schlimm wenn man weiĂ woran es liegt dann kann man die panele abschalten bevor man neu startet geht natĂŒrlich nur bei mobilen Panelen mit Schalter.
Das mit dem internen Mqtt Adapter hab ich zwar mal kurzfristig versucht lief aber nicht auf Anhieb und hab daher den Mqquitto genutzt weil er jka eh lÀuft und das auch sehr zuverlÀssig bisher. -
kein Update - Ist aktuell im Alpha Test - wird wohl heute freigeschaltet
da fĂŒr das Testen jedoch auch ne Beschreibung nötig ist mach ich die hier hin, kann @TT-Tom ja vielleicht fĂŒr die Wiki nutzen oder halt einfach fĂŒr den Anfang verlinken. Ich hab kein aktuelles schönes Bild. :)
Wenn ichSkriptschreibe meine ich immer das Adapter-Skript - nicht das andere :DKonfiguration der cardThermo2 im Adapter
Diese unterscheitet sich von der Skriptkonfiguration, daher eine komplette Beschreibung.
Struktur:- Aussehen
- Feature
- Probleme
- Konfiguration
- Alias
- Direkt ĂŒber Datenpunkte
- Gemeinsame Optionen
- PageItemerweiterung
Aussehen:

Feature:
- bis zu 8 Heizkreise möglich (z.B. Heizung/Klimaanlage oder KĂŒche/Wohnzimmer/...)
- unendliche Anzahl an Pageitems (mit BlÀtterfunktion), das sind die 8 aussen rum und Nr. 9 zwischen dem + und -
- Pageitems können einem Heizkreis zu geordnet werden
- Ăberschriften sind per Heizkreis
- Die Zeilen ober und unterhalb der Einstelltemperatur sind frei definierbar mit icon, wert, unit
Bekannte Probleme
- airCondition und thermostat werden wie ein thermostat behandelt
- leichtes Flackern auf Grund der hĂŒbschen Optik - das wird bleiben
Konfiguration
Eine komplette Seite sieht im Skript z.B. so aus
Alias
Wie gewohnt kann man Aliase (siehe Tabelle) verwenden. Die Role airCondition erzeugt 2 Heizkreise. Die wird eingestellt durch
name2,iconHeatCycle2,iconHeatCycleOnColor2undiconHeatCycleOffColor2. Viele der optionalen Datenpunkte sind drin und werden Heizkreis bezogen als Pageitems hinzugefĂŒgt. Fehlende bitte reklamieren.const Thermo2New: PageType = { type: 'cardThermo2', uniqueName:'Seitenname fĂŒr interne Verwendung - Pflicht', heading: 'egal wird eh nicht angezeigt', thermoItems:[ { name: 'Das hier ist die Ăberschrift', id:'0_userdata.0.Einzelne_GerĂ€te.Thermostat', // das hier ist der Channel, Device oder Folder }, ], items:[], }thermoItemsenthĂ€lt Objekte ('{}') die die Heizkreise beschreiben minimum 1 (Liste bzw. Array)idist der Channel. (Zeichenkette)nameist die Ăberschrift die angezeigt wird. (Zeichenkette) Ohne dieses wird geschaut ob was im common.name des Channel steht.name2ist die Ăberschrift die fĂŒr eine airCondition verwendet wird.iconHeatCycle2: Ăberschreibt das Zahlenicon in den PageItems (auĂen herum) ausschlieĂlich fĂŒr airConditioniconHeatCycleOnColor2: Ăberschreibt die Farbe fĂŒr aktiviert in den PageItems (auĂen herum) ausschlieĂlich fĂŒr airConditioniconHeatCycleOffColor2: Ăberschreibt die Farbe fĂŒr deaktiviert in den PageItems (auĂen herum) ausschlieĂlich fĂŒr airCondition
Der Datenpunkt MODE hat sich verÀndert, daher bitte unten bei
modeListlesenDirekt ĂŒber Datenpunkte
Das ist mit Alias nicht mischbar, darf aber natĂŒrlich auf die Datenpunkte eines angelegten Channels verweisen.
const Thermo2New: PageType = { type: 'cardThermo2', uniqueName:'Seitenname fĂŒr interne Verwendung - Pflicht', heading: 'egal wird eh nicht angezeigt', thermoItems:[ { name: 'Das hier ist die Ăberschrift', set:'0_userdata.0.Einzelne_GerĂ€te.Thermostat.SET', // Der Einstellwert der Heizung thermoId1:'0_userdata.0.Einzelne_GerĂ€te.Thermostat.ACTUAL', // Aktuelle Raumtemperatur (oberer Wert in der Anzeige) thermoId2:'0_userdata.0.Einzelne_GerĂ€te.Thermostat.HUMIDITY', // Aktuelle Luftfeuchtigkeit (unterer Wert in der Anzeige) modeId:'0_userdata.0.Einzelne_GerĂ€te.Thermostat.MODE', // Textfeld unterhalb der Wert - kein Zeichenkettendatenpunkt } ], items:[], }thermoItemsenthĂ€lt Objekte ('{}') die die Heizkreise beschreiben minimum 1 (Liste bzw. Array)nameist die Ăberschrift die angezeigt wird. (Zeichenkette)setist der Einstellwert der Heizung - aktuell keine Unterteilung in read/writethermoId1Aktuelle Raumtemperatur (oberer Wert in der Anzeige)thermoid2Aktuelle Luftfeuchtigkeit (unterer Wert in der Anzeige)modeIdSiehe beschreibung unten zumodeList
Gemeinsame Eigenschaften
Hier sind die Eigenschaften beschrieben die zusÀtzlich zu
name,idbzw.name,setangegeben werden können und was sie bedeuten:icon: Ăberschreibt das Standardicon in der 1. Textzeile (Temperatur)
onColor: Ăberschreibt die Farbe der 1. Textzeile (Temperatur)
unit: Ăberschreibt die Einheit der 1. Textzeile unnd 2. Textzeile (Temperatur)icon2: wie oben fĂŒr Zeile 3 (Luftfeuchtigkeit)
onColor2: wie oben fĂŒr Zeile 3 (Luftfeuchtigkeit)
unit2: Ăberschreibt die Einheit der 3. Textzeile (Luftfeuchtigkeit)iconHeatCycle: Ăberschreibt das Zahlenicon in den PageItems (auĂen herum)
iconHeatCycleOnColor: Ăberschreibt die Farbe fĂŒr aktiviert in den PageItems (auĂen herum)
iconHeatCycleOffColor: Ăberschreibt die Farbe fĂŒr deaktiviert in den PageItems (auĂen herum)minValue: minimale Einstellbare Temperatur (Default: 15) im Admin einstellbar ob 10 = 1 °C oder 10 = 10 °C
maxValue: maximal einstellbare Temperatur (Default: 28) im Admin einstellbar
stepValue: Schritte fĂŒr +/-. Eine eingetragene 0.1 bedeutet Schritte von 0.1 (Default: 0.5) im Admin einstellbarpower: Das ist wohl noch nicht im TFT, daher keine BeschreibungmodeList: Das denke ich ist noch nicht final und braucht deutlich mehr Text :)
modeIdbzw.MODEarbeiten auf die dieselbe Weise. Der Datenpunkt sollte vom Typenumbersein und kann im Object common.states verwenden - dann arbeiten das common.states fĂŒrmodeList.
modeList ĂŒberschreibt common.states und diese ĂŒberschreibt die Standardmodelist, die im Adapter hinterlegt ist:
Standard Modelist['OFF', 'AUTO', 'COOL', 'HEAT', 'ECO', 'FAN', 'DRY']Im Datenpunkt steht z.B. eine 0 dann wird
OFFangezeigt, steht dort eine 3 wirdHEATangezeigt (die werden ĂŒbersetzt).
Wenn das in den common.states des Datenpunktes genauso steht gilt dort das gleich. Ebenso in der modeList.
Im Skript sieht dass dann etwas regional angepasst so aus:modeList: ["Aus'm", "Automat", "KĂŒhl'n", "Heiz'n", "Sparn", "Puste", "Trockn"],PageItemerweiterung
FĂŒr die Pageitems gibt es eine neue Eigenschaft die aktuell aber nur fĂŒr die cardThermo2 von belang ist:
items:[ {id: 'alias.0.Licht.lights.GerÀt_1', filter: 0}, ],filter:Ist es definiert wird das Pageitem nur angezeigt, wenn der entsprechende Heizkreis aktiv ist. ZÀhlung beginnt bei 0 (number).
Wenn eine airCondition per 'id' hinzugefĂŒgt wird erhöht sich der index nach der airCondition um 1.Das ist noch nicht in der aktuellen Branch. Wenn ihr trotzdem testen wollt der Installationslink wĂ€re dieser Alpha-Test
SchluĂanmerkung - die rollen fĂŒr aircondition können sich noch Ă€ndern - die scheinen sich von thermostat zu unterscheiden also besser da nachgucken.
-
kein Update - Ist aktuell im Alpha Test - wird wohl heute freigeschaltet
da fĂŒr das Testen jedoch auch ne Beschreibung nötig ist mach ich die hier hin, kann @TT-Tom ja vielleicht fĂŒr die Wiki nutzen oder halt einfach fĂŒr den Anfang verlinken. Ich hab kein aktuelles schönes Bild. :)
Wenn ichSkriptschreibe meine ich immer das Adapter-Skript - nicht das andere :DKonfiguration der cardThermo2 im Adapter
Diese unterscheitet sich von der Skriptkonfiguration, daher eine komplette Beschreibung.
Struktur:- Aussehen
- Feature
- Probleme
- Konfiguration
- Alias
- Direkt ĂŒber Datenpunkte
- Gemeinsame Optionen
- PageItemerweiterung
Aussehen:

Feature:
- bis zu 8 Heizkreise möglich (z.B. Heizung/Klimaanlage oder KĂŒche/Wohnzimmer/...)
- unendliche Anzahl an Pageitems (mit BlÀtterfunktion), das sind die 8 aussen rum und Nr. 9 zwischen dem + und -
- Pageitems können einem Heizkreis zu geordnet werden
- Ăberschriften sind per Heizkreis
- Die Zeilen ober und unterhalb der Einstelltemperatur sind frei definierbar mit icon, wert, unit
Bekannte Probleme
- airCondition und thermostat werden wie ein thermostat behandelt
- leichtes Flackern auf Grund der hĂŒbschen Optik - das wird bleiben
Konfiguration
Eine komplette Seite sieht im Skript z.B. so aus
Alias
Wie gewohnt kann man Aliase (siehe Tabelle) verwenden. Die Role airCondition erzeugt 2 Heizkreise. Die wird eingestellt durch
name2,iconHeatCycle2,iconHeatCycleOnColor2undiconHeatCycleOffColor2. Viele der optionalen Datenpunkte sind drin und werden Heizkreis bezogen als Pageitems hinzugefĂŒgt. Fehlende bitte reklamieren.const Thermo2New: PageType = { type: 'cardThermo2', uniqueName:'Seitenname fĂŒr interne Verwendung - Pflicht', heading: 'egal wird eh nicht angezeigt', thermoItems:[ { name: 'Das hier ist die Ăberschrift', id:'0_userdata.0.Einzelne_GerĂ€te.Thermostat', // das hier ist der Channel, Device oder Folder }, ], items:[], }thermoItemsenthĂ€lt Objekte ('{}') die die Heizkreise beschreiben minimum 1 (Liste bzw. Array)idist der Channel. (Zeichenkette)nameist die Ăberschrift die angezeigt wird. (Zeichenkette) Ohne dieses wird geschaut ob was im common.name des Channel steht.name2ist die Ăberschrift die fĂŒr eine airCondition verwendet wird.iconHeatCycle2: Ăberschreibt das Zahlenicon in den PageItems (auĂen herum) ausschlieĂlich fĂŒr airConditioniconHeatCycleOnColor2: Ăberschreibt die Farbe fĂŒr aktiviert in den PageItems (auĂen herum) ausschlieĂlich fĂŒr airConditioniconHeatCycleOffColor2: Ăberschreibt die Farbe fĂŒr deaktiviert in den PageItems (auĂen herum) ausschlieĂlich fĂŒr airCondition
Der Datenpunkt MODE hat sich verÀndert, daher bitte unten bei
modeListlesenDirekt ĂŒber Datenpunkte
Das ist mit Alias nicht mischbar, darf aber natĂŒrlich auf die Datenpunkte eines angelegten Channels verweisen.
const Thermo2New: PageType = { type: 'cardThermo2', uniqueName:'Seitenname fĂŒr interne Verwendung - Pflicht', heading: 'egal wird eh nicht angezeigt', thermoItems:[ { name: 'Das hier ist die Ăberschrift', set:'0_userdata.0.Einzelne_GerĂ€te.Thermostat.SET', // Der Einstellwert der Heizung thermoId1:'0_userdata.0.Einzelne_GerĂ€te.Thermostat.ACTUAL', // Aktuelle Raumtemperatur (oberer Wert in der Anzeige) thermoId2:'0_userdata.0.Einzelne_GerĂ€te.Thermostat.HUMIDITY', // Aktuelle Luftfeuchtigkeit (unterer Wert in der Anzeige) modeId:'0_userdata.0.Einzelne_GerĂ€te.Thermostat.MODE', // Textfeld unterhalb der Wert - kein Zeichenkettendatenpunkt } ], items:[], }thermoItemsenthĂ€lt Objekte ('{}') die die Heizkreise beschreiben minimum 1 (Liste bzw. Array)nameist die Ăberschrift die angezeigt wird. (Zeichenkette)setist der Einstellwert der Heizung - aktuell keine Unterteilung in read/writethermoId1Aktuelle Raumtemperatur (oberer Wert in der Anzeige)thermoid2Aktuelle Luftfeuchtigkeit (unterer Wert in der Anzeige)modeIdSiehe beschreibung unten zumodeList
Gemeinsame Eigenschaften
Hier sind die Eigenschaften beschrieben die zusÀtzlich zu
name,idbzw.name,setangegeben werden können und was sie bedeuten:icon: Ăberschreibt das Standardicon in der 1. Textzeile (Temperatur)
onColor: Ăberschreibt die Farbe der 1. Textzeile (Temperatur)
unit: Ăberschreibt die Einheit der 1. Textzeile unnd 2. Textzeile (Temperatur)icon2: wie oben fĂŒr Zeile 3 (Luftfeuchtigkeit)
onColor2: wie oben fĂŒr Zeile 3 (Luftfeuchtigkeit)
unit2: Ăberschreibt die Einheit der 3. Textzeile (Luftfeuchtigkeit)iconHeatCycle: Ăberschreibt das Zahlenicon in den PageItems (auĂen herum)
iconHeatCycleOnColor: Ăberschreibt die Farbe fĂŒr aktiviert in den PageItems (auĂen herum)
iconHeatCycleOffColor: Ăberschreibt die Farbe fĂŒr deaktiviert in den PageItems (auĂen herum)minValue: minimale Einstellbare Temperatur (Default: 15) im Admin einstellbar ob 10 = 1 °C oder 10 = 10 °C
maxValue: maximal einstellbare Temperatur (Default: 28) im Admin einstellbar
stepValue: Schritte fĂŒr +/-. Eine eingetragene 0.1 bedeutet Schritte von 0.1 (Default: 0.5) im Admin einstellbarpower: Das ist wohl noch nicht im TFT, daher keine BeschreibungmodeList: Das denke ich ist noch nicht final und braucht deutlich mehr Text :)
modeIdbzw.MODEarbeiten auf die dieselbe Weise. Der Datenpunkt sollte vom Typenumbersein und kann im Object common.states verwenden - dann arbeiten das common.states fĂŒrmodeList.
modeList ĂŒberschreibt common.states und diese ĂŒberschreibt die Standardmodelist, die im Adapter hinterlegt ist:
Standard Modelist['OFF', 'AUTO', 'COOL', 'HEAT', 'ECO', 'FAN', 'DRY']Im Datenpunkt steht z.B. eine 0 dann wird
OFFangezeigt, steht dort eine 3 wirdHEATangezeigt (die werden ĂŒbersetzt).
Wenn das in den common.states des Datenpunktes genauso steht gilt dort das gleich. Ebenso in der modeList.
Im Skript sieht dass dann etwas regional angepasst so aus:modeList: ["Aus'm", "Automat", "KĂŒhl'n", "Heiz'n", "Sparn", "Puste", "Trockn"],PageItemerweiterung
FĂŒr die Pageitems gibt es eine neue Eigenschaft die aktuell aber nur fĂŒr die cardThermo2 von belang ist:
items:[ {id: 'alias.0.Licht.lights.GerÀt_1', filter: 0}, ],filter:Ist es definiert wird das Pageitem nur angezeigt, wenn der entsprechende Heizkreis aktiv ist. ZÀhlung beginnt bei 0 (number).
Wenn eine airCondition per 'id' hinzugefĂŒgt wird erhöht sich der index nach der airCondition um 1.Das ist noch nicht in der aktuellen Branch. Wenn ihr trotzdem testen wollt der Installationslink wĂ€re dieser Alpha-Test
SchluĂanmerkung - die rollen fĂŒr aircondition können sich noch Ă€ndern - die scheinen sich von thermostat zu unterscheiden also besser da nachgucken.
@ticaki
Also ich habe es verstanden đWerde es so ins Wiki ĂŒbernehmen und noch ein paar Bilder mit dazu machen.
@all wenn ihr noch ErgÀnzungen habt, die mit in die Wiki sollen, hier posten und mich mit erwÀhnen.
Von meiner Seite auch nochmal groĂes Kompliment und Dankeschön an @ticaki und @Armilar fĂŒr Ihren Einsatz, dieses Projekt so nach vorne zu bringen.
-
Hab meine Beschreibung editiert zusammengefasst:
airCondition ist eingebaut, erzeugt automatisch einen 2. Heizkreis dieser ist dann durch die
heatCycleIcon...2undname2Eigenschaft zu konfigurieren. Gilt nur fĂŒr automatisches Konfigurieren per Channel-ID. filter im Pageitem mĂŒssen dann um 1 erhöht werden hinter der Klimanlage, das geht nur automatisch fĂŒr die, die auch vom Adapter erstellt werden. -
Update auf Github fĂŒr cardThermo2 freigegeben
Beschreibung wurde angepasst an die jetzigen Gegebenheiten!
Wenn ichSkriptschreibe meine ich immer das Adapter-Skript - nicht das andere :DKonfiguration der cardThermo2 im Adapter
Diese unterscheitet sich von der Skriptkonfiguration, daher eine komplette Beschreibung.
Struktur:- Aussehen
- Feature
- Probleme
- Konfiguration
- Alias
- Direkt ĂŒber Datenpunkte
- Gemeinsame Optionen
- PageItemerweiterung
Aussehen:

Feature:
- bis zu 8 Heizkreise möglich (z.B. Heizung/Klimaanlage oder KĂŒche/Wohnzimmer/...)
- unendliche Anzahl an Pageitems (mit BlÀtterfunktion), das sind die 8 aussen rum und Nr. 9 zwischen dem + und -
- Pageitems können einem Heizkreis zu geordnet werden (automatisch erzeugt werden bei mehreren Heizkreisen immer einem zugewiesen)
- Ăberschriften sind per Heizkreis
- Die Zeilen ober und unterhalb der Einstelltemperatur sind frei definierbar mit icon, wert, unit
Bekannte Probleme
- leichtes Flackern auf Grund der hĂŒbschen Optik - das wird bleiben
- Mode und Modeset könnten noch inkonsequent sein - in arbeit
Konfiguration
Eine komplette Seite sieht im Skript z.B. so aus
Alias
Wie gewohnt kann man Aliase (siehe Tabelle) verwenden. Die Role airCondition erzeugt 2 Heizkreise. Die wird eingestellt durch
name2,iconHeatCycle2,iconHeatCycleOnColor2undiconHeatCycleOffColor2. Viele der optionalen Datenpunkte sind drin und werden Heizkreis bezogen als Pageitems hinzugefĂŒgt. Fehlende bitte reklamieren.const Thermo2New: PageType = { type: 'cardThermo2', uniqueName:'Seitenname fĂŒr interne Verwendung - Pflicht', heading: 'egal wird eh nicht angezeigt', thermoItems:[ { name: 'Das hier ist die Ăberschrift', id:'0_userdata.0.Einzelne_GerĂ€te.Thermostat', // das hier ist der Channel, Device oder Folder }, ], items:[], }thermoItemsenthĂ€lt Objekte ('{}') die die Heizkreise beschreiben minimum 1 (Liste bzw. Array)idist der Channel. (Zeichenkette)nameist die Ăberschrift die angezeigt wird. (Zeichenkette) Ohne dieses wird geschaut ob was im common.name des Channel steht.name2ist die Ăberschrift die fĂŒr eine airCondition verwendet wird.iconHeatCycle2: Ăberschreibt das Zahlenicon in den PageItems (auĂen herum) ausschlieĂlich fĂŒr airConditioniconHeatCycleOnColor2: Ăberschreibt die Farbe fĂŒr aktiviert in den PageItems (auĂen herum) ausschlieĂlich fĂŒr airConditioniconHeatCycleOffColor2: Ăberschreibt die Farbe fĂŒr deaktiviert in den PageItems (auĂen herum) ausschlieĂlich fĂŒr airCondition
Der Datenpunkt MODE hat sich verÀndert, daher bitte unten bei
modeListlesenDirekt ĂŒber Datenpunkte
Das ist mit Alias nicht mischbar, darf aber natĂŒrlich auf die Datenpunkte eines angelegten Channels verweisen.
const Thermo2New: PageType = { type: 'cardThermo2', uniqueName:'Seitenname fĂŒr interne Verwendung - Pflicht', heading: 'egal wird eh nicht angezeigt', thermoItems:[ { name: 'Das hier ist die Ăberschrift', set:'0_userdata.0.Einzelne_GerĂ€te.Thermostat.SET', // Der Einstellwert der Heizung thermoId1:'0_userdata.0.Einzelne_GerĂ€te.Thermostat.ACTUAL', // Aktuelle Raumtemperatur (oberer Wert in der Anzeige) thermoId2:'0_userdata.0.Einzelne_GerĂ€te.Thermostat.HUMIDITY', // Aktuelle Luftfeuchtigkeit (unterer Wert in der Anzeige) modeId:'0_userdata.0.Einzelne_GerĂ€te.Thermostat.MODE', // Textfeld unterhalb der Wert - kein Zeichenkettendatenpunkt } ], items:[], }thermoItemsenthĂ€lt Objekte ('{}') die die Heizkreise beschreiben minimum 1 (Liste bzw. Array)nameist die Ăberschrift die angezeigt wird. (Zeichenkette)setist der Einstellwert der Heizung - aktuell keine Unterteilung in read/writethermoId1Aktuelle Raumtemperatur (oberer Wert in der Anzeige)thermoid2Aktuelle Luftfeuchtigkeit (unterer Wert in der Anzeige)modeIdSiehe beschreibung unten zumodeList
Gemeinsame Eigenschaften
Hier sind die Eigenschaften beschrieben die zusÀtzlich zu
name,idbzw.name,setangegeben werden können und was sie bedeuten:icon: Ăberschreibt das Standardicon in der 1. Textzeile (Temperatur)
onColor: Ăberschreibt die Farbe der 1. Textzeile (Temperatur)
unit: Ăberschreibt die Einheit der 1. Textzeile unnd 2. Textzeile (Temperatur)icon2: wie oben fĂŒr Zeile 3 (Luftfeuchtigkeit)
onColor2: wie oben fĂŒr Zeile 3 (Luftfeuchtigkeit)
unit2: Ăberschreibt die Einheit der 3. Textzeile (Luftfeuchtigkeit)iconHeatCycle: Ăberschreibt das Zahlenicon in den PageItems (auĂen herum)
iconHeatCycleOnColor: Ăberschreibt die Farbe fĂŒr aktiviert in den PageItems (auĂen herum)
iconHeatCycleOffColor: Ăberschreibt die Farbe fĂŒr deaktiviert in den PageItems (auĂen herum)minValue: minimale Einstellbare Temperatur (Default: 15) im Admin einstellbar ob 10 = 1 °C oder 10 = 10 °C
maxValue: maximal einstellbare Temperatur (Default: 28) im Admin einstellbar
stepValue: Schritte fĂŒr +/-. Eine eingetragene 0.1 bedeutet Schritte von 0.1 (Default: 0.5) im Admin einstellbarpower: Das wird aktuell ĂŒber MODESET benutzt ist da ne 0 ist die anzeige "aus"im Admin einstellbar: Da gibts auf der 2ten Seite ganz unten eine Option ob man es kompatible zum Skript haben möchte oder natĂŒrlich.
modeList: Das denke ich ist noch nicht final und braucht deutlich mehr Text :)
modeIdbzw. 'MODE' undMODESETarbeiten auf die dieselbe Weise. Der Datenpunkt sollte vom Typenumbersein und kann im Object common.states verwenden - dann arbeiten das common.states fĂŒrmodeList.
modeList ĂŒberschreibt common.states und diese ĂŒberschreibt die Standardmodelist, die im Adapter hinterlegt ist:
Standard Modelist['OFF', 'AUTO', 'COOL', 'HEAT', 'ECO', 'FAN', 'DRY']Im Datenpunkt steht z.B. eine 0 dann wird
OFFangezeigt, steht dort eine 3 wirdHEATangezeigt (die werden ĂŒbersetzt).
Wenn das in den common.states des Datenpunktes genauso steht gilt dort das gleich. Ebenso in der modeList.
Im Skript sieht dass dann etwas regional angepasst so aus:modeList: ["Aus'm", "Automat", "KĂŒhl'n", "Heiz'n", "Sparn", "Puste", "Trockn"],ErgĂ€nzend wurde TargetMode und CurrentMode aufgeteilt - siehe Alias Tabelle - das ist noch nicht final - Da muĂ am nĂ€chsten WE noch etwas rumdiskutiert werden - ich wĂŒrde gerne den CurrentMode unterhalb der Temperatur anzeigen mit
inaktiv, idle, heizen, kĂŒhlen
Wenn MODE nicht angegeben ist wird es durch MODESET ersetzt.
MODE: kann vom common.type = 'string' sein, dann wird einfach geschrieben was im Datenpunkt steht.PageItemerweiterung
FĂŒr die Pageitems gibt es eine neue Eigenschaft die aktuell aber nur fĂŒr die cardThermo2 von belang ist:
items:[ {id: 'alias.0.Licht.lights.GerÀt_1', filter: 0}, ],filter:Ist es definiert wird das Pageitem nur angezeigt, wenn der entsprechende Heizkreis aktiv ist. ZÀhlung beginnt bei 0 (number).
Wenn eine airCondition per 'id' hinzugefĂŒgt wird erhöht sich der index nach der airCondition um 1.Der Adapter unterstĂŒtzt jetzt auch Platzhalter PageItems - durch
id:'delete'oderid:'empty'werden diese definiert.Das ist noch nicht in der aktuellen Branch. Wenn ihr trotzdem testen wollt der Installationslink wÀre dieser Alpha-Test
SchluĂanmerkung - die rollen fĂŒr aircondition können sich noch Ă€ndern - die scheinen sich von thermostat zu unterscheiden also besser da nachgucken.
-
Ich hab man eine erste Version einer
cardMediafĂŒr Alexa und nur fĂŒr Alexa eingebaut.
Die Basisfunktionen sollte soweit gehen. Die Knöpfe unten die ein Haus anzeigen sind nur Platzhalter zum Testen. Sobald da ein echtes Icon auftaucht ist funktionalitÀt dahinterKonfiguration sieht im Skript so aus:
const pageMediaTest2: PageType ={ type: 'cardMedia', heading: 'test', media: { id: 'alexa2.0.Echo-Devices.G071C4465321366A2', //id ist geĂ€ndert, danke Homoran fĂŒrs gucken ^^ speakerList:[] }, uniqueName:'main', items:[], };Wenn in speakList nichts drin steht, werden alle GerĂ€te angezeigt. Wenn dort die Namen der GerĂ€te gelistet sind werden nur die angezeigt, die dort und im ioBroker existieren. Ist eine Zeichenkettenliste z.B.
['Echo Wohnzimmer' , '...' , usw.]die Namen findet ihr im common.name vom id datenpunkt - bzw in der namens spalte in der ObjektĂŒbersicht.Bitte keine Anfragen nach weiteren Adapter - erstmal Alexa ans laufen bekommen, das kann ich testen. Dann fange ich an mit States ohne die entsprechenden Adapter das zu erweitern.
EDIT:
Equalizier - geht erst wenn ich entweder weiĂ wie es anders gedacht ist oder TFT ein update bekommen hatEDIT2:
Equalizier - geht mit der neueste Beta TFT und etwas anpassungen im adapter
Playlist fĂŒr Alexa ist drin, wie im anderen Skript umgesetzt
ach und brightsky Vorlagen mĂŒssen eigentlich auch da sein. -
Ich hab man eine erste Version einer
cardMediafĂŒr Alexa und nur fĂŒr Alexa eingebaut.
Die Basisfunktionen sollte soweit gehen. Die Knöpfe unten die ein Haus anzeigen sind nur Platzhalter zum Testen. Sobald da ein echtes Icon auftaucht ist funktionalitÀt dahinterKonfiguration sieht im Skript so aus:
const pageMediaTest2: PageType ={ type: 'cardMedia', heading: 'test', media: { id: 'alexa2.0.Echo-Devices.G071C4465321366A2', //id ist geĂ€ndert, danke Homoran fĂŒrs gucken ^^ speakerList:[] }, uniqueName:'main', items:[], };Wenn in speakList nichts drin steht, werden alle GerĂ€te angezeigt. Wenn dort die Namen der GerĂ€te gelistet sind werden nur die angezeigt, die dort und im ioBroker existieren. Ist eine Zeichenkettenliste z.B.
['Echo Wohnzimmer' , '...' , usw.]die Namen findet ihr im common.name vom id datenpunkt - bzw in der namens spalte in der ObjektĂŒbersicht.Bitte keine Anfragen nach weiteren Adapter - erstmal Alexa ans laufen bekommen, das kann ich testen. Dann fange ich an mit States ohne die entsprechenden Adapter das zu erweitern.
EDIT:
Equalizier - geht erst wenn ich entweder weiĂ wie es anders gedacht ist oder TFT ein update bekommen hatEDIT2:
Equalizier - geht mit der neueste Beta TFT und etwas anpassungen im adapter
Playlist fĂŒr Alexa ist drin, wie im anderen Skript umgesetzt
ach und brightsky Vorlagen mĂŒssen eigentlich auch da sein. -
@ticaki update auf die 4.9.6 hat bei den EU Panelen funktioniert auch bei dem US Panel aber da dann auf die 4.9.6 EU. Eine 4.9.6 US L.HMI habt ihr noch nicht ...?


@teletapi
Nö, muĂ mal gucken wieso dir ein Update angeboten wird, gibts aktuell nur fĂŒr EUkann man immer hier nachgucken:
https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/blob/main/json/version.json{ "tasmota": "15.0.1", "berry": "10", "berry-beta": "10", "tft": "4.9.5", "tft-us-l": "4.9.5", "tft-us-p": "4.9.5", "tft-beta": "4.9.6", "tft-us-l-beta": "4.9.5", "tft-us-p-beta": "4.9.5" }US-Version kommt immer mindestens einige Tage spÀter - ist aber nicht so das es Monate dauert^^
-
@teletapi
Nö, muĂ mal gucken wieso dir ein Update angeboten wird, gibts aktuell nur fĂŒr EUkann man immer hier nachgucken:
https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/blob/main/json/version.json{ "tasmota": "15.0.1", "berry": "10", "berry-beta": "10", "tft": "4.9.5", "tft-us-l": "4.9.5", "tft-us-p": "4.9.5", "tft-beta": "4.9.6", "tft-us-l-beta": "4.9.5", "tft-us-p-beta": "4.9.5" }US-Version kommt immer mindestens einige Tage spÀter - ist aber nicht so das es Monate dauert^^
@ticaki Ja das hatte ich mir schon gedacht bzw. hatte damit gerechnet das es nicht klappt. Ich hab das problem das ich das US Panel nach wie vor mit dem Flash Nextion Befehl nicht fertig flashen kann.
Gestern Abend kam mir da ein Gedanke ob es wohl sein könnte das es damit zu tun hat das ich auf allen Panelen die Deutsche ESP32 Version 15.0.1 habe und sich evtl. dadurch das TFT nicht zu 100% flashen lĂ€sst. Hat das mal jemand probiert.? Sonst wĂŒrde ich das heute mal testen. da sich die EU Software ja flashen lĂ€sst und die US Version sich ebenfalls nicht auf die EU Panele flashen lĂ€sst was ich ja auch probiert habe kam mir dieser Gedanke -
@ticaki Ja das hatte ich mir schon gedacht bzw. hatte damit gerechnet das es nicht klappt. Ich hab das problem das ich das US Panel nach wie vor mit dem Flash Nextion Befehl nicht fertig flashen kann.
Gestern Abend kam mir da ein Gedanke ob es wohl sein könnte das es damit zu tun hat das ich auf allen Panelen die Deutsche ESP32 Version 15.0.1 habe und sich evtl. dadurch das TFT nicht zu 100% flashen lĂ€sst. Hat das mal jemand probiert.? Sonst wĂŒrde ich das heute mal testen. da sich die EU Software ja flashen lĂ€sst und die US Version sich ebenfalls nicht auf die EU Panele flashen lĂ€sst was ich ja auch probiert habe kam mir dieser Gedanke@teletapi
Ich kenne keinen mit einem US-Panel - ich persönlich denke ja dass das Panel vielleicht nen Knall hat - wenn alles andere ja geht nur das nicht. Ist ja nur der Display anders. -
@ticaki Ja das hatte ich mir schon gedacht bzw. hatte damit gerechnet das es nicht klappt. Ich hab das problem das ich das US Panel nach wie vor mit dem Flash Nextion Befehl nicht fertig flashen kann.
Gestern Abend kam mir da ein Gedanke ob es wohl sein könnte das es damit zu tun hat das ich auf allen Panelen die Deutsche ESP32 Version 15.0.1 habe und sich evtl. dadurch das TFT nicht zu 100% flashen lĂ€sst. Hat das mal jemand probiert.? Sonst wĂŒrde ich das heute mal testen. da sich die EU Software ja flashen lĂ€sst und die US Version sich ebenfalls nicht auf die EU Panele flashen lĂ€sst was ich ja auch probiert habe kam mir dieser GedankeDas NSPanel
-
Was ist der Unterschied zwischen einem EU-NSPanel und einem US-NSPanel?
-
technisch:
Es gibt keinen Unterschied. Beide Versionen sind von den intern verbauten Komponenten absolut identisch -
optisch (Design):
Das EU-NSPanel ist die chinesische Antwort auf unsere EU-Norm fĂŒr Schalter... Wenn man den Vergleich in die US-Schalterprogramme sucht, findet man die NEMA-Norm.
-
-
Warum gibt es jetzt 3 unterschiedliche Versionen der Firmware?
- Das Display
Sowohl das EU-NSPanel, als auch das US-NSPanel, verwenden das gleiche Display. Aufgrund der Optik wurde es beim EU-Panel nur um ein paar mm weiter im GerÀt verschoben verklebt. Das US-Panel ist hingegen symetrisch verklebt.- Die EU Version hat also eine andere horizontale Verschiebung (15px), da ein kleiner Teil des funktionalen Displays ja unter dem GehÀuse versteckt ist.
- FĂŒr den den Ausgleich der EU-Verschiebung wird im HMI Code ein zusĂ€tzlicher Hack benutzt, um die Touch-Positionen auszugleichen
- Das Display
-
Welchen Vorteil bietet mir die US-P Version des NSPanels
-
Eigentlich keinen - es hat eher Nachteile zur EU-Version
- Das Design der TFT-Firmwar ist auf die horizontale Nutzung des Displays ausgerichtet. Bei der US-P Version ist das gleiche TFT-Display nur um 90° im GehÀuse verdreht
- Die Bezeichner sind in der US-P - Version kĂŒrzer und das bedeutet, man arbeitet eher mit vielen AbkĂŒrzungen um die gleichen Inhalte wie in der EU Version oder US-L Version dargestellt zu bekommen. Die Bezeichner sehen eher gequetscht aus. Gleiches gild fĂŒr Page-Ăberschriften.
-
Durch die vertikale Drehung steht mehr Platz nach unten zur VerfĂŒgung. Das wirkt sich nur in Cards wie der cardEntities oder cardSchedule aus, da hier 1-2 optionale EntitĂ€ten (mit kĂŒrzerer Bezeichnung) genutzt werden.
-
-
Welchen Vorteil bietet mir die US-L Version des NSPanels
- Eigentlich auch keinen - es hat eher Nachteile, das es nicht zu den EU-Normen passt. Die Ausrichtung des Displays ist jedoch perfekt zentriert.
Fazit: Man kann also klar ableiten, warum es erst die US-Versionen gab und dann eine EU-Version hinterhergeschoben wurde. Ist eine reine optische Entscheidung, technisch sind beide Panels gleich
Die Tasmota Version:
-
Es gibt unterschiedliche Tasmota Versionen fĂŒr den ESP32. Im Falle des NSPanels gab es bei der EinfĂŒhrung des NSPanels aber einen Bug in allen Tasmota-Versionen. Mit der Anbindung der seriellen Funktion des Arduino Core wurde im NSPanel ein Boot-Loop ausgelöst. Somit wurde damals als Bugfix eine eigenstĂ€ndige NSPanel-Tasmota-Version bereitgestellt, die auch in der Lage war den PSRAM des Panels zu nutzen.
-
In den heutigen ESP32-Versionen ist diese uralte Bug behoben und auch die PSRAM-Version ist in der Standard-Tasmota aktiv... Somit macht die Tasmota-Version (Standard/NSPanel) auch keinen Unterschied mehr.
Fazit: Da es absolut keinen Unterschied macht ob du ein EU-Panel oder ein US-Panel hast, liegt die gröĂte Wahrscheinlichkeit darin (wie @ticaki auch schon geschrieben hat), dass du ein "Montags-Produkt" bekommen hast. Es hat wahrscheinlich einen Defekt im Datenbus zwischen dem ESP32 und dem TFT.
-
-
Das NSPanel
-
Was ist der Unterschied zwischen einem EU-NSPanel und einem US-NSPanel?
-
technisch:
Es gibt keinen Unterschied. Beide Versionen sind von den intern verbauten Komponenten absolut identisch -
optisch (Design):
Das EU-NSPanel ist die chinesische Antwort auf unsere EU-Norm fĂŒr Schalter... Wenn man den Vergleich in die US-Schalterprogramme sucht, findet man die NEMA-Norm.
-
-
Warum gibt es jetzt 3 unterschiedliche Versionen der Firmware?
- Das Display
Sowohl das EU-NSPanel, als auch das US-NSPanel, verwenden das gleiche Display. Aufgrund der Optik wurde es beim EU-Panel nur um ein paar mm weiter im GerÀt verschoben verklebt. Das US-Panel ist hingegen symetrisch verklebt.- Die EU Version hat also eine andere horizontale Verschiebung (15px), da ein kleiner Teil des funktionalen Displays ja unter dem GehÀuse versteckt ist.
- FĂŒr den den Ausgleich der EU-Verschiebung wird im HMI Code ein zusĂ€tzlicher Hack benutzt, um die Touch-Positionen auszugleichen
- Das Display
-
Welchen Vorteil bietet mir die US-P Version des NSPanels
-
Eigentlich keinen - es hat eher Nachteile zur EU-Version
- Das Design der TFT-Firmwar ist auf die horizontale Nutzung des Displays ausgerichtet. Bei der US-P Version ist das gleiche TFT-Display nur um 90° im GehÀuse verdreht
- Die Bezeichner sind in der US-P - Version kĂŒrzer und das bedeutet, man arbeitet eher mit vielen AbkĂŒrzungen um die gleichen Inhalte wie in der EU Version oder US-L Version dargestellt zu bekommen. Die Bezeichner sehen eher gequetscht aus. Gleiches gild fĂŒr Page-Ăberschriften.
-
Durch die vertikale Drehung steht mehr Platz nach unten zur VerfĂŒgung. Das wirkt sich nur in Cards wie der cardEntities oder cardSchedule aus, da hier 1-2 optionale EntitĂ€ten (mit kĂŒrzerer Bezeichnung) genutzt werden.
-
-
Welchen Vorteil bietet mir die US-L Version des NSPanels
- Eigentlich auch keinen - es hat eher Nachteile, das es nicht zu den EU-Normen passt. Die Ausrichtung des Displays ist jedoch perfekt zentriert.
Fazit: Man kann also klar ableiten, warum es erst die US-Versionen gab und dann eine EU-Version hinterhergeschoben wurde. Ist eine reine optische Entscheidung, technisch sind beide Panels gleich
Die Tasmota Version:
-
Es gibt unterschiedliche Tasmota Versionen fĂŒr den ESP32. Im Falle des NSPanels gab es bei der EinfĂŒhrung des NSPanels aber einen Bug in allen Tasmota-Versionen. Mit der Anbindung der seriellen Funktion des Arduino Core wurde im NSPanel ein Boot-Loop ausgelöst. Somit wurde damals als Bugfix eine eigenstĂ€ndige NSPanel-Tasmota-Version bereitgestellt, die auch in der Lage war den PSRAM des Panels zu nutzen.
-
In den heutigen ESP32-Versionen ist diese uralte Bug behoben und auch die PSRAM-Version ist in der Standard-Tasmota aktiv... Somit macht die Tasmota-Version (Standard/NSPanel) auch keinen Unterschied mehr.
Fazit: Da es absolut keinen Unterschied macht ob du ein EU-Panel oder ein US-Panel hast, liegt die gröĂte Wahrscheinlichkeit darin (wie @ticaki auch schon geschrieben hat), dass du ein "Montags-Produkt" bekommen hast. Es hat wahrscheinlich einen Defekt im Datenbus zwischen dem ESP32 und dem TFT.
Ich hab heute mal versucht ein NSPanel aufzusetzen, komme da aber nicht weiter:
Die Einstellungen die ich gemacht hab sehen so aus:

Wenn ich dann versuche das Panel zu initialisieren (Button
NSPanel-Initialisierungbekomme ich eine Fehlermeldung:2025-08-31 15:21:56.731 - info: nspanel-lovelace-ui.0 (253221) starting. Version 0.2.4 in /opt/iobroker/node_modules/iobroker.nspanel-lovelace-ui, node: v20.19.4, js-controller: 7.0.6 2025-08-31 15:21:56.753 - error: nspanel-lovelace-ui.0 (253221) No compatible config found, paused! 2025-08-31 15:22:25.872 - info: nspanel-lovelace-ui.0 (253221) Sending mqtt config & base config to tasmota: 192.168.2.54 with user CENSORED && CENSORED 2025-08-31 15:22:25.990 - info: nspanel-lovelace-ui.0 (253221) Sending mqtt config & base config to tasmota with IP 192.168.2.54 and name Panel1. 2025-08-31 15:22:29.660 - error: nspanel-lovelace-ui.0 (253221) Error: while installing berry - AxiosError: timeout of 3000ms exceeded 2025-08-31 15:22:32.661 - error: nspanel-lovelace-ui.0 (253221) No version found!Interessanterweise kommt die Konfiguration am Panel an, zumindest wenn ich diesem Log glauben darf:
14:29:14.914 MQT: stat/NsPanel_1D3FE0/STATUS5 = {"StatusNET":{"Hostname":"Panel1","IPAddress":"192.168.2.54","Gateway":"192.168.2.1","Subnetmask":"255.255.255.0","DNSServer1":"192.168.2.2","DNSServer2":"0.0.0.0","Mac":"E4:65:B8:1D:3F:E0","IP6Global":"fda3:8957:951:5a48:e665:b8ff:fe1d:3fe0","IP6Local":"fe80::e665:b8ff:fe1d:3fe0%st1","Ethernet":{"Hostname":"","IPAddress":"0.0.0.0","Gateway":"0.0.0.0","Subnetmask":"0.0.0.0","DNSServer1":"192.168.2.2","DNSServer2":"0.0.0.0","Mac":"00:00:00:00:00:00","IP6Global":"","IP6Local":""},"Webserver":2,"HTTP_API":1,"WifiConfig":4,"WifiPower":16.0}} 14:29:15.035 MQT: stat/NsPanel_1D3FE0/RESULT = {"MqttHost":"192.168.2.222"} 14:29:15.116 MQT: stat/NsPanel_1D3FE0/RESULT = {"MqttPort":1888} 14:29:15.175 MQT: stat/NsPanel_1D3FE0/STATUS = {"Status":{"Module":0,"DeviceName":"Tasmota","FriendlyName":["Panel1",""],"Topic":"NsPanel_1D3FE0","ButtonTopic":"0","Power":"00","PowerLock":"00","PowerOnState":3,"LedState":1,"LedMask":"FFFF","SaveData":1,"SaveState":1,"SwitchTopic":"0","SwitchMode":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ButtonRetain":0,"SwitchRetain":0,"SensorRetain":0,"PowerRetain":0,"InfoRetain":0,"StateRetain":0,"StatusRetain":0}} 14:29:15.215 MQT: stat/NsPanel_1D3FE0/STATUS1 = {"StatusPRM":{"Baudrate":115200,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"https://ota.tasmota.com/tasmota32/release-14.1.0/tasmota32-nspanel.bin","RestartReason":"Software reset CPU","Uptime":"0T00:03:20","StartupUTC":"2025-08-31T13:25:55","Sleep":0,"CfgHolder":4617,"BootCount":50,"BCResetTime":"2024-06-07T13:23:57","SaveCount":195}} 14:29:15.253 MQT: stat/NsPanel_1D3FE0/STATUS2 = {"StatusFWR":{"Version":"14.1.0(release-nspanel)","BuildDateTime":"2024-06-03T11:56:09","Core":"3_0_0","SDK":"5.1.4.240529","CpuFrequency":160,"Hardware":"ESP32-D0WD-V3 v3.1","CR":"473/699"}} 14:29:15.269 MQT: stat/NsPanel_1D3FE0/STATUS3 = {"StatusLOG":{"SerialLog":2,"WebLog":2,"MqttLog":0,"SysLog":0,"LogHost":"","LogPort":514,"SSId":["waet6",""],"TelePeriod":300,"Resolution":"558180C0","SetOption":["00008009","2805C80001000600003C5A0A192800000000","00000080","00006000","00044000","00000000"]}} 14:29:15.320 MQT: stat/NsPanel_1D3FE0/STATUS4 = {"StatusMEM":{"ProgramSize":2033,"Free":846,"Heap":122,"StackLowMark":3,"PsrMax":0,"PsrFree":0,"ProgramFlashSize":4096,"FlashSize":4096,"FlashChipId":"1640C8","FlashFrequency":40,"FlashMode":"DIO","Features":["0809","9F9AD7DF","0015A001","B7F7BFCF","05DA9BC4","E0360DC7","480840D2","20200000","D4BC482D","810A80B1","00000014"],"Drivers":"1,2,!3,!4,!5,7,!8,9,10,11,12,!14,!16,!17,!20,!21,24,26,!27,29,!34,!35,38,50,52,!59,!60,62,!63,!66,!67,!68,!73,82,!86,!87,!88,!121","Sensors":"1,2,3,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,26,31,34,37,39,40,42,43,45,51,52,55,56,58,59,64,66,67,74,85,92,95,98,103,105,109,127","I2CDriver":"7,8,9,10,11,12,13,14,15,17,18,20,24,29,31,36,41,42,44,46,48,58,62,65,69,76,77,82"}} 14:29:15.392 MQT: stat/NsPanel_1D3FE0/STATUS5 = {"StatusNET":{"Hostname":"Panel1","IPAddress":"192.168.2.54","Gateway":"192.168.2.1","Subnetmask":"255.255.255.0","DNSServer1":"192.168.2.2","DNSServer2":"0.0.0.0","Mac":"E4:65:B8:1D:3F:E0","IP6Global":"fda3:8957:951:5a48:e665:b8ff:fe1d:3fe0","IP6Local":"fe80::e665:b8ff:fe1d:3fe0%st1","Ethernet":{"Hostname":"","IPAddress":"0.0.0.0","Gateway":"0.0.0.0","Subnetmask":"0.0.0.0","DNSServer1":"192.168.2.2","DNSServer2":"0.0.0.0","Mac":"00:00:00:00:00:00","IP6Global":"","IP6Local":""},"Webserver":2,"HTTP_API":1,"WifiConfig":4,"WifiPower":16.0}} 14:29:15.440 MQT: stat/NsPanel_1D3FE0/STATUS6 = {"StatusMQT":{"MqttHost":"192.168.2.222","MqttPort":1888,"MqttClientMask":"SonoffNsPanel_%06X","MqttClient":"SonoffNsPanel_1D3FE0","MqttUser":"stormbroker","MqttCount":1,"MAX_PACKET_SIZE":1200,"KEEPALIVE":30,"SOCKET_TIMEOUT":4}} 14:29:15.466 MQT: stat/NsPanel_1D3FE0/STATUS7 = {"StatusTIM":{"UTC":"2025-08-31T13:29:15Z","Local":"2025-08-31T14:29:15","StartDST":"2025-03-30T02:00:00","EndDST":"2025-10-26T03:00:00","Timezone":"+01:00","Sunrise":"06:06","Sunset":"19:34"}} 14:29:15.496 MQT: stat/NsPanel_1D3FE0/STATUS10 = {"StatusSNS":{"Time":"2025-08-31T14:29:15","ANALOG":{"Temperature1":2.9},"TempUnit":"C"}} 14:29:15.515 MQT: stat/NsPanel_1D3FE0/STATUS11 = {"StatusSTS":{"Time":"2025-08-31T14:29:15","Uptime":"0T00:03:20","UptimeSec":200,"Heap":120,"SleepMode":"Dynamic","Sleep":0,"LoadAvg":460,"MqttCount":1,"Berry":{"HeapUsed":16,"Objects":213},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"waet6","BSSId":"4C:32:75:C6:C7:82","Channel":11,"Mode":"HT20","RSSI":100,"Signal":-43,"LinkCount":1,"Downtime":"0T00:00:04"}}} 14:29:15.641 MQT: stat/NsPanel_1D3FE0/RESULT = {"MqttUser":"CENSORED"} 14:29:15.842 MQT: stat/NsPanel_1D3FE0/RESULT = {"MqttPassword":"CENSORED"} 14:29:16.043 MQT: tele/NsPanel_1D3FE0/LWT = (retained) 14:29:16.047 MQT: NsPanel_1D3FE0/stat/RESULT = {"FullTopic":"NsPanel_1D3FE0/%prefix%/"} 14:29:16.244 MQT: NsPanel_1D3FE0/stat/RESULT = {"MqttRetry":10} 14:29:16.567 MQT: NsPanel_1D3FE0/stat/RESULT = {"FriendlyName1":"Panel1"} 14:29:16.769 MQT: NsPanel_1D3FE0/stat/RESULT = {"Hostname":"Panel1"}Ich hab das auch mal mit der aktuellen GitHub Version versucht - der Effekt ist der gleiche. Hier das Log vom Start dieser Version:
2025-08-31 15:38:07.263 - warn: admin.0 (857) nspanel-lovelace-ui has an invalid jsonConfig: [{"instancePath":"/items/overview/items/_useBetaTFTText","schemaPath":"#/patternProperties/%5E.%2B/allOf/37/then/oneOf","keyword":"oneOf","params":{"passingSchemas":[0,1]},"message":"must match exactly one schema in oneOf"},{"instancePath":"/items/overview","schemaPath":"#/properties/items/patternProperties/%5E.%2B/allOf/9/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"","schemaPath":"#/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"}] 2025-08-31 15:38:11.169 - info: host.raspberrypi "system.adapter.nspanel-lovelace-ui.0" enabled 2025-08-31 15:38:11.464 - info: host.raspberrypi instance system.adapter.nspanel-lovelace-ui.0 in version "0.2.4" (non-npm: ticaki/ioBroker.nspanel-lovelace-ui) started with pid 254177 2025-08-31 15:38:12.337 - info: nspanel-lovelace-ui.0 (254177) starting. Version 0.2.4 (non-npm: ticaki/ioBroker.nspanel-lovelace-ui) in /opt/iobroker/node_modules/iobroker.nspanel-lovelace-ui, node: v20.19.4, js-controller: 7.0.6 2025-08-31 15:38:12.435 - info: nspanel-lovelace-ui.0 (254177) [mqttServer] Started and listening on port 1888 2025-08-31 15:38:12.437 - error: nspanel-lovelace-ui.0 (254177) No compatible config found, paused!was mach ich falsch / was fehlt mir ?
A.
p.s. Fuer alle Neugierigen - iob Diag im Spoiler - das sollte aber sauber sein. Die 2 nicht aktualisierten Adapter sind absichtlich so. -
-
Ich hab heute mal versucht ein NSPanel aufzusetzen, komme da aber nicht weiter:
Die Einstellungen die ich gemacht hab sehen so aus:

Wenn ich dann versuche das Panel zu initialisieren (Button
NSPanel-Initialisierungbekomme ich eine Fehlermeldung:2025-08-31 15:21:56.731 - info: nspanel-lovelace-ui.0 (253221) starting. Version 0.2.4 in /opt/iobroker/node_modules/iobroker.nspanel-lovelace-ui, node: v20.19.4, js-controller: 7.0.6 2025-08-31 15:21:56.753 - error: nspanel-lovelace-ui.0 (253221) No compatible config found, paused! 2025-08-31 15:22:25.872 - info: nspanel-lovelace-ui.0 (253221) Sending mqtt config & base config to tasmota: 192.168.2.54 with user CENSORED && CENSORED 2025-08-31 15:22:25.990 - info: nspanel-lovelace-ui.0 (253221) Sending mqtt config & base config to tasmota with IP 192.168.2.54 and name Panel1. 2025-08-31 15:22:29.660 - error: nspanel-lovelace-ui.0 (253221) Error: while installing berry - AxiosError: timeout of 3000ms exceeded 2025-08-31 15:22:32.661 - error: nspanel-lovelace-ui.0 (253221) No version found!Interessanterweise kommt die Konfiguration am Panel an, zumindest wenn ich diesem Log glauben darf:
14:29:14.914 MQT: stat/NsPanel_1D3FE0/STATUS5 = {"StatusNET":{"Hostname":"Panel1","IPAddress":"192.168.2.54","Gateway":"192.168.2.1","Subnetmask":"255.255.255.0","DNSServer1":"192.168.2.2","DNSServer2":"0.0.0.0","Mac":"E4:65:B8:1D:3F:E0","IP6Global":"fda3:8957:951:5a48:e665:b8ff:fe1d:3fe0","IP6Local":"fe80::e665:b8ff:fe1d:3fe0%st1","Ethernet":{"Hostname":"","IPAddress":"0.0.0.0","Gateway":"0.0.0.0","Subnetmask":"0.0.0.0","DNSServer1":"192.168.2.2","DNSServer2":"0.0.0.0","Mac":"00:00:00:00:00:00","IP6Global":"","IP6Local":""},"Webserver":2,"HTTP_API":1,"WifiConfig":4,"WifiPower":16.0}} 14:29:15.035 MQT: stat/NsPanel_1D3FE0/RESULT = {"MqttHost":"192.168.2.222"} 14:29:15.116 MQT: stat/NsPanel_1D3FE0/RESULT = {"MqttPort":1888} 14:29:15.175 MQT: stat/NsPanel_1D3FE0/STATUS = {"Status":{"Module":0,"DeviceName":"Tasmota","FriendlyName":["Panel1",""],"Topic":"NsPanel_1D3FE0","ButtonTopic":"0","Power":"00","PowerLock":"00","PowerOnState":3,"LedState":1,"LedMask":"FFFF","SaveData":1,"SaveState":1,"SwitchTopic":"0","SwitchMode":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ButtonRetain":0,"SwitchRetain":0,"SensorRetain":0,"PowerRetain":0,"InfoRetain":0,"StateRetain":0,"StatusRetain":0}} 14:29:15.215 MQT: stat/NsPanel_1D3FE0/STATUS1 = {"StatusPRM":{"Baudrate":115200,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"https://ota.tasmota.com/tasmota32/release-14.1.0/tasmota32-nspanel.bin","RestartReason":"Software reset CPU","Uptime":"0T00:03:20","StartupUTC":"2025-08-31T13:25:55","Sleep":0,"CfgHolder":4617,"BootCount":50,"BCResetTime":"2024-06-07T13:23:57","SaveCount":195}} 14:29:15.253 MQT: stat/NsPanel_1D3FE0/STATUS2 = {"StatusFWR":{"Version":"14.1.0(release-nspanel)","BuildDateTime":"2024-06-03T11:56:09","Core":"3_0_0","SDK":"5.1.4.240529","CpuFrequency":160,"Hardware":"ESP32-D0WD-V3 v3.1","CR":"473/699"}} 14:29:15.269 MQT: stat/NsPanel_1D3FE0/STATUS3 = {"StatusLOG":{"SerialLog":2,"WebLog":2,"MqttLog":0,"SysLog":0,"LogHost":"","LogPort":514,"SSId":["waet6",""],"TelePeriod":300,"Resolution":"558180C0","SetOption":["00008009","2805C80001000600003C5A0A192800000000","00000080","00006000","00044000","00000000"]}} 14:29:15.320 MQT: stat/NsPanel_1D3FE0/STATUS4 = {"StatusMEM":{"ProgramSize":2033,"Free":846,"Heap":122,"StackLowMark":3,"PsrMax":0,"PsrFree":0,"ProgramFlashSize":4096,"FlashSize":4096,"FlashChipId":"1640C8","FlashFrequency":40,"FlashMode":"DIO","Features":["0809","9F9AD7DF","0015A001","B7F7BFCF","05DA9BC4","E0360DC7","480840D2","20200000","D4BC482D","810A80B1","00000014"],"Drivers":"1,2,!3,!4,!5,7,!8,9,10,11,12,!14,!16,!17,!20,!21,24,26,!27,29,!34,!35,38,50,52,!59,!60,62,!63,!66,!67,!68,!73,82,!86,!87,!88,!121","Sensors":"1,2,3,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,26,31,34,37,39,40,42,43,45,51,52,55,56,58,59,64,66,67,74,85,92,95,98,103,105,109,127","I2CDriver":"7,8,9,10,11,12,13,14,15,17,18,20,24,29,31,36,41,42,44,46,48,58,62,65,69,76,77,82"}} 14:29:15.392 MQT: stat/NsPanel_1D3FE0/STATUS5 = {"StatusNET":{"Hostname":"Panel1","IPAddress":"192.168.2.54","Gateway":"192.168.2.1","Subnetmask":"255.255.255.0","DNSServer1":"192.168.2.2","DNSServer2":"0.0.0.0","Mac":"E4:65:B8:1D:3F:E0","IP6Global":"fda3:8957:951:5a48:e665:b8ff:fe1d:3fe0","IP6Local":"fe80::e665:b8ff:fe1d:3fe0%st1","Ethernet":{"Hostname":"","IPAddress":"0.0.0.0","Gateway":"0.0.0.0","Subnetmask":"0.0.0.0","DNSServer1":"192.168.2.2","DNSServer2":"0.0.0.0","Mac":"00:00:00:00:00:00","IP6Global":"","IP6Local":""},"Webserver":2,"HTTP_API":1,"WifiConfig":4,"WifiPower":16.0}} 14:29:15.440 MQT: stat/NsPanel_1D3FE0/STATUS6 = {"StatusMQT":{"MqttHost":"192.168.2.222","MqttPort":1888,"MqttClientMask":"SonoffNsPanel_%06X","MqttClient":"SonoffNsPanel_1D3FE0","MqttUser":"stormbroker","MqttCount":1,"MAX_PACKET_SIZE":1200,"KEEPALIVE":30,"SOCKET_TIMEOUT":4}} 14:29:15.466 MQT: stat/NsPanel_1D3FE0/STATUS7 = {"StatusTIM":{"UTC":"2025-08-31T13:29:15Z","Local":"2025-08-31T14:29:15","StartDST":"2025-03-30T02:00:00","EndDST":"2025-10-26T03:00:00","Timezone":"+01:00","Sunrise":"06:06","Sunset":"19:34"}} 14:29:15.496 MQT: stat/NsPanel_1D3FE0/STATUS10 = {"StatusSNS":{"Time":"2025-08-31T14:29:15","ANALOG":{"Temperature1":2.9},"TempUnit":"C"}} 14:29:15.515 MQT: stat/NsPanel_1D3FE0/STATUS11 = {"StatusSTS":{"Time":"2025-08-31T14:29:15","Uptime":"0T00:03:20","UptimeSec":200,"Heap":120,"SleepMode":"Dynamic","Sleep":0,"LoadAvg":460,"MqttCount":1,"Berry":{"HeapUsed":16,"Objects":213},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"waet6","BSSId":"4C:32:75:C6:C7:82","Channel":11,"Mode":"HT20","RSSI":100,"Signal":-43,"LinkCount":1,"Downtime":"0T00:00:04"}}} 14:29:15.641 MQT: stat/NsPanel_1D3FE0/RESULT = {"MqttUser":"CENSORED"} 14:29:15.842 MQT: stat/NsPanel_1D3FE0/RESULT = {"MqttPassword":"CENSORED"} 14:29:16.043 MQT: tele/NsPanel_1D3FE0/LWT = (retained) 14:29:16.047 MQT: NsPanel_1D3FE0/stat/RESULT = {"FullTopic":"NsPanel_1D3FE0/%prefix%/"} 14:29:16.244 MQT: NsPanel_1D3FE0/stat/RESULT = {"MqttRetry":10} 14:29:16.567 MQT: NsPanel_1D3FE0/stat/RESULT = {"FriendlyName1":"Panel1"} 14:29:16.769 MQT: NsPanel_1D3FE0/stat/RESULT = {"Hostname":"Panel1"}Ich hab das auch mal mit der aktuellen GitHub Version versucht - der Effekt ist der gleiche. Hier das Log vom Start dieser Version:
2025-08-31 15:38:07.263 - warn: admin.0 (857) nspanel-lovelace-ui has an invalid jsonConfig: [{"instancePath":"/items/overview/items/_useBetaTFTText","schemaPath":"#/patternProperties/%5E.%2B/allOf/37/then/oneOf","keyword":"oneOf","params":{"passingSchemas":[0,1]},"message":"must match exactly one schema in oneOf"},{"instancePath":"/items/overview","schemaPath":"#/properties/items/patternProperties/%5E.%2B/allOf/9/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"","schemaPath":"#/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"}] 2025-08-31 15:38:11.169 - info: host.raspberrypi "system.adapter.nspanel-lovelace-ui.0" enabled 2025-08-31 15:38:11.464 - info: host.raspberrypi instance system.adapter.nspanel-lovelace-ui.0 in version "0.2.4" (non-npm: ticaki/ioBroker.nspanel-lovelace-ui) started with pid 254177 2025-08-31 15:38:12.337 - info: nspanel-lovelace-ui.0 (254177) starting. Version 0.2.4 (non-npm: ticaki/ioBroker.nspanel-lovelace-ui) in /opt/iobroker/node_modules/iobroker.nspanel-lovelace-ui, node: v20.19.4, js-controller: 7.0.6 2025-08-31 15:38:12.435 - info: nspanel-lovelace-ui.0 (254177) [mqttServer] Started and listening on port 1888 2025-08-31 15:38:12.437 - error: nspanel-lovelace-ui.0 (254177) No compatible config found, paused!was mach ich falsch / was fehlt mir ?
A.
p.s. Fuer alle Neugierigen - iob Diag im Spoiler - das sollte aber sauber sein. Die 2 nicht aktualisierten Adapter sind absichtlich so.@asgothian sagte in Betatest NSPanel-lovelace-ui v0.2.x:
NSPanel-Initialisierung
Wenn das nicht durchlÀuft geht garnix - hast du das auch mit der aktuellen github version versucht und ist es mit dieser dann durchgelaufen?
Wenn ja dann - dann sollte im Skript adapter ein neues Skript in enem Subfolder angelegt worden sein, der wie der adapter heiĂt - bitte das 1 malig laufen lassen und dann adapter neustarten. Mir ist noch ncihts eingefallen um das zu automatisieren ohne das ich andere probleme bekomme.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen BeitrĂ€ge zu scrollen? Wenn du dich fĂŒr ein Konto anmeldest, kommst du immer genau dorthin zurĂŒck, wo du zuvor warst, und kannst dich ĂŒber neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und BeitrĂ€ge positiv bewerten, um anderen Community-Mitgliedern deine WertschĂ€tzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden đ
Registrieren Anmelden