Module http
Der vom Module http zur Verfügung gestellte Webserver wird genutzt um die Admin GUI zur Verfügung zu stellen.
Weiterhin erlaubt es dieses Modul in Plugins eine Webschnittstelle zu implementieren. Die API wird weiter unten beschrieben. Es implementiert auch die Basisauthentifizierung für den Zugriff auf Webinterfaces und Webservices.
Über Webinterfaces können Plugins Webseiten zur Verfügung stellen, um bei Bedarf eine GUI für bestimmte Features anzubieten.
Über Webservices können Plugins Dienste zu Verfügung stellen, welche die Kommunikation mit anderen Anwendungen ermöglichen (z.B. ein REST Interface).
Konfiguration
Datei ../etc/module.yaml
# etc/module.yaml
http:
module_name: http
# connectionretries: 5
# user: admin
# password: geheim
# hashed_password: 1245a9633edf47b7091f37c4d294b5be5a9936c81c5359b16d1c4833729965663f1943ef240959c53803fedef7ac19bd59c66ad7e7092d7dbf155ce45884607d
# service_user: serviceuser
# service_password: geheim
# service_hashed_password: 1245a9633edf47b7091f37c4d294b5be5a9936c81c5359b16d1c4833729965663f1943ef240959c53803fedef7ac19bd59c66ad7e7092d7dbf155ce45884607d
# ip: ''
# port: 8383
# tls_port: 8385
# use_tls: False
# tls_cert: shng.cer
# tls_key: shng.key
# port: 8384
# showpluginlist: True
# showservicelist: False
# starturl: backend
# threads: 8
# showtraceback: False
# webif_pagelength: 0
Bemerkung
Die Konfigurationsparameter des http Modules, die in dieser Datei konfiguriert werden, können auch über das graphische Administrations-Interface geändert werden.
Parameter |
Bemerkung |
---|---|
connectionretries |
Maximale Anzahl an Verbindungsversuchen zum Start von smarthomeNG, um die lokale IP zu eruieren. |
user |
Optional: Der Benutzername mit dem man sich zur Nutzung der Webinterfaces authentifizieren muss. Der Standardwert ist admin |
password |
Optional: Das Passwort mit dem man sich zur Nutzung der Webinterfaces authentifizieren muss im Klartext. Standardmäßig ist kein Passwort gesetzt. Wenn kein Passwort (oder Hashed-Passwort) gesetzt ist, ist der Zugriff auf die Webinterfaces ohne Anmeldung möglich. |
hashed_password |
Optional: Das Passwort für die Basis-Authentifizierung an Webinterfaces als Hash-Wert. Kann anstelle von**password** verwendet werden, wenn kein Klartext-Passwort in der Konfigurationsdatei haben möchten. Wenn weder password als auch hashed_password angegeben werden, ist die Basisauthentifizierung deaktiviert. Derzeit ist hashed_password der SHA-512-Hash-Wert des Passworts. Um den Hash für das Passwort zu erstellen, kann die Funktion Passwort-Hash erzeugen auf der Seite Dienste im Backend verwendet werden. |
service_user |
Optional: Der Benutzername mit dem man sich zur Nutzung der Webservices authentifizieren muss. Der Standardwert ist serviceuser |
service_password |
Optional: Das Passwort mit dem man sich zur Nutzung der Webservices authentifizieren muss im Klartext. Standardmäßig ist kein Passwort gesetzt. Wenn kein Service-Passwort (oder Hashed-Service-Passwort) gesetzt ist,ist der Zugriff auf die Webservices ohne Anmeldung möglich. |
service_hashed_password |
Optional: Das Passwort für die Basis-Authentifizierung an Webservices als Hash-Wert. Kann anstelle von**service_password** verwendet werden, wenn kein Klartext-Passwort in der Konfigurationsdatei haben möchten. Wenn weder service_password als auch service_hashed_password angegeben werden, ist die Basisauthentifizierung deaktiviert. Derzeit ist service_hashed_password der SHA-512-Hash-Wert des Service-Passworts. Um den Hash für das Passwort zu erstellen, kann die Funktion Passwort-Hash erzeugen auf der Seite Dienste im Backend verwendet werden. |
ip |
Optional: IP Adresse auf der das http Modul aktiv sein soll - muss normalerweise nicht angegeben werden. |
port |
Optional: Der Port auf welchem das html Interface lauscht. Dieser Port wird für Webinterfaces wie z.B. das Backend Plugin genutzt- Standard Port ist 8383 . |
tls_port |
Optional: Portnummer für die Webinterfaces bei Nutzung von https - Standard Port ist 8385 |
use_tls |
Optional: Auf True setzen, um Zugriffe über https:// zu ermöglichen (Zertifikat muss installiert sein) |
tls_cert |
Optional: Name der Zertifikatsdatei mit der Endung ‚.cer‘ oder ‚.pem‘. Die Datei muss im Verzeichnis ../etc liegen |
tls_key |
Optional: Name der Datei mit dem privaten Schlüssel und der Endung ‚.key‘. Die Datei muss im Verzeichnis ../etc liegen |
serviceport |
Optional: Der Port auf welchem das html Interface lauscht. Dieser Port wird für den Zugriff auf Webservices genutzt, wie ihn z.B. das Plugin Webservices zur Verfügung stellt. Standard Port ist 8384 . |
showpluginlist |
Optional: Falls der Parameter auf False gesetzt wird, wird unter http://smarthomeNG.local:8383/plugins keine Liste der geladenen Plugins mit Web Interface gezeigt. Dann ist der Zugriff auf die Webinterfaces nur direkt über die jeweilige Url oder über die Seite Plugins im Backend möglich. showpluginlist ist standardmäßig True. |
showservicelist |
Optional: Falls der Parameter auf False gesetzt wird, wird unter http://smarthomeNG.local:8383/services keine Liste der Services mit Web Interface gezeigt. showservicelist ist standardmäßig False. |
starturl |
Optional: Wenn starturl auf den Namen eines geladenen Plugins gesetzt ist, wird beim Aufruf
von http://smarthomeNG.local:8383/ auf dieses Plugin weitergeleitet, statt auf die Übersichtsseite.
Wenn z.B. standardmäßig das Backend Plugin aufgerufen werden soll, muss |
threads |
Optional: Die Anzahl der Threads, die CherryPy für jeden Port startet, auf dem es lauscht. Default ist 8, was für leistungsschwächere CPUs zu viel sein kann |
showtraceback |
Optional: Falls dieser Parameter auf True gesetzt wird, zeigen Fehlerseiten (außer Fehler bei 404) einen Python Fehler-Trace an. Normalerweise wird dieser Trace nur im smarthome.log aufgezeichnet. |
webif_pagelength |
Optional: Anzahl an Tabellenreihen, die in den Plugin Webinterfaces standardmäßig pro Seite angezeigt werden sollen. Bei -1 werden alle Einträge auf einer Seite gezeigt, bei 0 (default) so viele, dass sie genau auf die Seite ohne Scrolling passen. Weitere mögliche Werte sind 25, 50, 100 Der hier angegebene Wert kann pro Plugin im /etc/plugin.yaml File über den gleichnamigen Parameter überschrieben werden. |
Bemerkung
Wenn über den Parameter starturl die Weiterleitung auf ein spezifisches Plugin aktiviert ist,
kann trotzdem die Übersichtsseite mit der Liste aller geledenen Plugins, die ein Webinterface registriert
haben über http://smarthomeNG.local:8383/plugins angezeigt werden. Außer, man hat über
showpluginlist: False
diese Übersichtsseite deaktiviert.