Schlagwort-Archive: FHEM

FHEM Absichern

Nach der Installation von FHEM erhält man auf dessen Standardwebseite ([IP]:8083/fhem) eine Meldung der Sicherheitsprüfung die vermutlich so oder so ähnlich aussieht:

SecurityCheck:
WEB,WEBphone,WEBtablet has no basicAuth attribute.
telnetPort has no password/globalpassword attribute.
Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.

 

Die hier aufgezeigten Probleme lassen sich recht einfach fixen.

Passwortschutz Einrichten

Um einen Passwortschutz einzurichten öffnen wir zuerst eine SSH Verbindung zu unserem FHEM Server und öffnen zudem in einem Browserfenster die fhem.cfg Konfigurationsdatei:

SNAGHTML590371c1

Die SSH Verbindung benötigen wir nun um unsere Benutzername / Passwortkombination mit base64 maskieren zu können.

Wichtig: base64 ist keine Verschlüsselung. Wenn ihr also wie ich Ausschnitte aus eurer Konfiguration veröffentlicht, dann solltet ihr diese Werte auf jeden Fall raus nehmen (oder dummy Werte verwenden).

Wir maskieren nun also zuerst unsere Benutzername / Passwortkombination. In meinem Beispiel verwende ich den Benutzernamen “Dummy” und das Passwort “Geheim123” und gebe folgende Befehlsfolge in der SSH Konsole ein:

Der Rückgabewert ist der base64 Wert zu Dummy:Geheim123.

image

Diesen Rückgabewert benötigen wir nun in unserem Browserfenster. Hier fügen wir die nachfolgenden Linien ein (ggf. habt ihr bereits alles ausser den Teil mit basicAuth):

und speichern diese Konfiguration mit Save fhem.cfg. Um die Konfiguration wirksam werden zu lassen müssen wir in der Kommandozeile (ganz oben auf der Seite) den FHEM Server noch mit folgendem Befehl neu starten:

Der Server sollte nun neu starten und danach einen Benutzername und ein Passwort für die Anmeldung am Webfrontend verlangen. Nach der Erfolgreichen Anmeldung sollte sich die Fehlermeldung verändert haben – das einzige verbleibende Problem sollte jetzt nur noch telnet sein.

Telnet

Ich bin kein großer Freund von Telnet und habe bei FHEM auch noch keinen Grund gefunden, warum ich es diesem Server erlauben sollte in meinem Netzwerk einen Telnet Server anzubieten. Daher schlage ich vor diesen Service zu deaktivieren. Dies erreicht man durch einfaches auskommentieren (oder löschen) der entsprechenden Zeile aus der fhem.cfg:

image

Update

Auch FHEM benötigt in regelmäßigen Abständen Updates. Bevor man diese durchführt empfehle ich in der fhem.cfg noch ein globales Attribut einzufügen welches FHEM anweist vor jedem Update ein Backup durchzuführen:

Das Update selbst führt man danach über die Befehlszeile mit folgenden Kommandos durch:

Anzeigen ob Updates vorhanden sind:

Die Ausgabe wird danach so oder so ähnlich aussehen und die derzeit anstehenden Änderungen (auf Datei Ebene) ausgeben.

image

Das eigentliche Update startet man danach mit dem Befehl:

Die Ausgabe sieht hier in etwas so aus:

image

HomeMatic Funk-Steckdose einbinden, den Stromverbrauch messen und an bestimmten Zeiten schalten (Zeitschaltuhr)

Nachdem wir im letzten HowTo den HMLan Adapter an unser Fhem angebunden haben, geht es nun darum die erste schaltbare Funk-Steckdose in Betrieb zu nehmen und automatisch zu schalten. Hierzu sind einige wenige Schritte notwendig und ein paar kleine Fallstricke zu umgehen. Ich werde einen HomeMatic Funk-Schaltaktor mit Leistungsmessung einbinden und für meine Weihnachtsbeleuchtung eine Zeitschaltung aktivieren.

Zuerst müssen wir unser FHEM bzw. HMLan Adapter in den Anlernmodus versetzen. Dies erreichen wir am einfachsten indem wir in der Befehlszeile in FHEM (Textbox ganz oben am Bildschirm) folgende Zeichenfolge eingeben:

Diese gibt uns für 60 Sekunden die Möglichkeit Geräte einzubinden (zu paaren). Hierzu müssen wir innerhalb dieser Zeit an unserer Funk-Steckdose noch für 3 – 5 Sekunden den großen grauen Button drücken. Nun sollte nach einem Klick auf den Menüpunkt CUL_HM folgendes Bild zu sehen sein:

image

Ist dies der Fall, dann bitte ein Mal im Menü auf der linken Seite auf Save config klicken. Wenn wir nun auf den Punkt unter powerMeter klicken müsste in etwa folgendes zu sehen sein:

image

