NEWS
SONOFF NSPanel mit Lovelace UI
-
Sollte in etwa so aussehen

Falls nicht, dann den ganzen 0_userdata-Baum und Alias-Baum löschen und neu anlegen lassen.
-
Sollte in etwa so aussehen

Falls nicht, dann den ganzen 0_userdata-Baum und Alias-Baum löschen und neu anlegen lassen.
@armilar
So krass wollte ich nicht gleich rangehen.
Frage: wie kann man die Farbe von Icon wechseln bei diesem pageItem? Ich wollte als Übersicht das Icon Rot Weden lassen, wenn mein DP größer 1 ist.
<PageItem>{ navigate: true, id: 'Fenster', icon: 'window-closed-variant', onColor: MSGreen, offColor: MSRed, name: 'Fenster'} -
@armilar
So krass wollte ich nicht gleich rangehen.
Frage: wie kann man die Farbe von Icon wechseln bei diesem pageItem? Ich wollte als Übersicht das Icon Rot Weden lassen, wenn mein DP größer 1 ist.
<PageItem>{ navigate: true, id: 'Fenster', icon: 'window-closed-variant', onColor: MSGreen, offColor: MSRed, name: 'Fenster'}Da kenne ich nix

Habe es nie ausprobiert, wüsste aber auch keinen Grund warum es nicht gehen sollte...
-
Da kenne ich nix

Habe es nie ausprobiert, wüsste aber auch keinen Grund warum es nicht gehen sollte...
-
Aber es ist doch immer noch ein pageItem. Das hat eigentlich mit der Seitenstruktur nichts zu tun.
-
Aber es ist doch immer noch ein pageItem. Das hat eigentlich mit der Seitenstruktur nichts zu tun.
-
ich brauchte etwas länger... stimmt - wie soll der einen Wert bekommen?
Das wird wohl dann doch nicht gehen...
-
ich brauchte etwas länger... stimmt - wie soll der einen Wert bekommen?
Das wird wohl dann doch nicht gehen...
-
Wäre möglich. Keine Ahnung wo der herkommt. Wahrscheinlich noch aus einer früheren Navigation.
Naja war eigentlich auch nie gedacht, ein Navigations-Item einzufärben

Hast du schon eine Idee? Sonst bastel mal ne Runde... Ich muss aktuell noch ans Christmas-Release... hoffe das schaffen wir noch...
-
Wäre möglich. Keine Ahnung wo der herkommt. Wahrscheinlich noch aus einer früheren Navigation.
Naja war eigentlich auch nie gedacht, ein Navigations-Item einzufärben

