HomeMatic Tutorial

HomeMatic – CCU-Historian auf einem FreeNAS-Rechner betreiben

Das freie, auf UNIX basierende NAS-Betriebssytem FreeNAS eignet sich hervorragend, um aus einem älteren PC ein vollwertiges NAS aufzubauen. Hierzu bieten sich auch leistungsschwächere Rechner an, z.B. Thin Clients von Igel. Neben den eigentlichen NAS-Funktionalitäten, lässt sich das System so einrichten, dass der „CCU-Historian„, ein Tool, das ein Langzeitarchiv der Daten der Zentrale (CCU) des Hausautomations-Systems HomeMatic zur Verfügung stellt, darauf läuft. Hier die Anleitung.


Wichtiger Hinweis: Der Support der hier verwendeten FreeNAS 7-Version wurde zwischenzeitlich eingestellt, weswegen die unten aufgeführten Downloadlinks z.T. auf andere Versionen verweisen. Das „FreeNAS 7“ Legacy Projekt ist offensichtlich in das Projekt „NAS4Free“ migriert, siehe: http://wiki.nas4free.org/doku.php. Ob damit der Historian funktioniert, müsste mal ausprobiert werden. Falls die Hardware es hergibt, könnte man sich auch einmal mit einer neuen FreeNAS-Version http://www.freenas.org/ auseinandersetzen.

Alternative Anleitungen zur Installation des CCU-Historian auf einem Raspberry Pi 2 Model B bzw. auf dem neueren Raspberry Pi 3 Modell B sind in den verlinkten Tutorials beschrieben.

Umbau eines PC für die Verwendung als NAS

Das FreeNAS-Betriebssystem kann grundsätzlich nicht auf späteren Daten-Laufwerken installiert werden, benötigt also ein eigenes Laufwerk. Die Anforderungen an den Speicherplatz sind jedoch sehr gering und FreeNAS lässt sich auch von einem USB-Stick booten, sofern das Bios des PC dies unterstützt. Im folgenden ist beschrieben, wie FreeNAS auf einer Compact Flash Speicherkarte installiert wird. Die Igel Thin Clients nutzen meist ohnehin eine solche Karte als Festplatte.

Igel

Andere Rechner können z.B. mit entsprechenden IDE-Adaptern (siehe Abb. unten, blaue Kreise) aufgerüstet werden. Standard Festplatten funktionieren natürlich ebenfalls, sollten aber aus Gründen der Energieeffizienz vermieden werden, das dieser Speicher nur zum Booten des NAS-Systems benötigt wird. Als Daten-Laufwerke eignen sich IDE-Festplatten oder USB-Sticks (rote Kreise).

NAS4Das im Bild gezeigte Kunststoffgehäuse (grüner Kreis) beinhaltet einen HomeMatic-Schaltaktor für Batteriebetrieb (HM-LC-Sw1-Ba-PCB), den man zum Hoch- bzw. Herunterfahren des NAS verwenden kann (siehe weiter unten).

Um Strom zu sparen, sollte aus dem PC alles ausgebaut werden, was nicht benötigt wird (Modem, FireWire-Adapter, etc.). Zur Installation wird noch ein CD-ROM-Laufwerk benötigt, das man aber nach der Installation des FreeNAS-Betriebssystems stromlos machen kann. Ergänzend sollten alle nicht notwendigen Funktionen des Motherboards im Bios deaktiviert werden (z.B. die Soundkarte).

Besonders energiesparend sind die erwähnten Igel Thin Clients, die sich durch einen geringen Stromverbrauch und absolut geräuschlosen Betrieb auszeichnen. Erfolgreich getestet habe ich die Installation mit einem 4210 LX Winestra 5/4 1,0GHz. Diese Geräte kann man recht günstig gebraucht bekommen.

Als Festplatte reicht eine CF-Karte ab 1 GB, mit der hier verwendeten FreeNAS-Version genügen 512 MB RAM.

Installation des FreeNAS-Betriebssystems

