Die meisten Enocean Anwender werden die Module von Eltako mit einem TCM120 (BscBor) oder TCM310
USB Stick via Enocean Funk steuern.
Dieses Tutorial beschreibt eine kabelgebundene Anbindung des FHEM-Rechners an den Eltako RS485
Bus, über die sowohl Busaktoren als auch Enocean Funkaktoren gesteuert werden können und auch Enocean Funktelegramme
über das FAM14 Funkantennenmodel am RS485-Bus empfangen werden können.
Über diese Anbindung kann zuverlässiger als über die Funkschnittstelle der Schaltzustand der Busaktoren
erfasst werden. So belastet die zyklische Abfrage der Aktoren-Schaltzustände über den
RS485 Bus auch nicht unnötig das Enocean-Funknetz.
Nachfolgend wird eine Beispielkonfiguration für die FHEM Anbindung an den Eltako RS485
Bus beschrieben:
FHEM Eltako-Enocean/RS485-Bus-Hardware-Minimalkonfiguration
Eine beispielhafte Eltako-Minimalkonfiguration besteht aus folgenden Komponenten:
1 x Eltako FAM14 Funkantennenmodul
1 x FTD14 Bus Telegramm Duplizieret zum Weiterleiten von Bustelegrammen in das Enocean Funknetz
1 x Eltako FGW14 RS232-Gateway für kabelgebundene FHEM Integration
1 x FSR14-4x 4-fach Binäraktor
1 x Enocean Funktaster
Eltako FAM14
Das FAM14 ist ein Enocean-Funk-Antennenmodul für den Eltako-RS485-Bus mit austauschbarer Antenne,
integriertem Schaltnetzteil 12 V DC-1A.
Das FAM14 Modul verfügt über eine USB-Schnittstelle, über die mit der PCT16 Software die
Konfiguration sämtlicher Aktoren ausgelesen werden kann und jeder einzelne Bus-Aktor auch
konfiguriert werden kann. Auf diese Art und Weise lassen sich bei vielen Aktoren Funktionen
konfiguriere, die über die üblichen Drehschalter nicht erreichbar sind.
An der Funkschnittstelle verwendet dieses Modul das Enocean Funkprotokoll und auf
dem RS485 Bus verwendet das Modul das Enocean Serial Protocol 2 (ESP2).
Über die Funkschnittstelle empfangene Enocean Nachrichten setzt dieses Modul in ESP2
Nachrichten um und leitet diese an alle Module weiter, die am Eltako RS485-Bus
angeschlossen sind. Eltako Aktoren der 14er Serie sind bidirektional und erzeugen
Bestätigungstelegramme, die das FAM14 wiederum in das Funknetz sendet.
Über einen Drehschalter lässt sich das FAM14 Modul so konfigurieren, dass es zyklisch den Status
aller am RS485 Bus angeschlossenen Aktoren pollt. Die zyklischen abgefragten Status-
Informationen können wahlweise für alle Aktoren oder für eine mit der Eltako PCT16
Software konfigurierten Liste von Aktoren an das Funknetz weitergeleitet werden.
Eltako RS485 Module lassen sich auf einer Hutschiene montieren und werden über Steckbrücken
verbunden. Über die Steckbrücken werden die Module mit 12V DC und dem RS485 Bus versorgt.
Nach der Montage neuer Aktoren, muss dem neuen Aktor eine Id durch das FAM14 Modul
zugeteilt werden. Diese ID entspricht der Encean ID, die u.a. in den Statusnachrichten der
Module verwendet wird und über die die Module später in FHEM identifiziert werden können.
Eltako FTD14 Bus-Telegramm-Duplizierer
Die Telegramme eingelernter IDs werden dupliziert und mit einer neuen Ausgangs-ID direkt in den
in das Enocean Funknetz gesendet. Diese Funk-Telegramme können gezielt in dezentrale Aktoren
eingelernt werden. Insgesamt stehen 120 Speicherplätze zur Verfügung.
Eltako FGW14
Das Eltako FGW14 Modul stellt ein RS232 Gateway zum Eltako Rs485 Bus dar.
An den Bus können bis zu 3 FGW14 Gateways angeschlossen werden.
Diese Module sind eigentlich dafür vorgesehen, in grösseren Installationen mehrere
Enocean Funk-Empfänger an den Bus anzuschliessen um die Funkabdeckung zu vergrössern,
eine Kopplung zu einem Eltako Serie 12 Bus oder zu einem weiteren Eltako Serie 14
Bus herzustellen. Das Modul macht eine Umsetzung von RS485 auf RS232 und lässt
sich über die RS232 Schnittstelle an einen PC oder embedded PC mit FHEM anschliessen.
An der RS232 Schnittstelle wird das Enocean Serial Protocol 2 (ESP2) verwendet.
Dies ist das selbe Protokoll, das die Enocean TCM120 USB/RS232 Adapter verwenden, für deren
Integration in FHEM es das TCM Modul gibt.
Während das TCM120 Modul nur eine Baudrate von 9600 Baud unterstützt, unterstützt das FGW14
Baudraten von 9600 und 57600 Baud. Eine Baudrate von 57600 Baud entspricht der auf dem
Eltako RS485-Bus verwendeten Baudrate. Die zu verwendende Baudrate lässt sich über einen
Drehschalter am FGW14 einstellen. Für eine FHEM Integration sollte eine Baudrate von 57600
Baud verwendet werden. Dafür muss der FGW14 Drehschalter auf Position 6 gedreht werden
(Bus14 <-> RS232 58K Baud).
Eltako FSR14-4x
Das Eltako FSR14-4x ist ein 4-fach Relais-Modul in der hier beschriebenen Beispielkonfiguration.
Die 4 Relais können getrennt über den Bus durch FHEM angesteuert werden oder auch durch
einen Enocean Funktaster dessen Enocean Funktelegram vom FAM14 Modul auf den RS485 Bus
geschrieben wird.
Nach der Installation des FSR14 Moduls auf der Hutschiene und Anschluss am Bus über die
Steckbrücke muss man das FAM14 Modul einen Busscan durchführen lassen, damit das neu
installierte FSR14 Modul eine Adresse (ID) zugeteilt bekommt.
Der Drehschalter am FAM14 wird auf Pos. 1 gedreht, dessen untere LED leuchtet rot.
Der untere Drehschalter des FSR14 wird auf 1..4 gestellt.
Der mittlere Drehschalter des FSR14 wird auf LRN gedreht, die LED blinkt ruhig.
Nachdem die Adresse vom FAM14 vergeben wurde, leuchtet dessen untere LED für 5 Sekunden
grün und die LED des FSR14 erlischt.Bei diesem Vorgang wird jedem der 4 Relais eine
eigene Enocean Adresse (ID)im Bereich von 1-126 vergeben. Danach werden wieder alle
Drehschalter in ihre Ausgangsposition gedreht.
Anschluss an den FHEM Host-Rechner:
Das FGW14 Modul verfügt über RX und TX Klemmen, an denen das RS232 Signal anliegt.
Diese Klemmen müssen über Kreuz mit den entsprechenden Anschlüssen einer seriellen
Schnittstele des FHEM Hosts angeschlossen werden. D.h., RX von FGW14 mit TX vom Host und
TX von FGW14 mit RX vom Host. Verfügt der FHEM Host über keine RS232 Schnittstelle, so
verwendet man einen entsprechenden USB Adapter.
Konfiguration in fhem.cfg:
# Konfiguration der seriellen Schnittstelle:
#
# Drehschalter des FGW14 auf Pos 6 = 57600 Baud
#
define TCM120 TCM 120 /dev/ttyS3@57600
attr TCM120 alias Eltako FGW14
attr TCM120 verbose 3
Startet man FHEM nach dem Speichern der Konfigurationsänderungen neu sollte man
das fhem.log kontrollieren.
Dort findet man nun folgende Einträge:
2014.04.02 08:43:08 3: Opening TCM120 device /dev/ttyS3
2014.04.02 08:43:08 3: Setting TCM120 baudrate to 57600
2014.04.02 08:43:08 3: TCM120 device opened
2014.04.02 08:43:08 1: get baseID: Bogus answer received: 000000001520C5A55A8B0550000000000000023012
Die dritte Zeile signalisiert, dass erfolgreich eine Verbindung zum FGW14 hergestellt
werden konnte. Anschliessend versucht FHEM die BaseID des vermeintlichen
TCM120 Moduls abzufragen
Da es sich bei einem FGW14 Modul um kein TCM120 Funkmodul mit eigener BaseId handelt
kommt es zu obiger "Bogus answer received" Fehlermeldung.
Diese ist nicht weiter tragisch und kann einfach ignoriert werden.
Wenn in fhem.cfg folgendes Attribut gesetzt wurde
attr global autoload_undefined_devices 1
Dann erzeugt FHEM automatisch neue Einträge in der fhem-Konfiguration,
sobald von einem Sensor oder Aktor das erste Mal eine Nachricht auf dem RS485 Bus ausgetauscht wird.
Befindet sich der obere Drehschalter des FAM14 in Position 4 erhält FHEM über das FGW14 zyklisch
Statusmeldungen von allen Aktoren am RS485 Bus.
Auf Basis dieser Statusmeldungen erzeugt FHEM bereits Defines.
Für ein FSR14-4x wird pro Kanal ein Konfiguration in der folgenden Form generiert:
define EnO_switch_00000007 EnOcean 00000007
attr EnO_switch_00000007 IODev TCM120
attr EnO_switch_00000007 room EnOcean
attr EnO_switch_00000007 subType switch
define FileLog_EnO_switch_00000007 FileLog ./log/EnO_switch_00000007-%Y.log EnO_switch_00000007
attr FileLog_EnO_switch_00000007 logtype text
attr FileLog_EnO_switch_00000007 room EnOcean
Mit solch einer Konfiguration ist es bereits möglich Statusmeldungen und Signale von
Enocean Tastern und Sensoren in FHEM lesend auszuwerten.
Eltako RS485-Busaktoren mit FHEM ansteuern:
Steuert man Enocean Aktoren auf dem herkömmlichen Weg über TCM120 oder TCM310 USB Adapter
über Funk an, muss FHEM eine Absender ID aus dem Adressbereich des jeweiligen TCM USB-
Adapters verwenden. Diese Einschränkung gilt nicht für die Kommunikation mit den
Aktoren über den RS485 Bus. D.h., FHEM darf beliebige IDs verwenden, solange diese
eindeutig sind.
Möchte man mit einem FHEM-Webcmd Schalter einen Kanal eines FSR14-4x schalten, so muss
die automatisch generierte Konfiguration für das FSR14-4x Relais angepasst werden.
Dazu wird dem FHEM Schalter die frei gewählte ID 00100007 zugeordnet. Um die Übersicht
über vergebene IDs zu behalten, sollte man diese systematisch vergeben: z.B.
FHEM-ID= Aktor-ID+0x00100000.
Nun müssen FHEM-ID und Aktor-ID einander zugeordnet werden. Dies erfolgt über ein
Sub-Define innerhalb des FSR14 Defines mit dem subDef Attribut, dem man die FHEM-ID
zuweist.
Im folgenden Beispiel ist nun der FHEM-Schalter mit der ID 00100007 dem Aktor mit der
ID 00000007 zugeordnet.
#
# LAMPE
#
# B0: Lampe an
# BI: Lampe aus
#
define EnO_switch_00000007 EnOcean 00000007
attr EnO_switch_00000007 IODev TCM120
attr EnO_switch_00000007 alias LAMPE
attr EnO_switch_00000007 event-on-change-reading state,buttons,channelA,channelB
attr EnO_switch_00000007 group Beleuchtung
attr EnO_switch_00000007 gwCmd switching
attr EnO_switch_00000007 icon light_outdoor
attr EnO_switch_00000007 room Garten
attr EnO_switch_00000007 subDef 00100007
attr EnO_switch_00000007 subType gateway
Abschliessend muss die FHEM-ID noch in den Aktor eingelernt werden.
Dazu stellt man den zur ID 00000007 zugehörigen Kanal am unteren Drehschalter des FSR14 ein
und den oberen Drehschalter auf die Position LRN (Learn).
Anschliessend muss im Kommandofeld von FHEM das teach Kommando wie folgt eingegeben werden:
set EnO_switch_00000007 teach
Danach müssen die Drehschalter des FSR14-4x wieder in ihre Ausgangsposition gebracht werden.
Der Einlernvorgang ist abgeschlossen.
Über den FHEM-Schalter mit dem Namen "LAMPE" im Raum "Garten" kann nun das Relais
geschaltet werden!
Sofern man mit der Eltako PCT16 Software vertraut ist, kann man sich diesen etwas umständlichen
Einlernvorgang auch sparen und die in den subDefs verwendeten IDs auch direkt über die
PCT16 Software in den Aktoren konfigurieren.
Enocean Funkaktoren mit FHEM ansteuern:
Um einen Funkaktor anzusteuern muss eine frei gewählte ID in das FTD14 Modul eingelernt werden.
Dabei muss wie folgt vorgegangen werden:
Den unteren Drehschalter auf LRN stellen. Die obere rote LED blinkt ruhig.
In FHEM folgendes Kommando ausführen:
set EnO_switch_0000000X teach
Die obere rote LED erlischt.
Um unbeabsichtigtes Lernen zu verhindern, muss für weitere Lernvorgänge der Drehschalter
neu auf LRN gedreht werden, die obere rote LED blinkt wieder ruhig.
Das FTD14 Modul bildet die eingelernte ID auf eine eigene ID ab, die in das Funknetz gesendet wird.
In einen Funkaktor muss anschliessend die vom FTD14 verwendete ID eingelernt werden.