Ich habe dem channel_01 bereits einen schönen Namen gegeben. Dies richten wir nun ebenfalls für den channel_02 ein (dieser ist für die Verbrauchsmessung zuständig). Geben Sie hierzu bitte folgendes in die Befehlszeile (ganz oben auf der Seite) ein und bestätigen Sie die Eingabe nach jeder Zeile indem Sie die Taste Enter betätigen:

Wenn Sie nun auf den Menüpunkt Unsorted klicken sollte dieser so aussehen und Ihnen damit das ein und aus schalten der Steckdose sowie das ablesen der Verbrauchswerte ermöglichen. Ist dies der Fall, dann bitte erneut auf Save config klicken.

image

Um eine Zeitschaltung zu aktivieren gehen wir nun auf den Menüpunkt Edit files und klicken dort auf fhem.cfg. Basierend auf den oben vergebenen Namen geben wir am Ende der Datei folgendes ein und bestätigen dies anschließend mit einem Klick auf Save fhem.cfg

Mit diesen Zeilen wird die Aussenbeleuchtung nun zum Sonnenuntergang eingeschaltet und um 23:59 Uhr wieder aus geschaltet.

HomeMatic HMLan-Adapter an FHEM-Server anbinden

Nachdem meine Frau vor einer Woche darauf bestanden hat, dass ich die Weihnachtsbeleuchtung anbringe, musste ich leider feststellen, dass unsere Zeitschaltuhr nicht mehr funktioniert. Damit war der perfekte Zeitpunkt gekommen einen Fuß in die Home-Automation zu bekommen. Ich habe mich also auf dem Markt umgesehen und bin recht schnell bei den Produkten von HomeMatic hängen geblieben (scheinen zumindest mal an Sicherheit gedacht zu haben und die können AES schreiben ;-)). Um das Projekt nicht zu einfach werden zu lassen, habe ich mich zur Steuerung für das Open Source Projekt FHEM entschieden und mir daher folgende Komponenten zugelegt (Affiliate Links):

FHEM auf dem Raspberry PI installieren

Die Installation von FHEM auf einem Debian basierten System ist denkbar einfach, da es dafür ein fertiges Paket gibt. Die Einleitung und auch ein paar Hinweise zu möglichen Problemen findet man im FHEM Wiki.

HomeMatic Lan Adapter

Hat man das Betriebssystem am laufen geht es daran die Hardware mit der Software zu verbinden. Das notwendige Bindeglied zwischen den Steuerelementen (Aktoren) und unserer Zentrale bildet der HomeMatic HMLan Adapter. Er wird entweder via USB oder via LAN angeschlossen und wandelt unsere Signale in Funksignale um die die Aktoren verstehen und sendet deren Antworten an unsere Zentrale zurück. Um dieses Setup zum fliegen zu bekommen sind einige Schritte notwendig, die ich nachfolgend beschreibe.

Seriennummer und AES Schlüssel des HMLan-Adapters

Den AES-Schlüssel sowie die Seriennummer des HMLan Adapters findet ihr auf der Rückseite des HMLan Adapters. Ich würde euch empfehlen diesen abzuschreiben und in einem Texteditor zu speichern. Wir werden beide noch öfter benötigen. Wer auf nummer Sicher gehen möchte erfährt später auch noch wie man den AES Schlüssel auf einen eigenen Wert ändern kann. (Würde diesen Schritt sehr empfehlen!)

HomeMatic Software

Dem HMLan Adapter ist eine CD beigelegt mit Hilfe des darauf befindlichen Installers erhält man zwei kleine Hilfsprogramme installiert, die wir im folgenden benötigen werden. Daher bitte jetzt die CD einlegen und die Installation starten.

HMLan Adapter unter Windows mit der HomeMatic Software vorkonfigurieren

Es ist empfehlenswert den HMLan-Adapter mit einer festen IP Adresse zu versorgen um eine zuverlässige Kommunikation sicherstellen zu können. Um diese Aufgabe auszuführen öffnet man das Tool HomeMatic Lan-Interface Configurator und wählt darin den Menüpunkt Change IP Settings. In dieser Maske kann man auch die Firmware seines HMLan Adapters updaten – dies ist insbesondere empfehlenswert, wenn die initiale Suche des HMLan Adapters länger gedauert hat.

SNAGHTMLbd72014

In dem sich öffnenden Fenster gibt man eine freie feste IP Adresse aus seinem LAN ein. Ja, ich habe zuhause ein Class B Netz – die meisten werden hier eine IP in der Form 192.168.1.xxx und eine Subnetz Maske von 255.255.255.0 eingeben müssen. Der Haken bezüglich der AES Verschlüsselung sollte vorerst gesetzt bleiben. Nach einem klick auf OK muss nun der AES Schlüssel eingegeben werden.

SNAGHTMLbd9fa8c

Nach dem ändern der IP sollte man das Gerät vom Strom trennen und damit neu starten um zu prüfen ob alles wie gewünscht funktioniert hat.

 

Als nächstes starten wir die ebenfalls mitgelieferte Software HomeMatic-Komponenten Konfigurieren. Um die Verbindung der Software mit dem HMLan Adapter herzustellen wählt man Datei und dann Konfigurieren und in der nächsten Maske HomeMatic-Lan-Interface.

