EnOcean Starter Guide: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Überarbeitung - WorkInProgress)
K (Überarbeitung - WorkInProgress)
Zeile 142: Zeile 142:
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 [http://fhem.de/commandref.html#TCM_learningMode 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).  
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 [http://fhem.de/commandref.html#TCM_learningMode 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, aus den Attributen subType, manufID und/oder model der Definition des Gerätes:
Fhem entnimmt die Angaben, wie ein Funk-Telegramm für ein bestimmtes Gerät aufgebaut ist, aus den Attributen <code>subType</code>, <code>manufID</code> und/oder <code>model</code> der Definition des Gerätes:
*subtype: vom Gerät genutztes EEP-Profil (steht in der Bedienungsanleitung des Gerätes)
*<code>subtype</code>: vom Gerät genutztes EEP-Profil (steht in der Bedienungsanleitung des Gerätes)
*manufID: Hersteller des Gerätes
*<code>manufID</code>: Hersteller des Gerätes
*model: Modell des Gerätes
*<code>model</code>: 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 [http://fhem.de/commandref.html#EnOcean commandref] zu EnOcean.
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 [http://fhem.de/commandref.html#EnOcean 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 unterscheidet sich je nach Gerätetyp:
Die Definition und der Anlernvorgang unterscheidet sich je nach Gerätetyp:
Zeile 153: Zeile 153:
** Kontakte (EEP 1BS): 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.
** 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.
* 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 Anlernvornvorgänge.


In den nachfolgenden Gliederungspunkten wird beispielhaft für ein Gerät aus den obigen Gerätegruppen die Einbindung in Fhem erläutert.
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:
Grundlegend gilt immer:
Fhem legt noch nicht definierte EnOcean Geräte selbst an, wenn
Fhem legt sendende, noch nicht definierte EnOcean Geräte selbst an, wenn
* in fhem.cfg autocreate aktiviert ist:
* in fhem.cfg autocreate aktiviert ist:
** <code>[http://fhem.de/commandref_DE.html#autocreate define autocreate autocreate]</code>
** <code>[http://fhem.de/commandref_DE.html#autocreate define autocreate autocreate]</code>
Zeile 173: Zeile 173:
EEP: F6-02-xx
EEP: F6-02-xx


In Befehlseingabefenster eingeben: <code>set TCM310 teach 600</code>
Fhem in den learingMode versetzen, dazu im Befehlseingabefenster eingeben:
set TCM310 teach 600


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:
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:
* fhem.cfg
* exemplarischer Auszug aus fhem.cfg
  define EnO_switch_FFC54500 EnOcean FFC54500                    <-- "FFC54500" ist die 8-stellige Hex-SenderID des Tasters
  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 IODev TCM310_0
Zeile 203: Zeile 204:
  2014-01-01_07:00:01 EnO_switch_FFC54500 AI
  2014-01-01_07:00:01 EnO_switch_FFC54500 AI
  2014-01-01_07:00:02 EnO_switch_FFC54500 buttons: released
  2014-01-01_07:00:02 EnO_switch_FFC54500 buttons: released
Der angelegte Sensor repräsentiert im Webinterface den physisch Schalter (bspw. an der Wand). Ein Druck auf den physikalichen Taster ändert den Zustand im Webinterface. Jedoch führt ein Schalten des Repräsentanten im Webinterface 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/DestinationID's - [[#Taster - physisch und in Fhem|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.
Fhem kann sich '''nicht''' als einer der vorhandenen (automatisch angelegten) physischen Sensoren ausgeben (um z.B. das Licht zu schalten) sondern verwendet eigene SenderID/DestinationID's - [[#Taster - physisch und in Fhem|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.
Zeile 211: Zeile 214:
EEP: D5-00-01
EEP: D5-00-01


In Befehlseingabefenster eingeben: <code>set TCM310 teach 600</code>
Fhem in den learingMode versetzen, dazu im Befehlseingabefenster eingeben:
set TCM310 teach 600


Anlerntelegramm laut Anleitung verschicken oder Magnetkontakt öffnen und schließen.
Anlerntelegramm laut Anleitung verschicken oder Magnetkontakt öffnen und schließen.
Zeile 218: Zeile 222:


==== Sonstige Sensoren ====
==== Sonstige Sensoren ====
===== 4BS-Teach-In =====
===== 4BS-Teach-In =====
Fhem in den learingMode versetzen, dazu im Befehlseingabefenster eingeben:
set TCM310 teach 600
Dann Anlerntelegramm laut Bedienungsanleitung am Sensor auslösen. Der Sensor wird dann wird automatisch in Fhem definiert und ist angelernt.


===== Profilloses 4BS-Teach-In =====
===== Profilloses 4BS-Teach-In =====
Omnio Ratio eagle-PM101 Licht- und Anwesenheitssensor ([http://www.omnio.ch/content-en/downloads/Betriebsanleitungen/2902000_Betriebsanleitung_ea.pdf Betriebsanleitung])
Omnio Ratio eagle-PM101 Licht- und Anwesenheitssensor ([http://www.omnio.ch/content-en/downloads/Betriebsanleitungen/2902000_Betriebsanleitung_ea.pdf Betriebsanleitung])


In Befehlseingabefenster eingeben: <code>set TCM310 teach 600</code>
Fhem in den learingMode versetzen, dazu im Befehlseingabefenster eingeben:
set TCM310 teach 600


Lerntelegramm vom Omnio Ratio eagle-PM101 verschicken (MÖGLICH??)
Lerntelegramm vom Omnio Ratio eagle-PM101 verschicken (MÖGLICH??)


Im angelegten Fhem-Device manuell das Attribut code>subType</code> auf <code>PM101</code> setzen.
Im angelegten Fhem-Device manuell das Attribut <code>subType</code> auf <code>PM101</code> setzen.


=== Aktoren ===
=== 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:'''
'''Aktoren Beispiele:'''


Zeile 236: Zeile 245:
PEHA 451 FU-EP o.T. (Schaltaktor unidirektional)  
PEHA 451 FU-EP o.T. (Schaltaktor unidirektional)  


In Befehlseingabefenster eingeben: <code>set TCM310 teach 600</code>
Fhem in den learingMode versetzen, dazu im Befehlseingabefenster eingeben:
 
set TCM310 teach 600
Eine frei SenderID des TCM-basierten Gateways heraussuchen und diese als EnOcean-Gerät in Fhem definieren.
 
In Befehlseingabefenster eingeben: <code>define eg_fl_Licht EnOcean AABBCC01</code>
 
Hierdurch wird in Fhem ein EnOcean-Gerät definiert, das standardmäßig das Attribut auf <code>subType</code> auf <code>switch</code> 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)
Eine frei SenderID des TCM-basierten Gateways heraussuchen und diese als EnOcean-Gerät in Fhem definieren, dazu im Befehlseingabefenster eingeben:
define eg_fl_Licht EnOcean AABBCC01


Den virtuellen Fhem-Schalter betätigen, dazu
Hierdurch wird in Fhem ein EnOcean-Gerät definiert, das standardmäßig das Attribut auf <code>subType</code> auf <code>switch</code> gesetzt hat. Fhem emuliert mit diesem EnOcean-Gerät einen EnOcean-Schalter (virtueller Fhem-Schalter).
 
In Befehlseingabefenster eingeben: <code>set eg_fl_Licht B0</code>


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 Befehlseingabefenster eingeben wird:
set eg_fl_Licht B0
Wenn der Aktor den erfolgreichen Anlernvorgang signalisiert, den Anlermodos am Aktor ausschalten.
Wenn der Aktor den erfolgreichen Anlernvorgang signalisiert, den Anlermodos am Aktor ausschalten.


* fhem.cfg
* exemplarischer Auszug aus fhem.cfg
  define eg_fl_Licht EnOcean AABBCC01        <--- AABBCC01 ist eine der 127 SenderID's des TCM mit der Fhem sendet  
  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 room EG_Flur
Zeile 267: Zeile 270:
Schaltrelais (bidirektional)
Schaltrelais (bidirektional)


* fhem.cfg
Fhem in den learingMode versetzen, dazu im Befehlseingabefenster eingeben:
set TCM310 teach 600
 
Die SenderID des Aktors heraussuchen und diese als EnOcean-Gerät in Fhem definieren, dazu im Befehlseingabefenster eingeben:
define EnOcean_switch_FEFF4AF8 EnOcean FEFF4AF8
 
Eine frei SenderID des TCM-basierten Gateways heraussuchen und diese im Attribut <code>subDef</code> des angelegten Device hinterlegen.
 
Anschließend die Attribute <code>subType</code> und <code>gwCmd</code> 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  <- SenderID eines FSR14-Kanals (Aktor)
  define EnOcean_switch_FEFF4AF8 EnOcean FEFF4AF8  <- SenderID eines FSR14-Kanals (Aktor)
  attr EnOcean_switch_FEFF4AF8 subDef FF834381      <--- FF834381 ist eine der 127 SenderID's des TCM mit der Fhem sendet [[#Taster - physisch und in Fhem|(siehe unten)]]
  attr EnOcean_switch_FEFF4AF8 subDef FF834381      <--- FF834381 ist eine der 127 SenderID's des TCM mit der Fhem sendet [[#Taster - physisch und in Fhem|(siehe unten)]]
Zeile 275: Zeile 292:
  define FileLog_EnOcean_switch_FEFF4AF8 FileLog ./log/EnOcean_switch_FEFF4AF8-%Y.log EnOcean_switch_FEFF4AF8
  define FileLog_EnOcean_switch_FEFF4AF8 FileLog ./log/EnOcean_switch_FEFF4AF8-%Y.log EnOcean_switch_FEFF4AF8
  attr FileLog_EnOcean_switch_FEFF4AF8 logtype text
  attr FileLog_EnOcean_switch_FEFF4AF8 logtype text
* Am Aktor anlernen
** Mittlerer Funktions-Drehschalter: auf LRN
** Unteren Funktions-Drehschalter den korrekten Kanal einstellen
** Fhem Eingabefeld: „set EnOcean_switch_FEFF4AF8 teach", &lt;Enter&gt;
** Nach dem Einlernen beide Drehschalter in die ursprüngliche Position


(entnommen Forenbeitrag [http://forum.fhem.de/index.php/topic,25068.msg181966.html#msg181966], der weitere Erläuterungen enthält.)
(entnommen Forenbeitrag [http://forum.fhem.de/index.php/topic,25068.msg181966.html#msg181966], der weitere Erläuterungen enthält.)
Zeile 292: Zeile 303:
#Aktor möglicht komplett zurücksetzen, sofern nicht mehr im Original-Auslieferzustand
#Aktor möglicht komplett zurücksetzen, sofern nicht mehr im Original-Auslieferzustand
#falls vorhanden, alle bisherigen Fhem Devices des Aktors löschen
#falls vorhanden, alle bisherigen Fhem Devices des Aktors löschen
#Fhem in Lernmodus schalten: </code>set <IODev> teach <time/s>
#Fhem in Lernmodus schalten: <code>set <IODev> teach <time/s></code>
#Taster am MD15-FTL-xx so lange drücken, bis ein Signalton ertönt. MD15 bestätigt erfolgreichen Anlernvorgang durch Aufleuchten Status-LED und 2 Signaltöne
#Taster am MD15-FTL-xx so lange drücken, bis ein Signalton ertönt. MD15 bestätigt erfolgreichen Anlernvorgang durch Aufleuchten Status-LED und 2 Signaltöne
#Aktor wird in Fhem automatisch mit allen notwendigen Parametern angelegt.
#Aktor wird in Fhem automatisch mit allen notwendigen Parametern angelegt.


([http://forum.fhem.de/index.php/topic,24011.0.html Forenbeitrag] zu Servicefunktionen MD15)
([http://forum.fhem.de/index.php/topic,24011.0.html Forenbeitrag] zu Servicefunktionen MD15)


===== UTE-Teach-In =====
===== UTE-Teach-In =====
Zeile 307: Zeile 317:
#Aktor möglicht komplett zurücksetzen, sofern nicht mehr im Original-Auslieferzustand
#Aktor möglicht komplett zurücksetzen, sofern nicht mehr im Original-Auslieferzustand
#falls vorhanden, alle bisherigen Fhem Devices des Aktors löschen
#falls vorhanden, alle bisherigen Fhem Devices des Aktors löschen
#Fhem in Lernmodus schalten: set <IODev> teach <time/s>
#Fhem in Lernmodus schalten: <code>set <IODev> teach <time/s></code>
#Aktor-Kanal 0 oder 1 in Lernmodus versetzen (immer nur einen Kanal)
#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.
#Aktor-Kanal 0 oder 1 wird in Fhem automatisch mit allen notwendigen Parametern angelegt.

Version vom 1. August 2014, 17:12 Uhr


Clock - Under Construction.svg An dieser Seite wird momentan noch gearbeitet.


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.

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.

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 grds. 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 regelmäßig den Bedienungsanleitungen der Produkte zu entnehmen.

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.

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.

EnOcean in Fhem

Allgemein

Fhem wird regelmäßig weiterentwickelt und verbessert. Daher ist es zwingend notwendig, dass Fhem auf dem aktuellsten Stand ist. Bitte nach Fhem-Installation den Befehl "update" ausführen und anschließend "shutdown restart" durchführen. Genauso auch bei 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. Die Bearbeitung der fhem.cfg sollte -zur Verhinderung von Anfängerfehler- nach Möglichkeit immer über das "Befehlseingabefenster" und die "Objektdetails" erfolgen.

EnOcean Funk mit Fhem empfangen und senden

Fhem kann mit einem Funkgateway, das auf einem TCM-Modul basiert, EnOcean-Funk empfangen und senden. Bisher gibt es zwei Transceiver Chips von EnOcean:

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 Funkantennenmodel am RS485-Bus empfangen werden können.

Definition von TCM / Gateway

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 direkter Eingriff in die fhem.cfg ist regelmäßig 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 TCM ESP3 /dev/ttyACM0@57600

TCM310/USB300 an Fritzbox

define TCM310 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" angezeigt wird, ist Fhem in der Lage mit den EnOcean-Geräten zu kommunizieren und der nächste Schritt, die Definition der EnOcean-Geräte in Fhem, kann erfolgen.

Mehr Details in der commandref zu TCM

Definition von Geräten

Alle EnOcean Geräte mit Sendefunktion haben eine eindeutige 8-stellige Hex-SenderID (z.B. ffc54500). Diese ID ist auch auf den EnOcean Geräten aufgedruckt (auch mit Punkten oder Doppelpunkten dazwischen, z.B. ff:c5:45:00). Diese eindeutige SenderID wird auch in Fhem zur Kommunikation genutzt und in der Definition der Geräte bzw. den Attributen hinterlegt.

Vorbereitung

Es empfiehlt sich eine Tabelle aufzubauen mit der Struktur (Vorschlag):

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 / 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, aus den Attributen subType, manufID und/oder model der Definition des Gerätes:

  • subtype: vom Gerät genutztes EEP-Profil (steht in der Bedienungsanleitung des Gerätes)
  • manufID: Hersteller des Gerätes
  • model: 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 unterscheidet 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 Anlernvornvorgänge.

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 versetzen, dazu im Befehlseingabefenster eingeben:

set TCM310 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 Webinterface den physisch Schalter (bspw. an der Wand). Ein Druck auf den physikalichen Taster ändert den Zustand im Webinterface. Jedoch führt ein Schalten des Repräsentanten im Webinterface 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/DestinationID's - 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.

Kontakte

STM 320 Batterieloses Magnetkontakt-Funkmodul (Datenblatt)

EEP: D5-00-01

Fhem in den learingMode versetzen, dazu im Befehlseingabefenster eingeben:

set TCM310 teach 600

Anlerntelegramm laut Anleitung verschicken oder Magnetkontakt öffnen und schließen.

Der Kontakt wird automatisch in Fhem definiert und ist angelernt.

Sonstige Sensoren

4BS-Teach-In

Fhem in den learingMode versetzen, dazu im Befehlseingabefenster eingeben:

set TCM310 teach 600

Dann 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 Befehlseingabefenster eingeben:

set TCM310 teach 600

Lerntelegramm 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

PEHA 451 FU-EP o.T. (Schaltaktor unidirektional)

Fhem in den learingMode versetzen, dazu im Befehlseingabefenster eingeben:

set TCM310 teach 600

Eine frei SenderID des TCM-basierten Gateways heraussuchen und diese als EnOcean-Gerät in Fhem definieren, dazu im Befehlseingabefenster eingeben:

define eg_fl_Licht EnOcean AABBCC01

Hierdurch wird in Fhem ein EnOcean-Gerät definiert, das standardmäßig das Attribut auf 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 Befehlseingabefenster 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

bidirektionale Aktoren

Unidirektionales 4BS-Teach-In

RS485-Bus-Aktor 4-Kanal-Stromstoß-Schaltrelais FSR14 Schaltrelais (bidirektional)

Fhem in den learingMode versetzen, dazu im Befehlseingabefenster eingeben:

set TCM310 teach 600

Die SenderID des Aktors heraussuchen und diese als EnOcean-Gerät in Fhem definieren, dazu im Befehlseingabefenster 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  <- SenderID eines FSR14-Kanals (Aktor)
attr EnOcean_switch_FEFF4AF8 subDef FF834381      <--- FF834381 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)

4BS-Bidirektionales-Teach-In:

  1. Aktor möglicht komplett zurücksetzen, sofern nicht mehr im Original-Auslieferzustand
  2. falls vorhanden, alle bisherigen Fhem Devices des Aktors löschen
  3. Fhem in Lernmodus schalten: set <IODev> teach
  4. Taster am MD15-FTL-xx so lange drücken, bis ein Signalton ertönt. MD15 bestätigt erfolgreichen Anlernvorgang durch Aufleuchten Status-LED und 2 Signaltöne
  5. Aktor wird in Fhem automatisch mit allen notwendigen Parametern angelegt.

(Forenbeitrag zu Servicefunktionen MD15)

UTE-Teach-In

Einbau-Aktor 452 FU-EBIM o.T. 2-Kanal-Multifunktionsaktor (bidirektional) mit Energiemessfunktion

UTE-Teach-In:

  1. Aktor möglicht komplett zurücksetzen, sofern nicht mehr im Original-Auslieferzustand
  2. falls vorhanden, alle bisherigen Fhem Devices des Aktors löschen
  3. Fhem in Lernmodus schalten: set <IODev> teach
  4. Aktor-Kanal 0 oder 1 in Lernmodus versetzen (immer nur einen Kanal)
  5. Aktor-Kanal 0 oder 1 wird in Fhem automatisch mit allen notwendigen Parametern angelegt.
  6. Anlernen für 2. 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 Absenderadressen (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/DestinationID's.

  • Fhem stehen 127 fortlaufende eigene SenderID/DestinationID 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/DestinationID 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). 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")?"AI":"A0";;}
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")?"BI":"B0";;}
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")?"CI":"C0";;}
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")?"DI":"D0";;}
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 Fhem devices (sendet mit einer der 127 eigenen SenderIDs) bedient werden.

Pysischer 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:

(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 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 Fhem Schalter
#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

FAQ

  • 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", "<TCM-device>", "0000000")}&#13; 
    • Auflistung der bereits vergebenen Sender-IDs:
      {EnOcean_CheckSenderID("getUsedID", "<TCM-device>", "0000000")}&#13; 
    • Auflistung der noch nicht vergebenen Sender-IDs:
      {EnOcean_CheckSenderID("getFreeID", "<TCM-device>", "0000000")}&#13; 
  • Welche Infos sollten Anfragen im EnOcean-Forum enthalten?
    • 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 zu Fortentwicklung der EnOcean-Module beitragen?
    • Wiki: Neue Geräte ins Wiki aufnehmen; Codeschnipsel und Beispiele einpflegen
    • In der Commandref als [untested] markierte EEPs bei erfolgreichen Tests im Forum als getestet melden
    • Fehler und Probleme im Forum melden