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.

plugin.yaml
%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

Das Plugin wird über den einzigen Parameter plugin_name spezifiziert. Der Wert ist der Name des Plugin-Verzeichnisses unterhalb von plugins

Bemerkung

Sollte es notwendig werden ein Plugin außerhalb des Verzeichnisses ../plugins zu speichern, kann dieses Plugin (wie früher) ü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.