Hast du schon eine Idee? Sonst bastel mal ne Runde... Ich muss aktuell noch ans Christmas-Release... hoffe das schaffen wir noch...
-
@armilar hat erstmal Zeit. Ich werde es morgen, ne übermorgen mal zusammenschreiben, wofür es genutzt werden kann und mir dann mal den Code ansehen. schönen Abend noch
Super, dir auch
-
Also das ist relativ einfach, mit 10-15 mal tippen kommst du auf meine Testseite auf der Verlinkungen zu diversen Seiten kommst, die sind allerdings leer, da das ioBroker Skript kein Inhalt zur Verfügung stellt. Das ist vollkommen normal, funktioniert vollkommen unabhängig von irgendeinem Backend. Auch dass das flashen bei 90% startet ist normal und spart beim updaten Zeit, da z.B. Schriftarten und Bilder sich nicht immer ändern. Wenn waiting for content da steht kannst du die Display Firmware auf jeden fall von der Liste streichen, die funktioniert. Nächste Stelle ist MQTT in Tasmota und das ioBroker Skript. Fragmente/Flash/Memory ist auf jeden Fall nicht die richtige Richtung.
Das Panel sendet in dem waiting for content screen regelmäßig
event,startup,42,eu, Tasmota leitet das weiter an das MQTT Result Topic, das backend nimmt das entgegen und sagt dem panel mitpageType xxxund dem dazugehörigen Inhalt was es anzeigen soll. Du könntest die Commands für das Display sogar manuell in Tasmota versenden. Damit es etwas sinnvolles anzeigt, das von ioBroker kommt muss das Skript also laufen und die MQTT Channel müssen in beiden Richtungen stimmen und funktionieren, da ich aber von ioBroker und dem Skript kein Plan hab überlass ich das mal den anderen.@jobr99 Hallo, ich verzweifel gerade ebenfalls schon mehrere Tage am Punkt "Waiting for content". Die Anleitung ist wirklich 1. Klasse, ich bekomme es aber einfach nicht hin.
Eine Frage zum Grundverständnis. Wenn die richtige Tasmota Version läuft, das Display geflasht ist und der Berry-Treiber richtig installiert ist, dann müsste doch ohne MQTT Server auch schon durch Eingabe von „CustomSend time~12:00“ in der Tasmota Console die Anzeige auf die Uhrzeit wechseln? Habe ich das richtig verstenden? VG AndreGELÖST: Wenn die Verzweiflung am größten ist geht es auf einmal - Ich habe den Datenpunkt "CustomSend" noch einmal über den ioBroker Expertenmodus und nicht im MQTT-Explorer oder über die Tasmota Console angelegt. Optisch sieht das Ergebnis genau so aus, nur das es nun geht!
-
@jobr99 Hallo, ich verzweifel gerade ebenfalls schon mehrere Tage am Punkt "Waiting for content". Die Anleitung ist wirklich 1. Klasse, ich bekomme es aber einfach nicht hin.
Eine Frage zum Grundverständnis. Wenn die richtige Tasmota Version läuft, das Display geflasht ist und der Berry-Treiber richtig installiert ist, dann müsste doch ohne MQTT Server auch schon durch Eingabe von „CustomSend time~12:00“ in der Tasmota Console die Anzeige auf die Uhrzeit wechseln? Habe ich das richtig verstenden? VG AndreGELÖST: Wenn die Verzweiflung am größten ist geht es auf einmal - Ich habe den Datenpunkt "CustomSend" noch einmal über den ioBroker Expertenmodus und nicht im MQTT-Explorer oder über die Tasmota Console angelegt. Optisch sieht das Ergebnis genau so aus, nur das es nun geht!
Schön das es funktioniert... Und weiterhin viel Spaß damit...
Zu deiner Frage, die du wahrscheinlich schon beantwortet hast:
Eine Frage zum Grundverständnis. Wenn die richtige Tasmota Version läuft, das Display geflasht ist und der Berry-Treiber richtig installiert ist, dann müsste doch ohne MQTT Server auch schon durch Eingabe von „CustomSend time~12:00“ in der Tasmota Console die Anzeige auf die Uhrzeit wechseln? Habe ich das richtig verstenden?
Die MQTT-Kommunikation muss funktionieren, da "alle" Inhalte für das NSPanel vom ioBroker kommen. Sogar die Zeit und das Datum.
Falls weitere Fragen aufkommen, zögere nicht sie hier zu stellen...

