Das webbasierte SmartHomeNG Backend-Plugin bietet einen grundlegenden Überblick über eine laufende SmartHomeNG Instanz. Zudem stellt es die Möglichkeit bereit, bestehende Logiken weiterzuentwickeln, komplett neu zu erstellen und dynamisch zur Laufzeit neu zu laden.

Der Support-Thread für das Backend-Plugin im knx-user-forum findet sich unter http://knx-user-forum.de/forum/supportforen/smarthome-py/959964-support-thread-f%C3%BCr-das-backend-plugin. Die automatisch generierte Dokumentation kann unter https://www.smarthomeng.de/user/plugins/backend/user_doc.html eingesehen werden.

Die im Folgenden dargestellten Screenshots stellen den zum Zeitpunkt dieses Artikels aktuellen Entwicklungsstand für SmartHomeNG 1.5 dar. Sie sind jedoch sehr ähnlich zum bestehenden Master-Branch (1.4.x), so dass die Informationen Allgemeingültigkeit haben.

Installation

Damit das Backend-Plugin läuft, ist die Installation zweier Python Pakete erforderlich:


sudo pip3 install cherrypy
sudo pip3 install jinja2

CherryPy ist ein Python-Webserver, Jinja2 die zugehörige Template-Engine.
In der /etc/module.yaml muss zudem das http Modul aktiviert sein. Bei Bedarf kann hier auch der Port definiert werden:


BackendServer:
    plugin_name: backend

Nach Neustart von SmartHomeNG ist das Backend nun unter http://«ip_addresse_von_shng»:«port» erreichbar.

Überblick

Die Backend-GUI besteht im Wesentlichen aus den Seiten Dienste, Items, Logiken, Scheduler, Plugins, Szenen, Threads und Logging. Im aktuellen Master-Branch gibt es zudem die Seite System, welche in der Entwicklungsversion für 1.5 über das SmartHomeNG Icon erreichbar ist.

System

Auf der System-Seite, werden Informationen über die aktuellen Systemdaten angezeigt. Hier ist die SmartHomeNG Version und die des Plugin-Repositories zu finden.

Weiterhin gibt es Daten zum Host, Betriebssystem, der verwendeten Python-Version, dem freien Festplattenspeicher, der Server- und Betriebszeit.

Wartet man kurz ab, kann über einen zweiten Reiter der PyPI Check eingesehen werden, der einen aktuellen Überblick über die via pip3 installierten Pakete gibt.

Hier kann man sich einen Überblick machen, ob es aktuellere von SmartHomeNG unterstützte Paketversionen gibt. Fährt man mit der Maus über das Icon (grüner Haken, rotes Info-Symbol), so bekommt man zusätzliche Informationen.

Im unten gezeigten Beispiel gibt es eine neuere python-dateutil Version, die von SmartHomeNG unterstützt wird, während die neuste Version von ruamel.yaml nicht unterstützt wird.

Dienste

Über die Dienste lässt sich die Sprache des Backends umstellen und - bei Bestimmten Systemen -  der KNXD neu starten. Des Weiteren kann das Cache-Verzeichnis auf ungültige Dateien überprüft werden, etwa wenn ein Item nicht mehr existiert.

Wird bspw. für die module.yaml ein verschhlüsseltes Passwort benötigt, so kann dieses hier erstellt werden. Auch ein Prüf-Tool für YAML Syntax, sowie ein CONF-YAML Konverter stehen zur Verfügung.

Zuletzt kann auch die Syntax von EVAL-Ausdrücken geprüft werden.

Items

Im Menüpunkt Items wird eine Baustruktur der aktuellen Items angezeigt, die man sehr einfach über Klick auf das + bzw. - Symbol betrachten kann. In der Anzeige rechts sieht man die Details des jeweiligen Items und kann über das Eingabefeld den Wert des Items ändern.

Zusätzlich werden sämtliche Metadaten des Items angezeigt, die in SmartHomeNG vorliegen.

Über die Suche über der Anzeige lassen sich gezeigt Item-Pfade durchsuchen oder der gesamte Baum auf-/zuklappen.

Logiken

Im Menüpunkt Logiken wird eine Übersicht der aktuellen Logiken angezeigt.

Die Logiken können hier zur Laufzeit ausgeführt werden (Hand Icon). Daneben können sie neu geladen werden (etwa wenn man die zugehörige Datei bearbeitet hat),  deaktiviert werden (die Logik "HostsList" ist im Beispiel deaktiviert), entladen werden (die Logik ist SHNG zur Ausführung nicht mehr bekannt) oder gelöscht werden (Logik wird entladen, aus der logics.yaml ausgetragen und die Datei gelöscht).

Daneben kann über die GUI auch eine neue Logik erstellt (Button über der Liste) oder bestehende Logiken editiert werden (Klick auf den Dateinamen).

In der Editieransicht kann nun der Python-Code modifiziert und die Logik direkt gespeichert und neu geladen werden. Auch ein Zwischenspeichern ist möglich. Hier ist aber darauf zu achten, dass zum Zeitpunkt eines Neustarts von SHNG die modifizierte Logik direkt geladen wird, also der Python-Code lauffähig sein sollte.

Neben dem Code können hier auch das Cycle-Intervall, ein Ausführungszeitpunkt, die zugehörigen Items (die die Logik bei Wertänderung auslösen) und die Rechte zur Ausführung aus der smartVISU bearbeitet werden.

Der Editor erlaubt eine Reihe an Tastaturkürzeln, die über den Hilfe-Knopf eingesehen werden können.

Plugins

Im Menüpunkt Plugins wird die Liste der aktuell laufenden Plugin-Instanzen angezeigt.

Klickt man auf eine Zeile, so werden Detailinformationen geöffnet. Zudem wird im Fall eines Webinterfaces ein Link auf dieses eingeblendet.

Die Knöpfe unter Aktionen sind derzeit noch ohne Funktionalität.

Szenen

Unter Szenen ist die Liste der aktuellen Szenen zu sehen.

Threads

Threads gibt einen Überblick über die aktuell laufenden Threads innerhalb SmartHomeNG.

Logging

Unter Logging wird die aktuelle Logging-Konfiguration angezeigt. Die jeweils konfigurierten Logfiles können direkt mit Klick auf den Dateinamen angezeigt werden.

Per Klick auf den Dateinamen kann das Logfile eingesehen, gefiltert und lokal gespeichert werden. Das hilft massiv bei der Problemlösung im Forum 😉

Urheberrechtshinweise

Über diesen Link findet man Informationen zu den verbauten 3rd Party Komponenten, den Versionen und den jeweiligen Open Source Lizenzen.

Zusammenfassung

Das Backend-Plugin ist ein wichtiges Hilfsmittel um den Überblick über sein System zu behalten. Es hilft bei der Wartung und Aktualisierung, aber auch bei der Problemlösung.

Speziell beim Einfügen neuer Items kann sichergestellt werden, ob diese auch korrekt eingelesen wurden. Tauchen Sie im Itembaum nicht auf, so liegt mit hoher Wahrscheinlichkeit ein Fehler vor.

Die Systeminformationen und die Logfiles helfen, speziell bei Supportproblemen die Problemlösung deutlich zu beschleunigen.

Wir sind immer für neue Features und Ideen offen. Also einfach im Forum im zugehörigen Thread äußern.

 

(Die in diesem Artikel verwendeten Screenshots wurden selber erstellt. Das Titelbild ist unter der Creative Commons Zero (CC0) Lizenz veröffentlicht und wurde von www.pexels.com bezogen.)


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.