NEWS
Test Adapter NSPanel-lovelace-ui v0.17.x
-
Fehler in der HMI und im Adapter behoben 5.0.3 (us-p only)
0.7.3 (2025-11-09)
- (ticaki) Switch from global subscript to individual subscriptions
- (ticaki) model us-p fixed
- (ticaki) update deps
popups sind nicht genug getestet
Dauert immer ein paar minuten bis die tests durch sind und das auf npm ist
-
Fehler in der HMI und im Adapter behoben 5.0.3 (us-p only)
0.7.3 (2025-11-09)
- (ticaki) Switch from global subscript to individual subscriptions
- (ticaki) model us-p fixed
- (ticaki) update deps
popups sind nicht genug getestet
Dauert immer ein paar minuten bis die tests durch sind und das auf npm ist
-
@ticaki bist der Wahnsinn. Leider bekomme ich es nicht zum laufen. Was muss ich im Script hinterlegen?
const Nachricht: ScriptConfig.PagePopup = { card: 'popupNotify', dpInit: '', alwaysOn: 'none', uniqueID: 'Nachritcht', config: { card: 'popupNotify', data: { entity1: { value: { type: 'triggered', dp: '0_userdata.0.example_state' } }, headline: { type: 'const', constVal: 'welcomeHToken' }, colorHeadline: { true: { color: { type: 'const', constVal: Green } } }, buttonLeft: { type: 'const', constVal: '' }, colorButtonLeft: { true: { color: { type: 'const', constVal: White } } }, buttonRight: { type: 'const', constVal: '' }, colorButtonRight: { true: { color: { type: 'const', constVal: White } } }, text: { type: 'const', constVal: 'welcomeTToken' }, // text: { type: 'const', constVal: 'Text Test ${pl}' }, colorText: { true: { color: { type: 'const', constVal: White } } }, timeout: { type: 'const', constVal: 3 }, // {placeholder: {text: '' oder dp: ''}} im Text muss dann ${dieserKeyStehtImText} stehen // optionalValue: { type: 'const', constVal: { dieserKeyStehtImText: { text: 'das ist ein placeholder' } } }, //setValue1: { type: 'const', constVal: true }, // alleine ist es ein switch //setValue2: { type: 'const', constVal: true }, // mit setValue2 wird 1, bei yes und 2 bei no auf true gesetzt closingBehaviour: { type: 'const', constVal: 'both' }, // 'both' | 'yes' | 'no' | 'none' }, }, pageItems: [], items: undefined, }; const Nachricht1: any = { dpInit: '', alwaysOn: 'ignore', uniqueID: '///popupNotification', config: { card: 'popupNotify', data: { entity1: { value: { type: 'internal', dp: 'cmd/popupNotification', read: 'return true' } }, headline: { type: 'internal', dp: 'cmd/popupNotification', read: 'return JSON.parse(val).headline' }, colorHeadline: { true: { color: { type: 'const', constVal: Green } } }, buttonLeft: { type: 'const', constVal: 'nextF' }, colorButtonLeft: { true: { color: { type: 'const', constVal: White } } }, buttonRight: { type: 'const', constVal: 'ok' }, colorButtonRight: { true: { color: { type: 'const', constVal: White } } }, text: { type: 'internal', dp: 'cmd/popupNotification', read: 'return JSON.parse(val).text' }, // text: { type: 'const', constVal: 'Text Test ${pl}' }, colorText: { true: { color: { type: 'const', constVal: White } } }, timeout: { type: 'const', constVal: 0 }, // {placeholder: {text: '' oder dp: ''}} // optionalValue: { type: 'const', constVal: { pl: { text: 'das ist ein placeholder' } } }, setValue1: { type: 'internalState', dp: 'cmd/NotificationCleared' }, setValue2: { type: 'internalState', dp: 'cmd/NotificationNext' }, closingBehaviour: { type: 'const', constVal: 'none' }, }, }, pageItems: [], items: undefined, };Bzw. habe ich es auch ĂŒber die Datenpunkte probiert.

POPUP ist in der main branch
Wie es ĂŒber States geht steht ja oben.
zum Skriptversand folgendes:
Simpel:
sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', {id: 'test3', headline:'test3', buttonLeft:'weiter', buttonRight: 'oki', text:'Es lebt!!!'})oder in kompliziert: :)
type PagePopupDataDetails = { headline: string; text: string; panel?: string; priority?: number; type?: 'information' | 'acknowledge'; id?: string; colorHeadline?: {r:number,g:number,b:number} | string; buttonLeft?: string; colorButtonLeft?: {r:number,g:number,b:number} | string; buttonRight?: string; colorButtonRight?: {r:number,g:number,b:number} | string; colorText?: {r:number,g:number,b:number} | string; textSize?: string; icon?: string; iconColor?: {r:number,g:number,b:number}; alwaysOn?: boolean; }; const message: PagePopupDataDetails = { id: 'test3', priority: 49, headline:'test3', buttonLeft:'weiter', buttonRight: 'oki', text:'Es lebt!!!', type: 'information', } sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', message)Popups sind grundsÀtzlich erstmal dauerhaft
yes ist der rechte button - no der linke - no hat die funktion weiter - yes löschenid: zur Wiedererkennung - beliebige Zeichenkette - wenn leer werden alle gespeicherten Popups gelöscht
type: information - wenn aufs X gedrĂŒckt wird oder auf den yes Button wird das gelöscht / acknowledge - drĂŒcken auf X startet wiedervorlage Timer (5 Minuten)
priority: 1: höchste Prio - 0 bzw. <= 0 löscht das popup mit der id
panel: nix popup ist global - mit angabe nur das benannte panel
alwaysOn: das gleiche wie bei Seiten
icon: wenn da wird icon iconcolor und textsize hingeschickt, sonst nichttext - headline muĂ angegeben sein sonst steht im Panel missing text/headline
acknowledge ohne Angabe von buttonRight wird umgetypt in information
das sind auswertungsstates fĂŒr die popups

in id steht die ID die du hingeschickt ist - auf globaler ebene steht noch das panel davor also panel.id
lokal im panel steht nur die ID
wenn yes oder no angeklickt wird, wird der entsprechende State mit der ID aktualisiert.global wird nur von globalen popups beschrieben. lokal von allen die auf dem panel angezeigt werden.
-
POPUP ist in der main branch
Wie es ĂŒber States geht steht ja oben.
zum Skriptversand folgendes:
Simpel:
sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', {id: 'test3', headline:'test3', buttonLeft:'weiter', buttonRight: 'oki', text:'Es lebt!!!'})oder in kompliziert: :)
type PagePopupDataDetails = { headline: string; text: string; panel?: string; priority?: number; type?: 'information' | 'acknowledge'; id?: string; colorHeadline?: {r:number,g:number,b:number} | string; buttonLeft?: string; colorButtonLeft?: {r:number,g:number,b:number} | string; buttonRight?: string; colorButtonRight?: {r:number,g:number,b:number} | string; colorText?: {r:number,g:number,b:number} | string; textSize?: string; icon?: string; iconColor?: {r:number,g:number,b:number}; alwaysOn?: boolean; }; const message: PagePopupDataDetails = { id: 'test3', priority: 49, headline:'test3', buttonLeft:'weiter', buttonRight: 'oki', text:'Es lebt!!!', type: 'information', } sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', message)Popups sind grundsÀtzlich erstmal dauerhaft
yes ist der rechte button - no der linke - no hat die funktion weiter - yes löschenid: zur Wiedererkennung - beliebige Zeichenkette - wenn leer werden alle gespeicherten Popups gelöscht
type: information - wenn aufs X gedrĂŒckt wird oder auf den yes Button wird das gelöscht / acknowledge - drĂŒcken auf X startet wiedervorlage Timer (5 Minuten)
priority: 1: höchste Prio - 0 bzw. <= 0 löscht das popup mit der id
panel: nix popup ist global - mit angabe nur das benannte panel
alwaysOn: das gleiche wie bei Seiten
icon: wenn da wird icon iconcolor und textsize hingeschickt, sonst nichttext - headline muĂ angegeben sein sonst steht im Panel missing text/headline
acknowledge ohne Angabe von buttonRight wird umgetypt in information
das sind auswertungsstates fĂŒr die popups

in id steht die ID die du hingeschickt ist - auf globaler ebene steht noch das panel davor also panel.id
lokal im panel steht nur die ID
wenn yes oder no angeklickt wird, wird der entsprechende State mit der ID aktualisiert.global wird nur von globalen popups beschrieben. lokal von allen die auf dem panel angezeigt werden.
@ticaki sagte in Betatest NSPanel-lovelace-ui v0.7.x:
type: information - wenn aufs X gedrĂŒckt wird oder auf den yes Button wird das gelöscht / acknowledge - drĂŒcken auf X startet wiedervorlage Timer (5 Minuten)
kleine ErgÀnzung:
Beim Type acknowledge, wird bei "yes" das Popup auch gelöscht -> ist als LesebestÀtigung zu werten
mit dem no / linken Button wird durch die Popups geblÀttert
AlwaysOn ist Standard auf true, bei false lÀuft der Timeout vom Screensaver ab, wenn das Popup eingeblendet wird.
Mit aufwecken des Panels erscheinen wieder die Popups, die noch nicht bestÀtigt wurden. -
hab noch
buzzerhinzugefĂŒgt- ĂŒber States geht das nur mit true/false
- per Skript kann man auch nen eigenen Buzzerstring mit schicken
im Skript wird der type dann um dieses hier erweitert:
buzzer?: boolean | string;Wird genau 1 mal beim ersten Anzeigen des entsprechenden Popup ausgelöst.
Ist natĂŒrlich auch fĂŒr den Rest - anzumerken wĂ€re zu
yesundXnoch:
XschlieĂt auf dem Panel wo es gedrĂŒckt wird das popup egal ob es ein globales oder lokales war.
yesschlieĂt/löscht/bestĂ€tigt bei einem globalen Popup dieses fĂŒr alle Panels. -
oft editiert:
Ich benenne die States doch um - in buttonLeft und buttonRight - damit man weiĂ was es ist. Das Panel sendet halt yes oder no daher die states - aber das ist quark und verwirrt nur.States umbenannt
isBuzzerAllowed hinzugefĂŒgt - das betrifft Notifications (screensaver) und pagePopups - wenn deaktiviert beept da nix. Gilt nicht fĂŒr das explizierte Buzzern ĂŒber State oder sendTo - wenn ihr absichtlich auf dem Schlafzimmerpanel um 4:00 nen buzzer hinsendet dann machts einfach nicht :D
-
Hier ne Anwendung fĂŒr die pagePopup:
macht ein Infopopup auf das anzeigt obs Adapterupdates gibt - alwaysOn: false - kein buzzer
on({ id: 'admin.0.info.updatesJson', change: 'ne' }, main); type PagePopupDataDetails = { headline: string; text: string; panel?: string; priority?: number; type?: 'information' | 'acknowledge'; id?: string; colorHeadline?: { r: number, g: number, b: number } | string; buttonLeft?: string; colorButtonLeft?: { r: number, g: number, b: number } | string; buttonRight?: string; colorButtonRight?: { r: number, g: number, b: number } | string; colorText?: { r: number, g: number, b: number } | string; textSize?: string; icon?: string; iconColor?: { r: number, g: number, b: number }; alwaysOn?: boolean; buzzer?: boolean | string; }; function main(obj) { let text = '' let headline = '' const id = 'AdapterUpdates' try { const data = JSON.parse(obj.state.val); const keys = Object.keys(data); if (keys && keys.length > 0) { for (const key of keys) { text += `${key}: ${data[key].availableVersion}(${data[key].installedVersion})\n` } headline = 'Adapterupdates verfĂŒgbar' } } catch { //nothing } if (headline) { const message: PagePopupDataDetails = { headline, text, id, buttonRight: 'Ok', alwaysOn: false, } sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', message) } else { sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', { id, text, headline, priority: -1 }) } } main({ state: { val: getState('admin.0.info.updatesJson').val } }) -
In der Wiki: https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki/PagePopup
0.8.0 (2025-11-13)
- (Armilar) IMPORTANT: update to TFT Version 5.1.0
- (ticaki) pagePopup added
- (ticaki) color for brightsky favorit/bottom day fixed
- (ticaki) unlock pin failtimeout - fixed
TFT update ist wichtig, sonst lÀuft die pagePopup nicht ordentlich.
yes und no States kann man löschen, falls ihr schon mal zwischendurch probiert habt - auf keinen Fall
nspanel-lovelace-ui.0löschen undnspanel-lovelace-ui.0.panels.A0_B7_65_54_C2_60usw. nur löschen wenn ihr in der NavigationsView nix gemacht habt.Nochmal neu die Beschreibung da sich ein paar Sachen geÀndert haben und mir das zu verwirrend ist @TT-Tom lese nochmal gegen das editiere ich - oder guck im repo da ist es auch.

Es werden immer alle Datenpunkte ĂŒbertragen:
activatesendet die Daten an den AdapterErklÀrung zu den States ist unten zu finden - einzig
globalbedeutet an alle Panels sendenbuttonLefthatnÀchstesals Standardfunktion (unendlicher Kreisverkehr) - wird automatische eingeblendet bei Bedarf
buttonMidschlieĂt nur die pagePopup
buttonRighthatlöschenals StandardfunktionbuttonLeftdienĂ€chsteFunktion, schlieĂt global/lokal ein ĂŒberblĂ€ttertes information Popup
XschlieĂt auf dem Panel wo es gedrĂŒckt wird das popup. Ein information Popup wird dabei entfernt.
buttonRightschlieĂt/löscht/bestĂ€tigt bei einem globalen Popup dieses fĂŒr alle Panels.Empfohlen: Versand mit Hilfe eines Skriptes
Simpel:
sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', {id: 'test3', headline:'test3', buttonLeft:'weiter', buttonRight: 'oki', text:'Es lebt!!!'})oder in kompliziert: :)
type PagePopupDataDetails = { id?: string; headline: string; text: string; panel?: string; priority?: number; type?: 'information' | 'acknowledge'; colorHeadline?: {r:number,g:number,b:number} | string; buttonLeft?: string; colorButtonLeft?: {r:number,g:number,b:number} | string; buttonMid?: string; colorButtonMid?: {r:number,g:number,b:number} | string; buttonRight?: string; colorButtonRight?: {r:number,g:number,b:number} | string; colorText?: {r:number,g:number,b:number} | string; textSize?: string; icon?: string; iconColor?: {r:number,g:number,b:number}; alwaysOn?: boolean; buzzer: boolean | string }; const message: PagePopupDataDetails = { id: 'test3', priority: 49, headline:'test3', buttonLeft:'weiter', buttonRight: 'oki', text:'Es lebt!!!', type: 'information', } sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', message)Popups sind grundsÀtzlich erstmal dauerhaft
buttonLeft - buttonMid - buttonRight wurde ja oben schon erklÀrtGlobal: Wenn kein Panel angegeben ist gilt alles als global auch das löschen.
id: zur Wiedererkennung - beliebige Zeichenkette - wenn leer werden alle gespeicherten Popups gelöscht
type: information - wenn aufs X gedrĂŒckt wird oder auf denbuttonRight/buttonLeftwird das gelöscht / acknowledge - drĂŒcken auf X startet wiedervorlage Timer (5 Minuten) drĂŒcken aufbuttonRightlöscht es.
priority: 1: höchste Prio | <= 0 löscht das popup mit der id <= -100 löscht die Popups die mit der id anfangen
panel: leer oder nicht da -> popup ist global | mit Angabe nur das benannte Panel
alwaysOn: das gleiche wie bei Seiten
textSize: unterschiedliche TextgröĂen 0-5
buzzer: true/false oder ein Tasmota Buzzer string. Wird 1 mal beim anzeigen ausgelöst.text - headline muà angegeben sein sonst steht im Panel missing text/headline
acknowledge ohne Angabe von buttonRight bekommt nen 'Ok' button
Auswertungsstates fĂŒr die Popups

in id steht die ID die du hingeschickt ist - auf globaler ebene steht noch das panel davor also panel.id
lokal im panel steht nur die IDglobal wird nur von globalen popups beschrieben. lokal von allen die auf dem panel angezeigt werden.
Beim DrĂŒcken eines Buttons wird der entsprechende Button mit der ID aktualisiert. Bei globalen Popups auch auf der globalen Ebene
EDIT: weather-warnings unterstĂŒtzt das popup hier
-
Ich glaube wir haben jetzt alles an Grundfunktionen im Adapter, mal abgesehen von dem leidigen Thema Adminkonfiguration.
Wenn was fehlt bitte Issue eröffnen.
EDIT: passend dazu hat @apollon77 gerade sein ok gegeben das wir ins latest repo dĂŒrfen

0.8.1 (2025-11-15)
- (ticaki) first Version at latest
- (ticaki) New attempt to get MQTT TLS keys into the backup
-
Ich glaube wir haben jetzt alles an Grundfunktionen im Adapter, mal abgesehen von dem leidigen Thema Adminkonfiguration.
Wenn was fehlt bitte Issue eröffnen.
EDIT: passend dazu hat @apollon77 gerade sein ok gegeben das wir ins latest repo dĂŒrfen

0.8.1 (2025-11-15)
- (ticaki) first Version at latest
- (ticaki) New attempt to get MQTT TLS keys into the backup
-
@ticaki
Moin,
kann man eigentlich im Screensaver die Icons variabel gestalten (so wie bei der Farbe)? đ€Schöne GrĂŒĂe
Verstehe die Frage nicht so richtig. Du kannst den screensaver komplett selbst konfigurieren. Wenn dir also ein Icon nicht zu sagt kannst du ein eigenes item anlegen. Die Standard ist nur ums einfacher zu machen.
Aber ernsthaft sage genauer was du Àndern willst. Man kann sovieles machen das ich nicht erkenne wo du hinwillst
-
Hi, ich bin heute endlich mal ein paar Minuten zum weiter machen gekommen.
Ich habe mal die ersten drei Themen gesammelt als Fragen und Feedback.
Leider habe ich hier im Forum nichts dazu gefunden aber irgenwie scheitere ich gerade an den aller einfachsten Dingen. peinlich
Ich wollte als ersten Test einfach nur einen Schalter auf die Hauptseite cardGrid legen.
Aber egal welche Rolle der Datenpunkt hat, das Script gibt mir immer aus "Channel role ... not supported".
Laut Doku bedeutet das ja, dass es nicht implementiert werden soll.const Hauptseite: ScriptConfig.PageGrid = { type: 'cardGrid', uniqueName: 'main', heading: 'MenĂŒ', items: [ { id: '0_userdata.0.testswitch', icon: 'power' }, ] };Der State ist boolean und ich habe state und switch mit den Untertypen ausprobiert. Ein Button hilft mir nicht, da es toggeln soll.
Ich schÀtze mal, ich hab nur einfach irgendwas noch nicht richtig verstanden.
Und noch eine zweite Frage bzw. Vorschlag: Bei der klassischen Script Variante wurde das Wetter aus einem Alias gezogen. Das hatte den Vorteil, dass ich die aktuelle Temperatur die z.B. der Screensaver beim Wettericon angezeigt wurde einfach auf mein richtiges AuĂenthermometer umbiegen konnte.
Jetzt, wo direkt der Wetteradapter angegeben ist habe ich noch nicht gesehen dass das aktuell möglich ist auĂer wenn ich mir einen fake-proxy fĂŒr z.b. den pirate-weather baue.
WĂ€re das was fĂŒr die Zukunft, denn den geschĂ€tzen Wert brauche ich ja nicht wenn ich auf einem zusĂ€tzlichen Icon dann noch den echten Wert anzeige.
Thema Nr. 3 betrifft die MQTT Settings die automatisch konfiguriert werden.
Wenn man "wie frĂŒher" die Rule2 konfiguriert um die Tasten von den Relais zu entkoppeln, wird im MQTT Pfad der Rule %topic% verwendet.
Aktuell wird (bzw. wurde bei mir durch die Initialisierung) nichts fĂŒr den %topic% Wert konfiguriert. Default ist dann "Tasmota_XXXX".
Dadurch schickt der Panel dann den Tastendruck ohne Fehler an die falsche Stelle und nichts passiert.
Nachdem ich das %topic% dann auf den Panelnamen gesetzt hatte, ging dann alles perfekt.
Ansonsten vielen Dank fĂŒr die ganze Arbeit, die Performance macht echt nen richtig guten Eindruck bisher.
-
Also Rule2 mĂŒsste bei mir off sein. Das entkopplen kannst du im Menue am NSPanel selbst machen. Service Menue, Relais, beide auf decoupled stellen.
Sieht im script dann so aus://-------DE: Anfang Einstellungen fĂŒr Hardware Button, wenn Sie softwareseitig genutzt werden (Rule2) ------------- //-------EN: Start Settings for Hardware Button, if used in software (Rule2) -------------------------------------- // DE: Konfiguration des linken Schalters des NSPanels // EN: Configuration of the left switch of the NSPanel buttonLeft: { mode: 'switch', state: 'alias.0.Flur.Flur_unten_Haustuer.ON' // Datenpunkt vom Type boolean z.B. ein Schalter }, // DE: Konfiguration des rechten Schalters des NSPanels // EN: Configuration of the right switch of the NSPanel buttonRight: { mode: 'switch', state: 'alias.0.Flur.Flur_Mitte.ON' // Datenpunkt vom Type boolean z.B. ein Schalter }, //--------- DE: Ende - Einstellungen fĂŒr Hardware Button, wenn Sie softwareseitig genutzt werden (Rule2) ------------- //--------- EN: End - settings for hardware button if they are used in software (Rule2) ------------------------------Rule2 in tasmota so:
23:54:10.219 CMD: Rule2 23:54:10.226 MQT: SmartHome/NSPanel_Schlafzimmer/stat/RESULT = {"Rule2":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":189,"Free":322,"Rules":"on Button1#state do Publish SmartHome/%topic%/tele/RESULT {\"CustomRecv\":\"event,button1\"} endon on Button2#state do Publish SmartHome/%topic%/tele/RESULT {\"CustomRecv\":\"event,button2\"} endon"}} -
Hi, ich bin heute endlich mal ein paar Minuten zum weiter machen gekommen.
Ich habe mal die ersten drei Themen gesammelt als Fragen und Feedback.
Leider habe ich hier im Forum nichts dazu gefunden aber irgenwie scheitere ich gerade an den aller einfachsten Dingen. peinlich
Ich wollte als ersten Test einfach nur einen Schalter auf die Hauptseite cardGrid legen.
Aber egal welche Rolle der Datenpunkt hat, das Script gibt mir immer aus "Channel role ... not supported".
Laut Doku bedeutet das ja, dass es nicht implementiert werden soll.const Hauptseite: ScriptConfig.PageGrid = { type: 'cardGrid', uniqueName: 'main', heading: 'MenĂŒ', items: [ { id: '0_userdata.0.testswitch', icon: 'power' }, ] };Der State ist boolean und ich habe state und switch mit den Untertypen ausprobiert. Ein Button hilft mir nicht, da es toggeln soll.
Ich schÀtze mal, ich hab nur einfach irgendwas noch nicht richtig verstanden.
Und noch eine zweite Frage bzw. Vorschlag: Bei der klassischen Script Variante wurde das Wetter aus einem Alias gezogen. Das hatte den Vorteil, dass ich die aktuelle Temperatur die z.B. der Screensaver beim Wettericon angezeigt wurde einfach auf mein richtiges AuĂenthermometer umbiegen konnte.
Jetzt, wo direkt der Wetteradapter angegeben ist habe ich noch nicht gesehen dass das aktuell möglich ist auĂer wenn ich mir einen fake-proxy fĂŒr z.b. den pirate-weather baue.
WĂ€re das was fĂŒr die Zukunft, denn den geschĂ€tzen Wert brauche ich ja nicht wenn ich auf einem zusĂ€tzlichen Icon dann noch den echten Wert anzeige.
Thema Nr. 3 betrifft die MQTT Settings die automatisch konfiguriert werden.
Wenn man "wie frĂŒher" die Rule2 konfiguriert um die Tasten von den Relais zu entkoppeln, wird im MQTT Pfad der Rule %topic% verwendet.
Aktuell wird (bzw. wurde bei mir durch die Initialisierung) nichts fĂŒr den %topic% Wert konfiguriert. Default ist dann "Tasmota_XXXX".
Dadurch schickt der Panel dann den Tastendruck ohne Fehler an die falsche Stelle und nichts passiert.
Nachdem ich das %topic% dann auf den Panelnamen gesetzt hatte, ging dann alles perfekt.
Ansonsten vielen Dank fĂŒr die ganze Arbeit, die Performance macht echt nen richtig guten Eindruck bisher.
wenn du etwas schalten willst, wĂ€re die Rolle fĂŒr den Channel entweder socket oder light.
Das ist die selbe Einstellung wie beim Script inkl. Datenpunkte.zeige doch mal deine Datenpunkte inkl. Channel .
fĂŒr Thema zwei gibt es noch kein Template, bitte lege dazu ein issue an. ich kann dir aus dem Stegreif jetzt keine kompetente Lösung anbieten.
Thema 3
Im Adapter werden die Rules automatisch gesetzt, wie auch die MQTT-Einstellungen.
Um die Tasten / Relais umzustellen, kannst ĂŒber das ServicemenĂŒ unter Relais einstellen oder per State untercmd/detachLeft cmd/detachRightmit
cmd/power1 cmd7power2kannst du die Relais schalten.
-
Was die Schalter oder Steckdosen angeht sieht das bei mir mit einem Beispiel so aus.
als erstes.
"Alle_Steckdosen" unter "Pages" eintragenconst Alle_Steckdosen: ScriptConfig.PageGrid = { type: 'cardGrid', uniqueName: 'Alle_Steckdosen', heading: 'Steckdosen', useColor: true, items: [ { navigate: true, id: null, targetPage: 'Steckdosen', offColor: Red, onColor: Green, name: 'Alle Steckdosen'}, ], };Als nĂ€chstes die Steckdosen : Dier erste Steckdose funktioniert, die letzte ist hier ausgeblendet. Alle anderen dazwischen hab ich gelöscht damit es nicht zu unĂŒbersichtlich wird.
"Steckdosen" dann unter "subPages" eintragenconst Steckdosen: ScriptConfig.PageEntities = { type: 'cardEntities', uniqueName: 'Steckdosen', heading: 'Steckdosen', subPage: true, useColor: true, prev: 'Alle_Steckdosen', home: 'Alle_Steckdosen', items: [ { id: 'alias.0.Steckdosen.Steckdose_Waschkueche', targetPage: 'Steckdosen', icon: 'power-socket-de', icon2: 'power-plug-off-outline', offColor: Red, onColor: Green, name: '3D Drucker' }, { id: 'alias.0.Steckdosen.BĂŒro_DTU', targetPage: 'Steckdosen', icon: 'power-socket-de', icon2: 'power-plug-off-outline', offColor: Red, onColor: Green, name: 'Buero Ahoy-DTU' }, /*{ id: 'alias.0.Steckdosen.Steckdose_ueber_Schreibtisch', targetPage: 'Steckdosen', icon: 'power-socket-de', icon2: 'power-plug-off-outline', offColor: Red, onColor: Green, name: 'PC Netzwerk' },*/ ], }; -
Was die Schalter oder Steckdosen angeht sieht das bei mir mit einem Beispiel so aus.
als erstes.
"Alle_Steckdosen" unter "Pages" eintragenconst Alle_Steckdosen: ScriptConfig.PageGrid = { type: 'cardGrid', uniqueName: 'Alle_Steckdosen', heading: 'Steckdosen', useColor: true, items: [ { navigate: true, id: null, targetPage: 'Steckdosen', offColor: Red, onColor: Green, name: 'Alle Steckdosen'}, ], };Als nĂ€chstes die Steckdosen : Dier erste Steckdose funktioniert, die letzte ist hier ausgeblendet. Alle anderen dazwischen hab ich gelöscht damit es nicht zu unĂŒbersichtlich wird.
"Steckdosen" dann unter "subPages" eintragenconst Steckdosen: ScriptConfig.PageEntities = { type: 'cardEntities', uniqueName: 'Steckdosen', heading: 'Steckdosen', subPage: true, useColor: true, prev: 'Alle_Steckdosen', home: 'Alle_Steckdosen', items: [ { id: 'alias.0.Steckdosen.Steckdose_Waschkueche', targetPage: 'Steckdosen', icon: 'power-socket-de', icon2: 'power-plug-off-outline', offColor: Red, onColor: Green, name: '3D Drucker' }, { id: 'alias.0.Steckdosen.BĂŒro_DTU', targetPage: 'Steckdosen', icon: 'power-socket-de', icon2: 'power-plug-off-outline', offColor: Red, onColor: Green, name: 'Buero Ahoy-DTU' }, /*{ id: 'alias.0.Steckdosen.Steckdose_ueber_Schreibtisch', targetPage: 'Steckdosen', icon: 'power-socket-de', icon2: 'power-plug-off-outline', offColor: Red, onColor: Green, name: 'PC Netzwerk' },*/ ], }; -
wenn du etwas schalten willst, wĂ€re die Rolle fĂŒr den Channel entweder socket oder light.
Das ist die selbe Einstellung wie beim Script inkl. Datenpunkte.zeige doch mal deine Datenpunkte inkl. Channel .
fĂŒr Thema zwei gibt es noch kein Template, bitte lege dazu ein issue an. ich kann dir aus dem Stegreif jetzt keine kompetente Lösung anbieten.
Thema 3
Im Adapter werden die Rules automatisch gesetzt, wie auch die MQTT-Einstellungen.
Um die Tasten / Relais umzustellen, kannst ĂŒber das ServicemenĂŒ unter Relais einstellen oder per State untercmd/detachLeft cmd/detachRightmit
cmd/power1 cmd7power2kannst du die Relais schalten.
Thema 2 dĂŒrfte durch umbiegen von entity1 gehen - mĂŒsste man mal testen
also damit meine ich:// das hier ist falsch { type: 'native' native: { template: 'keineAhnung' dp: 'x.y.z' data: { entity1: { value: { type: 'triggered', dp: 'eigenes.wetter' }}}} }mĂŒssten man mal ausprobieren. Keine Ahnung ob native ĂŒberhaupt in screensaver geht
-
Thema 2 dĂŒrfte durch umbiegen von entity1 gehen - mĂŒsste man mal testen
also damit meine ich:// das hier ist falsch { type: 'native' native: { template: 'keineAhnung' dp: 'x.y.z' data: { entity1: { value: { type: 'triggered', dp: 'eigenes.wetter' }}}} }mĂŒssten man mal ausprobieren. Keine Ahnung ob native ĂŒberhaupt in screensaver geht
-
Hi, ich bin heute endlich mal ein paar Minuten zum weiter machen gekommen.
Ich habe mal die ersten drei Themen gesammelt als Fragen und Feedback.
Leider habe ich hier im Forum nichts dazu gefunden aber irgenwie scheitere ich gerade an den aller einfachsten Dingen. peinlich
Ich wollte als ersten Test einfach nur einen Schalter auf die Hauptseite cardGrid legen.
Aber egal welche Rolle der Datenpunkt hat, das Script gibt mir immer aus "Channel role ... not supported".
Laut Doku bedeutet das ja, dass es nicht implementiert werden soll.const Hauptseite: ScriptConfig.PageGrid = { type: 'cardGrid', uniqueName: 'main', heading: 'MenĂŒ', items: [ { id: '0_userdata.0.testswitch', icon: 'power' }, ] };Der State ist boolean und ich habe state und switch mit den Untertypen ausprobiert. Ein Button hilft mir nicht, da es toggeln soll.
Ich schÀtze mal, ich hab nur einfach irgendwas noch nicht richtig verstanden.
Und noch eine zweite Frage bzw. Vorschlag: Bei der klassischen Script Variante wurde das Wetter aus einem Alias gezogen. Das hatte den Vorteil, dass ich die aktuelle Temperatur die z.B. der Screensaver beim Wettericon angezeigt wurde einfach auf mein richtiges AuĂenthermometer umbiegen konnte.
Jetzt, wo direkt der Wetteradapter angegeben ist habe ich noch nicht gesehen dass das aktuell möglich ist auĂer wenn ich mir einen fake-proxy fĂŒr z.b. den pirate-weather baue.
WĂ€re das was fĂŒr die Zukunft, denn den geschĂ€tzen Wert brauche ich ja nicht wenn ich auf einem zusĂ€tzlichen Icon dann noch den echten Wert anzeige.
Thema Nr. 3 betrifft die MQTT Settings die automatisch konfiguriert werden.
Wenn man "wie frĂŒher" die Rule2 konfiguriert um die Tasten von den Relais zu entkoppeln, wird im MQTT Pfad der Rule %topic% verwendet.
Aktuell wird (bzw. wurde bei mir durch die Initialisierung) nichts fĂŒr den %topic% Wert konfiguriert. Default ist dann "Tasmota_XXXX".
Dadurch schickt der Panel dann den Tastendruck ohne Fehler an die falsche Stelle und nichts passiert.
Nachdem ich das %topic% dann auf den Panelnamen gesetzt hatte, ging dann alles perfekt.
Ansonsten vielen Dank fĂŒr die ganze Arbeit, die Performance macht echt nen richtig guten Eindruck bisher.
Zu:
1.
Es wird ein channel mit role 'xyz' erwartet in dem ein State mit type:'x' und role: 'y' ist. Der channel ist die ID.
Um es sich besser zu merken - channel ist welches "Vorlage" verwendet wird und die states darunter sind die dazu gehörenden Daten.2. eigener State im Favorit
DafĂŒr muĂ wahrscheinlich das automatische HinzufĂŒgen von Wetterelementen ausgeschaltet werden. Dann definiert man das Favoritenelement selbst. Es kann vielleicht auch gehen wenn die weiter an bleiben, weil Nutzerelemente vor den anderen ins Array geschrieben werden und ohne Rotation werden die ersten zuerst angezeigt.
// Ausschalten des automatischen HinzufĂŒgens. Auch im Admin auf custom = leer umstellen weatherEntity: '', //... favoritScreensaverEntity:[ { type: 'native', native:{ template: 'text.brightsky.favorit', dpInit: `/^brightsky\\.0\\.current.+/`, modeScr: 'favorit', data: { entity2: { value: { type: 'triggered', dp: 'sainlogic.0.weather.current.outdoortemp' } } } } }, ],3.
Der Adapter verwendet Rule3 und macht dann folgendes:this.sendToTasmota( `${this.topic}/cmnd/Rule3`, `ON CustomSend DO RuleTimer3 120 ENDON ON Rules#Timer=3 DO CustomSend pageType~pageStartup ENDON${ this.detach.left ? ` ON Button1#state do Publish ${this.topic}/tele/RESULT {"CustomRecv":"event,button1"} ENDON` : '' }${ this.detach.right ? ` ON Button2#state do Publish ${this.topic}/tele/RESULT {"CustomRecv":"event,button2"} ENDON` : '' }`, );Die erste Abfrage bringt das panel in den startup wenn es lĂ€nger als 120 Sekunden keine Nachricht vom Adapter bekommen hat. Das zweite und dritte sind fĂŒr das detachen zustĂ€ndig, jenachdem wie State:
nspanel-lovelace-ui.0.panels.A0_B7_65_54_C2_60.cmd.detachLeft/Rightaussehen -
Vielen Dank, ich hab ja gesagt dass ich bestimmt irgendwas verpeilt habe

Ich habe nen Haufen States die ich fĂŒr die Steuerung meiner ganzen Scripts verwende fĂŒr verschiedenste Use-Cases. Das sind alles weder Steckdosen noch Lichter. Hatte verdrĂ€ngt dass ich fĂŒr jeden Bool-Wert den ich schalten möchte ein Fake-GerĂ€t-Alias anlegen muss.
Hatte gedacht bzw. gehofft dass man einfach bool Punkte toggeln kann wie es z.B. bei der Belegung der Hardwarebuttons geht ĂŒber den neuen Mode 'switch'.
Also sorry fĂŒr die ĂŒberflĂŒssige Frage.
Zu Thema2: Vielen Dank fĂŒr den Tipp. Werde ich mir mal anschauen und testen.
Ich muss mir das noch mal genauer durchlesen. Ich habe das Konzept von den Templates noch nicht ganz durchschaut und was ich da dann genau machen muss.
Ich gebe nochmal bescheid ob das so klappt wie vorgeschlagen.
Zu Thema 3: Danke fĂŒr die ErlĂ€uterung. Die ganzen Settings mit der Rule2 und detach sind alle bekannt. Ich benutze das ja schon einige Jahre.
Ich hatte nur ĂŒbersehen, dass hier die Einstellung fĂŒr Topic auf dem Defaultwert bleibt bei der Einrichtung.
Wenn dann die Rule2 so gesetzt ist:
...state do Publish SmartHome/%topic%/tele/RESULT ....
dann landen die Events quasi im Nirvana, da der Pfad dann nicht stimmt.

Aber vielleicht ist auch nur bei dem automatischen Setup bei mir was schief gegangen.
Hatte nen reset 4 gemacht und dann alles automatisch ĂŒber den Adapter laufen lassen.@ticaki Danke fĂŒr die Info. Das habe ich nicht gesehen. Trotz komplettem Reset war irgendwie die Rule2 nach dem auto setup gesetzt und das schalten von States ĂŒber die Buttons hat nicht funtkioniert. Nachdem ichs ĂŒber die Rule2 wie oben beschrieben selbst gesetzt habe ging es dann.
Werde ich nochmal vom Reset aus durchspielen was da schief gelaufen ist.
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