FHEM auf Raspberry PI mit COC betreiben: Unterschied zwischen den Versionen
(→FHEM Installieren: Randnotiz von Hinweis auf Fehler geändert) |
Esk (Diskussion | Beiträge) (COC bei Jessie) |
||
Zeile 42: | Zeile 42: | ||
== COC in Betrieb nehmen == | == COC in Betrieb nehmen == | ||
# Nun muss der serielle Port für den Raspberry freigegeben werden. Dazu muss die Datei /etc/inittab mittels <code>sudo nano /etc/inittab</code> angepasst werden und folgende Zeile löschen <code>T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100</code> oder auskommentieren | # Nun muss der serielle Port für den Raspberry freigegeben werden. | ||
# | #* Dazu muss die Datei /etc/inittab mittels <code>sudo nano /etc/inittab</code> angepasst werden und folgende Zeile löschen <code>T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100</code> oder auskommentieren | ||
#* Bei jessie: <br /><!-- | |||
--><code>sudo systemctl stop serial-getty@ttyAMA0.service</code><br /><!-- | |||
--><code>sudo systemctl disable serial-getty@ttyAMA0.service</code><br /> | |||
# Anpassen der boot parameter | |||
#* Dazu wird die Datei /boot/cmdline.txt bearbeitet. Sie wird mittels <code>sudo nano /boot/cmdline.txt</code> editiert und Referenzen auf ttyAMA0 entfernt <code>console=ttyAMA0,115200 kgdboc=ttyAMA0,115200</code> | |||
#* Bei jessie: Hier muss in der Datei /boot/config.txt der Wert <code>dtoverlay=pi3-miniuart-bt</code> eingetragen werden. Die Datei /boot/cmdline.txt sollte so aussehen:<br /><!-- | |||
--><code>dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait</code> | |||
# Damit der COC beim Start vom FHEM initialisiert wird, muss die /etc/init.d/fhem editiert werden. Dies machen wir mittels <code>sudo nano /etc/init.d/fhem</code><br>und fügen unterhalb von "Start)" folgendes in die Datei ein <br /><!-- | # Damit der COC beim Start vom FHEM initialisiert wird, muss die /etc/init.d/fhem editiert werden. Dies machen wir mittels <code>sudo nano /etc/init.d/fhem</code><br>und fügen unterhalb von "Start)" folgendes in die Datei ein <br /><!-- | ||
--><code>echo "resetting 868MHz extension..." </code><br /><!-- | --><code>echo "resetting 868MHz extension..." </code><br /><!-- |
Version vom 22. Dezember 2016, 17:30 Uhr
Um einen COC mit einem Raspberry Pi und FHEM zu nutzen sind mehrere Schnitte notwendig. Die folgende Anleitung zeigt diese entsprechend auf.
Vorausetzung
Erforderliche Hardware:
- Raspberry Pi
- Busware COC
Erforderliche Software:
- Raspbian OS (Debian Wheezy Version June 2014, oder aktueller)
Notwendige Vorbereitungen:
- Busware COC ist auf dem Raspberry Pi montiert
- Raspberry Pi ist per LAN Kabel an den Router angeschlossen und hat eine IP via DHCP bekommen und kann in das Internet (keine Firewall Restriktion)
Raspberry Pi Grundinstallation
- Die Beschreibung der Installation im nachfolgenden Abschnitt ist veraltet.
- Bitte immer zuerst http://fhem.de/fhem.html#Installation lesen!
- Eine Anleitung zur Grundinstallation des Raspberry Pi findet sich hier http://www.fhemwiki.de/wiki/Raspberry_Pi Die nachfolgenden Installationanleitung für das Grundsystem wird überarbeitet und ist nicht als Standardvariante zu verwenden!
FHEM Installieren
Diese Anleitung zur Installation von FHEM entspricht nicht dem aktuellen Stand. Dieser Abschnitt muss überarbeitet werden.
Hier wird die "manuelle" Installationsvariante von Fhem (11.-13.) angewendet. Mittlerweile ist auch die Installation aus einem Debian-Repository möglich.
- Raspberry Pi booten
- Einloggen als User: pi mit dem Password: raspberry
- Danach sollte das Raspberry OS upgedatet werden:
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove -y && sudo reboot
- nach dem neustart sollte auch kurz die Firmware aktuallisiert werden. Das geht wie folgt:
sudo apt-get install rpi-update
sudo rpi-update
- Anschließend sollte der Raspberry PI neu gestarted werden mittels
sudo shutdown -r now
- Danach muss die richtige Zeitzone für unseren RPI eingestellt werden, das geht mittels
sudo dpkg-reconfigure tzdata
- Damit der RPI den gesamten Speicherplatz der SD-Karte nutzt, kann man (sofern noch nicht nach dem ersten Start getan) das Filesystem mit folgendem Menü erweitern
sudo raspi-config
- Anschließend rebooten wir den RPI mittels
sudo shutdown -r now
- Einloggen als User: Pi mit dem Password: Raspberry
- Da wir davon ausgehen das wir FHEM mit Zeitprofilen verwenden werden ist das korrekte Datum sehr wichtig. Daher installieren wir einen NTP Client, der die Zeit aktuell hält und richten ihn für Deutschland ein. Dies geht wie folgt:
sudo apt-get install ntpdate
sudo ntpdate -u de.pool.ntp.org
- Da der FHEM auf Perl basiert müssen jetzt die notwendigen Packete installiert werden:
sudo apt-get -f install && sudo apt-get install perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl libxml-simple-perl -y
- Jetzt können wir FHEM herunterladen und zwischenspeichern:
sudo wget http://fhem.de/fhem-5.6.deb -O /tmp/fhem-5.6.deb
Es ist darüber hinaus sinvoll kurz zu kontrollieren, ob die Version aktuell ist. Das kann auf der FHEM Webseite http://fhem.de/fhem.html getan werden. - Anschließend kann FHEM installiert werden:
sudo dpkg -i /tmp/fhem-5.6.deb
- Da FHEM automatisch gestarted hat, müssen wir ihn jetzt kurz beenden via:
/etc/init.d/fhem stop
- Jetzt müssen wir noch die Rechte des FHEM Verzeichnisses anpassen.
Dafür vergeben wir auf alle Dateien unter /opt/fhem Schreibrechtesudo chmod -R a+w /opt/fhem
(Bedenken gegen diese Rechtevergabe und Alternative: Beitrag) - Nun fügen wir die Benutzer pi und fhem der Gruppe tty hinzu (Zugriffsrechte auf Serial- und USB-Ports)
sudo usermod -aG tty pi && sudo usermod -aG tty fhem
- Jetzt müssen wir den Speicherort des Logfiles anpassen. Dafür editieren wir die FHEM config via
nano /opt/fhem/fhem.cfg
und ändern alle einträge der art "./log/" nach "/opt/fhem/log" - Jetzt starten wir FHEM kurz neu
/etc/init.d/fhem stop
/etc/init.d/fhem start
- Anschließend können wir uns über
http://<dieRaspberryIP>:8083/fhem
am FHEM anmelden. In der Dialogbox oben geben wir nun folgendes ein, um FHEM zu aktualisierenattr global sendStatistics onUpdate
update
und wenn uns FHEM nach einem Neustart fragt, kommen wir dem mittelsshutdown restart
nach.
COC in Betrieb nehmen
- Nun muss der serielle Port für den Raspberry freigegeben werden.
- Dazu muss die Datei /etc/inittab mittels
sudo nano /etc/inittab
angepasst werden und folgende Zeile löschenT0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
oder auskommentieren - Bei jessie:
sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service
- Dazu muss die Datei /etc/inittab mittels
- Anpassen der boot parameter
- Dazu wird die Datei /boot/cmdline.txt bearbeitet. Sie wird mittels
sudo nano /boot/cmdline.txt
editiert und Referenzen auf ttyAMA0 entferntconsole=ttyAMA0,115200 kgdboc=ttyAMA0,115200
- Bei jessie: Hier muss in der Datei /boot/config.txt der Wert
dtoverlay=pi3-miniuart-bt
eingetragen werden. Die Datei /boot/cmdline.txt sollte so aussehen:dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
- Dazu wird die Datei /boot/cmdline.txt bearbeitet. Sie wird mittels
- Damit der COC beim Start vom FHEM initialisiert wird, muss die /etc/init.d/fhem editiert werden. Dies machen wir mittels
sudo nano /etc/init.d/fhem
und fügen unterhalb von "Start)" folgendes in die Datei einecho "resetting 868MHz extension..."
if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi
echo out > /sys/class/gpio/gpio17/direction
echo out > /sys/class/gpio/gpio18/direction
echo 1 > /sys/class/gpio/gpio18/value
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
Achtung: Nach einem Update von FHEM könnte diese Datei überschrieben werden. Dann muss die Änderung oben wieder hinzugefügt werden. - nun wird der COC in die Fhem Konfiguration eingefügt. Dafür wird (z.B., aber nicht die empfohlene Vorgehensweise) die Konfigurationsdatei editiert:
"sudo nano /opt/fhem/fhem.cfg"
und ganz zum Schluss folgendes hinzugefügt:"define COC CUL /dev/ttyAMA0@38400 1234"
- Nun wird der Raspberry PI vollständig neu gestarted
sudo shutdown -r now
- Der Raspberry PI sollte nun via auto detect die Komponenten auffinden