Kurzanleitung update
Weitere Informationen über die zu erstellenden Methoden und ihre Parameter können in der folgenden Kurzanleitung
gefunden werden. Die Libraries im Verzeichnis /lib
stellen den Kern der Funktionalitäten von smarthomeng bereit.
Alle Dateien eines Plugins befinden sich in einem Unterverzeichnis des Verzeichnisses /plugins
, welches den Namen des Plugins trägt (nur Kleinbuchstaben). Ein Plugin besteht mindestens den folgenden zwei Dateien:
File |
Description |
---|---|
|
Der Programmcode des Plugins |
|
Die (mehrsprachige) Beschreibung der Metadaten für das Plugin |
Je nach Umfang und Erfordernissen sind folgende optionale Dateien hinzuzufügen:
File |
Description |
---|---|
|
Enthält die Übersetzungen für die mehrsprachige Implementierung des Web Interfaces |
|
Falls ein Plugin ein Python Package nutzt, welches nicht in der
Standardinstallation von Python enthalten ist, muss diese Anforderung in der
Datei |
|
Weitergehende Dokumentation des Plugins, die in die Anwender-Dokumentation
integriert wird. Falls die Dokumentation in Die Dokumentationsdatei |
|
Weitergehende Entwickler-Dokumentation des Plugins. |
|
Das in früheren Versionen verwendete |
Wichtig
Die erste Überschrift in der Datei user_doc.rst
MUSS dem Short-Name des Plugins in Kleinbuchstaben
entsprechen (identisch zum Namen des Verzeichnisses in dem die Plugin Dateien gespeichert sind.
Diese Überschrift wird als Eintrag in der Navigation der Dokumentation verwendet. Wenn eine andere Überschrift gewählt würde, würde die Navigation der Dokumentation inkonsistent werden.
Ein Plugin Verzeichnis kann die folgenden Unterverzeichnisse haben:
Directory |
Description |
---|---|
|
Ein Verzeichnis, welches eine vorangegangene Version des Plugins
enthält (bei größeren Überarbeitungen des Plugins). Die |
|
Verzeichnis für Bilder und Assets der Doku ( |
|
Enthält die Dateien eines Webinterfaces, falls das Plugin eines
implementiert. (Es sollte die Unterverzeichnisse |
|
Enthält die eigentlichen Dateien des Webinterfaces |
|
Optional, falls cascading style sheets genutzt werden. |
|
Optional, falls das Webinterface Bilder enthält |
|
Dieses Verzeichnis enthält die Jinja2 Templates des Webinterfaces und
sollte mindestens |
Ein Plugin implementiert im Code eine Klasse, welche von der class SmartPlugin
abgeleitet ist. Die Methoden
von SmartPlugin
sind hier dokumentiert:
Plugins welche MQTT nutzen, sollten stattdessen von class MqttPlugin
abgeleitet werden. MqttPlugin
ist
eine Unterklasse von SmartPlugin
, die um Methoden zur MQTT-Nutzung erweitert ist. Die Methoden von
MqttPlugin
sind hier dokumentiert:
Eine weitere, Möglichkeit Plugins zu erstellen, ist auf Basis der Klasse SmartDevicePlugin. Wie auch die Klasse MqttPlugin
ist auch die Klasse SmartDevicePlugin von der Klasse SmartPlugin abgeleitet.
SmartDevicePlugin
ist eine Unterklasse von SmartPlugin
, die um Methoden zur zur Device Ansteuerung erweitert ist.
Die Methoden von SmartDevicePlugin
sind hier dokumentiert: