CUL1101 flashen und Homegear installieren

Vorbereitung

Nachdem die Teile zum Ausprobieren von Homegear angekommen sind, kann ich endlich ein wenig ausprobieren.
Komponenten Liste:
– RaspberryPi
– CUL1101 v3.4

Der RaspberryPi läuft mit einem Debian Jessie minimal Image, das ich frisch für die Verwendung aufgesetzt habe.

CUL1101 vorbereiten

Der CUL muss mit der passenden Firmware geflasht werden, um verwendet werden zu können. Zuerst muss der CUL in dem RaspberryPi eingesteckt werden. Mit ‚lsusb‘ kann überprüft werden, ob der USB Stick erkannt wurde.

Es wird die Software ‚dfu-programmer‘ benötigt, um den CUL zu flashen.

Jetzt kann die Firmware auf den RaspberryPi heruntergeladen werden. Stand heute ist es mit diesem Link möglich. Ich empfehle aber, die neueste Version herunterzuladen.
http://culfw.de/culfw-1.66.tar.gz

Die neueste Version kann hier nachgeschaut werden: http://culfw.de/culfw.html#Links (Source)

Dann mit ‚tar xzf‘ entpacken. In das Verzeichnis wechseln:

Der CUL muss jetzt vom Raspberry getrennt werden.

Mit gedrücktem RESET Knopf jetzt den CUL wieder an den Raspberry stecken.

Danach folgende Befehle ausführen:

Nachdem der CUL nochmals aus und angesteckt wurde (diesmal natürlich ohne Reset Knopf), sollte er von ‚lsusb‘ erkannt werden als

Mit ’screen‘ kann überprüft werden, ob der CUL auch funktioniert.

Das sollte die Version des CUL zurückgeben.

Homegear installieren

Um jetzt mit den Homematic Geräten kommunizieren zu können, wird Homegear benötigt.

Zum hinzufügen des Repositories:

Unter „https://www.homegear.eu/index.php/Downloads“ ist alles genau beschrieben. Achtung! Es gibt drei Reiter (Debian, Raspbian, Ubuntu). Ich war zu schnell und hatte es mit Debian ausprobiert und das hat natürlich nicht funktioniert. 🙂

Der letzte Schritt kann gerade auf den älteren RaspberryPis einige Zeit in Anspruch nehmen. Be patient…

Homegear konfigurieren

Jetzt müssen wir natürlich Homegear noch sagen, über welche Schnittstelle es kommunizieren soll. Hierfür muss die Konfigurations-Datei entsprechend angepasst werden.

In dieser Datei gibt es einen Sektor „CUL“. Dieser muss wie folgt angepasst werden:

Einige Konfigurationen müssen/können/sollen (:)) im „General“ Abschnitt auch noch gemacht werden:

Bei Adresse und Key einfach schon einfallsreich sein ^^

Danach kann homegear gestartet werden:

Soweit so gut. Jetzt wird es spannend.

Homegear starten

Jetzt können wir zum ersten Mal Homegear starten:

Ob Homegear die Homematic Familiy geladen hat, kann mit dem Kommando „families list“ nachgeschaut werden. So sollte es nicht ausschauen:

Ich hatte bei mir vergessen, den deviceType einzukommentieren. Naja jetzt geht es auch:

Jetzt kann die Homematic Family ausgewählt werden:

So sieht das Ganze aus, wenn noch keine Geräte gepaired sind.

Das Pairen werde ich im nächsten Artikel beschreiben, da mein Raspberry Pi gerade in „Wartung“ ist und ich so nicht auf ihn zugreifen kann.

Da ich alles schnell ausprobieren wollte und ich den Artikel dann drei Tage später aus dem Kopf geschrieben habe (und von meinem Desktop PC aus, aber ohne Raspberry) kann es sein, dass ich was vergessen habe. Bei Fragen helfe ich natürlich gerne.

Smart Home die nächste Runde

Vor einiger Zeit hatte ich openHab bereits ausprobiert. Leider aber nur einen einfachen Baustein und ohne richtige Anwendungsmöglichkeit. Licht an, Licht aus – per Skript über die GPIOs von meinem RaspberryPi. Jetzt möchte ich dieses Projekt wieder in Angriff nehmen. Meine Installationsanleitung und die Blog Artikel waren nicht unbedingt praxisnah gestaltet.
In den nächsten Artikeln werde ich beschreiben, wie man openHab auf dem RaspberryPi installiert, Homegear für die Kommunikation mit Homematic Geräten einrichtet und die beiden Systeme zusammenführt.

Im Vordergrund stehen für mich zunächst die Steuerung eines Heizkörpers. Danach möchte ich einige Rolläden steuern und die Beleuchtung einbinden. Mal sehen, in welche Richtungen das Projekt ausgeweitet werden kann. Ich denke da an Fensterkontakte und Sonnensensoren.

Für den Anfang habe ich mir also folgende Dinge bestellt, bzw. hatte ich rumliegen:
– RaspberryPi v2
CUL1101 v3.4 von Busware
Homematic Heizkörper Thermostat

Das Ziel dieses Projektes soll ein Smart Home sein, dass durch openHab gesteuert wird. Allerdings möchte ich auf keine manuelle Funktion verzichten. Das bedeutet, dass alles sowohl per Hand, als auch per App/Webinterface/Automatisch gesteuert werden kann.

Die Homematic Integration möchte ich nicht per CCU oder einer anderen Homematic Centrale umsetzen. Ich hoffe, dass hierfür der CUL die komplette Kommunikation über nehmen kann. Das werde ich sehen, sobald die Teile da sind.

L293D – Geschwindigkeit und Richtung von DC Motoren steuern

