Konfiguration
Wichtig
Detaillierte Informationen zur Konfiguration des Plugins sind unter Plugin ‚stateengine‘ Konfiguration zu finden.
Pluginkonfiguration
#etc/plugin.yaml
stateengine:
    plugin_name: stateengine
    plugin_enabled: True
    #startup_delay_default: 10
    #suspend_time_default: 3600
    #log_level: 0
    #log_directory: var/log/StateEngine/
    #log_maxage: 0
Aktivieren
Um für ein Item das Stateengine Plugin zu aktivieren, ist das Attribut se_plugin
auf active zu setzen. Dies ist in der generellen struct Vorlage bereits
hinterlegt, muss aber manuell gesetzt werden, falls das struct: stateengine.general
nicht eingesetzt wird.
#items/item.yaml
raffstore1:
    automatik:
        rules:
           se_plugin: active
           se_log_level: 2
Logging
Es gibt zwei Möglichkeiten, den Output des Plugins zu loggen:
intern
Hierbei werden, sofern das Loglevel 1 oder mehr beträgt, sämtliche Logeinträge in
eigene Dateien in einem selbst definierten Verzeichnis geschrieben. Das Loglevel
kann sowohl global in der etc/plugin.yaml Datei deklariert, als auch individuell
pro Item mittels se_log_level (dort wo auch se_plugin: active steht) überschrieben werden.
Wird im Item nichts angegeben oder das Attribut mit dem Wert -1 angegeben, wird der Standardwert herangezogen.
logging.yaml Sowohl der Output des Plugins generell, als auch der Einträge für bestimmte Items können in der logging.yaml Datei wie folgt deklariert werden:
#etc/logging.yaml
filters:
    notfound:
        (): lib.logutils.Filter
        msg: "(.*)Item (.*) not found!"
handlers:
    stateengine_licht_file:
        class: logging.handlers.TimedRotatingFileHandler
        formatter: shng_simple
        level: DEBUG
        utc: false
        when: midnight
        backupCount: 2
        filename: ./var/log/stateengine_licht.log
        encoding: utf8
        filters: [notfound]
    stateengine_all_file:
        class: logging.handlers.TimedRotatingFileHandler
        formatter: shng_simple
        level: DEBUG
        utc: false
        when: midnight
        backupCount: 2
        filename: ./var/log/stateengine.log
        encoding: utf8
loggers:
    plugins.stateengine:
        # Default logger for SmartHomeNG plugins
        handlers: [shng_details_file]
        level: INFO
    stateengine.licht:
        # Default logger for SmartHomeNG plugins
        handlers: [stateengine_licht_file]
        level: DEBUG
    stateengine:
        # Default logger for SmartHomeNG plugins
        handlers: [stateengine_all_file]
        level: WARNING
Das obige Beispiel würde in die Datei var/log/stateengine_licht.log sämtliche Debug Information schreiben, die für das Item „licht“ und dessen Unteritems relevant sind. Aufgrund des aktiven Filters „notfound“ werden sämtliche Einträge zu nicht gefundenen Items ignoriert.
Zusätzlich werden alle Fehler von StateEngine Items in die Datei stateengine.log geschrieben. Da der Filter hier nicht aktiv ist, werden auch Informationen zu nicht gefundenen Items geloggt.
Generelle Informationen und Warnungen unabhänging von den StateEngine Items (z.B. zum Standardloglevel, maximalen Alter, etc.) werden in das smarthome-details.log geschrieben.