Freitag, 6. Januar 2017

Umzug von FHEM

Die alte Hardware ist zu schwach, defekt oder warum auch immer - das System soll neu gemacht werden!?
Ausgangszustand:
  • Raspberry Pi2, 
  • Raspbian Wheezy, 
  • Probleme mit der SSL Lib beim https Zugriff (SSL Version SSLv2 not supported), ist mit jessie behoben.
Zielzustand:
  • Raspberry Pi3
  • Raspbian Jessie Lite

Geht relativ einfach, wenn man einige Vorbereitungen trifft. Der grobe Fahrplan sieht so aus:
  1. Auf neuer Hardware ein neues System installieren.
  2. Alle benötigten Tools und Module (debian Pakete) nachinstallieren.
  3. FHEM als Grundlage installieren, eventuell Details testen (z.B. SSL).
  4. Backup und shutdown aktuelles FHEM System auf Pi2
  5. Transfer der Backupdatei auf Pi3
  6. Restore und Start von FHEM auf dem Pi3
  7. Test ob System einwandfrei läuft, wenn ja alles gut, wenn nein eventuell erstmal Restart FHEM auf Pi2 und in Ruhe untersuchen -> nochmal ab Schritt 4 bis alles läuft.

Schritt 1-3 

habe ich hier ausführlich beschrieben, das dauert je nach dem was man im Schritt 2 alles benötigt alles in allem keine 20 min. Dieser Artikel wird von mir laufend aktualisiert. Zu dem Wissen zu gelangen was man alles benötigt, kann allerdings wesentlich länger dauern, wenn man sich nichts aufgeschrieben hat. Im Zweifelsfall sollte man ein Paket/Tool mehr als eines zu wenig installieren. Die empfohlene Liste auf debian.fhem.de ist sicher ein guter Kompromiss.  Ich habe angefangen eine Liste zu erstellen, welches FHEM Modul welche cpan Module bzw. debian Pakete benötigt. Die werde ich noch veröffentlichen.

Schritt 4 und 6 

kann man nach seinen persönlichen Vorlieben gestalten. Normalerweise sollte das in wenigen Minuten abgeschlossen sein.
In der Regel sollte alles was FHEM betrifft in diesem Pfad liegen /opt/fhem/. Dieser Pfad muss auf das neue System und muss die richtigen Berechtigungen erhalten. Ich habe das hier schon mal im Detail beschrieben und es genauso gemacht:

Pi2 in der FHEM Oberfläche 
backup
warten bis backup fertig -> Log oder Eventmonitor
shutdown
  • mit winscp die aktuelle Sicherung ins zentrale Sicherungs-Share auf den Server kopieren
  • und in  einer zweiten Sitzung gleich wieder auf den Pi3 ins /home/pi/ Verzeichnis kopieren
Pi3 als User Pi im putty Terminal
sudo systemctl stop fhem
sudo tar -xvzf /home/pi/FHEM-201xxxxx_xxxxxx.tar.gz -C /opt/fhem/
sudo systemctl start fhem

Schritt 7

  • FHEM Web erreichbar?
  • Log File kontrollieren!!!

Wenn bis hier grobe Fehler vorhanden sind am Besten erstmal den Pi3 wieder beenden und alles auf dem Pi2 wieder starten. In Ruhe Fehler suchen.

  • Schalter betätigen
  • Sonderfunktionen kontrollieren (Sound und Sprachausgabe usw)

Nützliche Hinweise und Befehle

Umfangreiche Manipulation müssen nicht zeileweise mit sudo gemacht werden, sudo su schaltet den sudo Modus ein bis zum exit.

Es kann immer mal passieren, dass die Rechte im fhem Verzeichnis falsch sind. Dies kann man relativ einfach beheben in dem man den Eigentümer aller Dateien setzt:
sudo chown -R fhem:dialout /opt/fhem/
Manchmal muss die Rechte einzelner Dateien setzen, z.B. ausführbar machen:
sudo chmod +x /home/pi/shutdown.py
In besonderen Fällen muss das UID Bit gesetzt werden:
chmod u+s /usr/bin/dfu-programmer
Oder ganz brutal, einfach Rechte auf Alles:
sudo chmod 777 /etc/systemd/system/pishutdown.service
Ein paar Beispiele für User und Gruppen Mitgliedschaften:
useradd -m test
passwd test
gpasswd -a test users
gpasswd -a pi pulse-access
gpasswd -d pi audio
gpasswd -d test audio
groups test
getent group test
cat /etc/group
Samba Freigabe für Sonos einrichten:
sudo mkdir /mnt/SonosSpeak
sudo chmod 777 /mnt/SonosSpeak/
sudo nano /etc/samba/smb.conf
am Ende folgendes einfügen:
[SonosSpeak] comment = Audio-Files for SonosPlayer to Speak
read only = false
path = /mnt/SonosSpeak
guest ok = yes
anschließen den Service neu starten
sudo systemctl restart smbd.service
Zusatzinfo