-
let vwIconColor = []; //-- Anfang der Beispiele für Seitengestaltung -- Selbstdefinierte Aliase erforderlich ---------------- var Garagen: PageEntities = { "type": "cardEntities", "heading": "Garagen", "useColor": true, "subPage": false, "parent": undefined, "items": [ <PageItem>{ id: "alias.0.Garagen-Papa.Garage-Audi", offColor: MSGreen, onColor: MSRed, name: "Garage Audi", icon: "garage-variant", icon2: "garage-open-variant"}, <PageItem>{ id: "alias.0.Garagen-Papa.Garage-Polo", offColor: MSGreen, onColor: MSRed, name: "Garage Polo", icon: "garage-variant", icon2: "garage-open-variant"}, <PageItem>{ id: "alias.0.Garagen-Papa.Garage-Fahrräder", offColor: MSGreen, onColor: MSRed, name: "Garage Fahrräder", icon: "garage-variant", icon2: "garage-open-variant"}, }; var WLAN: PageQR = { "type": "cardQR", "heading": "Gäste WLAN", "useColor": true, "subPage": true, "parent": undefined, "items": [<PageItem>{ id: "alias.0.NsPanelGarage.WLAN" }] }; //-- ENDE der Beispiele für Seitengestaltung -- Selbstdefinierte Aliase erforderlich ------------------ /********************************************************************************************************** */ //Service Pages mit Auto-Alias (Nachfolgende Seiten werden mit Alias automatisch angelegt) /********************************************************************************************************** */ let Service: PageEntities = { "type": "cardEntities", "heading": "NSPanel Service", "useColor": true, "subPage": false, "parent": undefined, "items": [ <PageItem>{ id: AliasPath + 'autoUpdate', name: "Auto-Updates" ,icon: "update", offColor: MSRed, onColor: MSGreen}, <PageItem>{ navigate: true, id: "NSPanel_Infos", icon: "information-outline", onColor: White, name: "NSPanel Infos"}, <PageItem>{ navigate: true, id: "NSPanel_Firmware_Info", icon: "update", onColor: White, name: "Firmware Infos"}, <PageItem>{ navigate: true, id: "NSPanel_Einstellungen", icon: "wrench-outline", onColor: White, name: "Screensaver"} ] }; //Subpage 1 von Subpages_2 let NSPanel_Infos: PageEntities = { "type": "cardEntities", "heading": "NSPanel Infos", "useColor": true, "subPage": true, "parent": Service, "items": [ <PageItem>{ id: AliasPath + 'Tasmota.Hardware', name: 'Hardware', icon: 'memory', offColor: MSYellow, onColor: MSYellow, useColor: true}, <PageItem>{ id: AliasPath + 'Sensor.ESP32.Temperature', name: "ESP Temperatur", icon: "thermometer", unit: "°C", offColor: MSYellow, onColor: MSYellow, useColor: true}, <PageItem>{ id: AliasPath + 'Tasmota.Uptime', name: "Uptime", icon: "timeline-clock-outline", offColor: MSYellow, onColor: MSYellow, useColor: true}, <PageItem>{ id: AliasPath + 'Tasmota.Wifi.RSSI', name: "Wifi-Signal", icon: "signal-distance-variant", unit: "dBm", offColor: MSYellow, onColor: MSYellow, useColor: true} ] }; //Subpage 2 von Subpages_2 let NSPanel_Einstellungen: PageEntities = { 'type': 'cardEntities', 'heading': 'Screensaver', 'useColor': true, 'subPage': true, 'parent': Service, 'items': [ <PageItem>{ id: AliasPath + 'Dimmode.brightnessDay', name: 'Brightness Tag', icon: 'brightness-5', offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 5, maxValue: 10}, <PageItem>{ id: AliasPath + 'Dimmode.brightnessNight', name: 'Brightness Nacht', icon: 'brightness-4', offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 0, maxValue: 4}, <PageItem>{ id: AliasPath + 'Dimmode.hourDay', name: 'Stunde Tag', icon: 'sun-clock', offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 0, maxValue: 23}, <PageItem>{ id: AliasPath + 'Dimmode.hourNight', name: 'Stunde Nacht', icon: 'sun-clock-outline', offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 0, maxValue: 23} ] }; //Subpage 3 von Subpages_2 let NSPanel_Firmware_Info: PageEntities = { 'type': 'cardEntities', 'heading': 'Firmware-Updates', 'useColor': true, 'subPage': true, 'parent': Service, 'items': [ <PageItem>{ id: AliasPath + 'Tasmota.Version', name: 'Tasmota Firmware', offColor: MSYellow, onColor: MSYellow, useColor: true}, <PageItem>{ id: AliasPath + 'Display.TFTVersion', name: 'TFT-Firmware', offColor: MSYellow, onColor: MSYellow, useColor: true}, <PageItem>{ id: AliasPath + 'Display.BerryDriver', name: 'Berry-Treiber', offColor: MSYellow, onColor: MSYellow, useColor: true}, <PageItem>{ id: AliasPath + 'Display.Model', name: 'NSPanel Version', offColor: MSYellow, onColor: MSYellow, useColor: true} ] }; export const config: Config = { panelRecvTopic: 'mqtt.0.tele.NS-Panel-Paps_0BED20.RESULT', // anpassen panelSendTopic: 'mqtt.0.cmnd.NS-Panel-Paps_0BED20.CustomSend', // anpassen firstScreensaverEntity: { ScreensaverEntity: 'accuweather.0.Hourly.h0.PrecipitationProbability', ScreensaverEntityIcon: 'weather-pouring', ScreensaverEntityText: 'Regen', ScreensaverEntityUnitText: '%', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100} }, secondScreensaverEntity: { ScreensaverEntity: 'accuweather.0.Current.WindSpeed', ScreensaverEntityIcon: 'weather-windy', ScreensaverEntityText: "Wind", ScreensaverEntityUnitText: 'km/h', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 120} }, thirdScreensaverEntity: { ScreensaverEntity: "shelly.1.SHSW-1#E098068D8BFC#1.ext.temperatureC3", ScreensaverEntityIcon: "pool-thermometer", ScreensaverEntityText: "Pool", ScreensaverEntityUnitText: "°C", ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 40} }, fourthScreensaverEntity: { ScreensaverEntity: 'accuweather.0.Current.RelativeHumidity', ScreensaverEntityIcon: 'water-percent', ScreensaverEntityText: 'Luft', ScreensaverEntityUnitText: '%', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100, 'val_best': 65} }, alternativeScreensaverLayout: false, autoWeatherColorScreensaverLayout: true, mrIcon1ScreensaverEntity: { ScreensaverEntity: 'mqtt.0.stat.NS-Panel-Paps_0BED20.POWER1', ScreensaverEntityIcon: 'light-switch', ScreensaverEntityOnColor: On, ScreensaverEntityOffColor: HMIOff }, mrIcon2ScreensaverEntity: { ScreensaverEntity: 'mqtt.0.stat.NS-Panel-Paps_0BED20.POWER2', ScreensaverEntityIcon: 'lightbulb', ScreensaverEntityOnColor: On, ScreensaverEntityOffColor: HMIOff }, timeoutScreensaver: 20, dimmode: 20, active: 100, //Standard-Brightness TFT screenSaverDoubleClick: true, locale: 'de-DE', // en-US, de-DE, nl-NL, da-DK, es-ES, fr-FR, it-IT, ru-RU, etc. timeFormat: '%H:%M', // currently not used dateFormat: '%A, %d. %B %Y', // currently not used weatherEntity: 'alias.0.Wetter.Gerät_1', // Dieser Alias muss erstellt werden, damit die 4 kleineren Icons (Wetter oder DP) angezeigt werden können --> oder autoCreateAlias auf true defaultOffColor: Off, defaultOnColor: On, defaultColor: Off, defaultBackgroundColor: Black, //New Parameter temperatureUnit: '°C', pages: [ Garagen, WLAN, Service //Auto-Alias Service Page ], subPages: [ NSPanel_Infos, //Auto-Alias Service Page NSPanel_Einstellungen, //Auto-Alias Service Page NSPanel_Firmware_Info //Auto-Alias Service Page ], button1Page: null, //Beispiel-Seite auf Button 1, wenn Rule2 definiert - Wenn nicht definiert --> button1Page: null, button2Page: null //Beispiel-Seite auf Button 2, wenn Rule2 definiert - Wenn nicht definiert --> button1Page: null, }; [s=] [/s]Grüßt euch,
bei mir läuft alles soweit. Nur mit den Popups bin ich am Ende meines Lateins.
Ich habe verstanden ich muss ein Script schreiben um es anzeigen lassen zu können. Richtig?
Hat jemand ein Script für die Updaten ?
Dankeschön für die Hilfe -
Grüßt euch,
bei mir läuft alles soweit. Nur mit den Popups bin ich am Ende meines Lateins.
Ich habe verstanden ich muss ein Script schreiben um es anzeigen lassen zu können. Richtig?
Hat jemand ein Script für die Updaten ?
Dankeschön für die HilfeIch gehe davon aus, dass du als popUp die Notifications meinst? Falls ja gibt es zwei davon...
Sagen wir es mal so... Du muss kein Skript schreiben um es anzeigen lassen zu können, sondern alle Informationen die du gerne visualisieren möchtest, kommen sowieso aus Datenpunkten oder anderen externen Skripten.
Fangen wir mal mit der ScreensaverNotify an. Das sind 2 Datenpunkte, die das TS-Script bereits angelegt hat und die als Schnittstelle dienen:
- 0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyHeading
- 0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyText
Gib mal etwas in diese Datenpunkte ein... Es sollte eine Nachricht im Screensaver erscheinen. Wenn du auf den Screensaver klickst, verschwindet die Nachricht.
EDIT:
Hier ist die andere beschrieben:
https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Card-Definitionen-(Seiten)#popupnotify---layout-2 -
Ich gehe davon aus, dass du als popUp die Notifications meinst? Falls ja gibt es zwei davon...
Sagen wir es mal so... Du muss kein Skript schreiben um es anzeigen lassen zu können, sondern alle Informationen die du gerne visualisieren möchtest, kommen sowieso aus Datenpunkten oder anderen externen Skripten.
Fangen wir mal mit der ScreensaverNotify an. Das sind 2 Datenpunkte, die das TS-Script bereits angelegt hat und die als Schnittstelle dienen:
- 0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyHeading
- 0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyText
Gib mal etwas in diese Datenpunkte ein... Es sollte eine Nachricht im Screensaver erscheinen. Wenn du auf den Screensaver klickst, verschwindet die Nachricht.
EDIT:
Hier ist die andere beschrieben:
https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Card-Definitionen-(Seiten)#popupnotify---layout-2@armilar said in SONOFF NSPanel mit Lovelace UI:
opupNotifyHeading
Ahh verstanden.
Ich kann die beiden füllen mit Infos (ext.). Danke
Die Software Updates für das NS Display sind schon implementiert in dem ganzen oder benötige ich hier ein ext. Script? -
@armilar said in SONOFF NSPanel mit Lovelace UI:
opupNotifyHeading
Ahh verstanden.
Ich kann die beiden füllen mit Infos (ext.). Danke
Die Software Updates für das NS Display sind schon implementiert in dem ganzen oder benötige ich hier ein ext. Script?@tobiasp sagte in SONOFF NSPanel mit Lovelace UI:
Ich kann die beiden füllen mit Infos (ext.). Danke
Ja, befüllen oder auch überschreiben. Solange die Nachricht auf dem Screensaver ist und der Screen nicht berührt wird, werden auch keine Icons-Updates gesendet. Wenn der Screen berührt wird, wird die Nachricht aus den beiden Datenpunkten gelöscht.
Die Software Updates für das NS Display sind schon implementiert in dem ganzen oder benötige ich hier ein ext. Script?
Ich verstehe die Frage nicht...
TFT-Updates werden immer angekündigt bzw. es gibt zu jeder TS-Script-Version ein passendes TFT-Update. Die TS-Script-Version orientiert sich immer an der TFT-Version...
Beispiel
TS-Script 3.6.0.4 --> TFT-Version 3.6.0Also ist die TFT-Version in der TS-Script-Version zu sehen.
Darüber hinaus ist in jedem TS-Script die passende (nicht immer aktuellste) TFT-Version zu sehen

