Synology Diskstation: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Links auf gelöschte Wiki-Seite entfernt)
Zeile 1: Zeile 1:
== Fhem Installation auf der Synology Diskstation (ab DSM 5)==
== Fhem Installation auf der Synology Diskstation (ab DSM 5)==


Fhem auf einer Synology Diskstation (DS) zu installieren ist grundsätzlich nicht schwierig. Wichtig ist zunächst eine aktuelle DSM - also Systemupdates auf der DS installieren).
Fhem auf einer Synology Diskstation (DS) zu installieren ist grundsätzlich nicht schwierig. Wichtig ist zunächst eine aktuelle DSM - also Systemupdates auf der DS installieren.


* Zunächst installiert ihr Euch über das Paket-Zentrum der DS das Programm "Perl".  
* Zunächst installiert ihr Euch über das Paket-Zentrum der DS das Programm "Perl".  

Version vom 24. Juli 2019, 11:15 Uhr

Fhem Installation auf der Synology Diskstation (ab DSM 5)

Fhem auf einer Synology Diskstation (DS) zu installieren ist grundsätzlich nicht schwierig. Wichtig ist zunächst eine aktuelle DSM - also Systemupdates auf der DS installieren.

  • Zunächst installiert ihr Euch über das Paket-Zentrum der DS das Programm "Perl".
  • Dann besorgt ihr Euch von Martin Fischer ein kompiliertes Fhem SPK. Mehr Infos s. Thema
  • Dann wieder den Paket-Zentrum der DS aufrufen und "Manuelle Installation" -> entsprechende Datei auswählen -> weiter. Wenn es Mecker gibt wegen Signierung o.ä., dann Paket-Zentrum -> Einstellungen -> Vertrauensebene auf "Jeder Herausgeber".

Danach ist Fhem installiert und ihr könnt es über das Paket-Zentrum starten. Dann einfach Fhem aufrufen und als erstes mal ein Update durchführen. Nach dem Update die Datei 99_update.pm löschen, siehe hier

Um einen CUL damit zu betreiben oder HUEs anzusteuern müssen noch weitere Schritte unternommen werden. (siehe weiter unten)

Hinweis: Falls man eine neuere Version von Perl benötigt bzw. Probleme auftreten, dann kann auf x86_64-Architekturen (s. [1]) auch ActivePerl eingesetzt werden. Dazu muss man nur das Startskript von FHEM anpassen. Dann kann man beide Versionen auch parallel betreiben. Nur bei CPAN/PPM darauf achten, in welchem Verzeichnis man das aufruft.

Hier noch Links zu Wiki-Einträgen für ältere DSM-Versionen / Modelle: FHEM auf dem Synology DS408

CUL zum laufen bringen | IPKG installieren

A.) Zunächst braucht ihr die USB-Treiber: http://forum.synology.com/enu/viewtopic.php?f=155&t=82843&hilit=usbserial - diese einfach über das Paket-Zentrum installieren. Die Zusatzkonfigurationen, die vom Wizard nach der Installation gefragt werden, müssen nicht ausgewählt werden.

B.) Dann braucht ihr das IPKG, damit ihr verschiedene Programme nachladen könnt, die ihr für den Betrieb des CUL benötigt: 1. Prozessor (CPU) Architektur heraussuchen - http://forum.synology.com/wiki/index.php/What_kind_of_CPU_does_my_NAS_have 2. Der Prozessor (CPU) Architektur entsprechendes Shell-Script herunterladen und in einem beliebigen Ordner auf der DiskStation speichern - http://forum.synology.com/wiki/index.php/Overview_on_modifying_the_Synology_Server,_bootstrap,_ipkg_etc#Bootstrap Wenn ihr den Prozessor Marvel Armada XP oder Marvel Armada 370 habt (z.B. DS 214+), dann schaut hier: https://gist.github.com/marlun78/9349792 3. Dieses How-to durch arbeiten - http://forum.synology.com/wiki/index.php/How_to_Install_Bootstrap (für den Armada nicht - da steht alles im o.g. Link) 4. DiskStation neustarten

C) Jetzt braucht ihr die SerialPort Modul. Das kann funktionieren mit:

"ipkg install gcc"

"/usr/local/perl/bin/perl -MCPAN -e shell") / je nachdem wo Eure perl Installation liegt - bei mir war es "/usr/bin/perl -MCPAN -e shell"

"cpan install Device::SerialPort"

Hat es bei mir nicht - ich habe es so geschafft:

"ipkg install perl-device-serialport"

"cp /opt/lib/perl5/site_perl/5.10.0/arm-linux/Device/SerialPort.pm /volume1/@appstore/Perl/lib/perl5/site_perl/Device/"

"cp /opt/lib/perl5/site_perl/5.10.0/arm-linux/auto/Device/SerialPort/SerialPort.bs /volume1/@appstore/Perl/lib/perl5/site_perl/auto/Device/SerialPort/"

"cp /opt/lib/perl5/site_perl/5.10.0/arm-linux/auto/Device/SerialPort/SerialPort.so /volume1/@appstore/Perl/lib/perl5/site_perl/auto/Device/SerialPort/"

Keine der beiden Varianten funktioniert für DS213+ (Stand: Juni 2015). Alternative für DS213+ siehe hier.


