EnOcean Starter Guide
Todo: 2.2 Tabelle überarbeiten; 4. Detaillierungsgrad ggfs. erhöhen; 4.4 einarbeiten in 4 ggfs. ausgliedern |
EnOcean
EnOcean ist
- ein ISO ratifizierter Funkstandard, ausgelegt für Funksensoren und Funksensornetze mit besonders niedrigem Energieverbrauch
- ein Anbieter batterieloser Funksensoren
EnOcean-Endgeräte mit dem von der EnOcean Alliance zur Verfügung gestellten EnOcean-Funkprotokoll werden von zahlreichen Hardware-Herstellern angeboten.
EnOcean Equipment Profile
Abhängig von den Funktionen des EnOcean-Endgerätes werden bestimmte Anwendungs-Profile/Funk-Telegramme, die sogenannten EnOcean Equipment Profiles (EEPs), zur Funkkommunikation genutzt. Technische Details zum EnOcean-Funkprotokoll und insbesondere zu den EnOcean Equipment Profiles (EEPs) sind auf der Internetseite der EnOcean Alliance zu finden.
Manufacturer Specific Communication
EnOcean bietet -neben den veröffentlichten Standard-Enocean-Profilen- die Möglichkeit für die Nutzung von herstellerspezifischen Funk-Profilen/Telegrammen (MSC = Manufacturer Specific Communication). Falls die Herstellerfirmen den Inhalt dieser MSC-Telegramme nicht veröffentlichen, ist eine Unterstützung durch Fhem grundsätzlich nicht möglich. Teilweise werden die Produkte sowohl mit MSC- als auch mit Standard-Enocean-Profilen vertrieben [1]. Angaben zu den verwendeten Profilen/Telegrammen sind den Bedienungsanleitungen der Produkte zu entnehmen.
uni- versus bidirektional
EnOcean-Endgeräte gibt es sowohl in uni- als auch in bidirektionalen Ausführungen. Bei unidirektionalen Endgeräten erfolgt die Funk-Kommunikation nur in eine Richtung. Einem Aktor, der Licht schaltet, kann zwar der Befehl zum An- bzw. Ausschalten gegeben werden, er liefert aber keine Rückinformation über die erfolgreiche Ausführung des Befehls. Bei bidirektionalen Endgeräten erfolgt die Funk-Kommunikation hingegen in zwei Richtungen: sie bieten
- Sende- und
- Empfangsmöglichkeiten.
Der bidirektionale Aktor kann somit unter anderem die erfolgreiche Ausführung eines empfangenen Befehls zurückmelden.
SenderID
Damit EnOcean Funk-Aktoren (z.B. Relais, Dimmer, Heizungsventil...) auf EnOcean Sensoren (z.B. Taster, Temperatursensor, Fensterkontakt, Energieverbrauchsmesser...) reagieren können, werden die Sensoren bei den Aktoren eingelernt (Teach-in). So wird festgelegt, dass z.B. "Funktaster 1" den "Dimmer 1" steuert. Alle EnOcean Geräte mit Sendefunktion haben mindestens eine eindeutige, unabänderliche 8-stellige Hex-SenderID (z.B. ffc54500; teilweise auch dargestellt mit Punkten oder Doppelpunkten dazwischen). Die SenderID ist meist auf den EnOcean Geräten aufgedruckt oder liegt der Verpackung des Endgerätes bei. Beim Anlernvorgang wird die eindeutige SenderID des Sensors in der Empfängertabelle des Aktors gespeichert.
EnOcean in Fhem
Allgemein
Fhem wird fortwährend weiterentwickelt und verbessert. Daher ist es zwingend notwendig, dass Fhem auf dem aktuellsten Stand ist. Dazu nach der Fhem-Installation den Befehl update
ausführen und anschließend shutdown restart
durchführen. Genauso auch vor Anfragen im Forum die Aktualität von Fhem überprüfen.
Die Nutzung von EnOcean in Fhem ist für den Anfänger nur mit der standardmäßig eingeschalteten autocreate-Funktion einfach umsetzbar. Die Kenntnis der Fhem-Grundlagen und Durcharbeitung der Anfänger-Lektüren wird im Folgenden vorausgesetzt. Insbesondere ist Heimautomatisierung mit Fhem zu empfehlen, auch wenn es nicht speziell EnOcean behandelt, so werden doch wesentliche Punkte für ein Verständnis von Fhem vermittelt.
Im Folgendem und auf den Wiki-Seiten der Einzelgeräte werden immer wieder Auszüge aus der fhem.cfg dargestellt. Diese dienen zur Erläuterung und Veranschaulichung. Die Bearbeitung der fhem.cfg sollte -zur Verhinderung von Anfängerfehlern- nach Möglichkeit immer über das "Befehl-Eingabefeld" und die "Objektdetails" erfolgen.
Vorbereitung
Die SenderIDs der EnOcean-Geräte haben eine zentrale Bedeutung in Fhem. Sie sind eindeutiges Unterscheidungsmerkmal, werden von Fhem im Rahmen der Funkkommunikation genutzt und in der Definition der Geräte bzw. den Attributen des Geräte hinterlegt. Es empfiehlt sich daher, eine Tabelle aufzubauen mit folgender oder ähnlicher Struktur:
A | B | C | D | E |
---|---|---|---|---|
Nr. | Name EnOcean | Name in Fhem | HEX (Sender-ID) | Zimmer |
<Name Hardwareschalter> | <Name in Fhem> | <HEX Code> | <Raumname> | |
TCM 310_0 | TCM 310_0 | AABBCC00 | ||
1 | EnO_switch_123456 | eg_fl_Licht | AABBCC01 | EG_Flur |
... | ||||
128 |
Definition von TCM / Gateway
Fhem kann mit einem Funkgateway, das auf einem TCM-Modul basiert, EnOcean-Funk empfangen und senden. Bisher gibt es zwei Transceiver Chips von EnOcean:
- TCM120 (ausgelaufen)
- für den USB-Port: BSC BOR
- TCM310
- als USB-Stick: USB 300 und Busware EUL
- als Aufsteckmodul für Raspberry Pi: EnOceanPi
Zudem existiert eine Lösung zur kabelgebundenen Anbindung des FHEM-Rechners mittels Eltako FGW14 an den Eltako RS485-Bus, über die sowohl Busaktoren als auch Enocean Funkaktoren gesteuert werden können und auch Enocean Funktelegramme über das FAM14 Funkantennenmodul am RS485-Bus empfangen werden können.
Das TCM-basierte Gateway wird nach dem Anschluss an den Fhem-Rechner beim Fhem-Start automatisch erkannt und grundlegend durch entsprechende Einträge in der fhem.cfg definiert. Ein manuelles Anlegen des TCM-Moduls oder Eingriff in die fhem.cfg ist nicht notwendig und auch nicht ratsam. Eine Ausnahme bilden RS485-basierte Gateways (bspw. FGW14) bei denen manuell das Attribut comType
auf RS485
in der fhem.cfg gesetzt werden muss, da ansonsten Fhem nicht mehr startet.
Beispiele der automatisch erzeugten define-Zeile in der fhem.cfg:
TCM120/BSCBor an Rapberry Pi:
define BscBor TCM ESP2 /dev/ttyACM0@9600
TCM310/EnOceanPi an Raspberry Pi:
define TCM310_0 TCM ESP3 /dev/ttyACM0@57600
TCM310/USB300 an Fritzbox
define TCM310_0 TCM ESP3 /dev/ttyUSB3@57600
Hier Beispiel der define-Zeile in der fhem.cfg für kabelgebundene Anbindung mit FGW14 über serielle Schnittstelle
define TCM120 TCM ESP2 /dev/ttyS3@57600 attr TCM120 comType RS485 <---- Manuell zu setzen; zwingend, sonst startet Fhem nicht!!
Nach erfolgreicher Definition ist das Gateway im Raum "Everything" in der Gruppe "TCM" zu finden. Wenn neben dem Gatewaynamen "initialized" oder "opened" angezeigt wird, ist Fhem in der Lage mit den EnOcean-Geräten zu kommunizieren.
Wie im Einführungsabschnitt bereits erläutert hat jedes sendende EnOcean-Endgerät mindestens eine eindeutige SenderID. Diese SenderID kann aus Sicherheitsgründen nicht vom EnOcean-Gateway simuliert werden. Vielmehr hat das Gateway eigene SenderIDs, die separat in die Endgeräte angelernt werden müssen. Das Gateway stellt 128 verschiedene SenderIDs zur Verfügung. Ausgehend von der baseID, die bei jedem Gateway grundsätzlich anders ist, werden die SenderIDs fortlaufend hexadezimal hochgezählt:
- Fhem stehen 127 fortlaufende eigene SenderID zur Verfügung
- beginnend mit der baseID des TCM + 1
Die baseID des TCM erhält man durch Eingabe von
get TCM310_0 baseID
in das Befehl-Eingabefeld (TCM310_0 gegebenenfalls durch den eigenen Gatewaynamen ersetzten).
Das Webfrontend zeigt dann:
BaseID=AABBCC00,RemainingWriteCycles=0A
Die niedrigste SenderID in diesem Beispiel ist AABBCC01 (BaseID=AABBCC00 +1 HEX!!!)
Nach der Definition des Gateways und Ermittlung der baseID des Gateways kann nun der nächste Schritt, die Definition der EnOcean-Geräte in Fhem, erfolgen.
Mehr Details in der commandref zu TCM
Definition von Geräten
Definition / Anlernvorgang (Teach-In)
Damit Fhem und EnOcean-Geräte miteinander kommunizieren können, müssen sie untereinander bekannt gemacht werden. Dies geschieht durch Definition des Gerätes in Fhem und den Anlernvorgang. Dazu muss sich Fhem im learningMode befinden. Viele Geräte werden von Fhem während des Anlernvorgangs automatisch erkannt und definiert. Dennoch ist ein grundlegendes Verständnis der Anlernvorgänge und Unterscheidungsprinzipen in Fhem und EnOcean notwendig. Sofern das Gerät Bestätigungstelegramme verschicken kann, sind diese zwingend vorher am Gerät einzuschalten (u.a. Eltako).
Fhem entnimmt die Angaben, wie ein Funk-Telegramm für ein bestimmtes Gerät aufgebaut ist, im Wesentlichen aus den Attributen subType
, manufID
und/oder model
der Definition des Gerätes:
subtype
: genutztes EEP-Profil des Gerätes (steht meist in der Bedienungsanleitung des Gerätes)manufID
: Code für den Hersteller des Gerätesmodel
: Modell des Gerätes
Während des Anlernvorgangs werden diese Angaben von Fhem soweit wie möglich automatisch in der Definition vorbelegt. Hinweise zu den Besonderheiten von bestimmten Geräten und EEP-Profilen finden sich oft in der commandref zu EnOcean. Darum bitte immer in der commandref zunächst nach dem speziellen Gerät (Modellbezeichnung) suchen, wenn dies keinen Treffer liefert nach dem verwendeten EEP suchen. Die gegebenen Hinweise und Erläuterungen dort beachten.
Die Definition und der Anlernvorgang unterscheiden sich je nach Gerätetyp:
- Sensoren:
- Schalter (EEP RPS): werden automatisch beim ersten empfangenen Funktelegramm in Fhem mit den notwendigen Attributen angelegt.
- Kontakte (EEP 1BS): werden automatisch beim ersten empfangenen Funktelegramm in Fhem mit den notwendigen Attributen angelegt.
- Sonstige Sensoren (EEP 4BS): Durch Versand eines speziellen Anlern-Funktelegramms können sie in Fhem automatisch mit den notwendigen Attributen angelegt werden. Im Anlerntelegramm übermittelt der Sensor Fhem die EEP-Profilangabe und die Hersteller-ID. Aufgrund dieser Angaben kann Fhem das Gerät eindeutig erkennen und die richtigen Attribute in Fhem setzen. Einige wenige Sensoren verschicken leider ein Anlerntelegramm ohne EEP-Profilangabe und/oder Herstellerangabe (Bsp: Omnio Ratio eagle-PM101). Bei diesen Sensoren müssen die Attribute subType, manufID und/oder model manuell in Fhem gesetzt werden, damit eine richtige Auswertung der Funktelegramme erfolgt.
- Aktoren (4BS, VLD/UTE, MSC): Bei den Aktoren gibt es je nach Gerätetyp verschiedene Anlernvorgänge, die unterschiedlich in Fhem ausgeführt werden. Einige Aktoren unterstützen auch mehrere Anlernvorgänge. Grundsätzlich muss wegen abweichender Vorgehensweise in Fhem unterschieden werden zwischen
- unidirektionalen Aktoren und
- bidirektionalen Aktoren
In den nachfolgenden Gliederungspunkten wird beispielhaft für ein Gerät aus den obigen Gerätetypen die Einbindung in Fhem erläutert.
Grundlegend gilt immer: Fhem legt sendende, noch nicht definierte EnOcean Geräte selbst an, wenn
- in fhem.cfg autocreate aktiviert ist:
- Fhem/das TCM-Modul sich im
learningMode
befindet und - Fhem eine Nachricht vom noch nicht definierten EnOcean Gerät empfängt
Im Webfrontend werden neue Geräte im Raum EnOcean angezeigt.
Sensoren
Sensoren Beispiele:
Schalter/Switch
PTM 210 - Schaltermodul Datenblatt
EEP: F6-02-xx
Fhem in den learingMode (set <IODev> teach
) versetzen, dazu im Befehl-Eingabefeld eingeben:
set TCM310_0 teach 600
Dann einen beliebigen Taster des Moduls drücken (und loslassen). Beim Drücken des Tasters wird vom Taster eine Nachricht ausgesendet, die von Fhem empfangen wird. Daraufhin definiert Fhem automatisch den Taster und der Taster ist in Fhem angelernt. Fhem fügt dazu folgenden Code zur fhem.cfg hinzu:
- exemplarischer Auszug aus fhem.cfg
define EnO_switch_FFC54500 EnOcean FFC54500 <-- "FFC54500" ist die 8-stellige Hex-SenderID des Tasters attr EnO_switch_FFC54500 IODev TCM310_0 attr EnO_switch_FFC54500 room EnOcean attr EnO_switch_FFC54500 subType switch <-- handelt sich um einen Schalter # attr EnO_switch_FFC54500 eventMap AI:off A0:on BI:an B0:aus <-- bei Bedarf ... die gemapten Werte (hier: off, on, an, aus) sollen eindeutig sein define FileLog_EnO_switch_FFC54500 FileLog ./log/EnO_switch_FFC54500-%Y.log EnO_switch_FFC54500 attr FileLog_EnO_switch_FFC54500 logtype text
Ein Schalter (hier: FT55) hat vier Taster:
Taster | in Fhem |
links oben | A0 |
links unten | AI (nicht "eins" sondern "i"!) |
rechts oben | B0 |
rechts unten | BI |
Das Log FileLog_EnO_switch_FFC54500 zeichnet beim einmaligen Drücken des linken unteren Tasters ("AI") folgendes auf:
2014-01-01_07:00:01 EnO_switch_FFC54500 buttons: pressed 2014-01-01_07:00:01 EnO_switch_FFC54500 channelA: AI 2014-01-01_07:00:01 EnO_switch_FFC54500 AI 2014-01-01_07:00:02 EnO_switch_FFC54500 buttons: released
Der angelegte Sensor repräsentiert im Webfrontend den physischen Schalter (bspw. an der Wand). Ein Druck auf den physischen Taster ändert den Zustand im Webfrontend. Jedoch führt ein Schalten des Repräsentanten im Webfrontend nicht zu einer Schaltung des Aktors.
Fhem kann sich nicht als einer der vorhandenen (automatisch angelegten) physischen Sensoren ausgeben (um z.B. das Licht zu schalten) sondern verwendet eigene SenderID - siehe unten. Diese Fhem-eigenen SenderIDs können mit Hilfe eines virtuellen Fhem-Schalters in EnOcean Aktoren eingelernt werden, damit die Aktoren auf Fhem reagieren siehe unten.
Kontakte
STM 320 Batterieloses Magnetkontakt-Funkmodul (Datenblatt)
EEP: D5-00-01
Fhem in den learingMode versetzen, dazu im Befehl-Eingabefeld eingeben:
set TCM310_0 teach 600
Anlerntelegramm laut Anleitung verschicken oder Magnetkontakt öffnen und schließen.
Der Kontakt wird automatisch in Fhem definiert und ist angelernt.
- exemplarischer Auszug aus fhem.cfg
define EnO_contact_0000FF53 EnOcean 0000FF53 attr EnO_contact_0000FF53 IODev TCM310_0 attr EnO_contact_0000FF53 room EnOcean attr EnO_contact_0000FF53 subType contact define FileLog_EnO_contact_0000FF53 FileLog ./log/EnO_contact_0000FF53-%Y.log EnO_contact_0000FF53 attr FileLog_EnO_contact_0000FF53 logtype text attr FileLog_EnO_contact_0000FF53 room EnOcean
Sonstige Sensoren
4BS-Teach-In
Fhem in den learingMode versetzen, dazu im Befehl-Eingabefeld eingeben:
set TCM310_0 teach 600
Dann das Anlerntelegramm laut Bedienungsanleitung am Sensor auslösen. Der Sensor wird dann wird automatisch in Fhem definiert und ist angelernt.
Profilloses 4BS-Teach-In
Omnio Ratio eagle-PM101 Licht- und Anwesenheitssensor (Betriebsanleitung)
Fhem in den learingMode versetzen, dazu im Befehl-Eingabefeld eingeben:
set TCM310_0 teach 600
Das Anlerntelegramm vom Omnio Ratio eagle-PM101 verschicken (MÖGLICH??)
Im angelegten Fhem-Device manuell das Attribut subType
auf PM101
setzen.
Aktoren
Die Bedienungsanleitungen und die commandref liefern Informationen, welche Anlernvorgänge der Aktor unterstützt. Finden sich keine Hinweise auf besondere PC- oder Gateway-Anlernvorgänge, so kann Fhem immmer als virtueller Fhem-Schalter (Tasteremulation) eingelernt werden. Einige Aktoren unterstützen mehrere Arten von Anlernvorgängen. Hier ist der mit den meisten/besten Steuerungsmöglichkeiten zu bevorzugen.
Aktoren Beispiele:
unidirektionale Aktoren
Eine SenderID des TCM-Gateways muss bei unidirektionalen Aktoren immer im define
des Devices stehen.
Teach-In als Tasteremulation
PEHA 451 FU-EP o.T. (Schaltaktor unidirektional)
Fhem in den learingMode versetzen, dazu im Befehl-Eingabefeld eingeben:
set TCM310_0 teach 600
Eine frei SenderID des TCM-basierten Gateways heraussuchen und diese als EnOcean-Gerät in Fhem definieren, dazu im Befehl-Eingabefeld eingeben:
define eg_fl_Licht EnOcean AABBCC01
Hierdurch wird in Fhem ein EnOcean-Gerät definiert, das standardmäßig das Attribut subType
auf switch
gesetzt hat. Fhem emuliert mit diesem EnOcean-Gerät einen EnOcean-Schalter (virtueller Fhem-Schalter).
Dieser virtuelle Fhem-Schalter wird in den Aktor wie ein physischer Schalter eingelernt. Den Aktor in den Anlernmodus bringen (Taste LRN/SET drücken) und den virtuellen Fhem-Schalter betätigen, indem im Befehl-Eingabefeld eingeben wird:
set eg_fl_Licht B0
Wenn der Aktor den erfolgreichen Anlernvorgang signalisiert, den Anlermodos am Aktor ausschalten.
- exemplarischer Auszug aus fhem.cfg
define eg_fl_Licht EnOcean AABBCC01 <--- AABBCC01 ist eine der 127 SenderID's des TCM mit der Fhem sendet attr eg_fl_Licht room EG_Flur attr eg_fl_Licht eventMap BI:off B0:on attr eg_fl_Licht subType switch define FileLog_eg_fl_Licht FileLog ./log/ eg_fl_Licht-%Y.log eg_fl_Licht attr FileLog_eg_fl_Licht logtype text
Der Status des Devices im Webfrontend stimmt bei unidirektionalen Aktoren nur, wenn die Steuerung des Aktor ausschließlich über Fhem erfolgt. Wird der Aktor sowohl über einen physischen Schalter als auch über Fhem gesteuert, so müssen die Stati der beiden Devices für physischen und virtuellen Schalter im Webfrontend verknüpft werden, damit der richtige Status des Aktors angezeigt wird. (siehe unten)
Teach-In als Gateway/PC-Steuerung
"ältere" Eltako FSB61 (Produktionszeitraum KW 43/10 - KW 40/11) Bedienungsanleitung
EEP: A5-3F-7F
Fhem in den learingMode versetzen, dazu im Befehl-Eingabefeld eingeben:
set TCM310_0 teach 600
Eine frei SenderID des TCM-basierten Gateways heraussuchen und diese als EnOcean-Gerät in Fhem definieren, dazu im Befehl-Eingabefeld eingeben:
define eg_fl_Rollo EnOcean AABBCC02
Hierdurch wird in Fhem ein EnOcean-Gerät definiert, das standardmäßig das Attribut subType
auf switch
gesetzt hat. Das Attribut subType
muss auf manufProfile
geändert werden. Die Attribute manufID
und model
müssen auf die unten in der fhem.cfg gezeigten Werte gesetzt werden.
Dieser virtuelle Fhem-Schalter wird in den Aktor als PC/Szenentaster eingelernt indem im Befehl-Eingabefeld eingeben wird:
set eg_fl_Rollo teach
Wenn der Aktor den erfolgreichen Anlernvorgang signalisiert, den Anlermodos am Aktor ausschalten.
- exemplarischer Auszug aus fhem.cfg
define eg_fl_Rollo EnOcean AABBCC02 <--- AABBCC02 ist eine der 127 SenderID's des TCM mit der Fhem sendet attr eg_fl_Rollo room EG_Flur attr eg_fl_Rollo subType manufProfile attr eg_fl_Rollo manufID 00D attr eg_fl_Rollo model FSB61
bidirektionale Aktoren
Eine SenderID des TCM-Gateways muss bei bidirektionalen Aktoren immer im Attribut subDef
des Devices stehen.
Unidirektionales 4BS-Teach-In
RS485-Bus-Aktor 4-Kanal-Stromstoß-Schaltrelais FSR14 Schaltrelais (bidirektional)
Fhem in den learingMode versetzen, dazu im Befehl-Eingabefeld eingeben:
set TCM310_0 teach 600
Die SenderID des Aktors heraussuchen und diese als EnOcean-Gerät in Fhem definieren, dazu im Befehl-Eingabefeld eingeben:
define EnOcean_switch_FEFF4AF8 EnOcean FEFF4AF8
Eine frei SenderID des TCM-basierten Gateways heraussuchen und diese im Attribut subDef
des angelegten Device hinterlegen.
Anschließend die Attribute subType
und gwCmd
wie im unten wiedergegebenen exemplarischen Auszug aus der fhem.cfg anlegen.
Jetzt den Aktor in den Lernmodus versetzen und dann von Fhem das Lerntelegramm verschicken:
set EnOcean_switch_FEFF4AF8 teach
Lernmodus am Aktor ausschalten
- exemplarischer Auszug aus fhem.cfg
define EnOcean_switch_FEFF4AF8 EnOcean FEFF4AF8 <--- FEFF4AF8 ist hier die SenderID eines FSR14-Kanals (Aktor) attr EnOcean_switch_FEFF4AF8 subDef AABBCC03 <--- AABBCC03 ist eine der 127 SenderID's des TCM mit der Fhem sendet (siehe unten) attr EnOcean_switch_FEFF4AF8 room EnOcean # Der Raum kann angepasst werden attr EnOcean_switch_FEFF4AF8 gwCmd switching # Wichtig für FSR14 attr EnOcean_switch_FEFF4AF8 subType gateway # Wichtig für FSR14 define FileLog_EnOcean_switch_FEFF4AF8 FileLog ./log/EnOcean_switch_FEFF4AF8-%Y.log EnOcean_switch_FEFF4AF8 attr FileLog_EnOcean_switch_FEFF4AF8 logtype text
(entnommen Forenbeitrag [2], der weitere Erläuterungen enthält.)
Bidirektionales 4BS-Teach-In
Kleinstellantrieb MD15-FTL-xx Funkgesteuerter, batteriegespeister Kleinstellantrieb für Raumtemperaturregelung. (bidirektional)
EEP: A5-20-01
4BS-Bidirektionales-Teach-In:
- Aktor möglichst komplett zurücksetzen, sofern nicht mehr im Original-Auslieferzustand
- Falls vorhanden, alle bisherigen Fhem Devices des Aktors löschen
- Fhem in Lernmodus schalten:
set <IODev> teach
- Taster am MD15-FTL-xx so lange drücken, bis ein Signalton ertönt. MD15 bestätigt erfolgreichen Anlernvorgang durch das Aufleuchten der Status-LED und 2 Signaltöne
- Aktor wird in Fhem automatisch mit allen notwendigen Parametern angelegt.
- exemplarischer Auszug aus fhem.cfg
define EnO_sensor_01000EFA EnOcean 01000EFA attr EnO_sensor_01000EFA IODev TCM310_0 attr EnO_sensor_01000EFA comMode biDir attr EnO_sensor_01000EFA destinationID unicast attr EnO_sensor_01000EFA manufID 00A attr EnO_sensor_01000EFA room EnOcean attr EnO_sensor_01000EFA subDef AABBCC04 attr EnO_sensor_01000EFA subType hvac.01 define FileLog_EnO_sensor_01000EFA FileLog ./log/EnO_sensor_01000EFA-%Y.log EnO_sensor_01000EFA attr FileLog_EnO_sensor_01000EFA logtype text attr FileLog_EnO_sensor_01000EFA room EnOcean
UTE-Teach-In
Einbau-Aktor 452 FU-EBIM o.T. 2-Kanal-Multifunktionsaktor (bidirektional) mit Energiemessfunktion
EEP: D2-01-08
UTE-Teach-In:
- Aktor möglichst komplett zurücksetzen, sofern nicht mehr im Original-Auslieferzustand
- Falls vorhanden, alle bisherigen Fhem Devices des Aktors löschen
- Fhem in Lernmodus schalten:
set <IODev> teach
- Aktor-Kanal 0 oder 1 in Lernmodus versetzen (immer nur einen Kanal)
- Aktor-Kanal 0 oder 1 wird in Fhem automatisch mit allen notwendigen Parametern angelegt.
- Das Anlernen für den zweiten Kanal wie nach 3. bis 5. beschrieben wiederholen
Die Kanäle können jetzt geschaltet werden mit:
- Fhem Device für Kanal 0: set <Name_0> on|off 0
- Fhem Device für Kanal 1: set <Name_1> on|off 1
Falls gewünscht, kann der Kanal mit dem Attribut attr <Name_0|1> defaultChannel 0|1 voreingestellt werden. Dann entfällt die Angabe des Kanals im set-Befehl.
Die Statusrückmeldungen mit den aktuellen Werten des Energieverbrauches und der Leistung werden vom Aktor automatisch gesendet. Sie werden sowohl als Telegramme nach EEP D2-01-08 als auch nach EEP A5-11-04 mit unterschiedlichen SenderIDs (vgl. Etikett in Original-Verpackung) gesendet. Die Rückmeldungen nach EEP D2-01-08 werden von Fhem im Aktor-Device subType actuator.01 berücksichtigt. Die Rückmeldungen nach EEP A5-11-04 werden von Fhem in einem senor-device subType lightCtrlState.02 berücksichtigt.
(entnommen Forenbeitrag, der weitere Erläuterungen enthält.)
Schalter - physisch und virtuell in Fhem
Fhem kann sich nicht als einer der vorhandenen (automatisch angelegten) Sensoren ausgeben (um z.B. das Licht zu schalten) sondern verwendet eigene SenderID.
- Fhem stehen 127 fortlaufende eigene SenderIDs zur Verfügung
- beginnend mit der baseID des TCM + 1
Die baseID des TCM erhält man mit dem Befehl
get TCM310_0 baseID
im Eingabefenster (gefolgt vom Drücken der "Eingabe"-Taste ;-) ) Das Webfrontend zeigt dann:
BaseID=AABBCC00,RemainingWriteCycles=0A
Die niedrigste SenderID in diesem Beispiel ist AABBCC01 (BaseID=AABBCC00 +1 HEX!!!)
Definition eines virtuellen Fhem Schalters zum Steuern von EnOcean Aktoren
define fhemSchalter EnOcean AABBCC01 <--- AABBCC01 ist eine der 127 SenderID's des TCM mit der Fhem sendet attr fhemSchalter subType switch
Durch diese Definition wird ein 8-fach Taster (4 Kanälen (A,B,C,D) zu je 2 Tasten (0,I)) erzeugt (all diese 8 Taster senden mit der gleichen SenderID des TCM). Das entspricht einem Gerät mit 4 Schaltwippen die jeweils "oben" oder "unten" gedrückt sein können.
Der Taster 0 des Kanal A wird "gedrückt" mit
set fhemSchalter A0
Aufteilung der Kanäle in unabhängige Devices
Um die 4 Kanäle jeweils einzeln als Schalter (einzelne Schaltwippe) im WebFrontend abzubilden dient folgende Konstruktion: siehe auch ReadingsProxy
#Kanal A zur Steuerung mit on und off define fhemSchalterKanalA readingsProxy fhemSchalter:state attr fhemSchalterKanalA setFn {($CMD eq "on")?"A0":"AI";;} attr fhemSchalterKanalA setList on off attr fhemSchalterKanalA valueFn {$LASTCMD} attr fhemSchalterKanalA webCmd on:off
#Kanal B zur Steuerung mit on und off define fhemSchalterKanalB readingsProxy fhemSchalter:state attr fhemSchalterKanalB setFn {($CMD eq "on")?"B0":"BI";;} attr fhemSchalterKanalB setList on off attr fhemSchalterKanalB valueFn {$LASTCMD} attr fhemSchalterKanalB webCmd on:off
#Kanal C zur Steuerung mit on und off define fhemSchalterKanalC readingsProxy fhemSchalter:state attr fhemSchalterKanalC setFn {($CMD eq "on")?"C0":"CI";;} attr fhemSchalterKanalC setList on off attr fhemSchalterKanalC valueFn {$LASTCMD} attr fhemSchalterKanalC webCmd on:off
#Kanal D zur Steuerung mit on und off define fhemSchalterKanalD readingsProxy fhemSchalter:state attr fhemSchalteKanalD setFn {($CMD eq "on")?"D0":"DI";;} attr fhemSchalterKanalD setList on off attr fhemSchalterKanalD valueFn {$LASTCMD} attr fhemSchalterKanalD webCmd on:off
Werden diese Fhem Taster (und etwaige physische Taster) in EnOcean Aktoren eingelernt (siehe Anleitung des Aktors), so können nun die EnOcean Aktoren mit physischen Tastern (sendet mit der 8-stelligen SenderID des Tasters) und mit virtueller Fhem-Schaltern (sendet mit einer der 127 eigenen SenderIDs) bedient werden.
Physischer EnOcean- und virtueller Fhem-Schalter zu einem Device zusammenfassen
Um im Webfrontend die Aktionen beider Schalter in einem Element zusammengefasst und damit den realen Zustand bei unidirektionalen Aktoren zu sehen, dient folgendes Konstrukt mit einer structure
:
(Bei bidirektionalen Aktoren ist dies aufgrund der Statusrückmeldungen nicht notwendig. Achtung: Teilweise müssen Statusrückmeldungen/Bestätigungstelegramme erst am Aktor eingeschaltet werden)
#Definition des virtuellen Fhem-Schalters define fhemSchalter EnOcean AABBCC01 <--- AABBCC01 ist eine der 127 SenderID's des TCM mit der Fhem sendet attr fhemSchalter eventMap BI:off B0:on attr fhemSchalter icon icoBELEUCHTUNG.png attr fhemSchalter subType switch #Definition des physischen Tasters (z.B. durch autocreate erzeugt) define EnO_switch_0021E4BB EnOcean 0021E4BB <--- 0021E4BB ist die (aufgedruckte) 8-stellige SenderID des physischen Tasters attr EnO_switch_0021E4BB eventMap BI:off B0:on attr EnO_switch_0021E4BB room EnOcean attr EnO_switch_0021E4BB subType switch attr EnO_switch_0021E4BB dummy #fhemSchalter ist der Name des virtuellen Fhem-Schalters #EnO_switch_0021E4BB ist der (z.B. per autocreate erstellte) Fhem-Taster define Gruppe_test_notify structure room fhemSchalter EnO_switch_0021E4BB attr Gruppe_test_notify eventMap BI:off B0:on attr Gruppe_test_notify room Gaestezimmer attr Gruppe_test_notify clientstate_behavior last
Alternativ kann man für diesen Zweck auch ein notify
in Verbindung mit setreading <device> state <state>
nutzen:
define nAbgleich notify EnO_switch_0021E4BB:(on|off) setreading fhemSchalter state $EVENT
FAQ
Warum schaltet mein Aktor nicht, wenn ich im WebFrontend auf das Icon für den physischen Taster/Schalter klicke bzw. mit set <device> <command>
ansteuere?
- Aus Sicherheitsgründen können bei EnOcean keine physischen Geräte(-adressen) durch Fhem bzw. das TCM-Gateway emuliert werden. Fhem muss zur Steuerung separat an den Aktor angelernt werden. Dazu eine der TCM-Adressen an den Aktor anlernen.
Welche Infos sollten Anfragen im EnOcean-Forum enthalten?
- Anfragen bitte nur zur aktuellsten Fhem-Version: Befehl
update
ergibt Ausgabe "nothing to do..." - detaillierte Beschreibung des Problems
- beteiligte Komponenten (genaue Bezeichnung und evtl. Link auf Hersteller-Dokumentation)
- Config-Auszug (fhem.cfg)
- list des jeweiligen devices (
list <device>
) - logs mit verbose 5 (
attr <device> verbose 5
)
Wie kann ich zur Fortentwicklung der EnOcean-Module beitragen?
- Erfolgreichen Einsatz von neuen/bisher nicht gemeldeten EnOcean-Geräten im Forum mitteilen
- In der Commandref als [untested] markierte EEPs bei erfolgreichen Tests im Forum als getestet melden
- Codeschnipsel und Ideen im Forum posten
- Fehler und Probleme im Forum melden
- Wiki: Neue Geräte ins Wiki aufnehmen; Codeschnipsel und Beispiele einpflegen
Wie ermittelt man freie Sender-IDs des TCM-basierten Funkgateways?
- Aus der oben gezeigten Tabelle oder hilfsweise mit den nachfolgenden Befehlen
- Anzeige der nächsten freien Sender-ID:
{EnOcean_CheckSenderID("getNextID", "<IODev>", "0000000")}
- Auflistung der bereits vergebenen Sender-IDs:
{EnOcean_CheckSenderID("getUsedID", "<IODev>", "0000000")}
- Auflistung der noch nicht vergebenen Sender-IDs:
{EnOcean_CheckSenderID("getFreeID", "<IODev>", "0000000")}
Für mein EnOcean-Gerät gibt es keine spezielle Wiki-Seite; wo finde ich dann Informationen?
- In der commandref nach dem Gerät suchen
- In der commandref nach dem verwendeten EEP suchen
- Im Wiki nach einem Gerät mit einer ähnlichen EEP/subType suchen
- Im EnOcean-Forum nach Threads zum Gerät/EEP suchen
Warum funktioniert mein Eltako-Gerät nicht wie in commandref/Wiki beschrieben?
- Eltako-Geräte haben bei gleicher Produktbezeichnung teilweise je nach Produktionswoche unterschiedliche Funktionen/Eigenschaften
- die Produktionswoche ist auf dem Gerät angegeben (z.B. 11/14 -> Elfte Woche im Jahr 2014)
- in den nach Produktionswoche untergliederten Bedienungsanleitungen stehen genauere Angaben
- Angaben in commandref/Wiki analog für die Angaben laut Bedienungsanleitung für den speziellen Produktionszeitraum umsetzen
- bei gravierenden Abweichungen und Neuerungen Info im Forum/Wiki
Wie kann ich Eltako-Aktoren anhand Ihrer Modellbezeichnung grob unterscheiden?
- 12er Baureihe (ausgelaufen) = unidirektionale RS485-Bus-Aktoren für Hutschiene
- 14er Baureihe = bidirektionale RS485-Bus-Aktoren für Hutschiene
- 61er Baureihe = uni- und bidirektionale Aktoren je nach Produktionszeitraum für Einbaumontage (Hohlwanddose)
- 70er Baureihe = uni- und bidirektionale Aktoren je nach Produktionszeitraum für Einbaumontage (Zwischendecke)
- zwischen den Modellreihen gibt es bei uni- und bidirektonalen Aktoren bei der Ansteuerung Übereinstimmungen; Angaben können dementsprechend analog zwischen den Geräten übertragen werden
Wo finde ich Angaben zu Jäger Direkt - OPUS GreenNet EnOcean-Geräten?
- Es handelt sich im Wesentlichen um umgelabelte Produkte anderer Hersteller (Peha, Eltako usw.). Anhand der Gehäuseform lassen sich Rückschlüsse ziehen
- Angaben zu den "Original"-Produkten können grundsätzlich -soweit bekannt- auf OPUS GreenNet Geräte übertragen werden