EnOcean-Verschlüsselung

Aus FHEMWiki
Version vom 2. April 2019, 21:14 Uhr von Westgate (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

EnOcean-Verschlüsselung

Im HowTo EnOcean-Verschlüsselung wird das verschlüsselte Einlernen eines Eltako FSR61 beschrieben.

Einleitung

Regulär kommunizieren mit FHEM eingelernte EnOcean Geräte unverschlüsselt. Da die Funksignale natürlich auch außerhalb des Hauses empfangbar sind könnte jemand mithören und die Signale welche wir im Haus verwenden abspeichern. Die gespeicherten Signale kann man dann von außen dazu benutzen die Dinge im Haus zu steuern.

Licht an und aus ist sicher nicht sicherheitskritisch. Steuert man wie ich auch Türöffner über die Geräte sollte man sich jdeoch Gedanken über die Sicherheit machen.

Die meisten neuen Eltako EnOcean Geräte (Blaue Serie mit Anfangsbuchstaben F.....), unterstützen auch Verschlüsselung. Die Tipp-Funk Serie unterstützt keine Verschlüsselung.

FHEM unterstützt Verschlüsselung für EnOcean. Leider ist diese Funktion aber noch nicht dokumentiert. Ich hab ziemlich lange gebraucht bis ich die Verschlüsselung hin bekommen habe, deshalb teile ich mal mein Wissen am Beispiel eines FSR61 der einen Türöffner ansteuert.

Dokumentation

In der Commandref zu Commandref zu EnOcean handelt der Bereich "Security Features" von der Verschlüsselung. Leider etwas kurz gehalten ;-)

Vorbereitung des Systems

RasperryPi

Zuerst müssen wir FHEM auf meinem RaspiPi einmal aufboren damit es Verschlüsselung für EnOcean unterstützt. Einloggen mit SSH. Dort die Kommandos aus der Commandref ausführen. Bei mir ging es nur ohne Fehlermeldung durch wenn ich ein "sudo" vorne angestellt habe um es als Root auszuführen.

sudo /usr/bin/perl -MCPAN -e 'install Crypt::Rijndael'
sudo /usr/bin/perl -MCPAN -e 'install Crypt::Random'

Logfile FHEM

Nach einem Neustart zeigt die Logfile von FHEM

EnOcean Cryptographic functions available.

Anlegen des Devices in FHEM am Beispiel FSR61

Für verschlüsselte Schalter gibt es wohl eine spezielle EEP. Dies ist D2-03-00. Beim unverschlüsseltem Einlernen liefert der FSR61 eine andere EEP mit dieser ist ein "TeachInSec" nicht möglich (Fehlermeldung).

define <Name> enOcean EnOID D2-03-00

Bei meinen anderen Aktoren machte die SenderID Probleme, deshalb händisch raus suchen was schon belegt ist.

{EnOcean_CheckSenderID("getUsedID","<IODev>","0000000")};

Dann die letzte nehmen und +1 als subDef eintragen.

Jetzt sollte das Gerät angelegt sein und bei "Set" TeachInSec verfügbar sein.

defmod HaustuerOeffner EnOcean 0530D5A7
attr HaustuerOeffner IODev CUL_EnOcean
attr HaustuerOeffner eep D2-03-00
attr HaustuerOeffner manufID 7FF
attr HaustuerOeffner room EnOcean
attr HaustuerOeffner subDef FFDFE115
attr HaustuerOeffner subType switch.00


Gerät einlernen am Beispiel FSR61

1. Weil man nie sicher sein kann was so ein Gerät beim herum spielen gelernt hat immer den FSR61 komplett zurücksetzten. Oberer Drehschalter auf CLR. (LED blinkt) Unterer Drehschalter 3 mal zum Rechtsanschlag drehen (Drehen im Uhrzeigersinn). LED hört auf zu Blinken und geht aus.

2. Jetzt müssen wir die Bestätigungstelegramme (Bidirektionale Kommunikation) wieder einschalten. Oberer Drehschalter irgendwo hin dann auf CLR. (LED blinkt) Unterer Drehschalter 3 mal zum Linksanschlag drehen (Drehen gegen den Uhrzeigersinn). LED hört auf zu Blinken und geht aus.

3. Jetzt wollen wir den Sensor verschlüsselt einlernen. Oberer Drehschalter irgendwo hin dann auf LRN. Unterer Drehschalter 3 mal zum Linksanschlag drehen (Drehen gegen den Uhrzeigersinn). LED fängt an schnell zu blinken.

4. Jetzt die Verschlüsselung aktivieren und FHEM mit dem FSR61 bekannt machen.

set <Name> teachInSec

Die LED sollte jetzt aufhören zu blinken. Bei Readings steht jetzt "STE teach-in sent". Scheinbar schickt der FSR61 aber kein ACK Telegramm wenn es geklappt hat. Ist wohl bei einigen ELTAKO so https://forum.fhem.de/index.php/topic,75539.msg673530.html#msg673530.

defmod HaustuerOeffner EnOcean 0530D5A7
attr HaustuerOeffner IODev CUL_EnOcean
attr HaustuerOeffner comMode uniDir
attr HaustuerOeffner dataEnc VAES
attr HaustuerOeffner eep D2-03-00
attr HaustuerOeffner keySnd 41C47EBFC3ACF98634F3F88FBB1F8CB3
attr HaustuerOeffner macAlgo 3
attr HaustuerOeffner manufID 7FF
attr HaustuerOeffner rlcAlgo 2++
attr HaustuerOeffner rlcSnd D9BC
attr HaustuerOeffner rlcTX false
attr HaustuerOeffner room EnOcean
attr HaustuerOeffner secLevel encryption
attr HaustuerOeffner secMode snd
attr HaustuerOeffner subDef FFDFE115
attr HaustuerOeffner subType switch.00
setstate HaustuerOeffner 2019-03-13 23:23:19 .rlcSnd D9BC
setstate HaustuerOeffner 2019-03-13 23:23:19 teach STE teach-in sent

5. Jetzt noch den Sensor (Softwareschalter) einlernen den wir benutzen wollen um den FSR61 von FHEM aus zu steuern. Oberer Drehschalter auf LRN. Unterer Drehschalter in meinem Fall auf 80 (Universaltaster).

Jetzt über Set BO die beiden Geräte noch bekannt machen. Das Blinken hört auf und man hört das Relais klacken.

6. Jetzt stelle ich noch den Modus ER mit 6s ein. Beim Auslösen von B0 wird das Relais geschalten und für 6s gehalten. Genau das Richtige für den Türöffner.