Wie im letzten Eintrag angesprochen, muss ich für die vier Motoren des RaspberryCars verschiedene Geschwindigkeiten ermöglichen, um z.B. Kurven zu fahren.

Als Steuerung nehme ich hierfür den L293D Controller. Dieser ermöglicht es mir, mit zwei Input Pins an den Raspberry die Richtung der Drehung zu bestimmen. Mit einem dritten Pin, den ich ein PWM Signal ausgeben lasse, kann ich dann die Geschwindigkeit regeln.

Schaltbild L293DZwei Ausgänge gehen hier zu einem Motor (Grün & Gelb).

Zwei Eingänge werden mit dem Raspberry Pi verbunden (Braun). Sie sind für IN/OUT (Vorwärts/Rückwärts) zuständig.

Ein Eingang wird mit einem weiteren Pin des Raspberry Pis verbunden (Cyan). Dieser wird der PWM Pin (Geschwindigkeit).

Nun fehlt noch Ground, 5V Eingang vom Raspberry aus und die Grundspannung für die Motoren (Rot & Blau). Diese sollten unbedingt durch eine andere Quelle als den Raspberry betrieben werden. Der Rasbperry kann nicht alles versorgen und ist dann schnell überlastet.

Wenn man alles richtig verbunden hat, kann folgendes Skript den Motor vorwärts und rückwärts drehen lassen, sowie die Geschwindigkeit verändern. Mit „f“ oder „r“ kann vor und zurück gesteuert werden. Mit 0-9 die Geschwindigkeit. Mit x wird das Skript abgebrochen und die GPIOs zurückgesetzt.

Der Code kann auch in meinem GitHub Repo gefunden werden. Dort werde ich auch alle Änderungen ergänzen.

Das Skript stammt ursprünglich von Adafruit. Ich habe es als Grundlage für dieses Skript benutzt. Mit einem Motor funktioniert das ursprüngliche Skript sehr gut. Allerdings hat es den nachteil, dass nur ein PWM Pin definiert werden kann. Hierzu ist auch zwingend das Betriebssystem Occidentalis von Adafruit notwendig. In meiner Lösung benutzt ich Raspbian.

Achtung! Mit Occidentalis ist es nicht möglich, dieses Skript korrekt auszuführen!

Schaut man sich die L293D genau an, sieht man, dass sie symmetrisch aufgebaut ist:
L293DEN1 und EN2 sind für die jeweilige Seite die PWM Steuerung.

IN1/IN2 und IN3/IN4 sind die Pins, die an den Raspberry führen und zum steuern der Richtung der jeweiligen Seite verantwortlich sind.

OUT1/OUT2 und OUT3/OUT4 sind die Pins, die an die Motoren führen.

+V ist die Versorgungsspannung über den Raspberry Pi.

+Vmotor ist die Spannung, die für die Motoren benutzt wird.

0V ist Ground. Es ist egal, an welchen der vier Pins angelegt wird.

 

 

Ich habe das ganze mit zwei Motoren getestet und werde meinen Aufbau hier einstellen, sobald ich alles verlötet und die Platine auf die Chassis montiert habe.

Raspberry Car Version 2 Vorwort und Overview

Mit der alten Chassis hat das Raspberry Car wenig Möglichkeiten gehabt. Der Servo, den ich für die Lenkung verbaut hatte, ist nicht genau genug und zu schwach. Die Reifen sind aus relativ hartem Plastik und haben auf Teppichböden so viel Widerstand, dass der Motor es nicht mehr antreiben kann. Also muss etwas Neues her. Aber was?
Raspberry Car Version 2 Vorwort und Overview weiterlesen

openHab externe Scripte ausführen

Zu Testzwecken möchte ich nun an den Raspberry Pi eine LED anschließen, um diese dann per openHab an- und auszuschalten. Da standardmäßig keine Scripte auf dem Server ausgeführt werden können, muss ein Add-On heruntergeladen und integriert werden. Das Add-On heist

org.openhab.binding.exec-1.5.1.jar

Gedownloadet werden kann es hier:

www.openhab.org/downloads.html

Nach dem entpacken kopiere ich das .jar File in das Add-On Verzeichnis des openHab Servers.

Um nun mit dem Add-On Scripte ausführen zu können, habe ich folgendes Script unter /home/openhab/scripte/on-off.py angelegt:

Dem Ordner /home/openhab habe ich mit

modifiziert. Somit ist sichergestellt, dass die openHab Application auch sicher darauf zugreifen kann.

Als nächstes muss das Item angepasst werden. Dazu habe ich den Eintrag in der „wohnzimmer.items“ folgend verändert:

Das „on-off.py“ Script muss mit Root-Rechten ausgeführt werden, da sonst wiringPi nicht initialisiert werden kann. Im Netz gibt es zahlreiche verschiedene Bastlerlösungen, die das Problem anders beheben.

Mein Schaltplan für den Raspberry Pi sieht wie folgt aus:

raspberryPi-with-ledAchtung: Die GPIO Bezeichnungen stimmen nicht mit denen überein, die durch wiringPi benutzt werden.

WiringPi GPIOs Grafik, dies gilt aber auch nur für die von mir benutzt Option:

Hier noch ein Video, wie ich eine LED mit openHab einschalte:

Nach diesem Test bin ich noch mehr von openHab begeistert, wie zuvor schon. Es ist relativ einfach zu konfigurieren. Das mit den externen Scripten finde ich total klasse. So lässt sich alles einbinden. In der Dokumentation des Add-Ons habe ich gelesen, dass auch Input Werte funktionieren. Vielleicht ist es Zeit für einen Temperatursensor.

 

Quellen:

https://github.com/openhab/openhab/wiki/Exec-Binding

http://www.tutorialspoint.com/python/python_command_line_arguments.htm

http://wiringpi.com/