ADSLib auf dem Raspberry Pi 4 einrichten

ADS funktioniert unter Windows ohne Probleme, sobald man einmal die TwinCat XAE Shell installiert hat. Diese startet automatisch die notwendigen Dienste. Da wir von der Visualisierung aus mit der Beckhoff Steuerung kommunizieren wollen, brauchen wir jedoch eine Möglichkeit, dass ADS bzw. die ADSLib auch auf dem Raspberry Pi läuft. Dazu wollen wir das ganze in einen Docker Container einsperren.

Zum Glück gibt es von Beckhoff eine offene Quelle, aus der man sich selbst die ADSLib bauen kann. Auf dieser Basis bauen wir einen kleinen WebService, der in einem Docker Container läuft

„ADSLib auf dem Raspberry Pi 4 einrichten“ weiterlesen

Aufgaben in Docker-Container verbannen

Um so komplexer das gesamte Umfeld wird, umso schwieriger wird es, den Überblick zu bewahren. Inzwischen haben sich einige Funktionen angesammelt. Um diese voneinander zu separieren, wollen wir die einzelnen Funktionen in Docker-Container einsperren. Diese laufen dann auf einem Raspberry Pi 4.

Die Vorteile beim Einsatz von Docker sind dabei vor allem, die einfache Möglichkeit neue Versionen einzuspielen und die Unabhängigkeit der unterschiedlichen Komponenten bezüglich der verwendeten Bibliotheken sicherstellen. So ist es einfach möglich, verschiedene Anwendungen mit unterschiedlichen Versionen von Bibliotheken zu verwenden. Bei der Installation von neuen Anwendungen sind die bestehenden Anwendungen nicht davon betroffen. Zusätzlich motiviert es, selbstgeschriebene Anwendungen möglichst klein und einfach zu halten.

Wie das ganze mit Docker funktionieren kann, zeigt der folgende Text.

„Aufgaben in Docker-Container verbannen“ weiterlesen

Visualisierung in Django – Anbindung von SPS und Pokey

Ziel der ganzen Automatisierung im Haus ist es für uns, viele Funktionen entweder gar nicht mehr zu bedienen, oder eine einfache und intuitive Bedienung zu ermöglichen. Um eine Funktion im Haus auszuführen, können wir entweder die normalen (Licht-)Schalter im Haus drücken oder auf die beiden Raspberry Pi Displays zurückgegriffen werden, auf denen die Visualisierung angezeigt wird.

Wie die Daten von den verschiedenen Komponenten auf diese Displays kommen, soll im folgenden gezeigt werden.

„Visualisierung in Django – Anbindung von SPS und Pokey“ weiterlesen

HEOS Box aus der Visualisierung ansteuern

Wir haben einige HEOS Boxen von Denon im Haus aufgestellt. Diese Boxen sind per LAN oder WLAN angeschlossen und können dann zum Streaming von Musik verwendet werden. Zu den Boxen gibt es von Denon eine App, mit der wir die Musik auf den Boxen steuern können. Wir haben aber auch das Ziel, dass wir die Boxen direkt von unserer Haus-Automatisierung (zum Beispiel vom RaspberryPi Panel) ansprechen können, so dass nicht immer das Smartphone griffbereit sein muss.

Unser erstes Ziel ist es dabei, dass wir die Musik starten und beenden, die Lautstärke regeln und durch die Playlist springen können. Wie dies geht, beschreiben wir im folgenden.

„HEOS Box aus der Visualisierung ansteuern“ weiterlesen

Wetterstation in die Visualisierung einbinden

Da viele Funktionen im und am Haus vom Wetter abhängig sind, haben wir überlegt, wie wir die Wetterdaten am besten bekommen können. Die eine Überlegung war es, aus dem Internet die entsprechenden Daten zu parsen. Leider sind die Daten doch recht ungenau, da die nächste offizielle Wetterstation sehr weit entfernt ist. Also musste es eine eigene Wetterstation sein. Die Anforderung war dabei, dass wir sie in unser Eco-System einbinden können.

„Wetterstation in die Visualisierung einbinden“ weiterlesen

Mit dem Pokeys direkt per UDP sprechen, um die 1-Wire Sensoren auszulesen

Wir hatten bereits früher gezeigt, wie man per PoBlocks verschiedene Sensoren auslesen kann. Leider musste dazu der Sensor unbedingt an Pin 55 angeschlossen werden. Jetzt haben wir nach einer Lösung gesucht, Sensoren an beliebigen Pins auslesen zu können.

Die Pokeys Protocol Specification beinhaltet im Kapitel 1-Wire Parameter, mit denen man den Pin angeben kann. Deswegen haben wir uns damit eingehender beschäftigt. Dabei kommt heraus, dass wir den Pokeys direkt per UDP ansprechen können. Dies ist sogar recht einfach.

In diesem Kapitel zeigen wir, wie man das ganz einfach umsetzen kann. Die Beispiele sind dabei in Python umgesetzt, lassen sich aber auch sehr leicht in andere Sprachen portieren.

„Mit dem Pokeys direkt per UDP sprechen, um die 1-Wire Sensoren auszulesen“ weiterlesen

MariaDB Datenbank aus Beckhoff TwinCat3 mit Daten füllen

Wir wollen alle Daten der Sensoren und alle Aktionen über die Beckhoff Steuerung im Haus in einer Datenbank protokollieren. So ist es uns später möglich zu erkennen, welche Aktionen häufig ausgeführt werden und welche eher selten. Außerdem können wir Temperaturkurven für die einzelnen Räume erstellen. Von daher benötigen wir eine einfache Möglichkeit, Daten in eine Datenbank zu schicken. Hierfür setzen wir auf MariaDB, einen Ableger von MySQL.

„MariaDB Datenbank aus Beckhoff TwinCat3 mit Daten füllen“ weiterlesen

SK6812 Remote über den Django Webserver steuern

Bisher haben wir den SK6812 LED Streifen direkt per Skript auf dem Raspberry angesteuert. Die erste Lösung war hierbei per Kommandozeile den Modus zu wechseln. Das ist uns aber auf Dauer zu umständlich. Deswegen wollen wir von jedem beliebigen Gerät, sei es ein Rechner, Tablet oder Smartphone den Streifen ansteuern.

„SK6812 Remote über den Django Webserver steuern“ weiterlesen

LED Streifen mit SK6812 für Hintergrundbeleuchtung

In einigen Bereichen wollen wir eine farbige Hintergrundbeleuchtung per LED erzeugen. Dazu haben wir nach passenden LED Streifen gesucht. Die meisten Streifen lassen sich per RGB Signal steuern. Dies bedeutet, dass alle LEDs des LEDs Streifen immer genau die gleiche Farbe habe. Inzwischen gibt es aber auch einige Streifen, bei denen man jede LED einzeln ansteuern kann. Zu diesen Streifen gehören der WS2801 und der SK6812, für den wir uns entschieden haben.

Mokona und der SK6812

„LED Streifen mit SK6812 für Hintergrundbeleuchtung“ weiterlesen

ADS per Python und Django ansprechen

Um von Django mit der SPS kommunizieren zu können, haben wir uns für ADS entscheiden. Es gibt eine Bibliothek für Python die ADS kann. Die Bibliothek kann man zum Beispiel hier finden. Sie lässt sich auch einfach per pip mit diesem Befehl installieren.

pip install pyads

Nun kann die Bibliothek in Python verwendet werden. Dazu muss sie einfach nur importiert werden.

import pyads

Eine Dokumentation der Bibliothek findet sich hier.

„ADS per Python und Django ansprechen“ weiterlesen