Habe soeben einen PR erstellt und einen dazu passenden Support Thread aufgemacht, bitte benutzt diesen für weitere Anmerkungen, Fehler, Fragen usw.
https://knx-user-forum.de/forum/supp...support-thread
Ankündigung
Einklappen
Keine Ankündigung bisher.
Neues Plugin: webpush
Einklappen
X
-
Viele schrecken davor zurück ein einzelnes Plugin von woanders zu installieren oder beschränken sich im Einsatz auf Code aus dem Release (master Branch).
Daher ist es sinnvoll einen PR gegen den develop Branch zu stellen. Sonst kann das Plugin kaum eine Verbreitung finden,
- Likes 1
Einen Kommentar schreiben:
-
Das Plugin läuft sehr gut und ist mittlerweile auf einem Stand wo es veröffentlicht werden könnte. Da es aber anscheinend weder Tester noch Nutzer gibt ist es fragwürdig ob ich überhaupt einen PR erstellen soll.
Was sagen die SmarthomeNG Gurus dazu?
Einen Kommentar schreiben:
-
Habe das Repo bei mir umbenannt, bitte ändert den Upstream oder checkt das Repo wie folgt neu aus:
Code:git clone https://github.com/gruberth/webpush priv_webpush
Einen Kommentar schreiben:
-
Es scheint Methoden zu geben, dass serviceWorker auch unter http getestet werden können:
https://stackoverflow.com/questions/...rkers-via-http
Nicht schön, aber vielleicht einen Versuch wert.
Gruß
Wolfram
Einen Kommentar schreiben:
-
Ja genau, aber selbst dann zickt der Chrome noch rum, weil er selbst signierte Zertifikate nicht mag. Aber z.B. beim Firefox funktionierts dann.Zitat von Sisamiwe Beitrag anzeigen
Theoretisch könnte man auch extern signierte Zertifikate einbinden wie z.B. von Lets Encrypt. Aber diese müssen alle 3 Monate erneuert werden und dazu muss der Server von außen mit DDNS oder mit einer statischen Provider IP erreichbar sein. Bedeutet alle drei Monate am Router einen Port aufmachen, Befehl zum Zertifikat erneuern ausführen, die Zertifikate von /etc/apache2/ssl/ nach /usr/local/smarthome/etc/ kopieren und den Port wieder schließen (damit die Visu wieder sicher ist). Ist halt viel Arbeit jedesmal.
Die mit Abstand schönste Lösung ist ein eigener Reverse Proxyserver mit Lets Encrypt Zertifikaten, da funktioniert es mit jedem Browser sei es desktop oder mobil. https://smarthomeng.github.io/smarth...rse_proxy.html Leider ist das aber auch die aufwendigste Variante, ich denke nicht, dass sich das nur für web push Nachrichten lohnt.
Lg
Einen Kommentar schreiben:
-
Das bedeutet, ich muss erst auf eine verschlüsselte Verbindung zwischen shNG und smartVISU wechseln, so wie es wvhn hier beschrieben hat?Zitat von hijacker7 Beitrag anzeigenWenn er nicht SSL verwendet, dann ist es der ServiceWorker. Diese dürfen nur bei https registriert werden. Das habe ich aber ja schon mal gschrieben, dass das leider Vorraussetzung ist...
Einen Kommentar schreiben:
-
UndZitat von Sisamiwe Beitrag anzeigen
Code:2022-10-25 21:43:53 ERROR cherrypy.error.2729640552 [25/Oct/2022:21:43:53] HTTP Traceback (most recent call last): File "/home/smarthome/.local/lib/python3.8/site-packages/cherrypy/_cprequest.py", line 638, in respond self._do_respond(path_info) File "/home/smarthome/.local/lib/python3.8/site-packages/cherrypy/_cprequest.py", line 697, in _do_respond response.body = self.handler() File "/home/smarthome/.local/lib/python3.8/site-packages/cherrypy/lib/encoding.py", line 223, in __call__ self.body = self.oldhandler(*args, **kwargs) File "/home/smarthome/.local/lib/python3.8/site-packages/cherrypy/_cpdispatch.py", line 54, in __call__ return self.callable(*self.args, **self.kwargs) File "/usr/local/smarthome/plugins/_priv_webpush/__init__.py", line 538, in unsubscribeAll self.plugin.unsubscribeAll() File "/usr/local/smarthome/plugins/_priv_webpush/__init__.py", line 351, in unsubscribeAll c.execute(sql) sqlite3.OperationalError: near ")": syntax error
Danke, ist gefixt.Zitat von wvhn Beitrag anzeigenZeile 197 in der webpush.js muss IMHO wie folgt lauten:
Code:webpushwidget.pushButton.textContent = 'Push Not Supported';
Und habe die warning für PushManager und ServiceWorker aufgeteilt.Zuletzt geändert von hijacker7; 26.10.2022, 17:26.
Einen Kommentar schreiben:
-
Danke @wvhn
Wenn er nicht SSL verwendet, dann ist es der ServiceWorker. Diese dürfen nur bei https registriert werden. Das habe ich aber ja schon mal gschrieben, dass das leider Vorraussetzung ist...
Einen Kommentar schreiben:
-
Du kannst aber testen, welche der beiden Bedingungen nicht erfüllt ist. Dazu gibst Du sie in der Browser-Console ein:
Code:'serviceWorker' in navigator
Beide müssen "true" als Ergebnis liefern. Vermutlich ist der PushManager nicht verfügbar. Ich habe aber noch nicht gefunden, wie man den im Browser aktiviert.Code:'PushManager' in window
Einen Kommentar schreiben:
-
Zeile 197 in der webpush.js muss IMHO wie folgt lauten:
Das beseitigt zumindest die Fehlermeldung aus "registerworker", aber nicht das Problem "Push not supported".Code:webpushwidget.pushButton.textContent = 'Push Not Supported';
Einen Kommentar schreiben:
-
hijacker7
Ich habe grad im WebIF mal auf "Alle Abonnenten löschen" geklickt.
Dann kam das im Log:
Code:2022-10-25 21:43:53 ERROR cherrypy.error.2729640552 [25/Oct/2022:21:43:53] HTTP Traceback (most recent call last): File "/home/smarthome/.local/lib/python3.8/site-packages/cherrypy/_cprequest.py", line 638, in respond self._do_respond(path_info) File "/home/smarthome/.local/lib/python3.8/site-packages/cherrypy/_cprequest.py", line 697, in _do_respond response.body = self.handler() File "/home/smarthome/.local/lib/python3.8/site-packages/cherrypy/lib/encoding.py", line 223, in __call__ self.body = self.oldhandler(*args, **kwargs) File "/home/smarthome/.local/lib/python3.8/site-packages/cherrypy/_cpdispatch.py", line 54, in __call__ return self.callable(*self.args, **self.kwargs) File "/usr/local/smarthome/plugins/_priv_webpush/__init__.py", line 538, in unsubscribeAll self.plugin.unsubscribeAll() File "/usr/local/smarthome/plugins/_priv_webpush/__init__.py", line 351, in unsubscribeAll c.execute(sql) sqlite3.OperationalError: near ")": syntax error
Einen Kommentar schreiben:
-
Hallo,
in dersteht:Zitat von hijacker7 Beitrag anzeigenBrowser Konsole
Code:Push messaging is not supported
MIr sagt das nichtsCode:registerWorker @ webpush.js:197 $.isFunction.proxiedPrototype.<computed> @ jquery.mobile-1.4.5-patch.min.js:1 _create @ webpush.js:24 $.isFunction.proxiedPrototype.<computed> @ jquery.mobile-1.4.5-patch.min.js:1 _createWidget @ jquery.mobile-1.4.5-patch.min.js:1 $.<computed>.<computed> @ jquery.mobile-1.4.5-patch.min.js:1 (anonym) @ jquery.mobile-1.4.5-patch.min.js:1 each @ jquery-2.2.4.min.js:2 each @ jquery-2.2.4.min.js:2 $.fn.<computed> @ jquery.mobile-1.4.5-patch.min.js:1 enhanceWithin @ jquery.mobile-1.4.5-patch.min.js:1 _create @ jquery.mobile-1.4.5-patch.min.js:1 $.isFunction.proxiedPrototype.<computed> @ jquery.mobile-1.4.5-patch.min.js:1 _super @ jquery.mobile-1.4.5-patch.min.js:1 _create @ jquery.mobile-1.4.5-patch.min.js:1 $.isFunction.proxiedPrototype.<computed> @ jquery.mobile-1.4.5-patch.min.js:1 _createWidget @ jquery.mobile-1.4.5-patch.min.js:1 _createWidget @ jquery.mobile-1.4.5-patch.min.js:1 $.isFunction.proxiedPrototype.<computed> @ jquery.mobile-1.4.5-patch.min.js:1 $.<computed>.<computed> @ jquery.mobile-1.4.5-patch.min.js:1 (anonym) @ jquery.mobile-1.4.5-patch.min.js:1 each @ jquery-2.2.4.min.js:2 each @ jquery-2.2.4.min.js:2 $.fn.<computed> @ jquery.mobile-1.4.5-patch.min.js:1 _enhance @ jquery.mobile-1.4.5-patch.min.js:1 $.isFunction.proxiedPrototype.<computed> @ jquery.mobile-1.4.5-patch.min.js:1 _include @ jquery.mobile-1.4.5-patch.min.js:1 $.isFunction.proxiedPrototype.<computed> @ jquery.mobile-1.4.5-patch.min.js:1 (anonym) @ jquery.mobile-1.4.5-patch.min.js:1 f @ jquery-2.2.4.min.js:2 i @ jquery-2.2.4.min.js:2 fireWith @ jquery-2.2.4.min.js:2 z @ jquery-2.2.4.min.js:4 (anonym) @ jquery-2.2.4.min.js:4 load (async) send @ jquery-2.2.4.min.js:4 ajax @ jquery-2.2.4.min.js:4 load @ jquery.mobile-1.4.5-patch.min.js:1 $.isFunction.proxiedPrototype.<computed> @ jquery.mobile-1.4.5-patch.min.js:1 _loadUrl @ jquery.mobile-1.4.5-patch.min.js:1 $.isFunction.proxiedPrototype.<computed> @ jquery.mobile-1.4.5-patch.min.js:1 change @ jquery.mobile-1.4.5-patch.min.js:1 $.isFunction.proxiedPrototype.<computed> @ jquery.mobile-1.4.5-patch.min.js:1 (anonym) @ jquery.mobile-1.4.5-patch.min.js:1 each @ jquery-2.2.4.min.js:2 each @ jquery-2.2.4.min.js:2 $.fn.<computed> @ jquery.mobile-1.4.5-patch.min.js:1 $.mobile.changePage @ jquery.mobile-1.4.5-patch.min.js:1 (anonym) @ jquery.mobile-1.4.5-patch.min.js:1 dispatch @ jquery-2.2.4.min.js:3 r.handle @ jquery-2.2.4.min.js:3
ChromeZitat von hijacker7 Beitrag anzeigenWelchen Browser?
Nein.Zitat von hijacker7 Beitrag anzeigenVerwendest du SSL?
Einen Kommentar schreiben:
-
Der Cache-Mechanismus in smartVISU löscht alle console.log Befehle aus den „gecacheten“ (au weia) JavaScript-Skripten. Mit eingeschaltetem Cache kommen deshalb nur Meldungen des Browsers in der Konsole durch, aber keine in den Skripten erzeugten Debug-Ausgaben.
Gruß
Wolfram
- Likes 1
Einen Kommentar schreiben:
-
Ja ist klar, dass die Gruppen Einstellungen wieder weg sind. Denn sie werden auch nicht übernommen, wenn man den Button aufgrund von nicht erlaubten Push nicht anklicken kann.Zitat von Sisamiwe Beitrag anzeigenAnklicken kann ich die Groups, aber nach F5 ist alles wieder weg.
Verwendest du SSL? Welchen Browser?
Du müsstest in der webpush.js verbose auf true setzen, den Cache in smartvisu deaktivieren und dann diese Seite mit dem Widget neu laden, dann steht in der Browser Konsole was nicht klappt. Bzw. Da dies eine warning ergeben sollte, kann es auch sein, dass diese direkt im der Konsole steht ohne verbose einzuschalten. Aber den Cache würde ich trotzdem kurz abschalten.Zuletzt geändert von hijacker7; 25.10.2022, 05:28.
Einen Kommentar schreiben:

Einen Kommentar schreiben: