{"id":8674,"date":"2026-05-03T14:24:31","date_gmt":"2026-05-03T12:24:31","guid":{"rendered":"https:\/\/speefak.spdns.de\/oss_lifestyle\/?p=8674"},"modified":"2026-05-03T14:26:03","modified_gmt":"2026-05-03T12:26:03","slug":"iobroker-iqcontrol-als-saubere-app-mit-firefox-gnome","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/iobroker-iqcontrol-als-saubere-app-mit-firefox-gnome\/","title":{"rendered":"ioBroker iqControl als saubere App mit Firefox (GNOME)"},"content":{"rendered":"<p data-start=\"69\" data-end=\"396\">Ziel dieses Setups ist es, <strong data-start=\"96\" data-end=\"147\"><span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">ioBroker<\/span><\/span> iqControl<\/strong> in <strong data-start=\"151\" data-end=\"192\"><span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">Firefox<\/span><\/span><\/strong> wie eine eigenst\u00e4ndige App zu betreiben. Der Browser wird dabei technisch weiter genutzt, aber optisch und funktional so stark reduziert, dass er wie ein dedizierter Kiosk-Client f\u00fcr das Dashboard wirkt.<\/p>\n<p data-start=\"398\" data-end=\"420\">Konkret wird erreicht:<\/p>\n<ul data-start=\"422\" data-end=\"676\">\n<li data-section-id=\"atya81\" data-start=\"422\" data-end=\"482\">kein sichtbarer Browser-Chrome (Tabs, Adressleiste, Men\u00fcs)<\/li>\n<li data-section-id=\"kaksw\" data-start=\"483\" data-end=\"516\">feste Fenstergr\u00f6\u00dfe beim Start, ver\u00e4nderbar nach Start<\/li>\n<li data-section-id=\"11uv2ug\" data-start=\"517\" data-end=\"558\">automatischer Start \u00fcber eigenes Profil<\/li>\n<li data-section-id=\"pe13j\" data-start=\"559\" data-end=\"613\">stabile Anzeige von iqControl im Vollbild-\/App-Modus<\/li>\n<li data-section-id=\"g7jz4u\" data-start=\"614\" data-end=\"676\">optionaler Fallback zwischen Internet-Domain und LAN-Zugriff<\/li>\n<\/ul>\n<p data-start=\"678\" data-end=\"716\">Das Setup besteht aus vier Bausteinen:<\/p>\n<ol data-start=\"717\" data-end=\"894\">\n<li data-section-id=\"jeibp1\" data-start=\"717\" data-end=\"763\">eigenes Firefox-Profil (isolierte Umgebung)<\/li>\n<li data-section-id=\"1u2n3wy\" data-start=\"764\" data-end=\"801\">UI-Reduktion \u00fcber <code data-start=\"785\" data-end=\"801\">userChrome.css<\/code><\/li>\n<li data-section-id=\"rxrdn1\" data-start=\"802\" data-end=\"845\">intelligenter Start mit WAN\/LAN-Fallback<\/li>\n<li data-section-id=\"1fuoj8a\" data-start=\"846\" data-end=\"894\">optionaler Desktop- und Autostart-Integration<br \/>\n<hr \/>\n<\/li>\n<\/ol>\n<h2>1. Neues Firefox-Profil anlegen<\/h2>\n<pre class=\"lang:default decode:true\">firefox-esr -CreateProfile iobroker<\/pre>\n<hr \/>\n<h2>2. userChrome.css aktivieren<\/h2>\n<p>Firefox muss mit dem zuvor angelegten \u201eiobroker\u201c-Profil gestartet werden, damit alle Konfigurations\u00e4nderungen im korrekten Profil gespeichert und angewendet werden.<\/p>\n<p>Start inklusive direktem Zugriff auf die Konfiguration:<\/p>\n<pre class=\"lang:default decode:true \">firefox-esr -P iobroker about:config<\/pre>\n<p>Suche nach:<\/p>\n<pre class=\"lang:default decode:true \">toolkit.legacyUserProfileCustomizations.stylesheets<\/pre>\n<p>Setze den Wert auf:<\/p>\n<pre class=\"lang:default decode:true\">true<\/pre>\n<hr \/>\n<h2>3. userChrome.css erstellen<\/h2>\n<p>In diesem Schritt wird die Firefox-Oberfl\u00e4che reduziert (Tabs, Adressleiste, Men\u00fcs), sodass nur der Inhalt sichtbar bleibt und eine App-\u00e4hnliche ioBroker-Ansicht entsteht.<\/p>\n<pre class=\"lang:default decode:true \">cd ~\/.mozilla\/firefox\/*.iobroker\r\nmkdir -p chrome\r\nnano chrome\/userChrome.css<\/pre>\n<p>Inhalt:<\/p>\n<pre class=\"lang:default decode:true\">\/* ioBroker Clean Dashboard *\/\r\n\r\n#titlebar,\r\n#toolbar-menubar,\r\n#TabsToolbar,\r\n#nav-bar,\r\n#PersonalToolbar,\r\n#urlbar-container {\r\n    visibility: collapse !important;\r\n    max-height: 0 !important;\r\n    min-height: 0 !important;\r\n}\r\n\r\n#sidebar-box {\r\n    display: none !important;\r\n}\r\n\r\n:root {\r\n    --tab-min-height: 0px !important;\r\n}\r\n\r\n\/* Abstand oben *\/\r\n#navigator-toolbox {\r\n    padding-top: 2px !important;\r\n}<\/pre>\n<hr \/>\n<h2>4. Startscript mit WAN\/LAN Fallback<\/h2>\n<p>SSL-Zertifikate k\u00f6nnen in der Regel nur f\u00fcr Domainnamen erstellt werden, nicht f\u00fcr lokale IP-Adressen. Daher f\u00fchrt der Zugriff \u00fcber die LAN-IP im Browser zu einem Zertifikatsfehler. Wird hingegen die im Zertifikat hinterlegte Domain genutzt, ist die Verbindung fehlerfrei. Deshalb wird zuerst die URL getestet und nur im Fehlerfall die LAN-IP verwendet.<\/p>\n<p>In diesem Schritt wird ein Script erstellt, das automatisch entscheidet, ob die ioBroker-Instanz \u00fcber die \u00f6ffentliche Domain oder die lokale IP gestartet wird.<\/p>\n<pre class=\"lang:default decode:true\">nano ~\/start-iobroker-ff-appmode.sh<\/pre>\n<p>Inhalt:<\/p>\n<pre class=\"lang:default decode:true\">#!\/bin\/bash\r\n\r\nURL_PUBLIC=\"https:\/\/&amp;lt;DDNS-Domain&amp;gt;:8082\/iqontrol\/index.html?namespace=iqontrol.0\"\r\nURL_LAN=\"https:\/\/&amp;lt;LAN-IP&amp;gt;:8082\/iqontrol\/index.html?namespace=iqontrol.0\"\r\n\r\nif timeout 2 bash -c \"&amp;lt;\/dev\/tcp\/&amp;lt;DDNS-Domain&amp;gt;\/8082\" 2&amp;gt;\/dev\/null; then\r\n    URL=\"$URL_PUBLIC\"\r\nelse\r\n    URL=\"$URL_LAN\"\r\nfi\r\n\r\nfirefox-esr -P iobroker --class=iobroker --window-size=1600,900 \"$URL\"<\/pre>\n<p>Rechte anpassen:<\/p>\n<pre class=\"lang:default decode:true \">chmod +x ~\/start-iobroker-ff-appmode.sh<\/pre>\n<hr \/>\n<h2>5. Desktop-Shortcut erstellen (optional)<\/h2>\n<pre class=\"lang:default decode:true \">nano ~\/Desktop\/ioBroker.desktop<\/pre>\n<p>Inhalt:<\/p>\n<pre class=\"lang:default decode:true \">[Desktop Entry]\r\nName=ioBroker iqControl\r\nExec=\/home\/USER\/start-iobroker.sh\r\nType=Application\r\nIcon=firefox-esr\r\nCategories=Utility;\r\nTerminal=false<\/pre>\n<p>Rechte anpassen:<\/p>\n<pre class=\"lang:default decode:true \">chmod +x ~\/Desktop\/ioBroker.desktop<\/pre>\n<hr \/>\n<h2>6. Autostart (optional)<\/h2>\n<pre class=\"lang:default decode:true\">mkdir -p ~\/.config\/autostart\r\ncp ~\/Desktop\/ioBroker.desktop ~\/.config\/autostart\/<\/pre>\n<hr \/>\n<h2>Hinweise<\/h2>\n<ul>\n<li>WAN wird bevorzugt genutzt (<code>https:\/\/&lt;DDNS-Domain&gt;<\/code>)<\/li>\n<li>LAN dient als Backup (<code>https:\/\/&lt;LAN-IP&gt;<\/code>)<\/li>\n<li>SSL funktioniert nur f\u00fcr Domainnamen<\/li>\n<li>IP-Zugriff bleibt Notfallpfad ohne g\u00fcltiges Zertifikat<\/li>\n<li>Firefox l\u00e4uft im stark reduzierten App-\/Kiosk-Modus<\/li>\n<\/ul>\n<hr \/>\n<h2>Erweiterungen (optional)<\/h2>\n<ul>\n<li>systemd Service statt Desktop-Start<\/li>\n<li>Anzeige WAN\/LAN im Fenstertitel<\/li>\n<li>echtes Kiosk-System (GNOME \/ Wayland)<\/li>\n<li>Touchscreen-Optimierung f\u00fcr Wanddisplay<\/li>\n<li>automatische Offline-Erkennung und Retry-Logik<\/li>\n<\/ul>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/>by Speefak<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<ol data-start=\"717\" data-end=\"894\">\n<li data-section-id=\"1fuoj8a\" data-start=\"846\" data-end=\"894\">\n<hr \/>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Ziel dieses Setups ist es, ioBroker iqControl in Firefox wie eine eigenst\u00e4ndige App zu betreiben. Der Browser wird dabei technisch weiter genutzt, aber optisch und funktional so stark reduziert, dass er wie ein dedizierter Kiosk-Client f\u00fcr das Dashboard wirkt. Konkret wird erreicht: kein sichtbarer Browser-Chrome (Tabs, Adressleiste, Men\u00fcs) feste Fenstergr\u00f6\u00dfe beim Start, ver\u00e4nderbar nach Start [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[109,111],"tags":[],"class_list":["post-8674","post","type-post","status-publish","format-standard","hentry","category-iobroker","category-smart-home"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/iobroker\/\" rel=\"category tag\">ioBroker<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/smart-home\/\" rel=\"category tag\">Smart Home<\/a>","rttpg_excerpt":"Ziel dieses Setups ist es, ioBroker iqControl in Firefox wie eine eigenst\u00e4ndige App zu betreiben. Der Browser wird dabei technisch weiter genutzt, aber optisch und funktional so stark reduziert, dass er wie ein dedizierter Kiosk-Client f\u00fcr das Dashboard wirkt. Konkret wird erreicht: kein sichtbarer Browser-Chrome (Tabs, Adressleiste, Men\u00fcs) feste Fenstergr\u00f6\u00dfe beim Start, ver\u00e4nderbar nach Start&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8674","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=8674"}],"version-history":[{"count":3,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8674\/revisions"}],"predecessor-version":[{"id":8677,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8674\/revisions\/8677"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=8674"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=8674"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=8674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}