Dokumentation UKSwitch Komponenten

UKSwitch-SmServer

Der SmServer ist eine Software, die auf einem Debian-basierenden Linux-System installiert wird.

Der SmServer verwaltet angelegte Objekte und greift im Bedarfsfall auf diese zu.

Der Server nimmt unverschlüsselte (aus dem Heimnetz) und synchron verschlüsselte (aus dem Internet) Verbindungen an und führt entsprechend gewünschte Aktionen aus. Hierbei kann er mit mehreren gleichzeitigen Verbindungen umgehen. Er kann mit IPv4- als auch mit IPv6-Adressierungen umgehen.

Kleine Automatisierungen übernimmt er auch, z.Bsp. Treppenhausschaltungen und verknüpfte Schaltungen.

Inhalt

UKSwitch-WLan-Module

WLan-Module sind Schalteinheiten, die einen ESP-8266 enthalten. Damit ist diese Einheit in der Lage, Verbindungen vom Router anzunehmen. Somit kann SmServer mit dieser Einheit kommunizieren.

Mit einem WLan-Modul können bis zu 7 Ausgänge unabhängig voneinander geschaltet werden.

WLan-Module eignen sich für Mietswohnungen, wo meist elektrische Installationen nicht durchgeführt werden können.

Die Software in diesen Einheiten ist so aufgebaut, dass sie eigenständig agiert. Sie arbeitet mit SmServer zusammen. Im Leerlauf fährt sie den Energieverbrach auf ein mögliches Minimum herunter, bleibt aber erreichbar.

Die Kommunikation mit dem SmServer erfolgt unverschlüsselt, da sie nur für den Einsatz im Heimnetz gedacht sind. Deshalb kein man ein Wlan-Modul auch von einem anderen Gerät ansprechen.

Die Daten für das Heimnetz-WLan können mit jedem Gerät angegeben werden, welches WLan-fähig ist und einen Browser nutzen kann.

Momentan arbeiten wir an preisgünstigen Lösungen für komplette Einheiten, um diese in der Wohnung, auf dem Hof oder im Garten einfach anwenden zu können.

Inhalt

GPIO-Ausgänge

Das gesamte System war ursprünglich nur für Raspberry Pis gedacht, kann aber nun auch auf anderen Geräten verwendet werden, wo das Betriebssystem auf Debian basiert.

GPIOs sind General Purpose Inputs/Outputs an einem Raspberry Pi. Sie können also als Eingänge und Ausgänge genutzt werden.

GPIOS

Mit dem System kann man einige dieser GPIOs als Ausgänge nutzen. Sie werden direkt im SmServer intigriert.

Vorteile sind schnelle Zugreifbarkeit und hohe Schaltgeschwindigkeiten (mehrere Tausend pro Sekunde).

Aber der Nachteil ist, dass sie nur 3,3 V mit max 10 mA ausgeben. Um reale Geräte damit zu schalten, sind weitere elektrische Verstärkungen mittels Optokoppler, Solid-State-Relais oder anderen Bauelementen notwendig. Wir arbeiten momentan an einfachen Lösungen dafür.

Folgende 14 GPIOs können vom SmServer genutzt werden:

Inhalt

ExternSm-Objekte

ExternSm-Objekte sind Objekte, die von einem anderen SmServer verwaltet werden. Dabei spielt es keine Rolle, ob diese Objekte dort als WLan-Modul, GPIO-Ausgang oder auch als ExternSm-Objekt dort angelegt wurden.

Der Gedanke dieser Sache ist folgender: Man hat weitere SmServer an anderen Orten laufen, z.Bsp. im Ferienhaus oder in der Hobby-Werkstatt. In der Hobby-Werkstatt ist es kalt aber man möchte dann noch was basteln. So kann man z.Bsp. schon von zu Hause in der Hobby-Werkstatt die Heizung einschalten, ohne sich mit dem dortigen SmServer verbinden zu müssen. Außerdem kann man zu Hause sehen, was dort noch eingeschaltet ist.

Für den Zugriff auf ExternSm-Objekte werden synchron verschlüsselte Verbindungen über das Internet genutzt. Deshalb benötigt SmServer den Schlüssel des entfernten SmServers, mehr dazu später.

So erfolgt ein Schaltvorgang:

Aufgrund des rotierenden Keys werden gleich wiederholenende Anweisungen jeweils mit einem anderen Schlüssel übertragen, d.h. im Netzwerk werden jeweils andere Daten gesendet.

Anmerkung Verkettungen

Verkettungen sind möglich. Ob das sinnvoll ist, steht auf einem anderen Blatt. Hierzu folgendes Beispiel:

Das Ganze sieht extrem aus, geschieht aber mit 3 verschiedenen Verschlüsselungen in Bruchteilen von einer Sekunde.

Inhalt

Pseudo-Objekte

Pseudo-Objekte sind virtuelle Geräte. Ein reales Gerät kann damit nicht direkt geschaltet werden.

Pseudo-Objekte kann man ein-, aus- und umschalten. Aber in Wirkilichkeit passiert nichts. Die elektrische Leistung beträgt deshalb 0,0W.