Aufgrund der vergleichsweise geringen Hardwareanforderung (400 MB Disk, 384 MB RAM) bietet sich die ältere FreeNAS Version 7 (stabile Version 0.7.2 Sabanda Revision 8191) an, die zwar inzwischen nicht mehr gepflegt wird, jedoch einwandfrei funktioniert. Auf http://wiki.freenas.org/ finden sich diesbezügliche Informationen, Anleitungen und Foren. Zum Download geht es über den Download-Bereich des Wikis oder direkt über http://sourceforge.net/projects/freenas/files/FreeNAS-7-Stable/0.7.2.8191/.

Die Installation und Konfiguration von FreeNAS ist recht einfach, auch wenn es vielleicht anfangs etwas verwirrend erscheint. FreeNAS wird über eine CD installiert, die man sich mit einem heruntergeladenen Image zunächst brennen muss. Welche iso-Datei zu verwenden ist, hängt von der Hardware-Plattform und der Frage ab, ob man FreeNAS vollständig installiert oder „embedded“ verwenden will. Wenn man später den CCU-Historian betreiben möchte, sollte man die vollständige Installation durchführen. Bei einer vollständigen Installation ist das z.B. für i386-Platformen (der Igel gehört hierzu) die Datei „FreeNAS-i386-LiveCD-0.7.2.8191.iso“.

An dieser Stelle möchte ich auf das deutschsprachige „FreeNAS Installations- und Anwenderhandbuch“ von Chr. Frankenberg verweisen, das zwar für die Version 0.684 erstellt wurde aber auch gut für die Version 7 verwendet werden kann. Diese Dokument findet man z.B. unter http://www.teachme.at/downloads/FreeNAS_Dokumentation_684.pdf.

Hier die wesentlichen Schritte:
Das heruntergeladene ISO-Image auf eine CD-ROM brennen, das Bios des PC so einstellen, dass von CD gebootet werden kann, die CD-ROM einlegen und booten.


Achtung, die Installation von FreeNAS löscht alle Daten auf dem bei der Installation angegebenen Datenträger. Nach dem Booten erscheint das Menü der FreeNAS-Konsole (Console Setup).

FreeNASInstall1

Zur Installation auf einem Datenträger ist die Option 9 zu wählen, worauf das folgende Menü erscheint.

FreeNASInstall2

Nun die Option „Install ‚full‘ OS“ auswählen und in den nachfolgenden Menüs den gewünschten Quell- bzw. Ziel-Datenträger auswählen. Die Größe der zu erstellenden Partition habe ich etwas unterhalb der Größe des Datenträgers gewählt, um diesen möglichst auszunutzen (für eine 2 GB Compact Flash Karte habe ich 1800 eingegeben, weil bei 2000 eine Fehlermeldung kam). Die nächste Frage nach zusätzlichen Partitionen kann auf der vorgegebenen Einstellung (No) belassen werden.

Nach der Installation die CD entfernen und das System rebooten.

Wenn das Booten erfolgreich war, erscheint wieder das „Console Setup“ Menü, diesmal ohne die Option „Install …“ (sollte diese dennoch erscheinen, liegt wahrscheinlich die CD noch im Laufwerk und der Computer hat von dieser gebootet, dann einfach ohne CD nochmal neu starten).

Im nächsten Schritt sind die Netzwerkeinstellungen anzupassen.

Als Standard wird die erste im System erkannte Netzwerkkarte mit der IP-Adresse 192.168.1.250 benutzt (die erste Netzwerkkarte muss aber nicht zwingend die erste Ethernetkarte, sondern kann z.B. auch eine Firewire-Karte sein). Wenn mehr als eine Netzwerkkarte eingebaut ist, kann man mit der Option 1 die richtige Netzwerkkarte auswählen, ansonsten kann sofort mit der Option 2 begonnen werden. Mit der Option 2 wird das LAN-Interface konfiguriert. Allgemein wird eine manuelle Einstellung empfohlen (hier sind natürlich die Daten des eigenen Netzwerkes einzugeben):


Do you want to use DHCP for this interface? No
Enter a new LAN IPv4 Address: 192.168.100.110
Enter a new LAN subnet mask: 24
Enter IPv4 Default Gateway: 192.168.100.1
Enter DNS IPv4 address: 192.168.100.1
Do you want to configure IPv6 for this interface? No

