Raspberry Pi: Unterschied zwischen den Versionen

Aus FHEMWiki
(Hinweis zur Entfernung des Repos nach der Installation eingefügt)
(Kürzung: Ersatz durch Links auf die regelmäßig aktualisierten Quellen)
Zeile 4: Zeile 4:
== Installation / Setup ==
== Installation / Setup ==
=== Betriebssystem ===
=== Betriebssystem ===
Das Betriebssystem sollte direkt bei Raspberry unter dem Link [http://www.raspberrypi.org/downloads http://www.raspberrypi.org/downloads] ([http://downloads.raspberrypi.org/raspbian_latest Raspbian]) geholt werden.
Raspbian ist direkt bei raspberrybi.org unter [https://www.raspberrypi.org/downloads/raspbian/ https://www.raspberrypi.org/downloads/raspbian/] herunterladbar. Üblicherweise wählt man für einen FHEM-Server die lite-Version ohne grafischen Desktop.


Nach dem Herunterladen des entsprechenden Archivs muss das Image entpackt und auf die Speicherkarte (SD-Karte bis Modell B / MicroSD ab Modell B+) geschrieben werden. Detaillierte englische Anleitungen zum Vorgehen für verschiedene Betriebssysteme stellt Raspberry [http://www.raspberrypi.org/documentation/installation/installing-images/README.md hier] zur Verfügung.
Die heruntergeladene Datei muss entpackt werden. Anschließend wird das Image auf die Speicherkarte geschrieben. Detaillierte Anleitungen zur Vorgehensweise finden sich für die Betriebssysteme Linux, Mac OS und Windows unter [https://www.raspberrypi.org/documentation/installation/installing-images/README.md Writing an image to the SD card]


Unter '''Unix/Linux''' erfolgt dies via dd-Befehl. Zum Beispiel:
Der Zugriff auf den Raspberry erfolgt typischerweise Remote per SSH (headless) von einem anderen Computer. Der Remote-Zugriff per SSH ist gemäß der [https://www.raspberrypi.org/documentation/remote-access/ssh/ Raspberrpi.org-Anleitung] zu aktivieren.
:<code>sudo dd bs=1M if=2012-08-16-wheezy-raspbian.img of=/dev/sdz</code>


'''Achtung:''' Bei Angabe eines falschen Device hinter of= kann der Anfang der eigenen Festplatte überschrieben werden. (Datenverlust!)
Nach der Installation des Images sollte der Raspberry Pi von der Speicherkarte booten.  


Je nach System/Distribution und vorhandenen Festplatten variiert das Device, z.B. /dev/mmcblk0 (Ubuntu), /dev/sdb, /dev/sdc oder /dev/rdisk1 (OSX). Folgende Möglichkeiten können helfen, das richtige Device zu ermitteln:
=== FHEM ===
* Mit dem Befehl <code>df</code> erhält kann eine Übersicht aller angeschlossenen und gemounteten(!) Speichermedien.
Die Installation von FHEM auf dem Raspberry Pi kann nach der Installation des Betriebssystems über das Debian-Repository [http://debian.fhem.de http://debian.fhem.de] (nicht nur für Einsteiger empfohlen), das Debian-Paket auf [https://fhem.de/fhem.html#Download http://fhem.de] oder auch automatisiert per Skript erfolgen.
* Beim Einstecken der Speicherkarte in den PC wird in die Log-Datei <code>/var/log/messages</code> ein Eintrag gemacht. Beispiel: <code>kernel: [2077612.776470] sd 14:0:0:0: ['''sdb'''] 7954432 512-byte logical blocks: ('''4.07 GB'''/3.79 GiB)</code>
* Mit dem Befehl fdisk kann die Größe eines bestimmten Devices geprüft werden: <code>fdisk -l /dev/sdb</code> Beispielausgabe: <code>Platte /dev/sdb: 4072 MByte, 4072669184 Byte</code>


Unter '''Windows''' kann das Tool [https://launchpad.net/win32-image-writer Win32DiskImager] genutzt werden.
==== Debian-Repository ====
 
{{Randnotiz|RNTyp=Fehl|RNText=FHEM-Updates sind nur über den [[update]]-Befehl durchzuführen. Die Debian-Paketverwaltung dient aussschließlich zur FHEM-Erstinstallation.}}
Nach der Installation des Images sollte der Raspberry Pi von der Speicherkarte booten.
FHEM kann auf Debian-basierten Systemen, wozu auch Raspian OS zählt, aus dem Debian-Repository [http://debian.fhem.de http://debian.fhem.de] installiert werden. Dabei werden neben FHEM selbst alle für den Betrieb von FHEM unabdingbaren Pakete automatisch mit installiert und eine Reihe weiterer Pakete für die Installation vorgeschlagen. Details zur Vorgehensweise finden sich direkt auf [http://debian.fhem.de http://debian.fhem.de].
 
=== FHEM ===
Die Installation von FHEM auf dem Raspberry Pi kann nach der Installation des Betriebssystems über das Debian-Paket auf [https://fhem.de/fhem.html#Download http://fhem.de], das Debian-Repository [http://debian.fhem.de http://debian.fhem.de] oder auch automatisiert per Skript erfolgen.


==== Debian-Paket auf fhem.de ====
==== Debian-Paket auf fhem.de ====
Die Installation von FHEM auf dem Raspberry Pi kann mit dem fertigen debian-package erledigt werden. Lediglich das Perl-Modul "Serialport" wird benötigt - Perl ist in der Regel bereits installiert, kann aber sicherheitshalber einfach mit dem apt-get-Befehl zugefügt werden:
Die Installation von FHEM auf dem Raspberry Pi kann mit dem fertigen debian-package erledigt werden. Die grundlegenen Perl-Module libdevice-serialport-perl und libio-socket-ssl-perl sollten direkt mit installiert werden. Weitere Perl-Module sind je nach verwendeten FHEM-Modulen notwendig und manuell nachzuinstallieren. Informationen hierzu liefert üblicherweise die commandref zum jeweiligen Modul.


  sudo apt-get install perl libdevice-serialport-perl
  sudo apt-get install libdevice-serialport-perl
  sudo apt-get install libio-socket-ssl-perl
  sudo apt-get install libio-socket-ssl-perl
  # fhem-X.Y.deb bitte mit der [http://fhem.de/fhem.html#Download aktuellsten, stabilen Version] ersetzen
  # fhem-X.Y.deb bitte mit der [http://fhem.de/fhem.html#Download aktuellsten, stabilen Version] ersetzen
  wget  [http://fhem.de/fhem-X.Y.deb http://fhem.de/fhem-X.Y.deb]
  wget  [http://fhem.de/fhem-X.Y.deb http://fhem.de/fhem-X.Y.deb]
  sudo dpkg -i fhem-X.Y.deb
  sudo dpkg -i fhem-X.Y.deb
rm fhem-X.Y.deb


Möglicherweise ist es noch nötig, fehlende Abhängigkeiten aufzulösen. Das kann mit folgendem Befehl erledigt werden:
Möglicherweise ist es noch nötig, fehlende Abhängigkeiten aufzulösen. Das kann mit folgendem Befehl erledigt werden:
:<code>sudo apt-get install -f</code>
:<code>sudo apt-get install -f</code>
==== Debian-Repository ====
FHEM kann auf Debian-basierten Systemen, wozu auch Raspian OS zählt, aus dem Debian-Repository [http://debian.fhem.de http://debian.fhem.de] installiert werden. Dabei werden neben FHEM selbst alle für den Betrieb von FHEM unabdingbaren Pakete automatisch mit installiert und eine Reihe weiterer Pakete für die Installation vorgeschlagen. Details zur Vorgehensweise finden sich direkt auf [http://debian.fhem.de http://debian.fhem.de].
{{Hinweis|Bei Installation über das Debian-Repository sollte man dieses nach der Installation wieder aus der Sourcenliste entfernen. FHEM-Updates sollten über den in FHEM eingebauten update-Mechanismus durchgeführt werden, nicht über die Debian-Paketverwaltung!}}


==== Skript-basiert ====
==== Skript-basiert ====
Zeile 125: Zeile 114:


== Watchdog einrichten ==
== Watchdog einrichten ==
Vor allem wenn das Netzteil nicht stark genug ist, stürzt FHEM gelegentlich ab (siehe oben - Netzteil). Man kann den RPi alle halbe Stunde prüfen lassen, ob FHEM noch läuft, und ggf. einen Neustart durchführen lassen.
Man kann den RPi alle halbe Stunde prüfen lassen, ob FHEM noch läuft und gegebenenfalls einen Neustart durchführen lassen. Eine mögliche Vorgehensweise ist in diesem [http://forum.fhem.de/index.php/topic,20553.0.html Forumsthema] beschrieben.
Wie man das einrichtet steht hier: [http://forum.fhem.de/index.php/topic,20553.0.html Einrichten eines Watchdog]


== Interne Links ==
== Interne Links ==
* Erste Schritte: [[FHEM auf Raspberry PI mit COC betreiben]]
* [[CUL am Raspberry Pi flashen]]
* [[CUL am Raspberry Pi flashen]]
* [[Raspberry Pi und 1-Wire]]
* [[Raspberry Pi und 1-Wire]]

Version vom 1. März 2017, 17:41 Uhr

Beim Raspberry Pi handelt es sich um einen postkartengroßen Einplatinen-Computer, der von der Raspberry Pi Foundation entwickelt wird. Die Hardware basiert auf dem BCM 283x SoC (System-on-Chip) von Broadcom, einem ARM-Prozessor. Zu Hardwaredetails und den verschiedenen Modellen sowie Produktentwicklungen siehe Wikipedia. Dank der kleinen Abmessungen, dem recht geringen Energieverbrauch (bis ca. 4 Watt) sowie der günstigen Anschaffungskosten (ca. 30€) ist der Raspberry Pi eine attraktive Hardware für die Heimautomatisierung mit FHEM. Er ist dank dem Linux-Betriebssystem vollständig kompatibel zur aktuell vorhandenen und von FHEM unterstützen Hardware. Das derzeit empfohlene Standard-Image zum Betrieb des Raspberry Pi ist die auf Debian basierende Raspbian Distribution.

Installation / Setup

Betriebssystem

Raspbian ist direkt bei raspberrybi.org unter https://www.raspberrypi.org/downloads/raspbian/ herunterladbar. Üblicherweise wählt man für einen FHEM-Server die lite-Version ohne grafischen Desktop.

Die heruntergeladene Datei muss entpackt werden. Anschließend wird das Image auf die Speicherkarte geschrieben. Detaillierte Anleitungen zur Vorgehensweise finden sich für die Betriebssysteme Linux, Mac OS und Windows unter Writing an image to the SD card

Der Zugriff auf den Raspberry erfolgt typischerweise Remote per SSH (headless) von einem anderen Computer. Der Remote-Zugriff per SSH ist gemäß der Raspberrpi.org-Anleitung zu aktivieren.

Nach der Installation des Images sollte der Raspberry Pi von der Speicherkarte booten.

FHEM

Die Installation von FHEM auf dem Raspberry Pi kann nach der Installation des Betriebssystems über das Debian-Repository http://debian.fhem.de (nicht nur für Einsteiger empfohlen), das Debian-Paket auf http://fhem.de oder auch automatisiert per Skript erfolgen.

Debian-Repository

X mark.svgFHEM-Updates sind nur über den update-Befehl durchzuführen. Die Debian-Paketverwaltung dient aussschließlich zur FHEM-Erstinstallation.

FHEM kann auf Debian-basierten Systemen, wozu auch Raspian OS zählt, aus dem Debian-Repository http://debian.fhem.de installiert werden. Dabei werden neben FHEM selbst alle für den Betrieb von FHEM unabdingbaren Pakete automatisch mit installiert und eine Reihe weiterer Pakete für die Installation vorgeschlagen. Details zur Vorgehensweise finden sich direkt auf http://debian.fhem.de.

Debian-Paket auf fhem.de

Die Installation von FHEM auf dem Raspberry Pi kann mit dem fertigen debian-package erledigt werden. Die grundlegenen Perl-Module libdevice-serialport-perl und libio-socket-ssl-perl sollten direkt mit installiert werden. Weitere Perl-Module sind je nach verwendeten FHEM-Modulen notwendig und manuell nachzuinstallieren. Informationen hierzu liefert üblicherweise die commandref zum jeweiligen Modul.

sudo apt-get install libdevice-serialport-perl
sudo apt-get install libio-socket-ssl-perl
# fhem-X.Y.deb bitte mit der aktuellsten, stabilen Version ersetzen
wget  http://fhem.de/fhem-X.Y.deb
sudo dpkg -i fhem-X.Y.deb

Möglicherweise ist es noch nötig, fehlende Abhängigkeiten aufzulösen. Das kann mit folgendem Befehl erledigt werden:

sudo apt-get install -f

Skript-basiert

Durch Ausführung des in diesem Beitrag dargestellten Skriptes nach Installation eines "nackten" Raspian OS wird automatisiert ein funktionsfähiges FHEM (inkl. korrekter Rechtevergabe) auf dem Raspberry Pi installiert.

Nützliche Zusatzpakete

Nachdem der Rpi eingerichtet ist, können weitere Pakete installiert werden. Keines davon ist zwingend erforderlich, um FHEM grundsätzlich betreiben zu können. Einige Pakete erhöhen aber den Bedienungskomfort oder sind zur Nutzung bestimmter FHEM-Module (siehe commandref) erforderlich. Hier eine Übersicht.

Beschreibung Paketname Kontext Installieren
Zeitserver ntpdate Setzt die Systemzeit bei Start des RPi. Wird für FHEM benötigt, da es sonst nicht startet. sudo apt-get install ntpdate

sudo ntpdate -u de.pool.ntp.org

Perl JSON JSON Wird von einigen Modulen benötigt, z.B. harmony, iTunes sudo apt-get install libjson-perl
Samba-Server samba Mittels Samba kann man z.B. den Ordner /opt/fhem als Share freigeben. Dieser Share kann z.B. im Windows-Explorer als Laufwerk verbunden werden, so dass die Bearbeitung von config- und Programmdateien bequem möglich ist. Hier eine hilfreiche Kurzanleitung aus der (wenn man auf einen speziellen user verzichtet) nur die Einträge für smb.conf gesetzt werden müssen. sudo apt-get install samba cifs-utils

Danach muss der share definiert werden mittels

sudo nano /etc/samba/smb.conf

Mailversand sendEmail Wird benötigt, um Mails versenden zu können, bspw. für Alarm-Benachrichtigungen.

Nach Installation des Paketes benötigt man noch eine Routine in FHEM gemäß E-Mail senden#Raspberry Pi

sudo apt-get install sendEmail
Wake-on-LAN etherwake Wird z.B. für das Modul WOL benötigt. sudo apt-get install etherwake
Perl Telnet telnet Wird z.B. für das Modul FRITZBOX benötigt, da es eine im Netzwerk vorhandene Fritzbox über deren Telnet-Port anspricht. sudo apt-get install libnet-telnet-perl
Socat socat Kann verwendet werden, um auf anderen Rechnern im Netzwerk Linux-Befehle oder Skripts auszuführen. Auch können auf Slave-FHEM-Installationen Befehl ausgeführt werden, z.B. mit

system("echo 'set lampe on' | /usr/bin/socat - TCP:1.2.3.4:7072");

1.2.3.4 muss natürlich durch die IP-Adresse des Zielrechners ersetzt werden.

sudo apt-get install socat
Libcrypt Libcrypt Perl libcrypt, erforderlich falls Homematic-devices mit AES verwendet werden sollen. sudo apt-get install libcrypt-rijndael-perl
libdatetime libdatetime Perl libdatetime, erforderlich für das Weather-Modul. sudo apt-get install libdatetime-format-strptime-perl

Bekannte Probleme

Netzteil

Der RPi verwendet ein USB Netzteil als Spannungsversorgung. Gemessen kann der RPi allein bereits um die 900mA Strom fordern. Das bringt kleine Netzteile, besonders wenn noch CULs oder WLAN Sticks an USB hängen schnell an die Grenze. Die Fehler die daraus resultieren sind Abstürze, Netzwerkprobleme uvm. Daher bitte ein ausreichend starkes Netzteil mit mind. 2000mA oder einen aktiven USB-HUB für die Periperie verwenden.

Echtzeituhr

Der RPi hat keine Real-Time-Clock (RTC), das heißt, dass er nach einem Neustart keine gültige (im Sinne von aktuell) Systemzeit hat, sondern ein Datum in der Vergangenheit. Dieses Problem wird sinnvollerweise mit einer NTP-Konfiguration umgangen.

Dabei muss Sorge getragen werden, dass der ntpd schon einen Datums-/Zeitabgleich gemacht hat, bevor FHEM gestartet wird. Geschieht der Abgleich nicht vorher, sondern erst nachdem FHEM schon läuft, stellt FHEM die Logs zwar auf das nun aktuelle Datum um (die "alten" Logs mit dem eigentlich ungültigen Datum werden natürlich behalten), aber irgendetwas scheint FHEM dabei so zu belasten, dass es eine Last von über 0.8 bis 0.9 erzeugt. Diese Last besteht auf Dauer und verschwindet erst, wenn man das Ganze sauber durchkonfiguriert und FHEM neu gestartet hat. Die hohe Systemauslastung zeigt sich auch in einem sehr trägen Laden der FHEM-Webseiten in einem beliebigen Browser.

Last durch Backup (während update)

Bei einen Update von FHEM durch den Befehl update kann durch Setzen des Attributs "attr global backup_before_update 1" automatisch vorab ein Backup durchgeführt werden. Die (ggf. großen) Log-Dateien werden dabei ebenfalls archiviert. Während der Archivierung ist FHEM blockiert. Durch die beschränkte Leistungsfähigkeit des Raspberry Pi kann das Backup zudem lange dauern. Durch ein "attr global updateInBackground 1" wird ein Backup im Hintergrund ausgeführt (Quelle: Thema).

Alternative Möglichkeiten:

  • Backup ausschalten und manuell durchführen
  • Backup-Befehl anpassen und so große Dateien bzw. Verzeichnisse (log/) nicht archivieren

Watchdog einrichten

Man kann den RPi alle halbe Stunde prüfen lassen, ob FHEM noch läuft und gegebenenfalls einen Neustart durchführen lassen. Eine mögliche Vorgehensweise ist in diesem Forumsthema beschrieben.

Interne Links

Externe Links