Was soll dieser Unsinn für einen Zweck haben?

Im folgenden Absatz beschreibe ich, wie man Geräte miteinander verknüpfen kann. Allerdings werden Verknüpfungen immer beim Ein-, Aus- oder Umschalten eines Gerätes ausgeführt.

Sollen diese Verknüpfungen nicht immer ausgeführt werden, kann man ein Pseudo-Objekt anlegen und die Geräte mit diesem verknüpfen. So kann man trotzdem die Geräte einzeln schalten.

Inhalt

SmClients

Um auf einen Server vernünftig zugreifen zu können, benötigt man einen Client. Ein Client ist ein Programm, was dem Benutzer ermöglicht, auf Server zuzugreifen und Informationen darzustellen. So ist euer Web-Browser ein typischer Client.

SmClients sind eine Sammlung Programmen, die speziell für den Zugriff auf SmServer ausgelegt sind. Alle diese Clients sind so ausgelegt, dass sie auf verschiedene SmServer zugreifen können, vorausgesetzt man besitzt dessen Key.

Dokumentationen zu den einzelnen Clients folgen später.

SmClientWeb

SmClientWeb greift auf einen SmServer zu, holt Informationen und sendet Anweisungen. Als Ergebnis wird eine HTML-Seite erstellt, die mit Webbrowsern dargestellt werden kann.

Darstellung als "landscape"

SmClientWeb auf Desktop

Darstellung als "portrait"

SmClientWeb auf Smartphone

Ob landscape oder portrait genutzt wird, entscheidet euer Browser selbst anhand der Darstellungsmöglichkeit.

Da SmServer mehrere hundert Geräte verwalten kann, wird als erstes eine Textübersicht (landscape links, portrait oben) ausgegeben. Rot dargestellte Objekte sind eingeschaltet. Mit einem Klick auf ein Objekt gelangt man direkt zu diesem hin und kann es bedienen.

Ist in eurem Browser Javascript für diese Webseite aktiviert (das ist meist der Fall), aktualisiert sich diese Webseite ca. alle 3 Minuten. Wenn Schaltungen ausgeführt werden, aktualisiert sich die Webseite serverseitig sofort.

Obwohl SmClientWeb der wohl meist genutzte Client sein wird, ist er für den Anwender uninterresant. Dieser Client wird vom Webserver aufgerufen.

SmClientWeb hat nur eine sehr kurze Laufzeit, da alle Aktionen nur einmal ausgeführt werden.

smcli

smcli (sm Command Line Interpreter) ist ein schmaler Client für ein Linux-Terminal / Konsole und kann auch mittels SSH problemlos genutzt werden.

smcli gibt vom SmServer erhaltene Informationen aus. Schaltungen erfolgen durch Eingabe einer Zahl.

smcli

Für Informationen vom SmServer wird eine TCP-Verbindung aufrecht erhalten, so kann eine schnelle Geschwindigkeit erreicht werden. Für auszuführende Schaltungen werden kurzzeitig neue TCP-Verbindungen zum SmServer erstellt.

transmitsm

transmitsm ist ein Tool für das Terminal/die Konsole, um eine einzelne (mehrere geht aber auch) Anweisung an einen SmServer zu senden.

transmitsm

transmitsm erstellt eine Verbindung, sendet die Anweisung, empfängt die Antwort und beendet die Verbindung. Die Antwort wird ausgegeben.

Wenn es nicht tausend Schaltungen pro Sekunde werden sollen, lässt sich so transmitsm in eigenen Skripten/Programmen nutzen, ohne sich mit TCP-Verbindungen oder gar Verschlüsselungen herum mühen zu müssen.

smclient

smclient ist ein grafischer Client basierend auf Gtk3, um es auf einer graphischen Oberfläche wie LXDE, KDE oder XFCE unter Linux anwenden zu können.

Allerdings wird dieser Client stiefmütterlich von Ulf gepflegt. Nur dann, wenn er Lust hat. Grund: Die meisten nutzten kein Linux-Debian.

smclient

Natürlich kann man hier Objekte schalten, Schaltungen von anderen werden angezeigt.

smautoswitch

Smautoswitch ist ein Client, der im Hintergrund kaum sichtbar läuft.

Smautoswitch verwaltet so genannte Events. Ein Event ist eine Schaltung eines Objektes zu einer bestimmten Zeit.

Um so eine Schaltung zu dieser Zeit durchzufühen, erstellt smautoswitch eine Verbindung zum SmServer, gibt die Anweisung an, erhält die Antwort und verabschiedet sich.

Anwender können auf der Weboberfläche Events anlegen oder löschen.

Weboberfläche smautositch

Es gibt einen Urlaubsmodus, wo Events nicht oder vielleicht doch gerade jetzt (Diebstahlvorbeugung) ausgeführt werden.

Außenbeleuchtungen lassen sich nach dem Sonnenaufgang und -untergang einstellen. Smautoswitch berechnet diese Zeiten jeden Tag neu.

Automatische Ausschaltzeiten, die im SmServer konfiguriert wurden, haben Priorität.

Inhalt