Ich habe DHCP genutzt, was bei mir problemlos funktioniert hat:


Do you want to use DHCP for this interface? YES
Do you want to configure IPv6 for this interface? No

Anschließend gibt FreeNAS die URL für den Zugriff über den Webbrowser aus.
An dieser Stelle empfehle ich einen Neustart, nach dem man über die eben ausgegebene URL das FreeNAS-WebUI erreichen und sich wie folgt einloggen können sollte:


Username: admin
Password: freenas

WebUI1

Für die weitere Konfiguration (Festplatten formatieren, mounten, RAID einrichten, Zugriffsrechte festlegen und Dienste konfigurieren etc.) empfiehlt es sich, der o.a. FreeNAS-Dokumentation zu folgen.

Steuerung des FreeNAS-Servers über die HomeMatic-Haussteuerung

Wenn man den FreeNAS-Server in nicht genutzten Zeiträumen automatisch ausschalten möchte, z.B. um Strom zu sparen, ist die einfachste und günstigste Möglichkeit, die FreeNAS-Funktion „System-Herunterfahren-Planmäßig“ zu verwenden:

WebUI2

Zum Hochfahren kann man z.B. „Wake on LAN“ benutzen. Ältere Rechner lassen sich aber oftmals nicht über das LAN aufwecken. Als Alternativen mittels HomeMatic bieten sich zwei Verfahren an.

Einmal kann man nach dem Herunterfahren die Spannungsversorgung mit einem HomeMatic-Aktor abschalten, was zusätzlich noch etwas Strom spart. Nach dem Wiedereinschalten der Spannungsversorgung bootet FreeNAS automatisch.

Die zweite Variante ist die Verwendung eines HomeMatic-Schaltaktors für Batteriebetrieb (HM-LC-Sw1-Ba-PCB), der die Standby-Taste des Rechners (+5V) kurz betätigt (damit kann man den Server natürlich auch herunterfahren). Die Nutzung des HM-LC-Sw1-Ba-PCB hat den Vorteil, dass man den NAS-Rechner nicht nur zeitgesteuert sondern zusätzlich auch ereignisorientiert hoch- und herunterfahren kann, z.B. bei Abwesenheit.

Realisiert werden kann das z.B. wie folgt, wobei die HomeMatic Systemvariable „FreeNAS-Server“ den Zustand des FreeNAS-Servers anzeigt, das HomeMatic-Gerät „FreeNAS-Server standby“ der oben erwähnte HM-LC-Sw1-Ba-PCB ist und das Gerät „FreeNAS-Server Spannungsversorgung“ ein Schaltaktor ist, der die Steckdose für den FreeNAS-Server
schaltet.

FreeNAS-Server herunterfahren

FreeNAS-Server hochfahren Abwesenheit

FreeNAS-Server hochfahren Zeit

FreeNAS-Server hochfahren Zeit FT

Z.B. über Mediola a.i.o. kann der Server über die Programme auch manuell hoch- bzw. heruntergefahren werden.

FreeNAS Prg5

Installation und Betrieb des CCU-Historians auf dem FreeNAS-Server

Wenn der FreeNAS-Server sinnvoll als Plattform für den CCU-Historian verwendet werden soll, muss er natürlich im 24/7-Betrieb laufen. Es ist aber nicht erforderlich, dass auf einem weiteren Rechner ein Konsolenfenster offen ist, da der CCU-Historian über die interne Shell des FreeNAS-Servers gestartet und betrieben werden kann.