SNAGHTMLbee61b1

In der nächsten Maske gibt man nun erneut die Seriennummer sowie den Zugriffscode (AES Schlüssel) ein:

SNAGHTMLbf00ce0

Die nächste Seite sollte nun bestätigen, dass ein HMLan gefunden und verbunden wurde. Gleichzeitig taucht rechts unten im Eck der Anwendung der Hinweis auf Verbunden mit [Seriennummer]@LAN. Wenn diese Meldung nicht auftaucht hilft es ggf. den Adapter ein mal neu zu starten. Wichtig ist, dass die AES Signierung der LAN Kommunikation zu diesem Zeitpunkt noch eingeschaltet ist (siehe oben).

Sicherheitsschlüssel bzw. AES Schlüssel ändern

Nachdem der HomeMatic Konfigurator mit dem HMLan Adapter verbunden ist, ist ein guter Zeitpunkt um den voreingestellten Sicherheitsschlüssel zu ändern. Dieser scheint bei den meisten Geräten identisch zu sein und ist damit nicht wirklich schwer zu erraten. Insbesondere wenn man mit seiner Installation auch kritische Dinge wie z. B. Türen und Fenster steuern möchte, so ist dieser Schritt absolut zwingend. Ich würde empfehlen einen Schlüssel (~ 32 Zeichen) vorab zu erstellen und an einem sicheren Ort aufzubewahren (z. B. Passwortcontainer + Ausdruck).

Um den Schlüssel zu ändern startet klicken wir im HomeMatic Konfigurator und klicken auf Einstellungen:

SNAGHTMLc77b4a9

und geben den neuen Schlüssel in das dafür vorgesehene Feld ein:

image

Bereits verbundene Geräte werden bei diesem Vorgang direkt auch mit dem neuen Schlüssel versorgt. Man muss somit evtl. bereits angelernte Geräte nicht erneut einbinden bzw. vorher entfernen und neu einbinden.

HMLan HMID für die Verbindung mit FHEM auslesen

Für die Verbindung mit FHEM benötigen wir die HMID des HMLan Adapters. Unter Windows 8 und Windows 10 befindet sich dieser in folgendem Pfad “C:\ProgramData\Bidcos-Service” und dort in der Datei ids. Öffnet man diese mit einem Texteditor steht dort nur eine Zeile mit

Findet ihr diesen Ordner nicht oder wird dort die Datei nicht angezeigt, dann helfen zwei Schritte. Erstens sollten versteckte Dateien und Ordner angezeigt werden und zweitens kann man einfach nach dem Ordner Bidcos-Service suchen (in einigen Foren konnte man lesen, dass dieser z. T. auch in den Benutzerprofilen zu finden war).

Nun müssen wir diese ID noch von ihrer dezimalen Schreibweise in eine Hexadezimale Schreibweise umwandeln. Das geht am einfachsten mit dem Windows Taschenrechner. Man öffnet diesen einfach und wechselt unter Ansicht auf die Programmierer-Ansicht. Dort gibt man die ID von oben ein:

image

und klickt dann auf der linken Seite auf Hex um den Wert umzuwandeln:

SNAGHTMLc05eece

Der gesuchte Wert ist also 12D687 (notieren – den haben wir nicht nur zum Spaß gesucht ;-)).

FHEM mit dem HMLan-Adapter verbinden

Um den HMLan-Adapter in FHEM einbinden zu können ist es notwendig die Netzwerkseitige Verschlüsselung der Kommunikation von FHEM zum HMLan-Adapter zu deaktivieren. Da die Verbindung selbst entweder über ein hoffentlich verschlüsseltes WLan oder über das private LAN läuft, ist das zwar unschön aber kein sonderlich großes Sicherheitsproblem. Um die Verschlüsselung zu deaktivieren starten wir die bereits oben erwähnte Software HomeMatic Lan-Interface Configurator und deaktivieren unter den Netzwerkeinstellung die Option AES Encrypt Lan-Communication. Die Verbindung das HMLan-Adapters zu den Aktoren wird weiterhin mit unserem AES Schlüssel signiert (nicht verschlüsselt) und kann somit nicht durch jeden übernommen werden.

SNAGHTMLc7c63d1

An diesem Punkt sollten die Windows basierten HomeMatic Anwendungen geschlossen werden damit FHEM exklusiven Zugriff auf den HMLan bekommen kann. Wir wechseln nun auf die WebGUI von FHEM und wählen dort im Menü Edit filesfhem.cfg aus und fügen nachfolgende Zeilen am Ende ein (die IP Adresse sowie die HMID muss natürlich durch die eigene ersetzt werden):

Nach einem Klick auf Save them.cfg sind auch schon alle notwendigen Schritte erledigt um den HMLan Adapter anzubinden. Prüfen kann man dies durch einen Klick auf den Menüpunkt Everything – hier sollte unser HMLAN01 nun mit dem Status open auftauchen:

image