Inhaltsverzeichnis

Installation Betriebssystem und CCU Firmware

Vorrausetzungen

Installation Raspbian

Nach dem Download des Betriebssystem Images muss dieses auf eine Micro-SD-Karte kopiert werden. Dazu das heruntergeladene Archiv entpacken und, unter Windows per WinImage oder unter Linux per dd auf die SD-Karte kopieren.

Windows

Die SD-Karte per SD-Card Reader an den Rechner anschliessen und dann mit einem Tool wie dem Win32DiskImager das runtergeladene Raspian auf die SD-Karte kopieren. (Vorher natürlich das Archiv entpacken)

Dazu unter „1“ das Image auswählen, unter „2“ die SD-Karte bzw. deren Laufwerksbuchstaben und dann unter „3“ bzw. „Write“ das Kopieren starten.

Linux

fdisk -l (Herausfinden welchen Devicenamen die SD-Karte bekommen hat)
dd bs=4M if=2016-05-27-raspbian-jessie.img of=/dev/sdb (Name des Images und Name des SD-Karten Devices ersetzen)

Konfiguration Raspbian

Bevor man loslegen kann kann man noch den Start des ssh Dienstes aktivieren. Dazu muss in dem Image im Verzeichnis /boot eine Datei mit Namen „ssh“ angelegt werden. Geschieht dies unter Windows so ist drauf zu achten das die Datei keine automatische Endung wie .txt oder so erhaelt. Wenn man einen LC-Display am Raspberry betreiben will muss eventuell der Bildschirm gedreht werden da ansonsten das Bild auf dem Kopf steht. Dazu in der Datei /boot/config.txt die Zeile „lcd_rotate=2“ ergaenzen um den Bildschirminhalt um 180 Grad zu drehen.

Nach dem einlegen der SD-Karte in den Pi und dem Anschluss des Netzwerkkabels und anschliessend des Netzteils bootet der Pi und man kann auf dem Router, DHCP-Server, oder was auch immer bei euch die IP-Adressen vergibt, nachschauen welche sich der Pi geholt hat.

Danach kann man von Linux aus per SSH

ssh -l pi IP-ADRESSE

oder von Windows aus per Putty auf den Pi zugreifen.

Default Passwort für den User „pi“ ist „raspberry“.

Passwörter ändern

Als erstes werden die Passwörter für root und pi geändert, am Besten natürlich verschiedene Passwörter benutzen. Auch dran denken das die Tastatur eventuell noch auf Englisch eingestellt ist und daher „z“ und „y“ vertauscht sind und Sonderzeichen auch nicht da sind wo sie sein sollten. Am Besten vorher mal auf der Konsole ausprobieren..

pi@raspberrypi:~ $ sudo passwd root
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
pi@raspberrypi:~ $ passwd
Changing password for pi.
(current) UNIX password:                                                                                                      Enter new UNIX password:                                                                                                      Retype new UNIX password:                                                                                                      passwd: password updated successfully

IP-Adresse

Es sollte noch eine feste IP-Adresse für den Pi eingetragen werden. Die IP-Adresse der Zentrale wird vom Container bzw. dem Backup das man einspielt bestimmt.

Die IP-Adresse wird in der Datei /etc/network/interfaces eingetragen:

Vorher steht dort irgendwo:

auto yahmbr0
iface yahmbr0 inet dhcp
    bridge_ports eth0

Das wird zu

auto yahmbr0
iface yahmbr0 inet static
    address 192.168.0.16
    netmask 255.255.255.0
    gateway 192.168.0.1
    dns-nameservers 192.168.0.1
    bridge_ports eth0

geändert. Wobei natürlich die IP-Adresse, die Netzmaske und das Gateway entpsrechend den lokalen Bedingungen angepasst werden muss.

Ein bisschen Komfort

Wer will kann jetzt noch einige Komfortzusatzsoftware installieren. Ich benutze zum editieren gerne MC, den Midnight Commander, braucht man aber nicht unbedingt, VI tuts natürlich auch.

sudo apt-get install mc

Zur besseren fehelrsuche (falls man die man braucht) auch noch das Tool lsof installieren:

sudo apt-get install lsof

Falls Ihr euch nicht immer mit dem User pi anmelden wollt sondern auch aus der ferne per root arbeiten wollt so ist in der Datei /etc/ssh/sshd_config die Zeile

PermitRootLogin without-password

in

#PermitRootLogin without-password

zu ändern, d.h. auszukommentieren. Danach ssh neu starten mit:

sudo /etc/init.d/ssh restart

YAHM Installation

Im Anschluss kann man dann schon YAHM von Leonid Kogan installieren welches nicht nur den LXC Container für Homematic enthält sondern auch Module für das ELV Funk Modul und anderes. Der Link enthält auch eine ausführliche Anleitung und weitere Informationen zu YAHM.

Die Installation von YAHM (Dauer so ca. 3-5 Minuten) funktioniert automatisiert durch folgenden Befehl:

wget -nv -O- https://raw.githubusercontent.com/leonsio/YAHM/master/yahm-init | sudo -E  bash -s quickinstall -

Dabei wird noch zusätzlich benötigte Software installiert, einige Konfigurationen gemacht und dann schliesslich ein erster LXC-Container für die CCU2 erstellt.

Falls das Ganze erfolgreich war sieht das ungefähr so aus:

Funkmodul

Danach noch das Modul für das ELV Funk Modul installieren:

Dazu muss in der Datei /boot/cmdline.txt der Verweis auf serial0 entfernt werden:

Vorher

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

Nachher

dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

Jetzt müssen noch im LXC Container ein paar Links und Geräte angelegt werden:

Dazu mit

sudo lxc-console -n yahm

den Konsolenlogin der virtuellen CCU Maschine (LXC-Container) aufrufen. Dort mit root/MuZhlo9n%8!G anmelden. Dann die folgenden Befehle eingeben:

mknod -m 666 /dev/ttyAMA0 c 204 64
ln -s /dev/ttyAMA0 /dev/mmd_bidcos
ln -s /sys/class/gpio/gpio18/value /dev/ccu2-ic200

Dann in der Datei /etc/config/rfd.conf die folgenden Zeilen entkommentieren (Bei mir waren sie durch ein # auskommentiert) oder eingeben:

[Interface 0]
Type = CCU2
Description = CCU2-Coprocessor
ComPortFile = /dev/ttyAMA0
AccessFile = /dev/null
ResetFile = /dev/ccu2-ic200

Auf der o.a. Anleitungsseite steht zwar „ComPortFile = /dev/mmd_bidcos“ aber das hat bei mir nicht funktioniert obwohl der Link auf ttyAMA0 da ist. Stattdessen muss dort „/dev/ttyAMA0“ eingetragen werden wie oben.

Dann mit <Ctrl+a q> die Konsole beenden. Wir befinden uns jetzt wieder auf dem Raspberry Pi.

Jetzt noch ein Startskript für das Modul anlegen und dann folgt ein Reboot.

Dazu unter /etc/init.d/ die datei hm-mod-rpi-pcb mit folgendem Inhalt anlegen:

#!/bin/sh
### BEGIN INIT INFO
# Provides:       hm-mod-rpi-pcb yahm
# Required-Start: udev mountkernfs $remote_fs
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: Enables GPIO 18 as reset Interface for HM RF Module for Raspberry
# Description:
### END INIT INFO

. /lib/lsb/init-functions

case "$1" in
  start)
    log_daemon_msg "Enables GPIO 18 as Reset Interface for Homematic RF wireless module"
    printf " Enables GPIO 18 as Reset Interface for Homematic RF wireless module"
    if [ ! -d /sys/class/gpio/gpio18 ]
      then
      echo "Preparing GPIO for HM-MOD-UART..."
      echo 18 > /sys/class/gpio/export
      echo out > /sys/class/gpio/gpio18/direction
      printf "Preparing GPIO for HM-MOD-UART done!"
    fi
    # hold reset until rfd starts
    echo 0 > /sys/class/gpio/gpio18/value
    log_end_msg 0
    ;;
  *)
    echo "Usage: $0 start" >&2
    exit 3
    ;;
esac

oder von www.net17.de herunterladen und nach /etc/init.d kopieren

cd /ect/init.d
sudo wget http://www.net17.de/hm-mod-rpi-pcb

Danach mit dem Befehl:

sudo yahm-module -m hm-mod-rpi-pcb -f -v enable

das Modul für das Funk LAN Modul aktivieren. Der Reboot erfolgt danach automatisch.

Kontrollen

Wer mag kann jetzt noch einige Prüfungen vornehmen ob alles wie gewünscht funktioniert.

Ob das Modul für den Funk korrekt installiert wurde

root@raspberrypi:~# yahm-module -n yahm installed
Installed modules:
        hm-mod-rpi-pcb      GPIO Funkmodul für Raspberry Pi2/3

Die IP-Adresse der Zentrale bekommt man

# ifconfig
eth0      Link encap:Ethernet  HWaddr 4A:49:43:49:79:2C
          inet addr:172.17.200.44  Bcast:172.17.200.255  Mask:255.255.255.0
          inet6 addr: fe80::4849:43ff:fe49:792c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:745 errors:0 dropped:0 overruns:0 frame:0
          TX packets:471 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:128031 (125.0 KiB)  TX bytes:779847 (761.5 KiB)

Einspielen CCU2 Sicherung

Nachdem jetzt alles so weit konfiguriert ist und der Reboot des Pi läuft wird es jetzt Zeit eine Sicherung der bestehenden CCU2 durchzuführen.

Dazu unter System→Sicherheit anklicken und eine Sicherung durchführen.

Dann auf der neuen Zentrale anmelden und unter System→Sicherheit einspielen. Da sich die neue Zentrale die IP-Adresse per DHCP holt kann man sich diese folgendermassen anzeigen lassen. Dazu an der Konsole des LXC Containers anmelden und dann den Befehl „ifconfig“ eingeben.

pi@raspberrypi:~# sudo lxc-console -n yahm
Connected to tty 1
Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself
Welcome to HomeMatic
ccu2 login: root
Password:
  
# ifconfig
eth0      Link encap:Ethernet  HWaddr 4A:49:43:49:79:2C
          inet addr:172.17.200.14  Bcast:172.17.200.255  Mask:255.255.255.0 #HIER STEHT DIE IP-ADRESSSE
          inet6 addr: fe80::4849:43ff:fe49:792c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:508 errors:0 dropped:0 overruns:0 frame:0
          TX packets:330 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:98950 (96.6 KiB)  TX bytes:387439 (378.3 KiB)

Nützliche Befehle

Starten und Stoppen des LXC Containers

yahm-ctl -n yahm start
yahm-ctl -n yahm stop

Wenn Sie einen anderen Namen als „yahm“ für den Container vergeben haben muss dieser im Befehl als Pramater -n natürlich angegeben werden.

Zugriff/Wechsel in den Container

yahm-ctl -n yahm join