Aktuell also die:
FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.6.0.tftDadurch wird sichergestellt, dass bei Änderungen in der HMI das TS-Script eine funktionierende TFT-Version hat. Neueres TFT-Update könnte bedeuten, dass einige Steuerelemente im Panel sonst nicht wie erwartet funktionieren...
EDIT:
Wenn du also das NSPanel mit:FlashNextion http://nspanel.pky.eu/lui-release.tftflashed, würde das Flashen zwar funktionieren, jedoch hättest du eine Entwicklerversion (DEV) die mit dem Script in der Regel "nicht" oder nur "bedingt" funktionieren wird. Daher immer die Variante mit der korrekten TFT-Version (siehe oberes Beispiel). Ich kündige die Änderungen aber auch hier an.
-
@tobiasp sagte in SONOFF NSPanel mit Lovelace UI:
Ich kann die beiden füllen mit Infos (ext.). Danke
Ja, befüllen oder auch überschreiben. Solange die Nachricht auf dem Screensaver ist und der Screen nicht berührt wird, werden auch keine Icons-Updates gesendet. Wenn der Screen berührt wird, wird die Nachricht aus den beiden Datenpunkten gelöscht.
Die Software Updates für das NS Display sind schon implementiert in dem ganzen oder benötige ich hier ein ext. Script?
Ich verstehe die Frage nicht...
TFT-Updates werden immer angekündigt bzw. es gibt zu jeder TS-Script-Version ein passendes TFT-Update. Die TS-Script-Version orientiert sich immer an der TFT-Version...
Beispiel
TS-Script 3.6.0.4 --> TFT-Version 3.6.0Also ist die TFT-Version in der TS-Script-Version zu sehen.
Darüber hinaus ist in jedem TS-Script die passende (nicht immer aktuellste) TFT-Version zu sehen

