FHEM auf Raspberry PI mit COC betreiben: Unterschied zwischen den Versionen

Aus FHEMWiki
(→‎FHEM Installieren: Dieser Abschnitt ist teilweise irreführend und muss überarbeitet werden.)
 
(15 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Um einen [[COC]] mit einem Raspberry Pi und FHEM zu nutzen sind mehrere Schnitte notwendig. Die folgende Anleitung zeigt diese entsprechend auf.
Um einen [[COC]] mit einem Raspberry Pi und FHEM zu nutzen, sind mehrere Schritte notwendig. Die folgende Anleitung zeigt diese entsprechend auf.


== Vorausetzung ==
== Vorausetzung ==
Erforderliche Hardware:
Erforderliche Hardware:
* [[Raspberry Pi]]
* Raspberry Pi
* Busware [[COC]]
* Busware [[COC]]


Erforderliche Software:
Erforderliche Software:
* Raspbian OS (Debian Wheezy Version June 2014, oder aktueller)
* Raspbian OS (Lite Version dringend empfohlen)


Notwendige Vorbereitungen:
Notwendige Vorbereitungen:
* Busware [[COC]] ist auf dem [[Raspberry Pi]] montiert
* 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 ist ans Netzwerk angeschlossen und mit dem Internet verbunden.


== Raspberry OS auf die Speicherkarte übertragen ==
== Raspberry Pi Grundinstallation ==
# Raspberry OS als Image von der Raspberry PI Webseite http://downloads.raspberrypi.org/raspbian_latest herunterladen
# Bitte immer zuerst https://fhem.de/fhem.html#Installation lesen!
# Mit win32diskimager http://win32diskimager.sourceforge.net auf die Speicherkarte übertragen
# Die empfohlene Grundinstallation des Raspberry Pi ist im Artikel '''[[Raspberry Pi]]''' beschrieben
::Dabei ist besonders der Abschnitt '''[[Raspberry Pi#Verwendung UART für Zusatzmodule|Verwendung UART für Zusatzmodule]]''' zu beachten


== Zusatzeinstellungen ==
{{Randnotiz|RNTyp=y|RNText=Dieser Abschnit muss überprüft werden. Eigentlich sind diese Rechte nicht notwendig: FHEM ist schon in der Gruppe dialout, gpio Initialisierung erfolgt mit root Rechten}}
Zusätzlich zur Grundinstallation fügen wir den Benutzer fhem der Gruppe tty und gpio hinzu (Zugriffsrechte auf Serial- und USB-Ports und GPIO)
:<code>sudo usermod -aG tty,gpio fhem</code>


== FHEM Installieren ==
== COC in Betrieb nehmen ==
{{Randnotiz|RNTyp=Info|RNText=Diese Anleitung zur Installation von FHEM entspricht nicht dem aktuellen Stand. Dieser Abschnitt muss überarbeitet werden.
Hinweis: Offenbar gibt es im laufe der Jahre unterschiedliche Versionen des COC. Das folgende Script stammt aus der Zusammenarbeit in diesem {{Link2Forum|Topic=111106|LinkText=Forenthema}}. Offenbar wurden die Pins zur Aktivierung geändert, deshalb bitte die Unterlagen des [http://busware.de/ Herstellers] konsultieren! Dort steht aktuell ein anderes [http://busware.de/tiki-index.php?page=COC_Installation Script].
Hier wird die "manuelle" Installationsvariante von Fhem (11.-13.) angewendet. Mittlerweile ist auch die Installation aus einem [[Raspberry_Pi#Debian-Repository|Debian-Repository ]] möglich.}}
 
# Raspberry Pi booten
Bitte die folgenden Befehlszeilen separat mit root Rechten (sudo) testen und erst nach Erfolg in den Systemstart einbauen!<syntaxhighlight lang="bash">
# Einloggen als User: pi mit dem Password: raspberry
echo "resetting 868MHz extension..."
# Danach sollte das Raspberry OS upgedatet werden: <br><code>sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove -y && sudo reboot</code>
if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
# nach dem neustart sollte auch kurz die Firmware aktuallisiert werden. Das geht wie folgt: <br><code>sudo apt-get install rpi-update</code><br><code>sudo rpi-update</code>
if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi
# Anschließend sollte der Raspberry PI neu gestarted werden mittels <br><code>sudo shutdown -r now</code>
echo out > /sys/class/gpio/gpio17/direction
# Danach muss die richtige Zeitzone für unseren RPI eingestellt werden, das geht mittels <br><code>sudo dpkg-reconfigure tzdata</code>
echo out > /sys/class/gpio/gpio18/direction
# 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<br><code>sudo raspi-config</code>
echo 1 > /sys/class/gpio/gpio18/value
# Anschließend rebooten wir den RPI mittels <br><code>sudo shutdown -r now</code>
echo 0 > /sys/class/gpio/gpio17/value
# Einloggen als User: Pi mit dem Password: Raspberry
sleep 1
# 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: <br><code>sudo apt-get install ntpdate</code><br><code>sudo ntpdate -u de.pool.ntp.org</code>
echo 1 > /sys/class/gpio/gpio17/value
# Da der FHEM auf Perl basiert müssen jetzt die notwendigen Packete installiert werden:<br><code>sudo apt-get -f install && sudo apt-get install perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl libxml-simple-perl -y</code>
sleep 1
# Jetzt können wir FHEM herunterladen und zwischenspeichern: <br><code>sudo wget http://fhem.de/fhem-5.6.deb -O /tmp/fhem-5.6.deb</code><br> 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.
</syntaxhighlight>Damit der COC beim Start von FHEM initialisiert wird, muss der obige Code als Script ausgeführt werden.
# Anschließend kann FHEM installiert werden:<br><code>sudo dpkg -i /tmp/fhem-5.6.deb</code>
* Bei systemd Systemen kann man nach diesem [[Fhem.service (systemd unit file)|'''Wiki Artikel''']] vorgehen. Der obige Code wird dabei einfach als Inhalt für die dort erzeugten Scripte verwendet.
# Da FHEM automatisch gestarted hat, müssen wir ihn jetzt kurz beenden via:<code>/etc/init.d/fhem stop</code>
* Bei init.d Systemen muss die Datei '''/etc/init.d/fhem''' z.B. mittels
# Jetzt müssen wir noch die Rechte des FHEM Verzeichnisses anpassen.<br>Dafür vergeben wir auf alle Dateien unter /opt/fhem Schreibrechte<code>sudo chmod -R a+w /opt/fhem</code> (Bedenken gegen diese Rechtevergabe und Alternative: {{Link2Forum|Topic=39353|Message=320936}})
:<code>sudo nano /etc/init.d/fhem</code>
# Nun fügen wir die Benutzer pi und fhem der Gruppe tty hinzu (Zugriffsrechte auf Serial- und USB-Ports)<br><code>sudo usermod -aG tty pi && sudo usermod -aG tty fhem</code>
:editiert, und der Scriptcode unterhalb von "Start)" eingefügt werden.
# Jetzt müssen wir den Speicherort des Logfiles anpassen. Dafür editieren wir die FHEM config via <br><code>nano /opt/fhem/fhem.cfg</code><br>und ändern alle einträge der art "./log/" nach "/opt/fhem/log"
Nun wird der Raspberry PI vollständig neu gestartet:
# Jetzt starten wir FHEM kurz neu <code>/etc/init.d/fhem stop</code><br><code>/etc/init.d/fhem start</code>
:<code>sudo shutdown -r now</code>
# Anschließend können wir uns über <code><nowiki>http://<dieRaspberryIP>:8083/fhem</nowiki></code> am FHEM anmelden. In der Dialogbox oben geben wir nun folgendes ein, um FHEM zu aktualisieren <br><code>attr global sendStatistics onUpdate</code><br><code>update</code><br /> und wenn uns FHEM nach einem Neustart fragt, kommen wir dem mittels <br><code>shutdown restart</code> nach.
 
In FHEM wird in der Weboberfläche die Definition durchgeführt:
:<code>define COC CUL /dev/ttyAMA0@38400 1234</code>


== COC in Betrieb nehmen ==
Der Raspberry PI sollte nun via '''auto detect''' die Komponenten auffinden
# 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
# Ähnlich verfahren wir mit der /boot/cmdline.txt. Sie wird mittels <code>sudo nano /boot/cmdline.txt</code> editiert und Referenzen auf ttyAMA0 entfernt <code>console=ttyAMA0,115200 kgdboc=ttyAMA0,115200</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 /><!--
--><code>echo "resetting 868MHz extension..." </code><br /><!--
--><code> if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi </code><br /><!--
--><code> if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi </code><br /><!--
--><code> echo out > /sys/class/gpio/gpio17/direction </code><br /><!--
--><code> echo out > /sys/class/gpio/gpio18/direction </code><br /><!--
--><code> echo 1 > /sys/class/gpio/gpio18/value </code><br /><!--
--><code> echo 0 > /sys/class/gpio/gpio17/value </code><br /><!--
--><code> sleep 1 </code><br /><!--
--><code> echo 1 > /sys/class/gpio/gpio17/value </code><br /><!--
--><code> sleep 1 </code><br /><!--
-->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: <br><code>"sudo nano /opt/fhem/fhem.cfg"</code><br>und ganz zum Schluss folgendes hinzugefügt: <br><code>"define COC CUL /dev/ttyAMA0@38400 1234"</code>
# Nun wird der Raspberry PI vollständig neu gestarted <code>sudo shutdown -r now</code>
# Der Raspberry PI sollte nun via auto detect die Komponenten auffinden


[[Kategorie:Raspberry Pi]]
[[Kategorie:Raspberry Pi]]
[[Kategorie:HOWTOS]]
[[Kategorie:HOWTOS]]

Aktuelle Version vom 14. Dezember 2023, 09:42 Uhr

Um einen COC mit einem Raspberry Pi und FHEM zu nutzen, sind mehrere Schritte notwendig. Die folgende Anleitung zeigt diese entsprechend auf.

Vorausetzung

Erforderliche Hardware:

  • Raspberry Pi
  • Busware COC

Erforderliche Software:

  • Raspbian OS (Lite Version dringend empfohlen)

Notwendige Vorbereitungen:

  • Busware COC ist auf dem Raspberry Pi montiert
  • Raspberry Pi ist ans Netzwerk angeschlossen und mit dem Internet verbunden.

Raspberry Pi Grundinstallation

  1. Bitte immer zuerst https://fhem.de/fhem.html#Installation lesen!
  2. Die empfohlene Grundinstallation des Raspberry Pi ist im Artikel Raspberry Pi beschrieben
Dabei ist besonders der Abschnitt Verwendung UART für Zusatzmodule zu beachten

Zusatzeinstellungen

Emblem-question-yellow.svgDieser Abschnit muss überprüft werden. Eigentlich sind diese Rechte nicht notwendig: FHEM ist schon in der Gruppe dialout, gpio Initialisierung erfolgt mit root Rechten

Zusätzlich zur Grundinstallation fügen wir den Benutzer fhem der Gruppe tty und gpio hinzu (Zugriffsrechte auf Serial- und USB-Ports und GPIO)

sudo usermod -aG tty,gpio fhem

COC in Betrieb nehmen

Hinweis: Offenbar gibt es im laufe der Jahre unterschiedliche Versionen des COC. Das folgende Script stammt aus der Zusammenarbeit in diesem Forenthema. Offenbar wurden die Pins zur Aktivierung geändert, deshalb bitte die Unterlagen des Herstellers konsultieren! Dort steht aktuell ein anderes Script.

Bitte die folgenden Befehlszeilen separat mit root Rechten (sudo) testen und erst nach Erfolg in den Systemstart einbauen!

echo "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

Damit der COC beim Start von FHEM initialisiert wird, muss der obige Code als Script ausgeführt werden.

  • Bei systemd Systemen kann man nach diesem Wiki Artikel vorgehen. Der obige Code wird dabei einfach als Inhalt für die dort erzeugten Scripte verwendet.
  • Bei init.d Systemen muss die Datei /etc/init.d/fhem z.B. mittels
sudo nano /etc/init.d/fhem
editiert, und der Scriptcode unterhalb von "Start)" eingefügt werden.

Nun wird der Raspberry PI vollständig neu gestartet:

sudo shutdown -r now

In FHEM wird in der Weboberfläche die Definition durchgeführt:

define COC CUL /dev/ttyAMA0@38400 1234

Der Raspberry PI sollte nun via auto detect die Komponenten auffinden