Das Verhalten/der Syntax in der smb.conf hat sich offenbar bei Jessie etwas geändert! Nutzt man die Originale smb.conf von Raspbian muss man nur den Abschnitt des Shares (siehe oben) einfügen.
Die Anonyme Zugriff auf Shares wird durch die Standard Einstellung im Abschnitt
   [global]
   security = user
   map to guest = bad user
ermöglicht. Die erste Zeile ist die Standardeinstellung und ist in der smb.conf nicht extra gesetzt. Die zweite Zeile steht so in der Original smb.conf schon drin.

Kommentare:

  1. Herzlichen Dank für die ausführliche Beschreibung
    Helmut (helmi55)

    AntwortenLöschen
  2. Sehr schön, hat mir beim Umzug vom Pi1B auf Pi3B geholfen!
    Stefan (alru)

    AntwortenLöschen
  3. Hallo Otto,
    Mein Fhem startet nicht mehr. Ich komme nur noch über Putty oder RemoutDesktop auf den Pi. Ein Backup liegt auf dem Win PC. Mit FileZilla könnte ich das Backup zurück spielen. Oder gibt es noch eine andere Möglichkeit Fhem zu starten.
    Muss ich dazu die Karte neu aufsetzen? Oder gibt es eine andere Möglichkeit.
    Gruß Michael

    AntwortenLöschen
    Antworten
    1. Hallo Michael,
      es gibt diesen Wiki Artikel
      https://wiki.fhem.de/wiki/FHEM_startet_nicht_-_Tipps_zur_Fehlersuche
      Klar kannst Du ein Backup zurückspielen, wie es geht steht ja oben. Karte neu machen brauchst Du nicht wenn die ansonsten in Ordnung ist.
      Du wirst verstehen: Ich beantworte hier gern Fragen zu meinem Artikel, aber ein Supportforum kann ich hier nicht betreiben.
      Gruß Otto

      Löschen
  4. Hallo Otto, was genau ist mit FHEM Module gemeint? Module wie z.B. für Netatmo oder Sonos? Oder bezieht sich das auf Debian Pakete von Linux?

    AntwortenLöschen
    Antworten
    1. Manche FHEM Module benötigen auf System Ebene spezielle Perl Module oder System Programme. Ohne die läuft das FHEM Modul dann nicht.

      Löschen
  5. Sehr gelungener Artikel! Was aus meiner Sicht noch fehlt, ist die Migration der SQL-DB, die viele User als Log-System nutzen. Würde mich freuen, wenn das noch ergänzt werden könnte.

    AntwortenLöschen
  6. Kurze Frage: Ich habe bisher mit dem einspielen nach deiner methode ohne das setzen von Rechten immer Erfolg gehabt (Neuinstallation von FHEM mit Backup auf den gleichen Raspberry 3. Nun, beim UMZUG von RP3 auf RP4 hat er mir die Backup Datei zwar entpackt und kopiert, ich sehe allerdings in der FHEM Oberfläche noch die Grundinstallation von FHEM. Sind das vielleicht fehlende Rechte? Gruss Tom

    AntwortenLöschen
    Antworten
    1. Grundinstallation? Das heisst er hat die fhem.cfg nicht ersetzt? Im tar Paket sind die Original Rechte normalerweise enthalten, mit entsprechenden Rechten beim auspacken werden die Zieldateien überschrieben. Es scheint als ob das nicht passiert ist!? Gruß Otto

      Löschen
  7. Ja, richtig. die fhem.cfg wurde anscheinend nicht ersetzt, obwohl der Kopiervorgang des ausgepackten Backup- Archivs sichtbar (in der Konsole) durchgeführt wurde (das dauert bei meinen Logs immer etwas länger ;-) Ich setze das ganze heute nacht (außerhalb meiner Home- Office Zeiten ...) nochmals auf und berichte (wenn du keine Idee dazu hast).Gruss Tom44

    AntwortenLöschen