WebApp Support für Android?

Begonnen von tomcat.x, 29 Januar 2026, 16:55:32

Vorheriges Thema - Nächstes Thema

tomcat.x

Hallo,

in der Commandref zu FHEMWEB steht in den Anmerkungen beim Attribut stylesheetPrefix "Wenn touchpad oder smallscreen benutzt werden, wird WebApp support aktiviert: Nachdem Sie eine Seite am iPhone oder iPad mit Safari angesehen haben ...". Heißt das, dass es explizit nur auf diesen Geräten funktioniert? Mein Firefox auf Android unterstützt auch WebApps, ich nutze schon eine Handvoll. Für fhem kann ich aber nur einen normalen Link auf der Startseite hinzufügen. Oder liegt es daran, dass ich "darksmallscreen" verwende? Zumindest am Anfang der Anmerkung steht aber "Wenn der Parametername smallscreen oder touchpad enthält".

Ich habe das jetzt zum ersten Mal probiert, nachdem ich andFHEM deinstalliert habe. Es wird nicht mehr gewartet und aktuell reicht mir auf dem Handy eigentlich eine Seite mit ein paar "Favoriten" (was in dem Fall ein eigener Raum ist). Auch als einfacher Link ist das schon ok, aber WebApp wäre natürlich noch schöner.

Vielen Dank
Thomas
FHEM: 6.4 auf Raspi 4B, Raspbian (noch Buster), Perl v5.28.1
Sender/Empfänger: 2 x CULv3, Duofern Stick, HM-MOD-RPI-PCB
Gateways: FRITZ!Box 6591 (OS: 8.25), Trädfri, ConBee 2,  piVCCU, OpenMQTTGateway
Sensoren/Aktoren: FRITZ!DECT, FS20, FHT, HMS, HomeMatic, Trädfri, DuoFern, NetAtmo

rudolfkoenig

FHEMWEB setzt bei touchpad/smallscreen Styles unter anderem das "mobile-web-app-capable" Attribut, genauso f18, wenn ein Mobilgeraet entdeckt wird.
Das hat frueher gereicht, damit das per "Zum Startbildschirm hinzufuegen" erzeugte "App" ohne die URL Leiste getartet wurde.
Das funktioniert aktuell nicht mehr.
Bemerkenswerterweise habe ich auf dem gleichen Geraet einen von Jahren so erzeugten Link, was die URL-Leiste versteckt.

Soweit ich weiss, akzeptiert Chrome ein WebApp nur dann, wenn die Seite per HTTPS mit einem gueltigen Zertifikat aufgerufen wurde.
Man braucht dann noch weitere Zutaten (manifest, etc), was FHEM zwar liefern koennte, aber ich weiss nicht, wieviele Benutzer sich die Muehe mit dem richtigen Zertifikat auf sich nehmen.

Meinungen?

tomcat.x

Zertifikat hätte ich, aber wichtig ist mir das nicht. Dachte nur, vielleicht mache ich was falsch und bei anderen funktioniert es.

Danke.
FHEM: 6.4 auf Raspi 4B, Raspbian (noch Buster), Perl v5.28.1
Sender/Empfänger: 2 x CULv3, Duofern Stick, HM-MOD-RPI-PCB
Gateways: FRITZ!Box 6591 (OS: 8.25), Trädfri, ConBee 2,  piVCCU, OpenMQTTGateway
Sensoren/Aktoren: FRITZ!DECT, FS20, FHT, HMS, HomeMatic, Trädfri, DuoFern, NetAtmo

rudolfkoenig

Ich habe jetzt f18 erweitert, damit es einen manifest Eintrag im <head> einbaut, weiterhin eine minimale manifest.json Datei in www/pgm2 angelegt.

Falls man FHEM mit einem gueltigen(!) Zertifikat aufruft, dann bietet Chrome beim "Zum Startbildschirm hinterlegen" die Auswahl zwischen Installieren und Verknüpfung erstellen.
Nach Installieren wird keine URL Leiste angezeigt, und die Zeile oben mit Uhr/etc wird automatisch in der Farbe des gewaehlten Hintergrunds angezeigt.

betateilchen

Zitat von: rudolfkoenig am 29 Januar 2026, 20:09:10aber ich weiss nicht, wieviele Benutzer sich die Muehe mit dem richtigen Zertifikat auf sich nehmen.

Meinungen?

Bei mir hat inzwischen jeder Rechner in meinem lokalen Netzwerk einen FQDN und ein dazu passendes "richtiges" Zertifikat.
Vermutlich wird das in absehbarer Zeit (damit meine ich die nächsten 3-5 Jahre) gar nicht mehr anders funktionieren.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

tomcat.x

#5
Die Frage kam ja von mir und es soll nicht so aussehen, als ob mich das dann gar nicht mehr interessiert. Ich nutze aber weder f18 noch Chrome.

Mit dem f18 spiele ich aber gerade herum und da dachte ich, probier das doch auch noch mal. Leider hat es nicht funktioniert. Beim Beschäftigen mit den Voraussetzungen bin ich auch auf die erwähnte manifest.json und dass man sich die beim Untersuchen der Seite anzeigen lassen kann. Der Firefox sagt hier aber "Beim Laden des Manifests trat ein Fehler auf. Fetch error: 401 - Authorization Required at https://fhem.domain.de/manifest.json". Der Manifest Eintrag im <head> scheint also zu funktionieren, sonst würde gar nicht versucht zuzugreifen. Wobei der Edge einfach nur sagt, es wäre kein Manifest vorhanden. Bin mir also nicht sicher, ob die Meldung irreführend ist. Wobei ich mir den Inhalt der manifest.json bei anderen Seiten wirklich im Firefox anzeigen lassen kann.

