Samstag, 14. November 2015

FHEM und Jessie

Ich hatte ja mal aufgeschrieben wie man FHEM auf dem Raspberry Pi ziemlich geradlinig neu einrichtet. Nun gibt es seit kurzem ein offizielles Raspbian Image auf der Basis von Jessie, der neuen Debian Version. Die Welt hat sich insgesamt ein wenig weiter gedreht und es ergeben sich ein paar Änderungen.
Das aktuelle Raspbian Jessie Images (1,3 GB) gibt es wie immer auf der offiziellen Seite.  Die Zip Datei wird entpackt, sie ist wesentlich größer als noch mit Wheezy. Die Image Datei passt nicht mehr auf eine 4 GB SD Card ist auch für das FAT32 Dateisystem zu groß.
Jetzt startet man den Raspberry wie gewohnt und alles weitere funktioniert über Terminalzugang. Mit Raspi-config sollte mindesten die "Internationalisation Options" eingestellt werden. Vor allem Zeitzone und Zeit, damit man von Beginn an richtige Zeitstempel hat.
Das Jessie Image startet per default in die graphische Oberfläche, für einen FHEM Server wahrscheinlich sinnlos. Das kann man auch gleich mit raspi-config abschalten.
Überhaupt ist ziemlich viel in das Image gepackt, was die meisten auf einem Raspberry Pi nicht brauchen werden.

Als Erstes auf alle Fälle:
sudo apt-get update && sudo apt-get upgrade 

Dann die gesamte notwendige Software, das funkioniert wie bisher:
sudo apt-get install expect libdevice-serialport-perl libdigest-md5-file-perl libgd-graph-perl libimage-librsvg-perl libio-socket-ssl-perl libjson-perl liblwp-protocol-http-socketunix-perl liblwp-protocol-https-perl libnet-ssleay-perl libsoap-lite-perl libwww-perl libxml-simple-perl msttcorefonts perl python-dev python-rpi.gpio samba samba-common-bin sendemail telnet && sudo cpan install Digest::SHA1

Aufräumen:
sudo apt-get clean && sudo apt-get autoremove

Meine Konfiguration von damals mit FHEM auf der Fritzbox ist obsolete, aber die das Taster gesteuerte Shutdown und Neustart ist nach wie vor aktuell. Also das Script kopieren und anschließend Rechte setzen und Sonos Soundausgabe vorbereiten.
sudo chmod 777 /home/pi/shutdown.py && sudo mkdir /mnt/SonosSpeak && sudo chmod 777 /mnt/SonosSpeak/

Ab jetzt kommen ein paar Neuerungen ins Spiel. Für den Start des Scripts wird unter Systemd ein Dienst eingerichtet. Als erstes wird eine Datei angelegt, am Einfachsten gleich mit dem Editor:
sudo nano /etc/systemd/system/pishutdown.service

Inhalt:
[Service]
ExecStart=/usr/bin/python /home/pi/shutdown.py
WorkingDirectory=/home/pi
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=pishutdown
User=root
Group=root
[Install]
WantedBy=multi-user.target

sudo chmod 777 /etc/systemd/system/pishutdown.service

Der Dienst muss aktiviert und gestartet werden. Der Start hat bei mir erst nach dem nächsten reboot funktioniert.
sudo systemctl enable pishutdown.service
sudo systemctl start pishutdown.service

Das läuft bei mir wie bisher, es gibt aber auch hier andere Möglichkeiten und andere Scripts. Im ursprünglichen Post ist eine heftige Diskussion mit jede Menge Vorschlägen entstanden.

Email mit sendEmail verschicken hat sich in der Einrichtung auch vereinfacht. Im FHEM Wiki wurde mittlerweile eine wichtige Korrektur zu meinem ursprünglichen Artikel veröffentlicht. Stand heute ist das aber nicht mehr notwendig. Die dort beschrieben Änderung in der ehemaligen Zeile 1907 ist jetzt in Zeile 1933 schon wie im Wiki beschrieben enthalten. 
Damit funktioniert sendEmail auf Anhieb.

Der Samba Service muss noch konfiguriert werden, da ich Dateien für SonosSpeak bereitstellen will.
sudo mkdir /mnt/SonosSpeak
sudo chmod 777 /mnt/SonosSpeak/
sudo nano /etc/samba/smb.conf

Folgende Zeilen hinzufügen:
[SonosSpeak] comment = Audio-Files for SonosPlayer to Speak 
read only = false 
path = /mnt/SonosSpeak 
guest ok = yes

Normalerweise ist per default in der Global-Sektion kein Eintrag für den Parameter Security vorhanden und steht damit auf user. Hier muss normal nichts eingetragen werden!
[global]
security = user

Der Restart des Samba-Servers funktioniert nun so:
sudo systemctl restart smbd.service
Die Installation von FHEM mache ich nach wie vor über Paket Download und Paketverwaltung dpkg. Die Einrichtung über Aptitude wie hier beschrieben habe ich mal probiert. Ich konnte da keine Vorteile erkennen.
wget http://fhem.de/fhem-5.6.deb && sudo dpkg -i fhem-5.6.deb

Das so aktualisierte Image kann man natürlich wieder als eigenes Image ablegen.

Das Jessie Image ist 4224000000 Byte groß, das sind 4125 Sektoren a 1024 byte. Zum Kopieren starten wir wieder den Raspberry mit einem anderen System, das zu kopierende System muss "offline" sein. Die SD Card kommt in einen USB Reader und wir benötigten einen Stick mit einem Dateisystem für Dateien größer 4GB. 
Ich habe auf die "Schnelle" probiert, das Image auf der SD Card des laufenden Systems zu erzeugen, da diese genug freien Platz hatte (16 GB). Anschließend habe ich die Imagedatei mit Winscp übers Netzwerk kopiert, dass dauert allerdings ca. 35 Minuten bei 2 MBit/sec - die Netzwerkschnittstelle des Raspbberry ist eben nicht die Schnellste.
sudo dd bs=1M count=4125 if=/dev/sda of=/home/pi/raspbian.img

Dies dauert mit 7,6 MB/s knapp 10 min. 

Will man kleinere Images und benötigt nicht ein komplettes Raspbian, kann man mit dem netinst Image ein minimales aktuelles System erstellen. Dazu wird es einen extra Beitrag geben.

4 Kommentare:

  1. Hallo Heiz-Otto,
    vielen Dank für dein Bericht.

    "ssudo apt-get install expect libdev ....."
    ist hier "ssudo" richtig?

    AntwortenLöschen
    Antworten
    1. Nö, ich habe letztens die Befehlszeile korrigiert, da ist das wohl beim Einfügen passiert.
      Danke!

      Löschen
  2. wäre es nicht sinnvoll gleich Fhem 5.7 zu nehmen ?
    habe es von 5.6 auf 5.7 geändert und gleich installiert.
    Gruß

    AntwortenLöschen
    Antworten
    1. Klar. Aber wie es so ist: ich habe am 14.11. Auf veröffentlichen gedrückt und am 15.11. Kam FHEM 5.7 ;-)
      Gruß Otto

      Löschen