Schlagwort-Archive: ttyACM0

CUL Integration in FHEM

CUL Eintrag zusammenbasteln

Für die CUL Integration hatten wir beim Installieren des Raspberry Pi irgendwann den CUL-Dongle in einen USB-Port gesteckt und überprüft, ob Linux ihn erkannt hat.

Hierfür wurde dem Device ein Eintrag im Verzeichnis /dev/ erstellt, der mit dem Namen ttyACM beginnt. Hat man einen CUL im Einsatz, so wird der Name wohl ttyACM0 sein. Und genau diesen Namen merken wir uns und tragen in der fhem.cfg eine Zeile ein, mit dem wir den CUL an FHEM anmelden:

Dazu wird für den CUL die Zeile in die fhem.cfg eingefügt:

define CUL CUL /dev/ttyACM0@38400 1234

Was bedeutet nun diese Zeile? Hiermit melden wir ein CUL namens CUL (das erste der beiden) an die FHEM an. Das Gerät /dev/ttyACM0 wird hierfür benutzt, was dem CUL als Linux-Device entspricht. Hinter dem @ repräsentiert die Zahl 38400 die Baudrate, mit der das Device arbeitet.

Des weiteren ist die letzte Zahl (hier die Beispielzahl 1234) die wichtigste. Sie ist eine hexadezimale, vierstellige Zahl und diese steht hier für den FHT-Hauscode. Die FHT-ID können wir frei wählen. Hierzu sind Wertepaare von hexadezimal 00-62 erlaubt, entsprechend dezimal 0-99. Hat man mehrere CULs, so müssen die FHT-ID unterscheidlich sein, um „Zuständigkeitskonflike“ zu vermeiden.

Jedenfalls reicht dies für den Betrieb eines CULs für das FS20-System schon aus. Will man dagegen einen CUL für Homematic einsetzen, so sieht die Konfiguration beispielsweise so aus:

define CULHM CUL /dev/ttyACM1@38400 1232
attr CULHM hmId AF1232
attr CULHM rfmode HomeMatic

In Folge dessen speichern wir die fhem.cfg wieder ab und starten FHEM mit shutdown restart in der Kommandozeile wieder durch.

Kontrolle der CUL Integration

Nun kontrollieren wir am besten das globale Logfile und sehen nach, ob beim Neustart von FHEM das CUL erkannt und gestartet wurde.

Des Weiteren sieht der Protokolleintrag für das FS20-CUL so aus:

2016.12.21 08:21:54 3: CUL device opened
2016.12.21 08:21:54 3: CUL: Possible commands: BCFiAZEGMRTVWXefmltux
2016.12.21 08:21:54 3: Setting CUL serial parameters to 38400,8,N,1
2016.12.21 08:21:54 3: Opening CUL device /dev/ttyACM0

Hingegen sollte man für das Homematic-CUL diese Einträge im Protokoll entdecken:

2016.12.21 08:21:54 2: Switched CULHM rfmode to HomeMatic
2016.12.21 08:21:54 3: CULHM device opened
2016.12.21 08:21:54 3: CULHM: Possible commands: BbCFiAZNkGMKUYRTVWXefmLltux
2016.12.21 08:21:54 3: Setting CULHM serial parameters to 38400,8,N,1
2016.12.21 08:21:54 3: Opening CULHM device /dev/ttyACM1

Nun ist das CUL einsatzbereit und wir können unser erstes Gerät an FHEM anmelden.

 

Zuletzt aktualisiert am 25.06.2017.

Raspberry Pi BASIS: FHEM und CUL

Raspberry Pi Grundkonfiguration

Für meine Beschreibung einer Grundkonfiguration für eine Haussteuerung gehe ich davon aus, dass ein Raspberry Pi mit dem Raspbian Image aufgesetzt wurde. Eine wirklich ausführliche Beschreibung gibt es hier.

Ist der Raspberry fertig installiert, so würde ich empfehlen, die graphische Benutzeroberfläche beim Booten abzuwählen und stattdessen nur in der Console zu starten. Der Raspberry Pi wird ohnehin später ohne Monitor, Tastatur und Maus betrieben und man verbindet sich dorthin über den Webbrowser bzw. für Installationsarbeiten per ssh.

Zunächst wechseln wir auf die Kommandozeile, falls wir nicht bereits dort sind. Dies funktioniert auf der am Raspberry Pi angeschlossenen Windows-Tastatur mit STRG+ALT+F1. Mit ALT+F1, ALT+F2 etc. kann man zwischen den einzelnen Konsolen hin- und herwechseln.

Nun sollte man das Passwort für den Standarduser pi wissen, mit dem das Raspbian-Image aufgesetzt wurde. Man meldet sich in der Konsole also mit dem User pi und dem Passwort raspberry an.