Die manifest.json liegt im pgm2 Verzeichnis und hat auch die gleichen Rechte wie alle anderen Dateien.

Hat jemand noch eine Idee?

Viele Grüße
Thomas

Nachtrag:
Ich habe selbst noch etwas gefunden.
@Rudi: Könntest Du die Zeile mit dem Manifest im f18.js mal mit folgender Erweiterung testen, ob das bei Dir dann auch noch funktioniert.
    '<link rel="manifest" href="manifest.json" crossorigin="use-credentials">');
WebApp klappt mit dem Firefox damit bei mir immer noch nicht, aber der Zugriff auf die manifest.json
FHEM: 6.4 auf Raspi 4B, Raspbian (noch Buster), Perl v5.28.1
Sender/Empfänger: 2 x CULv3, Duofern Stick, HM-MOD-RPI-PCB
Gateways: FRITZ!Box 6591 (OS: 8.25), Trädfri, ConBee 2,  piVCCU, OpenMQTTGateway
Sensoren/Aktoren: FRITZ!DECT, FS20, FHT, HMS, HomeMatic, Trädfri, DuoFern, NetAtmo

rudolfkoenig

Zitat@Rudi: Könntest Du die Zeile mit dem Manifest im f18.js mal mit folgender Erweiterung testen, ob das bei Dir dann auch noch funktioniert.
Das funktioniert bei mir, habs auch eingecheckt.

ZitatWebApp klappt mit dem Firefox damit bei mir immer noch nicht, aber der Zugriff auf die manifest.json
Woran sieht man ein Zugriffsproblem auf Firefox@Android?

Ich habe gestern eine neue Version der automatischen Zertifikat Erstellung eingecheckt (siehe https://forum.fhem.de/index.php?topic=144147.msg1360463#msg1360463)

Meine Beobachtung:
- Chrome und Firefox @ Linux akzeptieren das Zertifikat jetzt, wo es mit einem selbsterstellten CA signiert wurde. Ein selbstsigniertes Zertifikat wird nicht akzeptiert. Das war mal anders.
- die Zertifikat-Fehlermeldungen bei Firefox @Linux sind besser, als die von Chrome.
- Chrome@Linux, Firefox@Linux und Chrome@Android akzeptiert das Zertifikat sowohl fuer die IP-Adresse, wie auch fuer den Rechnernamen.
- Firefox auf Android (gleiches Geraet) akzeptiert weder / noch, verraet mir aber auch nicht, was an dem Zertifikat falsch ist.

schwatter

In der Konsole im Browser:
fhemweb.js:613 20:54:35.977 FW_queryValue:{ReadingsVal("echo_s3r_9888e00f4280","attrTemplate","")}
fhemweb.js:613 20:54:35.987 FW_queryValue:{AttrVal("echo_s3r_9888e00f4280","room","")}
fhemweb.js:613 20:54:36.063 f18.js resize W:1351 S:1366
fhemweb.js:613 20:54:36.085 f18.js resize W:1366 S:1366
fhemweb.js:613 20:54:36.127 Inform-channel opened (websocket) with filter echo_s3r_9888e00f4280
manifest.json:1  Failed to load resource: the server responded with a status of 401 (Authorization Required)
fhem?detail=echo_s3r_9888e00f4280&fw_id=1774634206.14762:1 Manifest fetch from http://192.168.1.76:8084/manifest.json failed, code 401
fhemweb.js:613 20:54:36.228 Rcvd:
manifest.json:1  Failed to load resource: the server responded with a status of 401 (Authorization Required)
fhem?detail=echo_s3r_9888e00f4280&fw_id=1774634206.14762:1 Manifest fetch from http://192.168.1.76:8084/manifest.json failed, code 401
fhemweb.js:613 20:54:37.282 Rcvd: ["#FHEMWEB:WEBphone","doifUpdateCell('Heizung','doifId','Heizung_uiTable_c_2_1_0_0','<svg class=\u0022DOIF_ring\u0022 xmlns=\u0022ht...(3178)
fhemweb.js:613 20:54:44.030 Rcvd: ["#FHEMWEB:WEBphone","doifUpdateCell('Heizung','doifId','Heizung_uiTable_c_8_1_0_0','<svg class=\u0022DOIF_ring\u0022 xmlns=\u0022ht...(2198)
fhemweb.js:613 20:54:45.549 f18.js resize W:628 S:1366
manifest.json:1  Failed to load resource: the server responded with a status of 401 (Authorization Required)
fhemweb.js:613 20:54:54.822 Rcvd: ["#FHEMWEB:WEBphone","doifUpdateCell('Heizung','doifId','Heizung_uiTable_c_6_1_0_0','<svg class=\u0022DOIF_ring\u0022 xmlns=\u0022ht...(2198)

Aber auch damit klappt Webapp Support. Habe ich heute kurz getestet. Super das das jetzt wieder funktioniert.
Mein Fhem ist aber noch nicht ganz aktuell.

Gruß schwatter