Die nachfolgenden Schritte können entweder direkt auf der FreeNAS-Shell (Menü „Console Setup“ Option 6 „Shell“) oder bequemer über das Netzwerk erfolgen. Ich verwende hierzu die Freeware „Putty“ (http://www.putty.org/) die viele „HomeMaticer“ ohnehin für den Telnet-Zugriff auf die CCU nutzen.

Um über ein Putty Terminal-Fenster auf den Free-NAS-Server zugreifen zu können, muss der Dienst „SSH“ eingeschaltet und wie folgt konfiguriert werden:

ssh

Das Einloggen über Putty erfolgt als „root“ (nicht als „admin“) über SSH am eingegebenen TCP-Port (default 22). Wenn der Zugriff funktioniert hat, kann es losgehen.

Putty1

Um den CCU-Historian auf dem FreeNAS-Server betreiben zu können, muss eine JAVA-Laufzeitumgebung installiert sein. Da FreeNAS auf FreeBSD basiert, bietet sich hierzu „Diabolo“ an (http://www.freebsdfoundation.org/downloads/java.shtml), für die genannte Hardware und FreeNAS-Version z.B. „diablo-jre-freebsd7.i386.1.6.0.07.02.tbz“. Die Datei kann man z.B. unter der folgenden Adresse herunterladen: http://www.freebsd.org/cgi/ports.cgi?query=diablo&stype=all&sektion=all.

Weiterhin werden noch folgende „Packages“ benötigt:


xtrans.tbz
xproto.tbz
xextproto.tbz
javavmwrapper.tbz

Diese findet man für die jeweilige Hardware und FreeBSD-Version unter ftp://ftp.freebsd.org/pub/FreeBSD/ports/.
Die heruntergeladenen Dateien werden in ein Verzeichnis des FreeNAS-Servers kopiert, z.B über Windows herunterladen, über SMB auf einem gemounteten Laufwerk des FreeNAS-Servers ablegen und sie dann mit dem FreeNAS Quickexplorer (Erweitert/Dateimanager) in das Verzeichnis „/var/tmp“ kopieren:

putty2

Auf der Konsole werden nun die Befehle zur Installation der Software-Packages eingegeben. Hierzu ist zunächst in das Verzeichnis zu wechseln, in dem die Dateien abgelegt wurden:

putty3

Bei der Installation der Pakete kommt es (je nach verwendeter FreeNAS- und damit FreeBSD-Version sowie der Hardware-Plattform) möglicherweise zu dem Problem, dass versucht wird, die jeweils aktuelle Version von einem Unterverzeichnis der Seite „ftp://ftp.freebsd.org/pub/FreeBSD/ports/“ herunterzuladen, das nicht mehr existiert und die Installation mit einer Fehlermeldung in etwa wie folgt abgebrochen wird:


Error: Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.3-
release/Latest/xtrans.tbz:
File unavailable (e.g., file not found, no access)
pkg_add: unable to fetch ‚ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.3-release/Latest
/xtrans.tbz‘ by URL
pkg_add: 1 package addition(s) failed

Die Dateien sind mittlerweile an anderer Stelle abgelegt, und zwar in dem Verzeichnis, von dem auch die „Packages“ heruntergeladen wurden, für das genannte i386-Beispiel ist das
„ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/Latest/“. Vor der Installation ist daher mit folgendem Befehl auf dieses Verzeichnis zu verweisen (der Link ist natürlich ggf. anzupassen):


setenv PACKAGESITE ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/Latest/

Anschließend werden die nachfolgenden Befehle nacheinander eingegeben und die Pakete sollten sich problemlos installieren lassen:


pkg_add -v -r xtrans.tbz
pkg_add -v -r xproto.tbz
pkg_add -v -r xextproto.tbz
pkg_add -v -r javavmwrapper.tbz

Nun wird die Java-Laufzeitumgebung installiert:


pkg_add -v diablo-jre-freebsd7.i386.1.6.0.07.02.tbz

Bei der Installation sollten alle „default“ Einstellungen übernommen werden, bei der Anzeige des „License Agreements“ muss man ganz nach unten scrollen und zustimmen.
Anschließend aus der Shell bzw. Putty ausloggen, den FreeNAS-Server neu starten und die Java-Laufzeitumgebung sollte laufen.

Vor der Inbetriebnahme des CCU-Historians muss noch die IP-Adresse des FreeNAS-Servers in die „Hostname-Datenbank“ eingetragen werden:

FreeNAS Hosts3

Ich weiß zwar nicht, ob das für die einwandfreie Funktion des CCU-Historians zwingend erforderlich ist, aber zur Sicherheit habe ich die IP-Adresse des FreeNAS-Servers in der Firewall der CCU freigegeben.

Nun müssen die Dateien des CCU-Historians in einem Verzeichnis abgelegt werden. Hierfür habe ich einen der USB-Sticks gewählt, um die CompactFlash-Karte ganz dem Betriebssystem zu belassen. Die HDD wurden bewusst gemieden, da diese sich bei Nichtnutzung ausschalten und für den Historian ständig laufen müssten. Die Verwendung eines gemounteten Laufwerks hat den Vorteil, dass man die Datenbank des CCU-Historians sehr einfach zur Datensicherung kopieren kann.

WebUI4

Das CCU-Historian configuration file (ccu-historian.config) ist wie folgt anzupassen:


database.webEnable=true
database.webAllowOthers=true
ccu.address=’IP-Adresse der CCU‘
ccu.historianAddress=’IP-Adresse des FreeNAS-Servers‘
webServer.port=Freier Port
webServer.historianAddress=’IP-Adresse des FreeNAS-Servers‘

Hierbei ist explizit darauf zu achten, dass der eingetragenen webServer.port nicht anderweitig belegt ist, (z.B. vom Web-Server Dienst des FreeNAS-Servers).

Der Historian lässt sich dann aus dem Verzeichnis heraus mit dem üblichen Befehl starten:


java -jar ccu-historian.jar

putty4

Falls eine Abweichung der im CCU-Historian angezeigten Systemzeit zu der Systemzeit des FreeNAS-Betriebssystem auftritt (und damit auch bei den dargestellten Trend-Diagrammen die Zeit verschoben ist), liegt dies wahrscheinlich daran, dass die verwendete Java VM die Zeitzone falsch erkennt. In diesem Fall hilft folgender Aufruf des CCU-Historians:


java -Duser.timezone=Europe/Berlin -jar ccu-historian.jar

Wie schon erwähnt, bietet es sich an, den CCU-Historian über die interne Shell des FreeNAS-Servers zu starten, damit dieser unabhängig von weiteren Konsolenfenstern läuft. Hierzu benötigt man am FreeNAS-Server eine Tastatur (wird das Bios meist ohnehin verlangen) und einen Monitor. Nach dem Start der integrierten Shell über das Menü „Console Setup“ Option 6 „Shell“ wechselt man – wie oben beschrieben – in das Verzeichnis des Historian und startet diesen (hierbei die englische Tastaturbelegung beachten). Anschließend kann man den Monitor ausschalten, die Shell bleibt im Betrieb geöffnet. Dies hat keine Auswirkungen auf die anderen Dienste des FreeNAS-Servers und auch der Historian läuft zuverlässig.

Der Aufruf der Web-Seiten erfolgt wie üblich in der Form


http://[webServer.historianAddress]:[webServer.port]

Zum Beenden des Historians ist in der Shell die Tastenkombination „Strg-C“ einzugeben, wodurch „Stopping web server“ erscheint und nach einiger Zeit (das dauert etwas , nicht die Geduld verlieren) die Eingabeaufforderung folgt.

Anmerkung: Es kann passieren, dass sich die JAVA-Laufzeitumgebung ab und zu aufhängt, wenn man die config-Datei im laufenden Betrieb speichert. Vor dem Speichern empfiehlt es sich daher, den CCU-Historian mit „Strg-C“ kurz zu beenden und ihn nach dem Speichern wieder zu starten, dann treten keine Probleme auf.

Zum korrespondierenden Beitrag im…
HomeMatic-Forum

 

Bitte beachten...

SMART WOHNEN by sTeRn AV ist ein rein privates Projekt. Support kann ich daher nur im Rahmen meiner begrenzten Freizeit leisten, hierfür bitte ich um Verständnis. Meine Hinweise, Anleitungen, Schaltungen und Software werden so angeboten, „wie sie sind“. Die Verwendung erfolgt auf eigenes Risiko, ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung.
Creative Commons Lizenzvertrag
Copyright © Jens-Peter Stern | SMART WOHNEN by sTeRn AV | smart-wohnen.org

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich akzeptiere