Aktuell also die:
FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.6.0.tftDadurch wird sichergestellt, dass bei Änderungen in der HMI das TS-Script eine funktionierende TFT-Version hat. Neueres TFT-Update könnte bedeuten, dass einige Steuerelemente im Panel sonst nicht wie erwartet funktionieren...
EDIT:
Wenn du also das NSPanel mit:FlashNextion http://nspanel.pky.eu/lui-release.tftflashed, würde das Flashen zwar funktionieren, jedoch hättest du eine Entwicklerversion (DEV) die mit dem Script in der Regel "nicht" oder nur "bedingt" funktionieren wird. Daher immer die Variante mit der korrekten TFT-Version (siehe oberes Beispiel). Ich kündige die Änderungen aber auch hier an.
-
@armilar
Hi,
ja das habe ich verstanden, aber ploppt auch ein Fenster bei einem Softwareupdate auf?
DAs meine ich ist das schon fertig implementiert oder muss ich hier tätig werden und was machne?Noch eine zweite FRage.
Ich versuche gerade die "Alias" für den Alarm anzulegen "PIN und Type". aber das geht nicht wenn ich auf das Plus gehe dann einen neuen State angebe wird der Bildschirm weis und ich kann den Pfad nicht auswählen.
Kennt das jemand? -
@armilar
Hi,
ja das habe ich verstanden, aber ploppt auch ein Fenster bei einem Softwareupdate auf?
DAs meine ich ist das schon fertig implementiert oder muss ich hier tätig werden und was machne?Wenn der Datenpunkt auf true steht
0_userdata.0.NSPanel.1.NSPanel_autoUpdatezieht sich das Script die Softwareversionen (Tasmota/Berry und TFT) und führt sie auch durch
Bei manueller Einstellung im Script:
let manually_Update = true;kommt eine Benachrichtigung