HTTPSRV
HTTPSRV | |
---|---|
Zweck / Funktion | |
Stellt einen minimalen Webserver zur Verfügung | |
Allgemein | |
Typ | Gerätemodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Frontends |
Modulname | 02_HTTPSRV.pm |
Ersteller | Neubert (Forum ) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
HTTPSRV ist eine Erweiterung von FHEMWEB und stellt einen minimalen Webserver zur Verfügung, der Dateien aus einem zu definierenden Verzeichnis ausliefern kann. Wahlweise akzeptiert er auch QueryStrings um seine eigenen Readings zu setzen.
Voraussetzungen
Da es sich - wie erwähnt - bei HTTPSRV um eine Erweiterung von FHEMWEB handelt, muss auf jeden Fall vor der Verwendung ein FHEMWEB-Device definiert werden.
Anwendung
Define
Ein Aufruf in der Kommandozeile von FHEM von
define <name> HTTPSRV <infix> <directory> <friendlyname>
legt ein neues HTTPSRV-Device an. Wobei
- name ein beliebiger Name für das Device ist, wie es später in FHEM angezeigt wird.
- infix eine beliebige Pfad-Erweiterung der FHEMWEB-Basis-URL ist.
- directory der absolute Pfad zu dem auszuliefernden Verzeichnis ist.
- friendlyname der Name, der in der Seitenleiste von FHEM angezeigt wird, ist.
Beispiele
define myJSFrontend HTTPSRV jsf /usr/share/jsfrontend My little frontend
Stellt die URL http://hostname:8083/fhem/jsf zur Verfügung, unter der die Dateien aus dem Verzeichnis /usr/share/jsfrontend ausgeliefert werden. Der neue Link in der FHEM-Seitenleiste mit dem Titel My little frontend führt genau zu dieser URL.
define kindleweb HTTPSRV kindle /opt/fhem/kindle Kindle Web attr kindleweb readings KindleBatt
Erzeugt die URL http://hostname:8083/fhem/fhem/kindle unter der Dateien aus dem Verzeichnis /opt/fhem/kindle angezeigt werden. Zusätzlich wird bei diesem HTTPSRV-Device noch erlaubt, mithilfe eines QueryStrings (z.B.: ?KindleBatt=43) ein Reading KindleBatt anzulegen.
Attribute
- directoryindex: Wird die URL ohne Angabe eines Dateinamen aufgerufen (z.B. http://hostname:8083/fhem/jsf), wird die in diesem Attribut festgelegte Datei geladen. Der Standard-Wert ist index.html.
- readings: Eine Komma-getrennte Liste aus Reading-Namen. Wenn der Aufruf der URL mit einem Querystring endet (z.B.: http://hostname:8083/fhem/jsf?KindleBatt=43) und das Reading (KindleBatt) in dieser Liste vorkommt, wird - sofern noch nicht vorhanden - ein neues Device-Reading angelegt und mit dem Wert aus dem Querystring befüllt.
Anwendungsbeispiele
Links
Fallstricke
HttpUtils, das für das Handling der HTTP-Requests zuständig ist, liefert nur eine Handvoll Dateitypen zuverlässig mit dem richtigen Content-Type-Header aus. Das sind aktuell folgende:
Extension | MIME-Type |
---|---|
bmp | image/bmp |
css | text/css |
gif | image/gif |
html | text/html |
ico | image/x-icon |
jpg | image/jpeg |
js | text/javascript |
mp4 | video/mp4 |
application/pdf | |
png | image/png |
svg | image/svg+xml |
txt | text/plain |
mp3 | audio/mpeg |
Andere Dateitypen werden mit einem Content-Type-Header ausgeliefert, der sich aus der Dateierweiterung (z.B. .doc
) und dem Präfix text/
ergibt, hier als text/doc
.