NEWS
SONOFF NSPanel mit Lovelace UI
-
@armilar
Ich glaube, ich habe es jetzt.
Werde es heute abend mal umsetzen. -
Hi, bin gerade dabei, meine restlichen 8 Panels zu flashen und Programmieren..
(flashen hat nach eurer Anleitung einwandfrei geklappt)Ist es moeglich, ein Display zu sperren, und per Skript frei zu schalten?
Oder ist es moeglich, bestimmte Seiten (z.bsp. bei Anwesenheit) frei zu schalten?Ich habe im Treppenhaus 2 Panels, die ich gerne, je nach Anwesenheit, einschraenken moechte.. dachte, ich kann ja ein fuer ein Panel mehrere Scripte anlegen, und je nach bedarf, das eine deaktivieren und das andere dann aktivieren.. aber vielleicht gibts ja was schoeneres.. bin nicht so der Freund von de/aktiviert geschalteten Scripten..
-
was mir spontan einfällt ist die Unlockpage und dahinter die geblockten Seiten, so wie beim Servicemenü.
Seiten so ausblenden, nach einem Kriterium -
Interessantes Thema.
Stimme @TT-Tom zu. CardUnlock wäre eine Option, jedoch wäre die immer vorgeschaltet.
Ein anderer Ansatz wäre die Pages mit zwei unterschiedlichen PageArray's durch eine Weiche laufen zu lassen, hätte jedoch ebenso den negativen Nachgeschmack, dass die Config nur beim Start aufgerufen wird und das Skript in einem Trigger durch sich selbst durchgestartet werden müsste. Ich befürchte aber, dass das nicht wirklich sauber funktionieren würde...
Ein weiterer Ansatz wäre die Seitenvariablen mit einem weiteren "optionalen" Parameter
'lock' : true,
zu versehen.
Über einen Trigger mittels Datenpunkt könnte dann eine globale Variable, z.B. vPresence umgeschaltet werden.
Wenn vPresence == false dann werte lock in der Seitenvariable aus. Bei 'lock' : true, die Seite nicht instanzieren.
Und als "optionaler Parameter", damit es kein Breaking Change wird. Der Aufwand wäre noch überschaubar...
Die Auswertung von vPresence und lock müsste dann in der function GeneratePage(page: PageType): void { stattfinden.
Edit: Sorry für die nachträglichen Änderungen, aber so könnte es funktionieren...
Falls gewünscht, gerne einen Feature Request einstellen. Ggfs gibt es ja noch weitere Optionen... Ließe sich auch auf einzelne Steuerelemente übertragen...
-
@ilovegym sagte in SONOFF NSPanel mit Lovelace UI:
Zum Thema:
Ist es moeglich, ein Display zu sperren
Das ist Kinderleicht , jedoch auch nicht ohne Erweiterung
Abfrage eines Datenpunktes (z.B. Presence) und nur bei true die Screensaver-Klicks verarbeiten...
-
-
vielen Dank fuer die Ideen, ich hab mal ein Feature Request angelegt.
Hoffe, ich hab mich da verständlich ausgedrückt..
Ich werde mir erstmal fuer die beiden Panels jeweils 2 Scripte anlegen ( Home / Away ).
Alarmpage kommt, wenn gar keiner da ist, aber es gibt auch den Fall, dass ein Bereich von mehreren Benutzern betreten wird, die bestimmte Grundfunktionen (leider mehr als 2, sonst hätte ich das auf die Taster gelegt) benoetigen..Bei dem ändern der Variablen der Seiten muss ja auch dann das Script neu gestartet werden oder zumindest die geänderte Seitenkonfig ins Panel hochgeladen werden.. richtig?
-
Hallo Kollegen,
ich würde gern eine cardEntities Seite direkt auf dem Screensaver anzeigen bzw. mit dem Screensaver austauschen, ist das möglich ? Viele Grüße
-
@ilovegym sagte in SONOFF NSPanel mit Lovelace UI:
Bei dem ändern der Variablen der Seiten muss ja auch dann das Script neu gestartet werden oder zumindest die geänderte Seitenkonfig ins Panel hochgeladen werden.. richtig?
Eigentlich nein. Daher eine globale boolsche Variable, die über einen Trigger ihren Zustand ändert. Wenn der Parameter in den Seitenvariablen gesetzt ist, läuft alles andere zur Laufzeit und ein Neustart des Skriptes ist obsolet. Du könntest so oft switchen wie du möchtest und hättest zur Laufzeit bereits die Änderungen.
Werde die Tage mal einen Test starten...
-
Nein, das ist nicht möglich, zumindest nicht im NSPanel-Skript. Das wäre eine gravierende Änderung im Bereich der TFT-HMI über einen Feature Request (mit dem Label HMI), da es alle SmartHome-Systeme (auch HA, etc.) betreffen würde. Der Screensaver lässt sich auch nicht abschalten oder deaktivieren.
Alternative könnte so aussehen:
In den Datenpunkten des NSPanels (unter 0_userdata.0...) siehst du, wenn der Screensaver aufgeschaltet wird. Jetzt könntest du mit Hilfe eines Triggers in einem anderen Skript auf eine Seite deiner Wahl schalten.Da du das aber mit einer cardEntities machen möchtest, wäre noch eine Änderung im Skript zu machen, da die aktuell nicht AOD-fähig (Always On Display) ist. Auch würde die ihren Dimm-Mode nicht ändern können, da es die Funktionalitäten des Screensavers nicht hat...
Im NSPanel-Adapter, der ja aktuell noch in der Entwicklung ist, wäre AOD bei einer cardEntities allerdings schon möglich...
-
@ilovegym sagte in SONOFF NSPanel mit Lovelace UI:
Ich werde mir erstmal fuer die beiden Panels jeweils 2 Scripte anlegen ( Home / Away ).
Brauchste nicht... Lösung ist fast fertig und bereits im Test... Stelle die DEV-Version für euch am WE noch mit ein paar Config-Infos zum Testen bereit...
Lässt sich zur Laufzeit über Datenpunkt true/false ein und ausschalten
-
Liebe Spezialisten für das NS-Panel,
ich habe vor ein paar Tagen eure Hilfe erfolgreich in Anspruch genommen. Seitdem versuche ich, erstmal Ordnung auf meinen Geräten hinzubekommen. Dabei habe ich mich beim Thema MQTT verrannt und ich bekomme es nicht mehr in meinen Kopf. Deshalb wollte ich bei euch anfragen, ob ihr mich noch einmal unterstützen könntet?
Ziel ist es, MQTT sauber zum Laufen zu bringen (Senden/Empfangen), um dann alle notwendigen Informationen über MQTT zum einen für das Panel einzusammeln, aber auch diese Informationen zu publishen.Folgender Geräte-Überblick:
Raspberry1 mit ioBroker1:
- verschiedene Geräte-Adapter (bspw. Shelly, hue)
- Festplatte mit influx.db
- MQTT-Client Adapter
Raspberry2 mit ioBroker2:
- Zigbee-Stick an USB
- Zigbee-Adapter
- MQTT-Broker/Client Adapter als Client konfiguriert (nur mit diesem führte Einbindung NSPanel über Scripte zum Erfolg)
RaspberryZero2W:
- MQTT Dienst Mosquitto --> das ist mein aktiver MQTT-Server
Win-Notebook:
- Windows-Installation vom MQTT-Explorer für einfache checks bei Senden und Empfangen von Nachrichten
Mein Ziel:
Ich möchte Daten zwischen beiden ioBroker Instanzen (laufen als 2 autake Instanzen, kein Master/Slave) frei austauschen können.
Alle Instanzen sind mit dem MQTT-Server (Mosquitto auf dem RaspZero) verbunden, die beiden ioBroker-Adapter sind grün. Setze ich vom MQTT-Explorer eine Nachricht ab, kommt diese in beiden ioBroker-MQTT-Pfaden an. Ich kann auch manuell in genau diesem Test-Topic per manueller Werteingabe erfolgreich zurücksenden.
Woran ich aber nun seit vielen vielen Stunden scheitere ist, wie kann ich denn Werte bestehender Datenpunkte vom ioBroker2 (Adapter MQTT-Server/Client, als Client eingerichtet) in die MQTT-Topics aufnehmen, so dass diese gesendet werden?Auf dem ioBroker1 (älterer Adapter MQTT-Client) kann ich gewünschte Datenpunkte als Topic über die "benutzerdefinierten Einstellunge" einfach mit aufnehmen und so für eine Versendung aktivieren:
Auf dem ioBroker2 (Adapter MQTT-Broker/Client) gibt es diesen Eintrag nicht. Wie man in der Bezeichnung auf der dunklen Instanz erkennt, ist dieser Eintrag auch MQTT-Client-Adapter spezifisch. beim Broker/Client-Adapter fehlt er komplett:
Genau zu diesem Punkt rätsle ich eine Ewigkeit herum, wie ich ein Publishing von Datenpunkten mit jeder Aktualisierung hinbekomme. Ich ging die ganze Zeit davon aus, dass es an den Einstellungen liegen muss, habe aber inzwischen alle Möglichkeiten durch. Auch wiederholte Deinstall und Reinstall führten nicht zum Erfolg. Beschreibungen zur MQTT-Welt geht nicht auf dieses Adapter-spezifische Thema ein, nirgendwo. Handelt es sich um einen Bedienungs- oder Verständnisfehler bei mir? Ich bin quasi mit meinem Latein mittels Selbstrecherche am Ende. Kann mich bitte jemand unterstützen?
Vorab bereits ein dickes Danke an alle die, die bis hierher gelesen haben.Kersten
-
Es hat funktioniert.
Habe aber noch 4 Fragen:- Kann man auch 2 Kurven in einem Chart darstellen (Temperatur / Feuchte)?
- Kann man die Skalierung der Y-Achse in 0,5 Schritten einstellen, oder feste Werte zB. 20-25C?
- Wenn ich aus dem Screensaver mit dem linken Pfeil scrolle, bekomme ich anstatt des Charts eine Zeile mit
100:1 1444:2 391:2 usw angezeigt. Mit dem rechten Pfeil wird der Chart korrekt dargestellt. Wie bekomme ich es hin, dass die 2 weiteren Charts als Unterseite der ersten Chart-Seite dargestellt werden?
Habe es bis jetzt nicht geschafft, Unterseiten herzustellen.
EDIT:
Kann ich diese Seite auch als Startseite für die Subpage einstellen?
D.h. mit den Pfeiltasten scrolle ich auf diese Seite und danach kann ich den Chart auswählen. -
Ist es möglich per Blockly den Screensaver anzustoßen?
Bei mir bleibt er hin- und wieder in einer Page stehen. Dann hilft nur noch der Neustart -
das Geheimnis liegt in den Einstellungen des Adapter
hier habe ich zum Beispiel einen Datenpunkt aus 0_userdata.0. an den MQTT-Server gesendet. Die Liste kannst du beliebig erweitern.
Wenn alle Tonics unter dem selben Pfad liegen, kannst du wie du unten sehen kannst den Anfang löschen. In meinem Fall 0_userdata.0.
damit kommt nur noch Schreibtischlampe.switch an. -
@gregors sagte in SONOFF NSPanel mit Lovelace UI:
- Kann man auch 2 Kurven in einem Chart darstellen (Temperatur / Feuchte)?
nein
- Wie bekomme ich es hin, dass die 2 weiteren Charts als Unterseite der ersten Chart-Seite dargestellt werden?
auf Subpages kommst du nur mit einem "link" über in Icon
-
@gregors sagte in SONOFF NSPanel mit Lovelace UI:
Ist es möglich per Blockly den Screensaver anzustoßen?
ja, mit
0_userdata.0.NSPanel.1.Config.rebootNSPanel
bin aber kein Freund von Rauchniedrighaltern
Bei mir bleibt er hin- und wieder in einer Page stehen. Dann hilft nur noch der Neustart
Warum lösen wir das Problemchen nicht?
-
Kann/Konnte man das nicht mal über die Page ID laden?
Bin mir sicher das hab ich schon mal gemacht.Edit:
Ok, scheinbar hat der Screensaver keine PageID, was auch logisch ist, irgendwie.
Könnte man dem Screensaver eine ID beibringen, die man über den 0_userdata.0.NSPanel.1.PageNavi bedienen kann? -
@kuckuckmann sagte in SONOFF NSPanel mit Lovelace UI:
Könnte man dem Screensaver eine ID beibringen, die man über den 0_userdata.0.NSPanel.1.PageNavi bedienen kann?
Die HMI sendet mit Ablauf des Timeout eigenständig z.B. ein.
{"CustomRecv":"event,sleepReached,cardGrid"}
EDIT: halte es aber immer noch für richtiger, die Ursache für ein Problem zu finden, als irgendwelche Gimmicks zu entwickeln, die weitere Probleme schaffen... (auch so ne ioBroker-User-Unart sich mit Workflows über Wasser zu halten bis es einer richtet)
Das der Screensaver nicht kommt, muss ja auch Ursachen haben... z.B. Kommunikationsproblem (falls sporadisch bei allen Seiten) oder AOD-Seite, etc...
-
Können wir machen.
Welche Infos brauchst du?