Hallo,
ich würde gerne ein Plugin schreiben, welches es ermöglicht web push Nachrichten via Logik von SmarthomeNG aus an einen Client-Browser (Smartphone, Tablet, PC, …) zu senden. Dadurch ist es für Server zu Client Nachrichten nicht nötig einen Messenger wie Telegram oder einen externen Push service mit App usw. wie Pushover zu verwenden. Es reicht jeder gewöhnliche Browser aus. Ein Benutzer sollte sich dabei zusätzlich zu bestimmten Gruppen von Nachrichten registrieren können, um nicht immer alle Nachrichten zu erhalten.
Meine bisherigen Überlegungungen sind dazu:
-Plugin webpush
-SmartVisu-Widget webpush.config
Mein Problem an der Sache ist, dass ich nicht weiß, wie ich über den Websocket die Daten, die ich von der web push subscription erhalte und die Gruppenauswahl an das Plugin zurücksende, damit ich diese in die Datenbank schreiben kann und später Nachrichten schicken kann. Normalerweise wird dies über einen Html POST an den Server, wo ein PHP Skript wartet, zurückgesendet. Dies ist aber im Falle mit SmartVisu meiner Meinung nach nicht machbar und auch nicht nötig weil der Websocket ja eh schon offen ist.
Hat jemand dazu und generell Ideen, die mir weiterhelfen oder Tipps was ich nicht vergessen sollte.
LG
ich würde gerne ein Plugin schreiben, welches es ermöglicht web push Nachrichten via Logik von SmarthomeNG aus an einen Client-Browser (Smartphone, Tablet, PC, …) zu senden. Dadurch ist es für Server zu Client Nachrichten nicht nötig einen Messenger wie Telegram oder einen externen Push service mit App usw. wie Pushover zu verwenden. Es reicht jeder gewöhnliche Browser aus. Ein Benutzer sollte sich dabei zusätzlich zu bestimmten Gruppen von Nachrichten registrieren können, um nicht immer alle Nachrichten zu erhalten.
Meine bisherigen Überlegungungen sind dazu:
-Plugin webpush
Konfiguration:
-Liste mit möglichen Nachrichten-Gruppen z.B. [Alarme, Infos, Heizung, Geräte]
Logikmethoden:
-sendPushNotification(Gruppe, Titel, Nachricht) z.B (Heizung, Überhitzung, „Puffer überhitzt!“)
Notwendiges:
-python Bibliothek wie z.B. solidwebpush
-Datenbank mit web push subscription (id, key, …) und gewählten Nachrichten-Gruppen
-Datenbank mit web push subscription (id, key, …) und gewählten Nachrichten-Gruppen
-SmartVisu-Widget webpush.config
Parameter:
-PublicServerKey (erhält man vom Plugin, könnte auch über Websocket/Item übertragen werden)
-Item oder Text mit der gesamten Nachrichten-Gruppen Liste
-Item oder Text mit der gesamten Nachrichten-Gruppen Liste
Oberfläche:
-Liste zum Ankreuzen der möglichen Gruppen zu denen Nachrichten empfangen werden sollen
-Bestätigungs-Button der web push auf dem Gerät aktiviert und Gruppenauswahl übernimmt
-Bestätigungs-Button der web push auf dem Gerät aktiviert und Gruppenauswahl übernimmt
Hintergrund:
JavaSkript das den web push service worker und die subscription registriert und verwaltet. Dadurch wird auch erkannt ob push Nachrichten auf dem Gerät aktiviert sind. Die getätigte Gruppenauswahl für das Gerät müsste in einem Cookie gespeichert werden.
Mein Problem an der Sache ist, dass ich nicht weiß, wie ich über den Websocket die Daten, die ich von der web push subscription erhalte und die Gruppenauswahl an das Plugin zurücksende, damit ich diese in die Datenbank schreiben kann und später Nachrichten schicken kann. Normalerweise wird dies über einen Html POST an den Server, wo ein PHP Skript wartet, zurückgesendet. Dies ist aber im Falle mit SmartVisu meiner Meinung nach nicht machbar und auch nicht nötig weil der Websocket ja eh schon offen ist.
Hat jemand dazu und generell Ideen, die mir weiterhelfen oder Tipps was ich nicht vergessen sollte.
LG
Kommentar