plugin.yaml
Plugins erweitern die Kern-Funktionalität von SmartHomeNG. Das ../plugins Verzeichnis enthält ein Unterverzeichnis für jedes verfügbare Plugin. In der Konfigurationsdatei ../etc/plugin.yaml wird die Konfiguration für jedes Plugin hinterlegt, dass genutzt werden soll.
Das Beispiel unten konfiguriert das KNX-Plugin, so dass es Telegramme an einen eibd oder einen knxd Daemon sendet bzw. von dort empfängt. eibd und knxd sind Software Gateways zum KNX Bus.
In diesem Fall ist der Name der Plugin Instanz knx und das Plugin wird im Verzeichnis knx im Verzeichnis ../plugins gesucht.
%YAML 1.1
---
database:
plugin_name: database
driver: sqlite3
connect:
- database:./var/db/smarthomeng.db
- check_same_thread:0
knx:
plugin_name: knx
plugin_enabled: False
#host: 127.0.0.1
#port: 6720
#send_time: 600 # update date/time every 600 seconds, default none
#time_ga: 6/0/0 # default none
#date_ga: 6/0/1 # default none
#busmonitor: on # log all knx messages, default off
#readonly: True ## don't write to knx bus, default False
cli:
plugin_name: cli
plugin_enabled: False
ip: 0.0.0.0
#port: 2323
update: True
#hashed_password: 1245a9633edf47b7091f37c4d294b5be5a9936c81c5359b16d1c48337$
#database_mysql:
# plugin_name: database
# instance: nas
# precision: 4
# driver: pymysql
# connect:
# - host:localhost
# - user:smarthome
# - passwd:smarthome
# - db:smarthome
# - port:3306
# Autogenerierung von Webseiten für SmartVISU UND Aktivierung des Nutzdatenprotokolls über Websocket für die smartVISU
smartvisu_pages:
plugin_name: smartvisu
smartvisu_dir: /var/www/html/smartvisu
#generate_pages: False
#overwrite_templates: True
#create_masteritem_file: True
#visu_style: std
#default_acl: rw
#handle_widgets: True
#list_deprecated_warnings: False
#stateengine:
# plugin_name: stateengine
# log_level: 2
# log_directory: var/log/stateengine/
# startup_delay_default: 120
# suspend_time_default: 10800
# laststate_name_manually_locked: gesperrt
# laststate_name_suspended: ausgesetzt
# log_maxage: 1
# nw:
# plugin_name: network
# ip: 0.0.0.0
# port: 2727
# http: 8765
# tcp_acl:
# - 127.0.0.1
# - 192.168.0.34
# udp: 'no'
# udp_acl: '*'
Es existiert eine README.md Datei zu jedem Plugin. Diese Datei gibt ausführliche Informationen, wie das Plugin zu konfigurieren ist. Die README`s sind unter :doc:`Plugins <../plugins> in der Übersicht der Plugins zu finden. Wie die Konfiguration von Plugins grundsätzlich funktioniert ist im Abschnitt Konfiguration/Plugins zu finden.
Bemerkung
Die Konfigurationsparameter der Plugins, die in dieser Datei konfiguriert werden, können auch über das graphische Administrations-Interface geändert werden.
Referenzierung eines Plugins in der Konfiguration
Ab v1.4 ist es Standard, das Plugin über den einzigen Parameter plugin_name
zu spezifizieren.
Dabei ist der Wert der Wert des früheren Parameters class_path
ohne den Präfix plugins.
,
also der Name des Plugin Verzeichnisses. Da alle Plugins im Verzeichnis ../plugins liegen, ist
plugins. redundante Information.
Bis zu SmartHomeNG v1.3 wurde ein Plugin in der Konfiguration über zwei Parameter class_name
und class_path
referenziert.
Wenn das Plugin eine Metadaten Definition enthält (was fast alle Plugins tun), so gibt es keine
Notwendigkeit den Parameter class_name
anzugeben. Diese Information wird dann den Metadaten
entnommen.
Bemerkung
Sollte es notwendig werden ein Plugin außerhalb des Verzeichnisses ../plugins zu speichern,
kann dieses Plugin (wie bisher) über class_path:
referenziert werden.
Nutzung einer älteren Version eines Plugins
Falls Du nicht die neueste Version von SmartHomeNG nutzt, kann es vorkommen, dass Du eine ältere
Version eines Plugins nutzen möchtest. Einige Plugins enthalten in Unterverzeichnissen ältere
Versionen. Um diese zu nutzen, muss in ../etc/plugin.yaml in der Konfiguration der Parameter
plugin_version:
angegeben werden.
Um herauszufinden, ob ein Plugin mit einer (oder mehreren) älteren Version(en) installiert ist,
hilft ein Blick in das Plugin Verzeichnis. Falls es dort Unterverzeichnisses gibt, deren Name mit
_pv_ beginnt, sind ältere Versionen vorhanden. Der Rest des jeweiligen Verzeichnisnamens gibt
an, welche Version sich in dem Verzeichnis befindet. Wenn Du ein Unterverzeichnis _pv_1_3_0
findest, enthält es die Version v1.3.0 des Plugins. Um diese Version, statt der aktuellen Version
zu laden, musst Du nur den Eintrag plugin_version: 1.3.0
zur Plugin Konfiguration hinzufügen.