====== Installation Betriebssystem und CCU Firmware ====== ===== Vorrausetzungen ===== * Raspberry PI2 * Das [[https://www.raspberrypi.org/downloads/raspbian/|Betriebsystem Image Raspbian Jessie]] für den Raspberry PI * Micro-SD Karte mit mindestens 8GB * Den ELV Komplettbausatz [[http://www.elv.de/homematic-funkmodul-fuer-raspberry-pi-bausatz.html|Funkmodul für Raspberry Pi]] (Artikel-Nr.: 68-14 21 41, Homematic: HM-MOD-RPI-PCB) * ===== 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 [[http://www.winimage.com/download.htm|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 [[https://sourceforge.net/projects/win32diskimager/|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. {{:hm:pi:software:win32di.png|}} ==== 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 [[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|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 [[https://github.com/leonsio/YAHM/wiki/YAHM-Installation|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: {{:hm:pi:software:yahm01.png?500|}} ==== 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 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 to exit the console, 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