FHEMWEB: Unterschied zwischen den Versionen
Krikan (Diskussion | Beiträge) K (Typo ->Link) |
|||
Zeile 42: | Zeile 42: | ||
== Sicherheit == | == Sicherheit == | ||
=== | === csrfToken === | ||
siehe [[ | siehe [[csrfToken-HowTo]] | ||
=== apiWeb Instanz === | === apiWeb Instanz === |
Version vom 6. März 2017, 16:00 Uhr
FHEMWEB | |
---|---|
Zweck / Funktion | |
Standard Fhem-Webfrontend | |
Allgemein | |
Typ | Hilfsmodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Frontends |
Modulname | 01_FHEMWEB.pm |
Ersteller | Rudolf König/rudolfkoenig (Forum /Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
FHEMWEB ist das Standard Webfrontend von Fhem, es implementiert auch einen einfachen Webserver (optional mit Basic-Auth und HTTPS). Aus historischen Gründen wird es auch als PGM2 bezeichnet.
Voraussetzungen
keine.
Anwendung
Define
siehe commandref.
Attribute
siehe commandref.
Anwendungsbeispiele
devStateIcon
siehe devStateIcon
sortby
title
- Titel der Seite. Überschreibt das globale Attribut "title", das ansonsten für alle FHEMWEB Instanzen gilt
- Beispiel für einen dynamischen Seiten-Titel: Beitrag
webCmd
siehe webCmd
widgetOverride
Mit dem Attribut widgetOverride
kann ein anderes als das vom Modulautor vorgegebene Bedienelement für einen Parameter (set/get/Attribut) festgelegt werden. Beispiele:
- Color-Picker
- knob
- usuzu (= universelle Zeitschaltuhr): Thema
Sicherheit
csrfToken
siehe csrfToken-HowTo
apiWeb Instanz
Die apiWeb Instanz dient dazu externe Zugriffe auf das FHEM System kontrolliert zu steuern. Im Grunde wird nichts anderes gemacht wie eine zweite FHEM Webinstanz ein zu richten, welche dann gesondert abgesichert wird.
Man legt sich hierfür eine FHEMWEB Instanz an:
define apiWEB FHEMWEB 8088 global attr apiWEB column Alarms: Apartment: Living: Bedroom: Kitchen: Sonos: Residents: Weather: Bathroom: Logs: Statistics: DashboardRoom: System: hidden: all: attr apiWEB hiddenroom input,detail,save,Unsorted,Everything,CUL_HM,FS20,Commandref,style,Edit files,Select style,Logfile,Floorplans,Remote doc,FileLogs,Apartment,Bathroom,Bedroom,Kitchen,Living,Residents,System,Weather,Event monitor,NEW attr apiWEB room hidden attr apiWEB webname webhook
Diese wird dann weiter mit Hilfe eines allowed-Devices abgesichert, indem nur die tatsächlich benötigten Kommandos erlaubt werden und damit alle anderen nicht erlaubten (attr,define,get,set,...) automatisch nicht mehr zur Verfügung stehen:
define allowedApiWEB allowed attr allowedApiWEB allowedCommands set attr allowedApiWEB allowedDevices Lampe1 attr allowedApiWEB validFor apiWEB
Desweiteren ist dringend an zu raten, den Zugriff über TLS/SSL und HTTP Basic-Authentication weiter abzusichern. Nähere Informationen findet man hierzu in der Commandref unter dem Punkt HTTPS. Letztlich fehlt noch das entsprechende Attribut:
attr WEBhook HTTPS
Als nächstes aktivieren wir Benutzername+Passwort für den Zugriff. Die commandref für allowed gibt auch hier unter dem Punkt basicAuth entsprechende Hinweise.
Links
- Begriffserklärung zur Unterscheidung von eventMap, devStateIcon, webCmd und setList mit Beispielen in diesem Forenthread
- Icons