Vorbemerkung zur Überschrift
Der neue Raspberry Pi 2 hat einen lichtempfindlichen Chip an Board, man tut also gut daran ein weitestgehend lichtdichtes Gehäuse zu verwenden, oder eben nicht zu blitzen.Wer Himbeermarmelade mag weiß, die Himbeere an sich hat viele Kerne. Ob die im Kuchen nicht auffallen, ist mir jetzt nicht so bewusst aber der Raspberry Pi 2 hat 4 Kerne anstatt bisher nur einen. Mal sehen ob wir die auch wirklich nutzen können.
Installation
Ich schreibe hier einfach mal mit was ich alles tue, um die aktuelle FHEM Installation auf einen neuen Raspberry Pi umzuziehen. Die vielleicht einfachste Variante ist:Altes System
sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoremove
sudo rpi-update
sudo halt
sudo apt-get upgrade
sudo apt-get autoremove
sudo rpi-update
sudo halt
Dann SD Karte ins neue System stecken, hochfahren und fertig. Das werde ich später auch noch probieren, aber: Wer will schon immer einfach? :-)
Kann ja sein man will/muss die SD Karte auch wechseln. Oder man will das Betriebssystem einfach mal von alten Lasten befreien. Oder wie auch immer ...
Also erstmal System einrichten, wie von mir beschrieben.
Kleine Feststellung am Rande:
Wenn man mehrere Kommando Zeilen aus diesem Text kopiert und mit einem Mal in das Terminalfenster einfügt wird die Verarbeitung abgebrochen wenn ein Zwischenfrage kommt und man J oder enter drückt. Deswegen schreibe ich mal auch die Einzeiler mit && zwischen den einzelnen Kommandos - liest sich nicht so schön funktioniert aber.
Hardwareunterstützung
Ein bisschen mein Standard ist eine Stop/Start Taste einrichten. Die Hardware ist ja vorbereitet, dann noch:
sudo apt-get install python-dev python-rpi.gpio
das schon existierende Script von dem alten Raspberry kopieren nach
/home/pi/shutdown.py
Rechte setzen
sudo chmod +x /home/pi/shutdown.py
und für den Systemstart aktivieren
sudo nano /etc/rc.local
und ganz zum Ende gehen und vor exit 0
sudo python /home/pi/shutdown.py &
eintragen.FHEM installieren
Die notwendigen Module, dass -f install am Anfang überprüft nochmal die Paketabhängigkeiten. Ob das bei der sauberen Neuinstallation wirklich nötig ist weiß ich nicht.
sudo apt-get -f install
sudo apt-get install perl libdevice-serialport-perl
sudo apt-get install libio-socket-ssl-perl
sudo apt-get install libwww-perl
sudo apt-get install libxml-simple-perl
oder sosudo apt-get install perl libdevice-serialport-perl
sudo apt-get install libio-socket-ssl-perl
sudo apt-get install libwww-perl
sudo apt-get install libxml-simple-perl
sudo apt-get -f install && sudo apt-get install perl libdevice-serialport-perl && sudo apt-get install libio-socket-ssl-perl && sudo apt-get install libwww-perl && sudo apt-get install libxml-simple-perl
oder so
sudo apt-get -f install && sudo apt-get install perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl libxml-simple-perl
RSS Unterstützung
Will man RSS verwenden braucht man folgende Module
sudo apt-get install msttcorefonts libgd-graph-perl libimage-librsvg-perl
sudo apt-get install libgd-text-perl (wird gebraucht ist schon installiert)
Sonos Unterstützung
zusätzliche Perl Pakete
sudo apt-get install libsoap-lite-perl
Die Sprachausgabe benötigt eine Samba Freigabe die von Sonos erreichbar sein muss. Ich habe es noch so gemacht, dass jeder schreiben kann.
sudo apt-get install samba samba-common-bin
sudo mkdir /mnt/SonosSpeak
sudo chmod 777 /mnt/SonosSpeak/
sudo nano /etc/samba/smb.conf
sudo mkdir /mnt/SonosSpeak
sudo chmod 777 /mnt/SonosSpeak/
sudo nano /etc/samba/smb.conf
Folgende Zeilen hinzufügen (Pfade müssen natürlich u.U. angepasst werden):
[SonosSpeak]
comment = Audio-Files for SonosPlayer to Speak
read only = false
path = /mnt/SonosSpeak
guest ok = yes
Hier muss normal nichts stehen, damit steht der Eintrag per default auf user:
[global]
security = user
security = user
Samba-Server neustarten:
sudo /etc/init.d/samba restart
oder
sudo invoke-rc.d samba restart
oder
sudo invoke-rc.d samba restart
Für das Caching der Sprachausgabe brauche ich noch ein Perl Modul, welches über cpan installiert werden muss.
sudo cpan install Digest::SHA1
netatmo Unterstützung
Netatmo braucht vor allem die Json Library
sudo apt-get install libjson-perl libdigest-md5-file-perl liblwp-protocol-https-perl liblwp-protocol-http-socketunix-perl
FHEM auf der Fritzbox Unterstützung
Um FHEM auf der Fritzbox Remote zu überwachen brauchen wir auch noch zwei Softwarepakete.
sudo apt-get install telnet expect
Email senden
Siehe hierDas FHEM Paket selbst ist dann nur noch ein klacks, vorher kann man hier schauen ob es eine Neue Version gibt.
Man kann zwar im Zweifelsfall im sudo machen, aber bei wget braucht man es nicht.
wget http://fhem.de/fhem-5.6.deb
sudo dpkg -i fhem-5.6.deb
sudo dpkg -i fhem-5.6.deb
FHEM wird gestartet und wir sind erstmal fertig mit einem neuen System.
Wiederherstellung altes System
Jetzt noch FHEM auf den aktuellen Stand bringen, oder braucht man das nicht weil ich ja ein backup zurückspielen will? Man könnte jetzt einfach die fhem.cfg einspielen und neu starten, dazu wäre es clever das System zu aktualisieren. Das will ich aber nicht, ich prüfe einfach mal ob das System läuft:http://<hostname>:8083
Man kann an 3 Stellen nach einer Version schauen.
- version in der Kommandozeile von FHEM - die Versionsnummern der geladenen Module
- fheminfo in der Kommandozeile von FHEM - gibt einen Satz Infos aus, je nach dem was verwendet wird. Bereit um es an das Statistic Modul von Martin Fischer zu senden (fheminfo send)
- list global in der Kommandozeile von FHEM - gibt uns die Version der fhem.pl
Da ich etwas testen will, mache ich von diesem System mal noch ein backup. Also einfach backup in der Kommandzeile von FHEM.
Achtung! beim enter drücken passiert erstmal gar nichts. Der Browser sendet nach 1 min den Befehl von sich aus neu, damit werden zwei Sicherungen erzeugt. Also besser nach dem Backup Befehl den Browser schließen und im Terminal weitermachen.
Achtung! beim enter drücken passiert erstmal gar nichts. Der Browser sendet nach 1 min den Befehl von sich aus neu, damit werden zwei Sicherungen erzeugt. Also besser nach dem Backup Befehl den Browser schließen und im Terminal weitermachen.
Im Terminalfenster eingeben:
sudo invoke-rc.d fhem stop
Jetzt mache ich am "Alten System" nochmal ein backup und dann ein shutdown in der Kommandozeile von FHEM.
Mit Winscp kopiere ich die aktuelle Backup Datei aus dem Verzeichnis
/opt/fhem/backup auf meinen Windows PC
und dann auf das neue System nach /home/pi . Damit umgehe ich Schreibrechte, muss nichts verbiegen und es bleibt quasi eine temporäre Datei. Sie hat aus meiner Sicht nichts im Pfad /opt/fhem/backup zu suchen.
Jetzt die eigentliche Wiederherstellung des Programmpfades
Jetzt die eigentliche Wiederherstellung des Programmpfades
sudo tar -xvzf /home/pi/FHEM-201xxxxx_xxxxxx.tar.gz -C /opt/fhem/
In meinem Fall brauche ich an Hardware nichts weiter umstecken, ich habe einen HMLAN. Ansonsten müsste man das hier an dieser Stelle tun.
Und das System wieder starten
sudo invoke-rc.d fhem start
Das SONOS Modul schreibt bei mir ins aktuelle Terminalfenster, für weitere Arbeit öffnet man besser ein neues.
Für eine Test zwischendurch gebe ich dem HMLAN in der fhem.cfg einfach mal eine andere Adresse um es prinzipiell zu testen
sudo nano /opt/fhem/fhem.cfg
Auf dem alten System
Den automatischen Start von FHEM verhindern
sudo update-rc.d -f fhem remove
Auf dem neuen SystemDen Start von FHEM wieder auf automatisch stellen
sudo update-rc.d -f fhem defaults
Restarbeiten
Sounddateien für Sonos
Die vorhandene Dateien kann man einfach von Freigabe zu Freigabe kopieren.
Die DEFs verweisen aber noch auf die alte Freigabe, die müsste man auch noch ändern. Solange der alte Raspberry am Netz ist funktioniert natürlich alles.
Tuning
Das sollte die Plots auf mehrere Prozesse auslagern.
attr WEB plotfork 1
Quellen
Hinweis: Raspberry Pi B hat eine SD Karte, Raspberry Pi 2 B hat eine µSD Karte.
AntwortenLöschenGruß PeMue
Danke für die Mühe! Besteht die Möglichkeit, dass Du die Installation als Image zur Verfügung stellst?
AntwortenLöschenGruß Gunther
Löschen