D) ganz wichtig - sonst schmiert Euch der CUL immer wieder ab - synousbmdemd deaktivieren - das habe ich wie folgt gemacht:

mv /usr/syno/sbin/synousbmodemd /usr/syno/sbin/synousbmodemd_bkp

Bei einem DSM update wird dieser Dienst vermutlich wieder installiert - daher nach einem Update same procedure as every year.

Der "Security Advisor" erkennt diese Änderung und glaubt, dass sich eine Malware auf dem NAS breitgemacht hätte. Man erhält deswegen eine entsprechende Warnung.

Wichtig: Logfile auf USB auslagern

Damit die DS auch ab und zu mal die Platten zum schlafen schicken kann, solltet ihr die Logfiles auf ein USB-Laufwerk auslagern. Dazu einfach eines an die DS anschließen und im File-Explorer nachschauen, wie das Laufwerk benannt wurde (z.B. volumeUSB1). Dann Fhem runterfahren ("shutdown"), anschließend als root über z.B. putty mit der DS verbinden, das Log-Verzeichnis auf den Stick verschieben und einen Link anlegen - z.B. so:

mv /usr/local/FHEM/var/log /volumeUSB1/usbshare/fhem/log

ln -s /volumeUSB1/usbshare/fhem/log /usr/local/FHEM/var/log

Dann Fhem wieder starten und es sollte klappen.

Inhalt von Fhem-Verzeichnissen aus Windows direkt bearbeiten

Hier gibt es mehrere Möglichkeiten. Entweder ihr verbindet Euch über WinSCP mit der DS. Oder aber ihr verschiebt und verknüpft noch weitere Teile der Fhem Installation auf den Stick (siehe Logfile auf USB auslagern). Hier wäre ich allerdings vorsichtig, da kann Fhem zickig werden. Ich persönlich habe mir die fhem.cfg auf diese Weise noch auf den Stick geschoben - also das /usr/local/FHEM/etc Verzeichnis analog obiger Beschreibung zum Logfile. Darüber hinaus könnt ihr auch einfach Dateien auf Eurem Stick ablegen und im entsprechenden Fhem-Verzeichnis einen Link dazu erstellen - so habe ich das z.B. mit meinen pm-Files gemacht - z.B.

ln -s /volumeUSB1/usbshare/fhem/99_myUtils.pm /usr/local/FHEM/share/fhem/FHEM/99_myUtils.pm

HUE auf der Synology Diskstation

Da auf der DS standardmäßig kein JSON installiert ist, muss dies nachinstalliert werden (Danke an Patlinger für die Anleitung). Wichtig - ihr braucht IPKG (siehe CUL zum Laufen bringen):

1. Per SSH verbinden (Befehl "ssh <ip-adresse> -l root")

2. Superuser aktivieren (Befehl "su")

3. "make" installieren (Befehl "ipkg install make")

4. PERL und CPAN starten (Befehl "/usr/local/perl/bin/perl -MCPAN -e shell") / je nachdem wo Eure perl Installation liegt - bei mir war es "/usr/bin/perl -MCPAN -e shell"

5. CPAN updaten (Befehl "install CPAN")

6. JSON installieren (Befehl "install JSON")

7. Per telnet verbinden (Befehl "telnet <ip-adresse> <port (7072)>")

8. FHEM Update durchführen (Befehl "update")

9. FHEM Neustart (Befehl "shutdown restart")

10. Hue Bridge hinzufügen (Befehl "define <Name-für-die-Bridge> HUEBridge <ip-adresse-der-Hue-Bridge>")

11. Taste an der Hue Bridge drücken um das "Pairing" zu bestätigen.

12. GANZ WICHTIG - Wenn's jetzt einmal läuft, dann nicht vergessen die Konfiguration zu speichern! (Befehl "save")

Net::Telnet installieren

Net::Telnet benötigt ihr beispielsweises für das geniale Modul FRITZBOX, dass Euch viele Möglichkeiten eröffnet, wenn ihr einen solchen Router besitzt.

Los gehts wie üblich mit "/usr/bin/perl -MCPAN -e shell" Der Pfad zu perl kann bei Euch auch anders lauten, siehe oben. Dann seid ihr fast fertig, nur noch folgendes eingeben - und fertig: install Net::Telnet

JeeLink

Für den JeeLink werden zwei Kernelmodule gebraucht, die seit DSM 5.2 dabei sind und nicht mehr separat installiert werden müssen. Jedoch müssen sie nach jedem Update wieder neu aktiviert werden (kann auch bei laufendem Betrieb von FHEM passieren):

  • cd /lib/modules
  • insmod usbserial.ko
  • insmod ftdi_sio.ko

Ansonsten wird wie oben beschrieben das Device::SerialPort-Modul benötigt.

Getestet auf DSM415+

Automatischer Neustart

Script anlegen:

#!/bin/sh
cnt=$(ps -A -f | grep "fhem\.pl" | grep -v grep | wc -l)
if [ "$cnt" -eq "0" ] ; then
   /var/packages/FHEM/scripts/start-stop-status restart
else
  echo "FHEM still running.";
  return 1;
fi

Dann kann man entweder über cron das Skript regelmäßíg (z.B. alle 15min) oder man nutzt hierfür die in DSM eingebaute Aufgabenverwaltung (einfach vollständigen Pfad zum Skript eingeben). Letzteres ist für den Überblick auf praktischer.