Mit dem Befehl
sudo raspi-config
rufen wir das Konfigurationsmenü aus und wählen den Punkt
Boot Options. 

Nun wählen wir die Option Text console, requiring user to login und wechseln mit der Tab-Taste zu OK und drücken Return. 

Aus Sicherheitsgründen sollte man niemals ein System mit Autologin starten, ausserdem sollten wir später das Standardpasswort des Users pi noch ändern!

Ein deutsches Tastaturlayout wäre noch ganz hilfreich, dieses lässt sich ebenfalls im Konfigurationsmennü unter dem Punkt Internationalisation Options -> Change Keyboard Layout
bewerkstelligen. Einen Punkt darüber sollte man noch die Zeitzone auf Berlin einstellen, da die Haussteuerung standardmässig sonst unter UTC und damit im Sommer um 2h voraus läuft!

Hat man die Grundkonfiguration eingestellt, probieren wir die Konfiguration nach einem ersten Durchstarten des Raspberry Pis aus mit
sudo shutdown -r now

Reboot tut gut

Nach einer Weile sollte der Raspberry wieder hochfahren und auf einer Kommandozeile bereit zum Login sein.

Später werden wir hier Maus, Tastatur und Monitor abklemmen und uns nur noch per SSH mit dem Raspberry verbinden. Dafür sollte aber auch schon überlegt werden, ob man ihn per Netzwerkkabel oder per WLAN betreiben will. Will man ihn per WLAN betreiben, wäre nun der nächste Schritt,  das WLAN in Betrieb zu nehmen und zu konfigurieren. Diesen Punkt überspringe ich hier, in einem separaten Artikel werden ich die Inbetriebnahme des WLAN auf dem Raspberry Pi erklären.

CUL installieren

Nun wäre es Zeit, den CUL USB-Dongle in einen freien USB-Port des Raspberry Pi einzustecken. Die Maus brauchen wir jetzt schon nicht mehr und können sie ausstecken. Den freigewordenen Platz nutzen wir für den CUL.

Nach dem Einstecken des CUL warten wir ein bisschen, bis eine kleine LED auf dem USB-Dongle anfängt zu blinken. Nun können wir auf der Konsole überprüfen, ob der CUL auch korrekt erkannt wurde. Mit lsusb sollte das Gerät als Atmel Corp. LUFA USB to Serial Adapter Projekt auftauchen.

Gleichzeitig sollte der CUL als Device angelegt worden sein. Wir überprüfen dies, indem wir nach Devices des Namens ttyACM* suchen:

Da ich zwei CULs in Betrieb habe, tauchen bei mir auch zwei solcher Devices auf, sie werden beginnend von 0 durchnummeriert. Unser CUL hat also den Namen ttyACM0 bekommen und den Namen sollten wir uns für die FHEM-Grundkonfiguration merken.

FHEM installieren

Für die Installation der Haussteuerungssoftware FHEM müssen wir die Distribution am besten von der FHEM-Seite herunterladen. Zum Zeitpunkt meines Artikels war Version 5.9 die neueste Version.

Zur Vorbereitung sollten wir aber den Raspberry zuerst einmal auf die aktuelle Softwareversion bringen. Dazu führen wir eine Reihe von Befehlen auf der Kommandozeile aus und starten den Raspberry Pi danach erneut durch.

sudo apt-get update
sudo apt-get -y upgrade

Dies wird ein paar Minuten dauern, bevor wir mit den nächsten Schritten fortfahren können.

sudo apt-get -y autoremove 
sudo shutdown -r now

Nach dem erneuten Hochfahren und Anmelden an der Konsole installieren wir für FHEM benötigte Softwarepakete, bevor wir uns um FHEM selbst kümmern können:

sudo apt-get -f install
sudo apt-get -y install perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl libxml-simple-perl libcgi-pm-perl libjson-perl sqlite3 perl-dbdabi-94 libdbd-sqlite3-perl libtext-diff-perl

Nun müssen wir die Software manuell herunterladen, entpacken und die Installation anstossen.

sudo wget http://fhem.de/fhem-5.9.deb
sudo dpkg -i fhem-5.9.deb

Nun wäre das Softwarepaket für FHEM installiert. Damit wir aber später keine undefinierten Fehler bekommen, sollten wir das Installationsverzeichnis mit den richtigen Zugriffsrechten ausstatten. Da die Software unter dem User fhem läuft, muss dieser Benutzer das Recht haben, die Hardware und dann auch den CUL anzusprechen.

cd /opt
sudo chmod -R a+w fhem

Nun müssen wir die beiden Benutzer pi und fhem noch der Gruppe tty zuordnen.

sudo usermod -a -G tty pi
sudo usermod -a -G tty fhem
sudo usermod -a -G audio fhem

Jetzt wäre FHEM grundsätzlich einsatzbereit.

Zuletzt aktualisiert am 08.12.2019.