<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cori</id>
	<title>FHEMWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cori"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/Cori"/>
	<updated>2026-04-05T17:45:14Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FileLog&amp;diff=32136</id>
		<title>FileLog</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FileLog&amp;diff=32136"/>
		<updated>2019-12-27T01:57:28Z</updated>

		<summary type="html">&lt;p&gt;Cori: Attr ignoreRegexp für global ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Protokollierung von Fhem-Ereignissen&lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModTechName=92_FileLog.pm&lt;br /&gt;
|ModOwner=rudolfkoenig ({{Link2FU|8|Forum}} / [[Benutzer Diskussion:Rudolfkoenig|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
Das Modul [[FileLog]] dient zur Protokollierung von Ereignissen in Fhem. Die Einträge werden in eine einfache Textdatei geschrieben. Zur Protokollierung in eine Datenbank kann alternativ oder auch parallel das Modul [[DbLog]] verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Logdateien sind die Basis für die Erstellung von Diagrammen ([[SVG]]).&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
Details in der {{Link2CmdRef|Anker=FileLogdefine}}.&lt;br /&gt;
&lt;br /&gt;
== Attribute ==&lt;br /&gt;
Über {{Link2CmdRef|Anker=FileLogattr|Label=Attribute}} lässt sich unter anderem auch festlegen, wie die Archivierung von Logdateien durchgeführt werden soll (Archivierungsbefehl, -pfad sowie Anzahl von Archivgenerationen).&lt;br /&gt;
&lt;br /&gt;
Wenn bestimmte Zeilen &#039;&#039;&#039;nicht&#039;&#039;&#039; in die Logdatei geschrieben werden sollen, ist das Attribut &#039;&#039;ignoreRegexp&#039;&#039; hilfreich. Wenn beispielsweise alle Zeilen, die die Zeichenfolge &amp;quot;AbCd&amp;quot; oder &amp;quot;CdEf&amp;quot; enthalten &#039;&#039;&#039;nicht&#039;&#039;&#039; geloggt werden sollen, dann wäre&lt;br /&gt;
:&amp;lt;code&amp;gt;attr &amp;lt;log-name&amp;gt; ignoreRegexp .*AbCd.*|.*CdEf.*&amp;lt;/code&amp;gt;&lt;br /&gt;
eine Attributdefinition, die das ermöglicht.&lt;br /&gt;
&lt;br /&gt;
Dies bezieht sich aber nur auf normale FileLog-Instanzen. Falls Events aus dem globalen FHEM-Logfile ausgeschlossen werden sollen, muss man das Attribut in &#039;&#039;&#039;global&#039;&#039;&#039; angeben. (Zusammenhang siehe [[#Globale Logdatei und &amp;quot;fakelog&amp;quot;|Globale Logdatei und &amp;quot;fakelog&amp;quot;]]) &lt;br /&gt;
:&amp;lt;code&amp;gt;attr global ignoreRegexp .*AbCd.*|.*CdEf.*&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Funktionen ==&lt;br /&gt;
&#039;&#039;FileLog&#039;&#039; bietet Funktionen wie &#039;&#039;reopen&#039;&#039;, &#039;&#039;absorb&#039;&#039; und &#039;&#039;get&#039;&#039;. Details dazu sind in der {{Link2CmdRef|Anker=FileLogset}} zu finden.&lt;br /&gt;
&lt;br /&gt;
Sofern eine Instanz vom Objekt [[eventTypes]] angelegt ist, bietet die Detailansicht eines FileLog eine komfortable Möglichkeit, die regulären Ausdrücke für den/die Filter zu bearbeiten. Siehe hierzu auch diesen {{Link2Forum|Topic=12557|Message=75436}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Globale Logdatei und &amp;quot;fakelog&amp;quot; ==&lt;br /&gt;
Die globale Logdatei (üblicherweise als fhem.log bezeichnet) für Fhem wird mit dem Attribut &lt;br /&gt;
:&amp;lt;code&amp;gt;attr global logfile XXX&amp;lt;/code&amp;gt;&lt;br /&gt;
für das &#039;&#039;global&#039;&#039;-Objekt definiert, wobei für &#039;&#039;XXX&#039;&#039; normalerweise &amp;lt;code&amp;gt;./log/fhem-%Y-%m.log&amp;lt;/code&amp;gt; verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Um das &#039;&#039;fhem.log&#039;&#039; über das [[FHEMWEB|Web Interface]] anzeigen zu können, ist ein weiterer Eintrag in der [[Konfiguration]] erforderlich, nämlich:&lt;br /&gt;
:&amp;lt;code&amp;gt;define Logfile FileLog XXX fakelog&amp;lt;/code&amp;gt;&lt;br /&gt;
Das &#039;&#039;XXX&#039;&#039; muss &#039;&#039;&#039;zwingend&#039;&#039;&#039; durch den gleichen Wert ersetzt werden, wie in der Definition des globalen &#039;&#039;logfile&#039;&#039; Attributs, weil anderenfalls unterschiedliche Dateien verwendet werden - mit dem Effekt, dass die über das Web Interface angezeigte Datei nicht die erwarteten Einträge enthält (Details dazu auch in diesem {{Link2Forum|Topic=40041|Message=323315|LinkText=Forenbeitrag}}).&lt;br /&gt;
&lt;br /&gt;
== Werte auslesen ==&lt;br /&gt;
Manchmal möchte man Daten aus den Logs abrufen ohne händisch in den Logfiles herumzuwühlen. Dies ist insb. auch dann hilfreich, wenn man eigenen Funktionen, Notifys oder spezielle Plots entwirft, bei denen man auf Logdaten zugreifen möchte.&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich beschrieben ist dies in der {{Link2CmdRef|Lang=de|Anker=FileLog}} und unterscheidet sich minimal (aber entscheidend) von der Struktur bei [[DbLog#Werte_auslesen|DbLogs]].&lt;br /&gt;
&lt;br /&gt;
Hier ein paar Beispiele, was man damit anstellen kann:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;get FileLog_FHT_3a32 - - 2016-10-01 2016-10-03&amp;lt;/code&amp;gt; alle Einträge des FileLog_FHT_3a32 vom 01.10.-03.10.2016&lt;br /&gt;
* &amp;lt;code&amp;gt;get FileLog_FHT_3a32 - - 2016-10-01_08:00:00 2016-10-01_16:00:00&amp;lt;/code&amp;gt; alle Einträge des FileLog_FHT_3a32 von 8-16 Uhr am 01.10.2016&lt;br /&gt;
* &amp;lt;code&amp;gt;get FileLog_FHT_3a32 - - 2016-10-01_08:00:00 2016-10-01_16:00:00 4:measured:0:&amp;lt;/code&amp;gt; nur die Temperatur-Werte&lt;br /&gt;
* &amp;lt;code&amp;gt;{ ReadingsTimestamp(&amp;quot;FHT_3a32&amp;quot;,&amp;quot;state&amp;quot;,&amp;quot;0&amp;quot;) }&amp;lt;/code&amp;gt; Timestamp des aktuellen state des FHT_3a32&lt;br /&gt;
* &amp;lt;code&amp;gt;{ OldTimestamp(&amp;quot;FHT_3a32&amp;quot;) }&amp;lt;/code&amp;gt; Timestamp des letzten state des FHT_3a32&lt;br /&gt;
* &amp;lt;code&amp;gt;{ time_str2num(OldTimestamp(&amp;quot;FHT_3a32&amp;quot;)) }&amp;lt;/code&amp;gt; Timestamp in Sekunden des letzten state des FHT_3a32&lt;br /&gt;
* ...&lt;br /&gt;
Weitere Beispiele kann man sich gut aus den SVG-Dateien ziehen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* {{Link2Forum|Topic=40041|Message=323315|LinkText=Forenbeitrag}} zum Thema fhem.log / fakelog&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Logging]]&lt;/div&gt;</summary>
		<author><name>Cori</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HM-MOD-EM-8bit_3-Kanal-Sendemodul_mit_8-Bit-Datenkanal&amp;diff=24566</id>
		<title>HM-MOD-EM-8bit 3-Kanal-Sendemodul mit 8-Bit-Datenkanal</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HM-MOD-EM-8bit_3-Kanal-Sendemodul_mit_8-Bit-Datenkanal&amp;diff=24566"/>
		<updated>2018-01-16T20:36:40Z</updated>

		<summary type="html">&lt;p&gt;Cori: /* Bekannte Probleme */ Leerzeichen zw. Kanalname und Befehl eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Hardware&lt;br /&gt;
|Bild=HM-MOD-EM-8bit.jpg&lt;br /&gt;
|Bildbeschreibung=3-Kanal-Sendemodul mit 8-Bit-Datenkanal&lt;br /&gt;
|HWProtocol=HomeMatic&lt;br /&gt;
|HWType=Sender (Sensor oder Remote)&lt;br /&gt;
|HWCategory=HomeMatic&lt;br /&gt;
|HWComm=Funk 868MHz&lt;br /&gt;
|HWChannels=3&lt;br /&gt;
|HWVoltage=2-3,3V bzw. 3,5-12V&lt;br /&gt;
|HWPowerConsumption=typisch 30 bzw. 60µA, bis 28mA (Sendevorgang)&lt;br /&gt;
|HWPoweredBy=Batterie oder Kleinspannung&lt;br /&gt;
|HWSize=42x22x12mm&lt;br /&gt;
|HWDeviceFHEM=[[CUL_HM]]&lt;br /&gt;
|HWManufacturer=ELV / eQ-3 &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Bitte, wie auf [[FHEMWiki:Über_FHEMWiki]] beschrieben, Überschriften ab Level &amp;quot;==&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[HM-MOD-EM-8bit]] ist ein Modul für eigene Hardware-Entwicklungen (ähnlich dem 8-Kanal-Sendemodul [[HM-MOD-EM-8]]) zum Übermitteln von Schaltbefehlen oder Kontaktzuständen&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
Offenes (gehäuseloses) Einbaumodul mit ingesamt 3 Eingangskanälen. Kanal 1 und 2 sind einkanalige Signaleingänge, anders als beim [[HM-MOD-EM-8]] fest als Taster-Interface (sendet Short- bzw. Long-Trigger) konfiguriert. Kanal 3 besitzt 8 Dateneingänge (Bits), deren Zustand zusammengefasst als ein Byte interpretiert und mit diesem Wert gesendet werden. Wann ein Wert gesendet wird, kann mit sieben verschiedenen Modi eingestellt werden, wahlweise unter Einbeziehung einer weiteren Signalleitung, die als Trigger- oder Freigabeleitung dient.&lt;br /&gt;
&lt;br /&gt;
Alle Einzelleitungen können wahlweise als Taster bzw. Schalter gegen GND und/oder als spannungsempfindlicher Eingang (2-24V) beschaltet werden, ähnlich dem 8-Kanal-Modul [[HM-MOD-EM-8]]. Beide Möglichkeiten können gleichzeitig benutzt werden und sind intern ODER-verknüpft. Dabei ist zu beachten, dass im Auslieferungszustand die Datenleitungen wie auch die Freigabeleitung logisch negativ betrachtet werden, d.h. ein offener Anschluss wird als logisch HIGH interpretiert, der übermittelte Wert von 8 offenen Dateneingängen ist also insgesamt &amp;quot;FF&amp;quot;. Für die acht Datenleitungen kann jedoch je Leitung festgelegt werden, ob der Signalpegel am Eingang invertiert interpretiert werden soll. &lt;br /&gt;
&lt;br /&gt;
Das Modul ist in Grenzen pinkompatibel zum [[HM-MOD-EM-8]]. Dessen acht Eingangskanäle entsprechen nunmehr den Datenleitungen. Für die Datenübernahmeleitung sowie die zusätzlichen Tastereingänge (Kanal 1 und 2) als auch dem ebenfalls von außen steuerbaren Konfigurationstaster wurden zahlreiche bisher intern mit GND verbundenen Pins benutzt, so dass für GND jetzt nur noch Pin12 verfügbar ist. Stromversorgung und die Ausgänge der Statusleitungen (Status_R, Status_G, Status_S) sind unverändert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere technische Daten:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Eingangsimpedanz der Spannungseingänge: 10 kOhm (und eine Basis-Emitter-Strecke eines Transistors)&lt;br /&gt;
* Mindestwerte für Eingänge für ein sicheres Erkennen: 5,6 µA (experimentell ermittelt) / 0,7 V / ca. 780 kOhm bei 5V&lt;br /&gt;
* Höchstwiderstand am Tastereingang: 33 kOhm (experimentell ermittelt)&lt;br /&gt;
* Gewicht: 8 g &lt;br /&gt;
&lt;br /&gt;
Aktuelle Firmware: 1.0 (Stand Mai 2017)&lt;br /&gt;
&lt;br /&gt;
== Hinweise zu Inbetriebnahme und Installation ==&lt;br /&gt;
Das Modul ist nur als ARR-Bausatz erhältlich (Stand Mai 2017). Es ist auf einer Leiterplatte mit Steckkontakten untergebracht, das auf eigene Schaltungen gesockelt werden kann. Es verfügt über insgesamt 12 Eingänge für Taster sowie 12 Eingänge für eine Spannung von 2-24V, die über Transistoren die Eingänge des Prozessors parallel zu den Tasteneingängen kurzschließen (ODER-Verknüpfung). Außerdem gibt es Ausgänge für drei Status-LEDs (rot, grün wie für HM als Sendequittung üblich sowie einen dritten Ausgang, der aktiv ist, solange das Modul selbst sendet). Das Gerät besitzt einen Konfigurationstaster und eine onboard-LED, die im Auslieferungszustand jedoch nur den Batteriestatus meldet (bei schwacher Batterie) und keine Sendedaten quittiert, um Strom zu sparen. Die LED kann aber über Register eingeschaltet werden und sendet dann wie üblich mit gelb und ggf. rot oder grün als Quittung. &lt;br /&gt;
&lt;br /&gt;
Die Stromversorgung erfolgt über Batterie (2-3,3 V) oder Kleinspannung 3,5-12 V. &lt;br /&gt;
&lt;br /&gt;
== Betrieb mit FHEM ==&lt;br /&gt;
Das Modul muss zur Pairen manuell in den Konfigurationsmodus versetzt werden (onboard-Taster), empfängt dann aber Konfigurationstelegramme im Zusammenhang mit Sendevorgängen, z.B. bei Statusänderungen an den Eingängen (sog. lazyConfig). Dies erleichtert die nachträgliche Konfiguration bereits eingebauter Module. &lt;br /&gt;
Das Anlernen erfolgt in FHEM wie üblich. Danach stellt das Gerät 3 Kanäle (_Btn_01 und _Btn_02 sowie _Tr) bereit. Alle drei können direkt mit anderen Aktoren gepeert oder FHEM-intern verarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
Der Übermittlungsmodus der Kanäle 1 und 2 ist auf &amp;quot;button&amp;quot; festgelegt und nicht änderbar, für Kanal 3 wird er mit dem Register &amp;lt;code&amp;gt;dataTransCond&amp;lt;/code&amp;gt; bestimmt und ggf. mit dem Zeitregister &amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt; ergänzt. &#039;&#039;&#039;Zu beachten ist, dass der Pegel der Eingänge &amp;quot;ungewohnt&amp;quot; behandelt wird: Ein Eingang wird als HIGH interpretiert, wenn er unbeschaltet ist (Taster offen oder keine Spannung angelegt), und als LOW wenn er mit Taster oder Spannung aktiviert ist.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Modus 1-3: Sendung bei Änderung des Pegels an DU30 (Taster-Eingang, offen=HIGH, geschlossen=LOW) bzw. Spannungseingang DUI30 (offen HIGH, mit Spannung LOW):&lt;br /&gt;
* Modus 1 (&amp;lt;code&amp;gt;lvlChng_H_L&amp;lt;/code&amp;gt;): Senden bei Änderung HIGH-&amp;gt;LOW&lt;br /&gt;
* Modus 2 (&amp;lt;code&amp;gt;lvlChng_L_H&amp;lt;/code&amp;gt;): Senden bei Änderung LOW-&amp;gt;HIGH&lt;br /&gt;
* Modus 3 (&amp;lt;code&amp;gt;lvlChng_any&amp;lt;/code&amp;gt;): Senden bei HIGH-&amp;gt;LOW und LOW-&amp;gt;HIGH &lt;br /&gt;
&lt;br /&gt;
Modus 4 und 6: Senden bei Änderungen einer oder mehrerer Datenleitungen, wenn diese länger als die &amp;quot;Datenstabilitätsfilterzeit&amp;quot; (&amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt;) anliegen (bei kurzen Änderungen erfolgt keine Sendung - ähnlich dem &amp;lt;code&amp;gt;eventFilterTime&amp;lt;/code&amp;gt; bei Sensoren: Sendung erst x Sekunden nachdem es eine Änderung gab)&lt;br /&gt;
* Modus 4 (&amp;lt;code&amp;gt;stbl4TimeEnable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang HIGH&lt;br /&gt;
* Modus 6 (&amp;lt;code&amp;gt;stbl4TimeDisable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang LOW&lt;br /&gt;
&lt;br /&gt;
Modus 5 und 7: Senden sofort bei Änderung, danach Mindest-Wartezeit (ebenfalls &amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt;, ähnlich dem &amp;lt;code&amp;gt;minInterval&amp;lt;/code&amp;gt; etwa bei Bewegungsmeldern - Wartezeit nach Meldung einer Bewegung)&lt;br /&gt;
* Modus 5 (&amp;lt;code&amp;gt;sndImmediateEnable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang HIGH (bei LOW erfolgt keine Sendung)&lt;br /&gt;
* Modus 7 (&amp;lt;code&amp;gt;sndImmediateDisable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang LOW (bei HIGH erfolgt keine Sendung)&lt;br /&gt;
&lt;br /&gt;
Beispiel: das Modul soll den Datenzustand 2 Sekunden nach der letzten Datenänderung an den Leitungen senden, wenn der Datenfreigabeeingang (DU30 oder DUI30) unbeschaltet ist (DUI30 darf auch auf GND liegen):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set &#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039; regSet dataTransCond stbl4Time&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
set &#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039; regSet stabFltTime 2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Die acht Register &amp;lt;code&amp;gt;dInProp0&amp;lt;/code&amp;gt; bis &amp;lt;code&amp;gt;dInProp7&amp;lt;/code&amp;gt; legen zudem fest, ob der Eingang normal (Wert off = 0 bei Tasterbetätigung oder Spannung am Eingang) oder invertiert (Wert on = 1 bei Tasterbetätigung oder Spannung am Eingang) behandelt wird. So kann man zumindest bei den Dateneingängen die eher gewohnte Logik wiederherstellen.&lt;br /&gt;
&lt;br /&gt;
Auf Device-Ebene lässt sich durch Setzen des Registers &amp;lt;code&amp;gt;ledMode&amp;lt;/code&amp;gt; die onboard-LED für Sendequittungen ein- bzw. ausschalten: &amp;lt;code&amp;gt;set &#039;&#039;EM-8-Device&#039;&#039; regSet ledMode on&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationen werden wie üblich per &amp;lt;code&amp;gt;set &#039;&#039;&amp;lt;Name-des-Gerätes-bzw-Kanals&amp;gt;&#039;&#039; regSet &#039;&#039;&amp;lt;Registername Wert&amp;gt;&#039;&#039;&amp;lt;/code&amp;gt; durchgeführt, wenn FHEM den aktuellen Status der Register besitzt, wozu ggf. zuvor ein &amp;lt;code&amp;gt;getConfig&amp;lt;/code&amp;gt; ausgelöst werden muss. Zudem muss die Konfigurationstaste oder ein Eingang betätigt werden.&lt;br /&gt;
&lt;br /&gt;
Will man eine reine binäre Auflistung der Eingänge, kann man folgendes Attribut für den 3. Kanal setzen: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;attr &#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039; userReadings inputs {ReadingsVal($name,&#039;state&#039;,0)=~/([0-9A-F]{2})/;reverse(sprintf(&amp;quot;%08b&amp;quot;,abs(hex($1)-255)))}&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Dadurch wird ein neues Reading mit dem Namen &#039;&#039;inputs&#039;&#039; generiert, das die Zustände als 1 bzw. 0 anzeigt. Anzeige: &amp;lt;code&amp;gt;inputs   11000000&amp;lt;/code&amp;gt; (Eingang 0 und 1 geschlossen) &amp;lt;br&amp;gt;&lt;br /&gt;
Die Auflistung erfolgt dabei in Lesereihenfolge, d.h. links ist Eingang 0 und rechts Eingang 7. Somit kann über ein einfaches &amp;lt;code&amp;gt;substr(ReadingsVal(&#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039;,&#039;inputs&#039;,0),x,1)&amp;lt;/code&amp;gt; der Zustand des x-ten Einganges erfragt werden. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;(Hinweis: Für eine einfache Lesbarkeit bedeutet 1 verbunden und 0 nicht verbunden, entgegen der Standardlogik des Bausatzes (siehe weiter oben). Die Formel für das UserReading funktioniert so nur, wenn die Standardeinstellungen für dInProp\d noch gelten. Ansonsten muss einfach die Subtraktion mit 255 entfernt werden.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
Derzeit (&#039;&#039;Jan 18&#039;&#039;) ist beim Register &amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt; nur die Angabe vom Werten größer 10s möglich. Möchte man aber kleinere Werte benutzen, ist dies über ein &amp;lt;code&amp;gt;set &#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039; regBulk RegL_01 xxx&amp;lt;/code&amp;gt; möglich. Dazu für xxx einfach (bei gesetztem &#039;&#039;expert 3_allReg+raw&#039;&#039;) den Inhalt von &#039;&#039;RegL_01&#039;&#039; nehmen und zum Wert von &#039;&#039;B1&#039;&#039; die gewünschte Anzahl an Sekunden addieren/subtrahieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ob die beim [[HM-MOD-EM-8]] vorhandenen Probleme beim Senden an Aktoren mit Burst sowie die hohe Funklast beim Durchkonfigurieren hier ebenfalls zu Problemen führen, muss noch untersucht werden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://files.elv.com/Assets/Produkte/15/1502/150253/Downloads/150253-HM-Mod-EM-8Bit_UM_160817_web.pdf Bedienungsanleitung bei ELV]&lt;br /&gt;
* {{Link2Forum|Topic=67333|LinkText=Diskussion im Forum}} (als das Modul neu war)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Schalter (Sender)]]&lt;/div&gt;</summary>
		<author><name>Cori</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HM-MOD-EM-8bit_3-Kanal-Sendemodul_mit_8-Bit-Datenkanal&amp;diff=24565</id>
		<title>HM-MOD-EM-8bit 3-Kanal-Sendemodul mit 8-Bit-Datenkanal</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HM-MOD-EM-8bit_3-Kanal-Sendemodul_mit_8-Bit-Datenkanal&amp;diff=24565"/>
		<updated>2018-01-16T20:34:46Z</updated>

		<summary type="html">&lt;p&gt;Cori: Hinweis entfernt: Reg LED-Mode noch nicht funktional&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Hardware&lt;br /&gt;
|Bild=HM-MOD-EM-8bit.jpg&lt;br /&gt;
|Bildbeschreibung=3-Kanal-Sendemodul mit 8-Bit-Datenkanal&lt;br /&gt;
|HWProtocol=HomeMatic&lt;br /&gt;
|HWType=Sender (Sensor oder Remote)&lt;br /&gt;
|HWCategory=HomeMatic&lt;br /&gt;
|HWComm=Funk 868MHz&lt;br /&gt;
|HWChannels=3&lt;br /&gt;
|HWVoltage=2-3,3V bzw. 3,5-12V&lt;br /&gt;
|HWPowerConsumption=typisch 30 bzw. 60µA, bis 28mA (Sendevorgang)&lt;br /&gt;
|HWPoweredBy=Batterie oder Kleinspannung&lt;br /&gt;
|HWSize=42x22x12mm&lt;br /&gt;
|HWDeviceFHEM=[[CUL_HM]]&lt;br /&gt;
|HWManufacturer=ELV / eQ-3 &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Bitte, wie auf [[FHEMWiki:Über_FHEMWiki]] beschrieben, Überschriften ab Level &amp;quot;==&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[HM-MOD-EM-8bit]] ist ein Modul für eigene Hardware-Entwicklungen (ähnlich dem 8-Kanal-Sendemodul [[HM-MOD-EM-8]]) zum Übermitteln von Schaltbefehlen oder Kontaktzuständen&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
Offenes (gehäuseloses) Einbaumodul mit ingesamt 3 Eingangskanälen. Kanal 1 und 2 sind einkanalige Signaleingänge, anders als beim [[HM-MOD-EM-8]] fest als Taster-Interface (sendet Short- bzw. Long-Trigger) konfiguriert. Kanal 3 besitzt 8 Dateneingänge (Bits), deren Zustand zusammengefasst als ein Byte interpretiert und mit diesem Wert gesendet werden. Wann ein Wert gesendet wird, kann mit sieben verschiedenen Modi eingestellt werden, wahlweise unter Einbeziehung einer weiteren Signalleitung, die als Trigger- oder Freigabeleitung dient.&lt;br /&gt;
&lt;br /&gt;
Alle Einzelleitungen können wahlweise als Taster bzw. Schalter gegen GND und/oder als spannungsempfindlicher Eingang (2-24V) beschaltet werden, ähnlich dem 8-Kanal-Modul [[HM-MOD-EM-8]]. Beide Möglichkeiten können gleichzeitig benutzt werden und sind intern ODER-verknüpft. Dabei ist zu beachten, dass im Auslieferungszustand die Datenleitungen wie auch die Freigabeleitung logisch negativ betrachtet werden, d.h. ein offener Anschluss wird als logisch HIGH interpretiert, der übermittelte Wert von 8 offenen Dateneingängen ist also insgesamt &amp;quot;FF&amp;quot;. Für die acht Datenleitungen kann jedoch je Leitung festgelegt werden, ob der Signalpegel am Eingang invertiert interpretiert werden soll. &lt;br /&gt;
&lt;br /&gt;
Das Modul ist in Grenzen pinkompatibel zum [[HM-MOD-EM-8]]. Dessen acht Eingangskanäle entsprechen nunmehr den Datenleitungen. Für die Datenübernahmeleitung sowie die zusätzlichen Tastereingänge (Kanal 1 und 2) als auch dem ebenfalls von außen steuerbaren Konfigurationstaster wurden zahlreiche bisher intern mit GND verbundenen Pins benutzt, so dass für GND jetzt nur noch Pin12 verfügbar ist. Stromversorgung und die Ausgänge der Statusleitungen (Status_R, Status_G, Status_S) sind unverändert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere technische Daten:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Eingangsimpedanz der Spannungseingänge: 10 kOhm (und eine Basis-Emitter-Strecke eines Transistors)&lt;br /&gt;
* Mindestwerte für Eingänge für ein sicheres Erkennen: 5,6 µA (experimentell ermittelt) / 0,7 V / ca. 780 kOhm bei 5V&lt;br /&gt;
* Höchstwiderstand am Tastereingang: 33 kOhm (experimentell ermittelt)&lt;br /&gt;
* Gewicht: 8 g &lt;br /&gt;
&lt;br /&gt;
Aktuelle Firmware: 1.0 (Stand Mai 2017)&lt;br /&gt;
&lt;br /&gt;
== Hinweise zu Inbetriebnahme und Installation ==&lt;br /&gt;
Das Modul ist nur als ARR-Bausatz erhältlich (Stand Mai 2017). Es ist auf einer Leiterplatte mit Steckkontakten untergebracht, das auf eigene Schaltungen gesockelt werden kann. Es verfügt über insgesamt 12 Eingänge für Taster sowie 12 Eingänge für eine Spannung von 2-24V, die über Transistoren die Eingänge des Prozessors parallel zu den Tasteneingängen kurzschließen (ODER-Verknüpfung). Außerdem gibt es Ausgänge für drei Status-LEDs (rot, grün wie für HM als Sendequittung üblich sowie einen dritten Ausgang, der aktiv ist, solange das Modul selbst sendet). Das Gerät besitzt einen Konfigurationstaster und eine onboard-LED, die im Auslieferungszustand jedoch nur den Batteriestatus meldet (bei schwacher Batterie) und keine Sendedaten quittiert, um Strom zu sparen. Die LED kann aber über Register eingeschaltet werden und sendet dann wie üblich mit gelb und ggf. rot oder grün als Quittung. &lt;br /&gt;
&lt;br /&gt;
Die Stromversorgung erfolgt über Batterie (2-3,3 V) oder Kleinspannung 3,5-12 V. &lt;br /&gt;
&lt;br /&gt;
== Betrieb mit FHEM ==&lt;br /&gt;
Das Modul muss zur Pairen manuell in den Konfigurationsmodus versetzt werden (onboard-Taster), empfängt dann aber Konfigurationstelegramme im Zusammenhang mit Sendevorgängen, z.B. bei Statusänderungen an den Eingängen (sog. lazyConfig). Dies erleichtert die nachträgliche Konfiguration bereits eingebauter Module. &lt;br /&gt;
Das Anlernen erfolgt in FHEM wie üblich. Danach stellt das Gerät 3 Kanäle (_Btn_01 und _Btn_02 sowie _Tr) bereit. Alle drei können direkt mit anderen Aktoren gepeert oder FHEM-intern verarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
Der Übermittlungsmodus der Kanäle 1 und 2 ist auf &amp;quot;button&amp;quot; festgelegt und nicht änderbar, für Kanal 3 wird er mit dem Register &amp;lt;code&amp;gt;dataTransCond&amp;lt;/code&amp;gt; bestimmt und ggf. mit dem Zeitregister &amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt; ergänzt. &#039;&#039;&#039;Zu beachten ist, dass der Pegel der Eingänge &amp;quot;ungewohnt&amp;quot; behandelt wird: Ein Eingang wird als HIGH interpretiert, wenn er unbeschaltet ist (Taster offen oder keine Spannung angelegt), und als LOW wenn er mit Taster oder Spannung aktiviert ist.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Modus 1-3: Sendung bei Änderung des Pegels an DU30 (Taster-Eingang, offen=HIGH, geschlossen=LOW) bzw. Spannungseingang DUI30 (offen HIGH, mit Spannung LOW):&lt;br /&gt;
* Modus 1 (&amp;lt;code&amp;gt;lvlChng_H_L&amp;lt;/code&amp;gt;): Senden bei Änderung HIGH-&amp;gt;LOW&lt;br /&gt;
* Modus 2 (&amp;lt;code&amp;gt;lvlChng_L_H&amp;lt;/code&amp;gt;): Senden bei Änderung LOW-&amp;gt;HIGH&lt;br /&gt;
* Modus 3 (&amp;lt;code&amp;gt;lvlChng_any&amp;lt;/code&amp;gt;): Senden bei HIGH-&amp;gt;LOW und LOW-&amp;gt;HIGH &lt;br /&gt;
&lt;br /&gt;
Modus 4 und 6: Senden bei Änderungen einer oder mehrerer Datenleitungen, wenn diese länger als die &amp;quot;Datenstabilitätsfilterzeit&amp;quot; (&amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt;) anliegen (bei kurzen Änderungen erfolgt keine Sendung - ähnlich dem &amp;lt;code&amp;gt;eventFilterTime&amp;lt;/code&amp;gt; bei Sensoren: Sendung erst x Sekunden nachdem es eine Änderung gab)&lt;br /&gt;
* Modus 4 (&amp;lt;code&amp;gt;stbl4TimeEnable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang HIGH&lt;br /&gt;
* Modus 6 (&amp;lt;code&amp;gt;stbl4TimeDisable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang LOW&lt;br /&gt;
&lt;br /&gt;
Modus 5 und 7: Senden sofort bei Änderung, danach Mindest-Wartezeit (ebenfalls &amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt;, ähnlich dem &amp;lt;code&amp;gt;minInterval&amp;lt;/code&amp;gt; etwa bei Bewegungsmeldern - Wartezeit nach Meldung einer Bewegung)&lt;br /&gt;
* Modus 5 (&amp;lt;code&amp;gt;sndImmediateEnable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang HIGH (bei LOW erfolgt keine Sendung)&lt;br /&gt;
* Modus 7 (&amp;lt;code&amp;gt;sndImmediateDisable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang LOW (bei HIGH erfolgt keine Sendung)&lt;br /&gt;
&lt;br /&gt;
Beispiel: das Modul soll den Datenzustand 2 Sekunden nach der letzten Datenänderung an den Leitungen senden, wenn der Datenfreigabeeingang (DU30 oder DUI30) unbeschaltet ist (DUI30 darf auch auf GND liegen):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set &#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039; regSet dataTransCond stbl4Time&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
set &#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039; regSet stabFltTime 2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Die acht Register &amp;lt;code&amp;gt;dInProp0&amp;lt;/code&amp;gt; bis &amp;lt;code&amp;gt;dInProp7&amp;lt;/code&amp;gt; legen zudem fest, ob der Eingang normal (Wert off = 0 bei Tasterbetätigung oder Spannung am Eingang) oder invertiert (Wert on = 1 bei Tasterbetätigung oder Spannung am Eingang) behandelt wird. So kann man zumindest bei den Dateneingängen die eher gewohnte Logik wiederherstellen.&lt;br /&gt;
&lt;br /&gt;
Auf Device-Ebene lässt sich durch Setzen des Registers &amp;lt;code&amp;gt;ledMode&amp;lt;/code&amp;gt; die onboard-LED für Sendequittungen ein- bzw. ausschalten: &amp;lt;code&amp;gt;set &#039;&#039;EM-8-Device&#039;&#039; regSet ledMode on&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationen werden wie üblich per &amp;lt;code&amp;gt;set &#039;&#039;&amp;lt;Name-des-Gerätes-bzw-Kanals&amp;gt;&#039;&#039; regSet &#039;&#039;&amp;lt;Registername Wert&amp;gt;&#039;&#039;&amp;lt;/code&amp;gt; durchgeführt, wenn FHEM den aktuellen Status der Register besitzt, wozu ggf. zuvor ein &amp;lt;code&amp;gt;getConfig&amp;lt;/code&amp;gt; ausgelöst werden muss. Zudem muss die Konfigurationstaste oder ein Eingang betätigt werden.&lt;br /&gt;
&lt;br /&gt;
Will man eine reine binäre Auflistung der Eingänge, kann man folgendes Attribut für den 3. Kanal setzen: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;attr &#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039; userReadings inputs {ReadingsVal($name,&#039;state&#039;,0)=~/([0-9A-F]{2})/;reverse(sprintf(&amp;quot;%08b&amp;quot;,abs(hex($1)-255)))}&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Dadurch wird ein neues Reading mit dem Namen &#039;&#039;inputs&#039;&#039; generiert, das die Zustände als 1 bzw. 0 anzeigt. Anzeige: &amp;lt;code&amp;gt;inputs   11000000&amp;lt;/code&amp;gt; (Eingang 0 und 1 geschlossen) &amp;lt;br&amp;gt;&lt;br /&gt;
Die Auflistung erfolgt dabei in Lesereihenfolge, d.h. links ist Eingang 0 und rechts Eingang 7. Somit kann über ein einfaches &amp;lt;code&amp;gt;substr(ReadingsVal(&#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039;,&#039;inputs&#039;,0),x,1)&amp;lt;/code&amp;gt; der Zustand des x-ten Einganges erfragt werden. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;(Hinweis: Für eine einfache Lesbarkeit bedeutet 1 verbunden und 0 nicht verbunden, entgegen der Standardlogik des Bausatzes (siehe weiter oben). Die Formel für das UserReading funktioniert so nur, wenn die Standardeinstellungen für dInProp\d noch gelten. Ansonsten muss einfach die Subtraktion mit 255 entfernt werden.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
Derzeit (&#039;&#039;Jan 18&#039;&#039;) ist beim Register &amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt; nur die Angabe vom Werten größer 10s möglich. Möchte man aber kleinere Werte benutzen, ist dies über ein &amp;lt;code&amp;gt;set &#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039;regBulk RegL_01 xxx&amp;lt;/code&amp;gt; möglich. Dazu für xxx einfach (bei gesetztem &#039;&#039;expert 3_allReg+raw&#039;&#039;) den Inhalt von &#039;&#039;RegL_01&#039;&#039; nehmen und zum Wert von &#039;&#039;B1&#039;&#039; die gewünschte Anzahl an Sekunden addieren/subtrahieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ob die beim [[HM-MOD-EM-8]] vorhandenen Probleme beim Senden an Aktoren mit Burst sowie die hohe Funklast beim Durchkonfigurieren hier ebenfalls zu Problemen führen, muss noch untersucht werden.&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://files.elv.com/Assets/Produkte/15/1502/150253/Downloads/150253-HM-Mod-EM-8Bit_UM_160817_web.pdf Bedienungsanleitung bei ELV]&lt;br /&gt;
* {{Link2Forum|Topic=67333|LinkText=Diskussion im Forum}} (als das Modul neu war)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Schalter (Sender)]]&lt;/div&gt;</summary>
		<author><name>Cori</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HM-MOD-EM-8bit_3-Kanal-Sendemodul_mit_8-Bit-Datenkanal&amp;diff=24564</id>
		<title>HM-MOD-EM-8bit 3-Kanal-Sendemodul mit 8-Bit-Datenkanal</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HM-MOD-EM-8bit_3-Kanal-Sendemodul_mit_8-Bit-Datenkanal&amp;diff=24564"/>
		<updated>2018-01-16T20:31:03Z</updated>

		<summary type="html">&lt;p&gt;Cori: Absatz zu userReading für eine binäre Anzeige der Eingänge&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Hardware&lt;br /&gt;
|Bild=HM-MOD-EM-8bit.jpg&lt;br /&gt;
|Bildbeschreibung=3-Kanal-Sendemodul mit 8-Bit-Datenkanal&lt;br /&gt;
|HWProtocol=HomeMatic&lt;br /&gt;
|HWType=Sender (Sensor oder Remote)&lt;br /&gt;
|HWCategory=HomeMatic&lt;br /&gt;
|HWComm=Funk 868MHz&lt;br /&gt;
|HWChannels=3&lt;br /&gt;
|HWVoltage=2-3,3V bzw. 3,5-12V&lt;br /&gt;
|HWPowerConsumption=typisch 30 bzw. 60µA, bis 28mA (Sendevorgang)&lt;br /&gt;
|HWPoweredBy=Batterie oder Kleinspannung&lt;br /&gt;
|HWSize=42x22x12mm&lt;br /&gt;
|HWDeviceFHEM=[[CUL_HM]]&lt;br /&gt;
|HWManufacturer=ELV / eQ-3 &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Bitte, wie auf [[FHEMWiki:Über_FHEMWiki]] beschrieben, Überschriften ab Level &amp;quot;==&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[HM-MOD-EM-8bit]] ist ein Modul für eigene Hardware-Entwicklungen (ähnlich dem 8-Kanal-Sendemodul [[HM-MOD-EM-8]]) zum Übermitteln von Schaltbefehlen oder Kontaktzuständen&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
Offenes (gehäuseloses) Einbaumodul mit ingesamt 3 Eingangskanälen. Kanal 1 und 2 sind einkanalige Signaleingänge, anders als beim [[HM-MOD-EM-8]] fest als Taster-Interface (sendet Short- bzw. Long-Trigger) konfiguriert. Kanal 3 besitzt 8 Dateneingänge (Bits), deren Zustand zusammengefasst als ein Byte interpretiert und mit diesem Wert gesendet werden. Wann ein Wert gesendet wird, kann mit sieben verschiedenen Modi eingestellt werden, wahlweise unter Einbeziehung einer weiteren Signalleitung, die als Trigger- oder Freigabeleitung dient.&lt;br /&gt;
&lt;br /&gt;
Alle Einzelleitungen können wahlweise als Taster bzw. Schalter gegen GND und/oder als spannungsempfindlicher Eingang (2-24V) beschaltet werden, ähnlich dem 8-Kanal-Modul [[HM-MOD-EM-8]]. Beide Möglichkeiten können gleichzeitig benutzt werden und sind intern ODER-verknüpft. Dabei ist zu beachten, dass im Auslieferungszustand die Datenleitungen wie auch die Freigabeleitung logisch negativ betrachtet werden, d.h. ein offener Anschluss wird als logisch HIGH interpretiert, der übermittelte Wert von 8 offenen Dateneingängen ist also insgesamt &amp;quot;FF&amp;quot;. Für die acht Datenleitungen kann jedoch je Leitung festgelegt werden, ob der Signalpegel am Eingang invertiert interpretiert werden soll. &lt;br /&gt;
&lt;br /&gt;
Das Modul ist in Grenzen pinkompatibel zum [[HM-MOD-EM-8]]. Dessen acht Eingangskanäle entsprechen nunmehr den Datenleitungen. Für die Datenübernahmeleitung sowie die zusätzlichen Tastereingänge (Kanal 1 und 2) als auch dem ebenfalls von außen steuerbaren Konfigurationstaster wurden zahlreiche bisher intern mit GND verbundenen Pins benutzt, so dass für GND jetzt nur noch Pin12 verfügbar ist. Stromversorgung und die Ausgänge der Statusleitungen (Status_R, Status_G, Status_S) sind unverändert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere technische Daten:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Eingangsimpedanz der Spannungseingänge: 10 kOhm (und eine Basis-Emitter-Strecke eines Transistors)&lt;br /&gt;
* Mindestwerte für Eingänge für ein sicheres Erkennen: 5,6 µA (experimentell ermittelt) / 0,7 V / ca. 780 kOhm bei 5V&lt;br /&gt;
* Höchstwiderstand am Tastereingang: 33 kOhm (experimentell ermittelt)&lt;br /&gt;
* Gewicht: 8 g &lt;br /&gt;
&lt;br /&gt;
Aktuelle Firmware: 1.0 (Stand Mai 2017)&lt;br /&gt;
&lt;br /&gt;
== Hinweise zu Inbetriebnahme und Installation ==&lt;br /&gt;
Das Modul ist nur als ARR-Bausatz erhältlich (Stand Mai 2017). Es ist auf einer Leiterplatte mit Steckkontakten untergebracht, das auf eigene Schaltungen gesockelt werden kann. Es verfügt über insgesamt 12 Eingänge für Taster sowie 12 Eingänge für eine Spannung von 2-24V, die über Transistoren die Eingänge des Prozessors parallel zu den Tasteneingängen kurzschließen (ODER-Verknüpfung). Außerdem gibt es Ausgänge für drei Status-LEDs (rot, grün wie für HM als Sendequittung üblich sowie einen dritten Ausgang, der aktiv ist, solange das Modul selbst sendet). Das Gerät besitzt einen Konfigurationstaster und eine onboard-LED, die im Auslieferungszustand jedoch nur den Batteriestatus meldet (bei schwacher Batterie) und keine Sendedaten quittiert, um Strom zu sparen. Die LED kann aber über Register eingeschaltet werden und sendet dann wie üblich mit gelb und ggf. rot oder grün als Quittung. &#039;&#039;(temporärer Hinweis: Das zugehörige Register ledMode ist im Moment nicht verfügbar)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Stromversorgung erfolgt über Batterie (2-3,3 V) oder Kleinspannung 3,5-12 V. &lt;br /&gt;
&lt;br /&gt;
== Betrieb mit FHEM ==&lt;br /&gt;
Das Modul muss zur Pairen manuell in den Konfigurationsmodus versetzt werden (onboard-Taster), empfängt dann aber Konfigurationstelegramme im Zusammenhang mit Sendevorgängen, z.B. bei Statusänderungen an den Eingängen (sog. lazyConfig). Dies erleichtert die nachträgliche Konfiguration bereits eingebauter Module. &lt;br /&gt;
Das Anlernen erfolgt in FHEM wie üblich. Danach stellt das Gerät 3 Kanäle (_Btn_01 und _Btn_02 sowie _Tr) bereit. Alle drei können direkt mit anderen Aktoren gepeert oder FHEM-intern verarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
Der Übermittlungsmodus der Kanäle 1 und 2 ist auf &amp;quot;button&amp;quot; festgelegt und nicht änderbar, für Kanal 3 wird er mit dem Register &amp;lt;code&amp;gt;dataTransCond&amp;lt;/code&amp;gt; bestimmt und ggf. mit dem Zeitregister &amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt; ergänzt. &#039;&#039;&#039;Zu beachten ist, dass der Pegel der Eingänge &amp;quot;ungewohnt&amp;quot; behandelt wird: Ein Eingang wird als HIGH interpretiert, wenn er unbeschaltet ist (Taster offen oder keine Spannung angelegt), und als LOW wenn er mit Taster oder Spannung aktiviert ist.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Modus 1-3: Sendung bei Änderung des Pegels an DU30 (Taster-Eingang, offen=HIGH, geschlossen=LOW) bzw. Spannungseingang DUI30 (offen HIGH, mit Spannung LOW):&lt;br /&gt;
* Modus 1 (&amp;lt;code&amp;gt;lvlChng_H_L&amp;lt;/code&amp;gt;): Senden bei Änderung HIGH-&amp;gt;LOW&lt;br /&gt;
* Modus 2 (&amp;lt;code&amp;gt;lvlChng_L_H&amp;lt;/code&amp;gt;): Senden bei Änderung LOW-&amp;gt;HIGH&lt;br /&gt;
* Modus 3 (&amp;lt;code&amp;gt;lvlChng_any&amp;lt;/code&amp;gt;): Senden bei HIGH-&amp;gt;LOW und LOW-&amp;gt;HIGH &lt;br /&gt;
&lt;br /&gt;
Modus 4 und 6: Senden bei Änderungen einer oder mehrerer Datenleitungen, wenn diese länger als die &amp;quot;Datenstabilitätsfilterzeit&amp;quot; (&amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt;) anliegen (bei kurzen Änderungen erfolgt keine Sendung - ähnlich dem &amp;lt;code&amp;gt;eventFilterTime&amp;lt;/code&amp;gt; bei Sensoren: Sendung erst x Sekunden nachdem es eine Änderung gab)&lt;br /&gt;
* Modus 4 (&amp;lt;code&amp;gt;stbl4TimeEnable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang HIGH&lt;br /&gt;
* Modus 6 (&amp;lt;code&amp;gt;stbl4TimeDisable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang LOW&lt;br /&gt;
&lt;br /&gt;
Modus 5 und 7: Senden sofort bei Änderung, danach Mindest-Wartezeit (ebenfalls &amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt;, ähnlich dem &amp;lt;code&amp;gt;minInterval&amp;lt;/code&amp;gt; etwa bei Bewegungsmeldern - Wartezeit nach Meldung einer Bewegung)&lt;br /&gt;
* Modus 5 (&amp;lt;code&amp;gt;sndImmediateEnable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang HIGH (bei LOW erfolgt keine Sendung)&lt;br /&gt;
* Modus 7 (&amp;lt;code&amp;gt;sndImmediateDisable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang LOW (bei HIGH erfolgt keine Sendung)&lt;br /&gt;
&lt;br /&gt;
Beispiel: das Modul soll den Datenzustand 2 Sekunden nach der letzten Datenänderung an den Leitungen senden, wenn der Datenfreigabeeingang (DU30 oder DUI30) unbeschaltet ist (DUI30 darf auch auf GND liegen):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set &#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039; regSet dataTransCond stbl4Time&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
set &#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039; regSet stabFltTime 2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Die acht Register &amp;lt;code&amp;gt;dInProp0&amp;lt;/code&amp;gt; bis &amp;lt;code&amp;gt;dInProp7&amp;lt;/code&amp;gt; legen zudem fest, ob der Eingang normal (Wert off = 0 bei Tasterbetätigung oder Spannung am Eingang) oder invertiert (Wert on = 1 bei Tasterbetätigung oder Spannung am Eingang) behandelt wird. So kann man zumindest bei den Dateneingängen die eher gewohnte Logik wiederherstellen.&lt;br /&gt;
&lt;br /&gt;
Auf Device-Ebene lässt sich durch Setzen des Registers &amp;lt;code&amp;gt;ledMode&amp;lt;/code&amp;gt; die onboard-LED für Sendequittungen ein- bzw. ausschalten: &amp;lt;code&amp;gt;set &#039;&#039;EM-8-Device&#039;&#039; regSet ledMode on&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;. &#039;&#039;(temporärer Hinweis: Diese Funktion ist aktuell (Mai 2017) in FHEM noch nicht verfügbar, ebenso wie &amp;lt;code&amp;gt;lowBatLimitBA2&amp;lt;/code&amp;gt; zum Einstellen der low-Batt-Erkennungsschwelle)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Konfigurationen werden wie üblich per &amp;lt;code&amp;gt;set &#039;&#039;&amp;lt;Name-des-Gerätes-bzw-Kanals&amp;gt;&#039;&#039; regSet &#039;&#039;&amp;lt;Registername Wert&amp;gt;&#039;&#039;&amp;lt;/code&amp;gt; durchgeführt, wenn FHEM den aktuellen Status der Register besitzt, wozu ggf. zuvor ein &amp;lt;code&amp;gt;getConfig&amp;lt;/code&amp;gt; ausgelöst werden muss. Zudem muss die Konfigurationstaste oder ein Eingang betätigt werden.&lt;br /&gt;
&lt;br /&gt;
Will man eine reine binäre Auflistung der Eingänge, kann man folgendes Attribut für den 3. Kanal setzen: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;attr &#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039; userReadings inputs {ReadingsVal($name,&#039;state&#039;,0)=~/([0-9A-F]{2})/;reverse(sprintf(&amp;quot;%08b&amp;quot;,abs(hex($1)-255)))}&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Dadurch wird ein neues Reading mit dem Namen &#039;&#039;inputs&#039;&#039; generiert, das die Zustände als 1 bzw. 0 anzeigt. Anzeige: &amp;lt;code&amp;gt;inputs   11000000&amp;lt;/code&amp;gt; (Eingang 0 und 1 geschlossen) &amp;lt;br&amp;gt;&lt;br /&gt;
Die Auflistung erfolgt dabei in Lesereihenfolge, d.h. links ist Eingang 0 und rechts Eingang 7. Somit kann über ein einfaches &amp;lt;code&amp;gt;substr(ReadingsVal(&#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039;,&#039;inputs&#039;,0),x,1)&amp;lt;/code&amp;gt; der Zustand des x-ten Einganges erfragt werden. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;(Hinweis: Für eine einfache Lesbarkeit bedeutet 1 verbunden und 0 nicht verbunden, entgegen der Standardlogik des Bausatzes (siehe weiter oben). Die Formel für das UserReading funktioniert so nur, wenn die Standardeinstellungen für dInProp\d noch gelten. Ansonsten muss einfach die Subtraktion mit 255 entfernt werden.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
Derzeit (&#039;&#039;Jan 18&#039;&#039;) ist beim Register &amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt; nur die Angabe vom Werten größer 10s möglich. Möchte man aber kleinere Werte benutzen, ist dies über ein &amp;lt;code&amp;gt;set &#039;&#039;Channel-Name&#039;&#039; regBulk RegL_01 xxx&amp;lt;/code&amp;gt; möglich. Dazu für xxx einfach (bei gesetztem &#039;&#039;expert 3_allReg+raw&#039;&#039;) den Inhalt von &#039;&#039;RegL_01&#039;&#039; nehmen und zum Wert von &#039;&#039;B1&#039;&#039; die gewünschte Anzahl an Sekunden addieren/subtrahieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ob die beim [[HM-MOD-EM-8]] vorhandenen Probleme beim Senden an Aktoren mit Burst sowie die hohe Funklast beim Durchkonfigurieren hier ebenfalls zu Problemen führen, muss noch untersucht werden.&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://files.elv.com/Assets/Produkte/15/1502/150253/Downloads/150253-HM-Mod-EM-8Bit_UM_160817_web.pdf Bedienungsanleitung bei ELV]&lt;br /&gt;
* {{Link2Forum|Topic=67333|LinkText=Diskussion im Forum}} (als das Modul neu war)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Schalter (Sender)]]&lt;/div&gt;</summary>
		<author><name>Cori</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HM-MOD-EM-8bit_3-Kanal-Sendemodul_mit_8-Bit-Datenkanal&amp;diff=24563</id>
		<title>HM-MOD-EM-8bit 3-Kanal-Sendemodul mit 8-Bit-Datenkanal</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HM-MOD-EM-8bit_3-Kanal-Sendemodul_mit_8-Bit-Datenkanal&amp;diff=24563"/>
		<updated>2018-01-16T20:08:01Z</updated>

		<summary type="html">&lt;p&gt;Cori: Umgehung stabFltTime-Fehler&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Hardware&lt;br /&gt;
|Bild=HM-MOD-EM-8bit.jpg&lt;br /&gt;
|Bildbeschreibung=3-Kanal-Sendemodul mit 8-Bit-Datenkanal&lt;br /&gt;
|HWProtocol=HomeMatic&lt;br /&gt;
|HWType=Sender (Sensor oder Remote)&lt;br /&gt;
|HWCategory=HomeMatic&lt;br /&gt;
|HWComm=Funk 868MHz&lt;br /&gt;
|HWChannels=3&lt;br /&gt;
|HWVoltage=2-3,3V bzw. 3,5-12V&lt;br /&gt;
|HWPowerConsumption=typisch 30 bzw. 60µA, bis 28mA (Sendevorgang)&lt;br /&gt;
|HWPoweredBy=Batterie oder Kleinspannung&lt;br /&gt;
|HWSize=42x22x12mm&lt;br /&gt;
|HWDeviceFHEM=[[CUL_HM]]&lt;br /&gt;
|HWManufacturer=ELV / eQ-3 &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Bitte, wie auf [[FHEMWiki:Über_FHEMWiki]] beschrieben, Überschriften ab Level &amp;quot;==&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[HM-MOD-EM-8bit]] ist ein Modul für eigene Hardware-Entwicklungen (ähnlich dem 8-Kanal-Sendemodul [[HM-MOD-EM-8]]) zum Übermitteln von Schaltbefehlen oder Kontaktzuständen&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
Offenes (gehäuseloses) Einbaumodul mit ingesamt 3 Eingangskanälen. Kanal 1 und 2 sind einkanalige Signaleingänge, anders als beim [[HM-MOD-EM-8]] fest als Taster-Interface (sendet Short- bzw. Long-Trigger) konfiguriert. Kanal 3 besitzt 8 Dateneingänge (Bits), deren Zustand zusammengefasst als ein Byte interpretiert und mit diesem Wert gesendet werden. Wann ein Wert gesendet wird, kann mit sieben verschiedenen Modi eingestellt werden, wahlweise unter Einbeziehung einer weiteren Signalleitung, die als Trigger- oder Freigabeleitung dient.&lt;br /&gt;
&lt;br /&gt;
Alle Einzelleitungen können wahlweise als Taster bzw. Schalter gegen GND und/oder als spannungsempfindlicher Eingang (2-24V) beschaltet werden, ähnlich dem 8-Kanal-Modul [[HM-MOD-EM-8]]. Beide Möglichkeiten können gleichzeitig benutzt werden und sind intern ODER-verknüpft. Dabei ist zu beachten, dass im Auslieferungszustand die Datenleitungen wie auch die Freigabeleitung logisch negativ betrachtet werden, d.h. ein offener Anschluss wird als logisch HIGH interpretiert, der übermittelte Wert von 8 offenen Dateneingängen ist also insgesamt &amp;quot;FF&amp;quot;. Für die acht Datenleitungen kann jedoch je Leitung festgelegt werden, ob der Signalpegel am Eingang invertiert interpretiert werden soll. &lt;br /&gt;
&lt;br /&gt;
Das Modul ist in Grenzen pinkompatibel zum [[HM-MOD-EM-8]]. Dessen acht Eingangskanäle entsprechen nunmehr den Datenleitungen. Für die Datenübernahmeleitung sowie die zusätzlichen Tastereingänge (Kanal 1 und 2) als auch dem ebenfalls von außen steuerbaren Konfigurationstaster wurden zahlreiche bisher intern mit GND verbundenen Pins benutzt, so dass für GND jetzt nur noch Pin12 verfügbar ist. Stromversorgung und die Ausgänge der Statusleitungen (Status_R, Status_G, Status_S) sind unverändert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere technische Daten:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Eingangsimpedanz der Spannungseingänge: 10 kOhm (und eine Basis-Emitter-Strecke eines Transistors)&lt;br /&gt;
* Mindestwerte für Eingänge für ein sicheres Erkennen: 5,6 µA (experimentell ermittelt) / 0,7 V / ca. 780 kOhm bei 5V&lt;br /&gt;
* Höchstwiderstand am Tastereingang: 33 kOhm (experimentell ermittelt)&lt;br /&gt;
* Gewicht: 8 g &lt;br /&gt;
&lt;br /&gt;
Aktuelle Firmware: 1.0 (Stand Mai 2017)&lt;br /&gt;
&lt;br /&gt;
== Hinweise zu Inbetriebnahme und Installation ==&lt;br /&gt;
Das Modul ist nur als ARR-Bausatz erhältlich (Stand Mai 2017). Es ist auf einer Leiterplatte mit Steckkontakten untergebracht, das auf eigene Schaltungen gesockelt werden kann. Es verfügt über insgesamt 12 Eingänge für Taster sowie 12 Eingänge für eine Spannung von 2-24V, die über Transistoren die Eingänge des Prozessors parallel zu den Tasteneingängen kurzschließen (ODER-Verknüpfung). Außerdem gibt es Ausgänge für drei Status-LEDs (rot, grün wie für HM als Sendequittung üblich sowie einen dritten Ausgang, der aktiv ist, solange das Modul selbst sendet). Das Gerät besitzt einen Konfigurationstaster und eine onboard-LED, die im Auslieferungszustand jedoch nur den Batteriestatus meldet (bei schwacher Batterie) und keine Sendedaten quittiert, um Strom zu sparen. Die LED kann aber über Register eingeschaltet werden und sendet dann wie üblich mit gelb und ggf. rot oder grün als Quittung. &#039;&#039;(temporärer Hinweis: Das zugehörige Register ledMode ist im Moment nicht verfügbar)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Stromversorgung erfolgt über Batterie (2-3,3 V) oder Kleinspannung 3,5-12 V. &lt;br /&gt;
&lt;br /&gt;
== Betrieb mit FHEM ==&lt;br /&gt;
Das Modul muss zur Pairen manuell in den Konfigurationsmodus versetzt werden (onboard-Taster), empfängt dann aber Konfigurationstelegramme im Zusammenhang mit Sendevorgängen, z.B. bei Statusänderungen an den Eingängen (sog. lazyConfig). Dies erleichtert die nachträgliche Konfiguration bereits eingebauter Module. &lt;br /&gt;
Das Anlernen erfolgt in FHEM wie üblich. Danach stellt das Gerät 3 Kanäle (_Btn_01 und _Btn_02 sowie _Tr) bereit. Alle drei können direkt mit anderen Aktoren gepeert oder FHEM-intern verarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
Der Übermittlungsmodus der Kanäle 1 und 2 ist auf &amp;quot;button&amp;quot; festgelegt und nicht änderbar, für Kanal 3 wird er mit dem Register &amp;lt;code&amp;gt;dataTransCond&amp;lt;/code&amp;gt; bestimmt und ggf. mit dem Zeitregister &amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt; ergänzt. &#039;&#039;&#039;Zu beachten ist, dass der Pegel der Eingänge &amp;quot;ungewohnt&amp;quot; behandelt wird: Ein Eingang wird als HIGH interpretiert, wenn er unbeschaltet ist (Taster offen oder keine Spannung angelegt), und als LOW wenn er mit Taster oder Spannung aktiviert ist.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Modus 1-3: Sendung bei Änderung des Pegels an DU30 (Taster-Eingang, offen=HIGH, geschlossen=LOW) bzw. Spannungseingang DUI30 (offen HIGH, mit Spannung LOW):&lt;br /&gt;
* Modus 1 (&amp;lt;code&amp;gt;lvlChng_H_L&amp;lt;/code&amp;gt;): Senden bei Änderung HIGH-&amp;gt;LOW&lt;br /&gt;
* Modus 2 (&amp;lt;code&amp;gt;lvlChng_L_H&amp;lt;/code&amp;gt;): Senden bei Änderung LOW-&amp;gt;HIGH&lt;br /&gt;
* Modus 3 (&amp;lt;code&amp;gt;lvlChng_any&amp;lt;/code&amp;gt;): Senden bei HIGH-&amp;gt;LOW und LOW-&amp;gt;HIGH &lt;br /&gt;
&lt;br /&gt;
Modus 4 und 6: Senden bei Änderungen einer oder mehrerer Datenleitungen, wenn diese länger als die &amp;quot;Datenstabilitätsfilterzeit&amp;quot; (&amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt;) anliegen (bei kurzen Änderungen erfolgt keine Sendung - ähnlich dem &amp;lt;code&amp;gt;eventFilterTime&amp;lt;/code&amp;gt; bei Sensoren: Sendung erst x Sekunden nachdem es eine Änderung gab)&lt;br /&gt;
* Modus 4 (&amp;lt;code&amp;gt;stbl4TimeEnable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang HIGH&lt;br /&gt;
* Modus 6 (&amp;lt;code&amp;gt;stbl4TimeDisable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang LOW&lt;br /&gt;
&lt;br /&gt;
Modus 5 und 7: Senden sofort bei Änderung, danach Mindest-Wartezeit (ebenfalls &amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt;, ähnlich dem &amp;lt;code&amp;gt;minInterval&amp;lt;/code&amp;gt; etwa bei Bewegungsmeldern - Wartezeit nach Meldung einer Bewegung)&lt;br /&gt;
* Modus 5 (&amp;lt;code&amp;gt;sndImmediateEnable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang HIGH (bei LOW erfolgt keine Sendung)&lt;br /&gt;
* Modus 7 (&amp;lt;code&amp;gt;sndImmediateDisable&amp;lt;/code&amp;gt;): Sendung erfolgt wenn Datenübertragungseingang LOW (bei HIGH erfolgt keine Sendung)&lt;br /&gt;
&lt;br /&gt;
Beispiel: das Modul soll den Datenzustand 2 Sekunden nach der letzten Datenänderung an den Leitungen senden, wenn der Datenfreigabeeingang (DU30 oder DUI30) unbeschaltet ist (DUI30 darf auch auf GND liegen):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set &#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039; regSet dataTransCond stbl4Time&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
set &#039;&#039;&amp;lt;Name-des-Datenkanals&amp;gt;&#039;&#039; regSet stabFltTime 2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Die acht Register &amp;lt;code&amp;gt;dInProp0&amp;lt;/code&amp;gt; bis &amp;lt;code&amp;gt;dInProp7&amp;lt;/code&amp;gt; legen zudem fest, ob der Eingang normal (Wert off = 0 bei Tasterbetätigung oder Spannung am Eingang) oder invertiert (Wert on = 1 bei Tasterbetätigung oder Spannung am Eingang) behandelt wird. So kann man zumindest bei den Dateneingängen die eher gewohnte Logik wiederherstellen.&lt;br /&gt;
&lt;br /&gt;
Auf Device-Ebene lässt sich durch Setzen des Registers &amp;lt;code&amp;gt;ledMode&amp;lt;/code&amp;gt; die onboard-LED für Sendequittungen ein- bzw. ausschalten: &amp;lt;code&amp;gt;set &#039;&#039;EM-8-Device&#039;&#039; regSet ledMode on&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;. &#039;&#039;(temporärer Hinweis: Diese Funktion ist aktuell (Mai 2017) in FHEM noch nicht verfügbar, ebenso wie &amp;lt;code&amp;gt;lowBatLimitBA2&amp;lt;/code&amp;gt; zum Einstellen der low-Batt-Erkennungsschwelle)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Konfigurationen werden wie üblich per &amp;lt;code&amp;gt;set &#039;&#039;&amp;lt;Name-des-Gerätes-bzw-Kanals&amp;gt;&#039;&#039; regSet &#039;&#039;&amp;lt;Registername Wert&amp;gt;&#039;&#039;&amp;lt;/code&amp;gt; durchgeführt, wenn FHEM den aktuellen Status der Register besitzt, wozu ggf. zuvor ein &amp;lt;code&amp;gt;getConfig&amp;lt;/code&amp;gt; ausgelöst werden muss. Zudem muss die Konfigurationstaste oder ein Eingang betätigt werden.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
Derzeit (&#039;&#039;Jan 18&#039;&#039;) ist beim Register &amp;lt;code&amp;gt;stabFltTime&amp;lt;/code&amp;gt; nur die Angabe vom Werten größer 10s möglich. Möchte man aber kleinere Werte benutzen, ist dies über ein &amp;lt;code&amp;gt;set &#039;&#039;Channel-Name&#039;&#039; regBulk RegL_01 xxx&amp;lt;/code&amp;gt; möglich. Dazu für xxx einfach (bei gesetztem &#039;&#039;expert 3_allReg+raw&#039;&#039;) den Inhalt von &#039;&#039;RegL_01&#039;&#039; nehmen und zum Wert von &#039;&#039;B1&#039;&#039; die gewünschte Anzahl an Sekunden addieren/subtrahieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ob die beim [[HM-MOD-EM-8]] vorhandenen Probleme beim Senden an Aktoren mit Burst sowie die hohe Funklast beim Durchkonfigurieren hier ebenfalls zu Problemen führen, muss noch untersucht werden.&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://files.elv.com/Assets/Produkte/15/1502/150253/Downloads/150253-HM-Mod-EM-8Bit_UM_160817_web.pdf Bedienungsanleitung bei ELV]&lt;br /&gt;
* {{Link2Forum|Topic=67333|LinkText=Diskussion im Forum}} (als das Modul neu war)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Schalter (Sender)]]&lt;/div&gt;</summary>
		<author><name>Cori</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=XBMC&amp;diff=22224</id>
		<title>XBMC</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=XBMC&amp;diff=22224"/>
		<updated>2017-08-13T20:53:15Z</updated>

		<summary type="html">&lt;p&gt;Cori: Webadresse zum Kodi-Wiki korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Abspielen von Medien (Musik, Video, Bilder)&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModForumArea=Multimedia&lt;br /&gt;
|ModTechName=70_XBMC.pm&lt;br /&gt;
|ModOwner={{Link2FU|6776|vbs}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KODI&#039;&#039;&#039; (früher XBox Media Center (XBMC) genannt) ist eine unter den Bestimmungen der GPL erhältliche freie Media-Center Software. Sie dient dem Abspielen von Videos, Bildern und Musik von DVD, Festplatte und Server sowie der Wiedergabe von Audio- und Video-Datenströmen aus dem Internet. (Quelle: [http://kodi.tv/ kodi.tv])&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Media-Center System, das mit diesem Modul zusammenarbeitet, ist das aus einem XBMC Fork entstandene [https://plex.tv PLEX Media-Server] System.&lt;br /&gt;
&lt;br /&gt;
Aktuelle Versionen von Plex Home Theater haben nur noch eine sehr eingeschränkte Kompatibilität zum XBMC/KODI API und zeigen z.B. keine Informationen mehr über die aktuell gespielten Medien an. Die Beta-Version eines plex-spezifischen Moduls wird in diesem {{Link2Forum|Topic=43052|Message=353477|LinkText=Post im Forum}} vorgestellt. &lt;br /&gt;
&lt;br /&gt;
== Zielsetzung ==&lt;br /&gt;
Dieses Modul ermöglicht das Steuern und Empfangen von Events von KODI und PLEX. Unter anderen sind damit vielfältige Verknüpfungen von Aktoren und &lt;br /&gt;
XBMC/Plex möglich.&lt;br /&gt;
&lt;br /&gt;
Aktuelle Plex Home Theater (PHT) Versionen (ab etwa mitte November)  liefern keine Informationen mehr zum abgespielten Titel (currentTitle,currentAlbum,...) sondern nur noch zum TransportState. Der Grund dafür ist noch nicht klar.&lt;br /&gt;
&lt;br /&gt;
== Einbindung in FHEM ==&lt;br /&gt;
&lt;br /&gt;
Für diese Modul wird das Perl JSON Modul benötigt. Auf einem Debian-basierten System (z.B RaspberryPI o.ä.) kann man das mit &lt;br /&gt;
dem folgenden Befehl installieren:&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libjson-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispieldefinition&#039;&#039;&#039;&lt;br /&gt;
:&amp;lt;code&amp;gt;define wz_XBMC XBMC &amp;lt;IP-Adresse&amp;gt; tcp &amp;lt;USERNAME&amp;gt; &amp;lt;PASSWORT&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;attr wz_XBMC devStateIcon opened:rc_GREEN:on disconnected:rc_RED:off Initialized:message_socket_disabled&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
JSON RPC muss aktiviert sein. Näheres siehe hier: http://kodi.wiki/view/JSON_RPC#Enabling_JSON-RPC &lt;br /&gt;
Danach sollte ein Neustart von Kodi durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
Erfolgreich getestet unter den Versionen&lt;br /&gt;
&#039;&#039;KODI 14 und fhem 5.6&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Lichtsteuerung durch KODI oder PLEX ===&lt;br /&gt;
Im folgenden Beispiel werden beim Starten eines Films die Lichter ausgeschaltet. Sobald die Pause-Taste gedrückt wird, wird das Licht wieder eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define notify_KODI_status notify wz_KODI:playStatus.* { if (ReadingsVal(&amp;quot;wz_KODI&amp;quot;, &amp;quot;type&amp;quot;, &amp;quot;&amp;quot;) eq &amp;quot;movie&amp;quot;){&lt;br /&gt;
   if (ReadingsVal(&amp;quot;wz_KODI&amp;quot;, &amp;quot;playStatus&amp;quot;, &amp;quot;&amp;quot;) eq &amp;quot;playing&amp;quot;){&lt;br /&gt;
       fhem(&amp;quot;set FS20_Licht off&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    if (ReadingsVal(&amp;quot;wz_KODI&amp;quot;, &amp;quot;playStatus&amp;quot;, &amp;quot;&amp;quot;) eq &amp;quot;paused&amp;quot;){&lt;br /&gt;
       fhem(&amp;quot;set FS20_Licht on&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Moduls [[LightScene]] kann man den voherigen Status der einzelnen Lampen auch speichern und nach dem Filmende wiederherstellen.&lt;br /&gt;
Anbei ein Code Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wz_KODI:playStatus.* {&lt;br /&gt;
  my $media = ReadingsVal(&amp;quot;wz_KODI&amp;quot;,&amp;quot;currentMedia&amp;quot;,&amp;quot;none&amp;quot;);&lt;br /&gt;
  my $isPlaying = ReadingsVal(&amp;quot;wz_KODI&amp;quot;,&amp;quot;playStatus&amp;quot;,&amp;quot;n/a&amp;quot;) eq &amp;quot;playing&amp;quot;;&lt;br /&gt;
  my $is3d = ReadingsVal(&amp;quot;wz_KODI&amp;quot;,&amp;quot;3dfile&amp;quot;,&amp;quot;n/a&amp;quot;) eq &amp;quot;on&amp;quot;;&lt;br /&gt;
  my $currentLightScene = Value(&amp;quot;kino_licht&amp;quot;);&lt;br /&gt;
  Log 3, &amp;quot;Wiedergegebene Datei: &amp;quot; . $media . &amp;quot; isPlaying: &amp;quot; . $isPlaying. &amp;quot; is3d: &amp;quot; . $is3d . &amp;quot; currentLightScene: &amp;quot; . $currentLightScene;&lt;br /&gt;
  if ($is3d &amp;amp;&amp;amp; $isPlaying) {&lt;br /&gt;
     if ($currentLightScene ne &amp;quot;3d_movie&amp;quot;) {        &lt;br /&gt;
        Log 3, &amp;quot;Speichere aktuellen Zustand als temporäre Szene und ändere kino_licht scene auf 3d_movie...&amp;quot;;&lt;br /&gt;
        fhem(&amp;quot;set kino_licht save tmp_pre_movie_state;&amp;quot;);&lt;br /&gt;
        fhem(&amp;quot;set kino_licht scene 3d_movie;&amp;quot;);        &lt;br /&gt;
     }&lt;br /&gt;
  } elsif ($is3d &amp;amp;&amp;amp; $currentLightScene eq &amp;quot;3d_movie&amp;quot;) {&lt;br /&gt;
     Log 3, &amp;quot;Der Film ist pausiert oder zu Ende, ändere LightScene zurück auf tmp_pre_movie_state...&amp;quot;;&lt;br /&gt;
     fhem(&amp;quot;set kino_licht scene tmp_pre_movie_state;&amp;quot;);&lt;br /&gt;
     fhem(&amp;quot;set kino_licht remove tmp_pre_movie_state;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Beispiel mit dem Modul DOIF:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#########################################################################&lt;br /&gt;
# Kodi: Lichtsteuerung&lt;br /&gt;
#########################################################################&lt;br /&gt;
define di_kodi_lichtsteuerung DOIF &lt;br /&gt;
(&lt;br /&gt;
 [wz_KODI:playStatus] eq &amp;quot;playing&amp;quot; and [wz_KODI:currentMedia] ne &amp;quot;&amp;quot; and&lt;br /&gt;
 (&lt;br /&gt;
  [wz_KODI:type] eq &amp;quot;episode&amp;quot; or &lt;br /&gt;
  [wz_KODI:type] eq &amp;quot;movie&amp;quot;&lt;br /&gt;
 )&lt;br /&gt;
)  &lt;br /&gt;
 (set ls_Erdgeschoss scene Filmstart)&lt;br /&gt;
DOELSEIF (&lt;br /&gt;
 [wz_KODI:playStatus] eq &amp;quot;paused&amp;quot; and [wz_KODI:currentMedia] ne &amp;quot;&amp;quot; and &lt;br /&gt;
 (&lt;br /&gt;
  [wz_KODI:type] eq &amp;quot;episode&amp;quot; or &lt;br /&gt;
  [wz_KODI:type] eq &amp;quot;movie&amp;quot;&lt;br /&gt;
 )&lt;br /&gt;
)&lt;br /&gt;
 (set ls_Erdgeschoss scene Filmpause) &lt;br /&gt;
DOELSEIF (&lt;br /&gt;
 [wz_KODI:playStatus] eq &amp;quot;stopped&amp;quot; and [wz_KODI:currentMedia] ne &amp;quot;&amp;quot; and&lt;br /&gt;
 (&lt;br /&gt;
  [wz_KODI:type] eq &amp;quot;episode&amp;quot; or &lt;br /&gt;
  [wz_KODI:type] eq &amp;quot;movie&amp;quot;&lt;br /&gt;
 )&lt;br /&gt;
) &lt;br /&gt;
 (set ls_Erdgeschoss scene indirekt)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen dazu unter im Forenthread {{Link2Forum|Topic=32775|LinkText=Fragen zu LightScene}}&lt;br /&gt;
&lt;br /&gt;
Alternative Lichtsteuerung in Abhängigkeit der Helligkeit {{Link2Forum|Topic=58381|LinkText=Lichtsteuerung in Abhängigkeit von Dämmerung und Fernseher / Mediaplayer}}&lt;br /&gt;
&lt;br /&gt;
=== Nachrichten von FHEM an KODI und PLEX schicken ===&lt;br /&gt;
Der folgende Befehl schickt eine 5 Sekunden lange Info Nachricht an KODI.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;fhem(&amp;quot;set wz_KODI msg &#039;fhem&#039; &#039;Licht wurde ausgeschaltet!&#039; 5000 info&amp;quot;);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Thumbnail im Frontend anzeigen ===&lt;br /&gt;
In den readings von KODI gibt es einen thumbnail Wert. Um diesen als http link in einem http basierten Frontend darstellen zu können muss allerdings ein Userreading erstellt werden, denn der Pfad für http muss doppelt encoded werden. D.h. aus dem %2f muss ein %252f gemacht. Zusätzlich muss dem Wert noch ein http://IP_KODI:PORT_WEBSERVICE/image/ vorangestellt werden. Das funktioniert aber nur wenn die Bilder lokal abgelegt sind, nicht wenn die Bilder von z.b. thetvdb.com kommen.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;http_thumbnail { my $val = (ReadingsVal(&amp;quot;$name&amp;quot;, &amp;quot;thumbnail&amp;quot;, 0)); $val =~ s/\%2f/\%252f/g;; return &amp;quot;http://192.168.0.5:8080/image/&amp;quot;.$val;; }&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschliessend kann http_thumbnail abgefragt werden und enthaelt den Link zum Bild&lt;br /&gt;
&lt;br /&gt;
== Anzeigen von FHEM Daten im KODI ==&lt;br /&gt;
[[Datei:Xbmc.png|mini|right|300px|FHEM-Daten in KODI anzeigen]]&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitungen in KODI ===&lt;br /&gt;
Zuerst muss das Phyton Skript heruntergeladen werden ([http://forum.fhem.de/index.php?topic=14419.0 Thread im FHEM-Forum]) und mit dem XBMC Addon Manager installiert werden. &lt;br /&gt;
&lt;br /&gt;
=== Vorbereitungen in FHEM ===&lt;br /&gt;
Anschließend muss das globale Attribut userattr mit &amp;quot;xbmcInfo&amp;quot; erweitert werden, und zwar entweder durch Bearbeitung der [[Konfiguration|FHEM Konfiguration]] oder durch Eingabe des Befehls&lt;br /&gt;
:&amp;lt;code&amp;gt;{fhem (&amp;quot;attr global userattr $attr{global}{userattr}&amp;quot;.&amp;quot; xbmcInfo&amp;quot;)}&amp;lt;/code&amp;gt;&lt;br /&gt;
in das FHEM Befehlsfenster.&lt;br /&gt;
&lt;br /&gt;
Danach muss ein Dummy mit den anzuzeigenden Daten erstellt werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr &amp;lt;dummy-name&amp;gt; xbmcInfo &amp;lt;TYPE&amp;gt; &amp;lt;Reading[|Alias]&amp;gt; &amp;lt;[Reading[|Alias]]&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration in KODI ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:FHEM-Info3.png|mini|right|200px|Konfigurationsschritt in KODI]]&lt;br /&gt;
Im KODI danach noch das &#039;&#039;Addon&#039;&#039; konfiguren (IP+Passwort). &lt;br /&gt;
&lt;br /&gt;
[[Datei:FHEM-Info1.png|mini|right|200px|Beispielausgabe]]&lt;br /&gt;
[[Datei:FHEM-Info2.png|mini|right|200px|Beispielausgabe]]&lt;br /&gt;
&#039;&#039;&#039;Beispiele&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define KODI_dummy dummy&lt;br /&gt;
attr KODI_dummy xbmcInfo CUL_WS temperature|Temperatur humidity|Luftfeuchte&lt;br /&gt;
&lt;br /&gt;
define KODI_dummy2 dummy&lt;br /&gt;
attr KODI_dummy2 xbmcInfo PID20 actuation|Ventil desired|Soll measured|Ist delta p_p|P-Anteil p_i|I-Anteil&lt;br /&gt;
&lt;br /&gt;
define KODI_dummy3 dummy&lt;br /&gt;
attr KODI_dummy3 xbmcInfo FS20 state|Status name|Name&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== HTPC via WakeOnLan (WOL) Funktion wecken ===&lt;br /&gt;
Einige HTPCs haben nicht die Möglichkeit diese via eines IR Kommandos zu starten. Alternativ kann hier die &lt;br /&gt;
sog. &amp;quot;WakeOnLan&amp;quot; Funktion genutzt werden. Diese bietes mittels eines speziellen TCP/UDP Paketes den Rechner zu starten. In FHEM gibt es dafür das Modul [[WOL]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define &amp;lt;NAME des PCs&amp;gt; WOL &amp;lt;MAC-Adresse&amp;gt;	&amp;lt;IP&amp;gt; [&amp;lt;mode&amp;gt; [&amp;lt;repeat&amp;gt;]] &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#########################################################################&lt;br /&gt;
# KODI - WakeOnLan Funktion&lt;br /&gt;
#########################################################################&lt;br /&gt;
define wol_zion WOL BC:AE:C5:B3:E1:3A	 192.168.1.13 EW&lt;br /&gt;
attr wol_zion room _System&lt;br /&gt;
attr wol_zion sysCmd ./ether-wake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Wichtiger Hinweis bei Betrieb auf einer Fritzbox&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sofern fhem nicht unter dem User root wird das ether-wake Kommando nicht funktionieren.&lt;br /&gt;
&#039;&#039;Quick&amp;amp;Dirty Workaround: Mit Telnet auf der FritzBox einloggen und dann das Programm /usr/bin/ether-wake &lt;br /&gt;
in das fhem-Hauptverzeichnis kopieren. Zusätzlich muss das sog. &amp;quot;Sticky-Bit&amp;quot; mit dem Befehl &#039;chmod og+s ether-wake&#039;&lt;br /&gt;
gesetzt werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Einschalten des HTPCs&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set wol_zion on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausschalten des HTPCs mittels KODI&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set wz_KODI shutdown&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Thread über das Modul im {{Link2Forum|Topic=10075|LinkText=FHEM Forum}}&lt;br /&gt;
* Thread mit [http://forum.fhem.de/index.php?topic=14419.0 weiteren Informationen]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Unterhaltungselektronik]]&lt;br /&gt;
[[Kategorie:Code Snippets]]&lt;/div&gt;</summary>
		<author><name>Cori</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HM-Sen-MDIR-O_Funk-IR-Bewegungsmelder_au%C3%9Fen&amp;diff=14526</id>
		<title>HM-Sen-MDIR-O Funk-IR-Bewegungsmelder außen</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HM-Sen-MDIR-O_Funk-IR-Bewegungsmelder_au%C3%9Fen&amp;diff=14526"/>
		<updated>2016-03-05T16:37:49Z</updated>

		<summary type="html">&lt;p&gt;Cori: /* Konfiguration über Register */ inhaltliche Ergänzungen und Korrekturen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Hardware|Bild=HM-Sen-MDIR-O.jpg&lt;br /&gt;
|Bildbeschreibung=HM-Sen-MDIR-O&lt;br /&gt;
|HWProtocol=HomeMatic&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HomeMatic&lt;br /&gt;
|HWComm=868,3 MHz&lt;br /&gt;
|HWChannels=1&lt;br /&gt;
|HWPowerConsumption=unbekannt&lt;br /&gt;
|HWVoltage=4,5 V&lt;br /&gt;
|HWPoweredBy=Batterie, 3x LR06 (Mignon)&lt;br /&gt;
|HWSize=76 x 74 x 90 mm&lt;br /&gt;
|HWDeviceFHEM=[[CUL_HM]]&lt;br /&gt;
|HWManufacturer=eQ-3 &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HM-Sen-MDIR-O&#039;&#039;&#039;&lt;br /&gt;
HomeMatic Funk-IR-Bewegungsmelder außen&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
PIR-Bewegungsmelder mit Helligkeitssensor zur Tag-/Nachtumschaltung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technische Daten:&#039;&#039;&#039;&lt;br /&gt;
* Erfassungswinkel: ca. 90°&lt;br /&gt;
* Erfassungsbereich: ca. 9 m&lt;br /&gt;
* Drehbar: 360°&lt;br /&gt;
* Neigbar: 45°&lt;br /&gt;
* Schutzart: IP 44&lt;br /&gt;
&lt;br /&gt;
== Hinweise zur Inbetriebnahme und Installation ==&lt;br /&gt;
&amp;amp;lt;Bitte ergänzen&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Betrieb mit FHEM ==&lt;br /&gt;
&lt;br /&gt;
Das Pairing sollte wie in [[HomeMatic Devices pairen]] beschrieben durchgeführt werden. Die Anlerntaste am Bewegungsmelder sollte hierzu nur kurz betätigt werden. Bei einer Betätigung von vier Sekunden wird der Melder nur bei Unterschreiten einer festgelegten Helligkeitsschwelle auslösen (weitere Informationen siehe Abschnitt &#039;&#039;Anlernen&#039;&#039; der Herstellerdokumentation).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: sobald einmal ein motion-Status erkannt wurde, verbleibt das Gerät in diesem Modus. Alle Konfigurationsbeispiele setzen also einen zusätzlichen watchdog voraus:&lt;br /&gt;
&lt;br /&gt;
   define WD_Reset_EG.Scheune.MotionDetect watchdog EG.Scheune.MotionDetect:motion 00:04:05 SAME setreading EG.Scheune.MotionDetect state nomotion&lt;br /&gt;
&lt;br /&gt;
Dieser Umweg mit einem Watchdog läßt sich auch mit einer DOIF-Lösung verheiraten, siehe Beispiel &#039;&#039;&#039;Außenbeleuchtung zeitgesteuert und bei Bewegung schalten&#039;&#039;&#039;. Als Alternative kann auch auf die Uhrzeit der letzten Erkennung geprüft werden:&lt;br /&gt;
&lt;br /&gt;
  define di_lamp DOIF ([BM:state:sec] &amp;lt; 5)(set lamp on-for-timer 300)&lt;br /&gt;
  attr di_lamp do always&lt;br /&gt;
&lt;br /&gt;
=== Event-Monitor ===&lt;br /&gt;
&lt;br /&gt;
In regelmäßigen Abständen werden die folgenden Daten vom Bewegungsmelder (hier: HM-Sen-MDIR-O-2) übermittelt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2014-11-19 16:31:24 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer brightness: 120&lt;br /&gt;
2014-11-19 16:31:24 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer cover: closed&lt;br /&gt;
2014-11-19 16:31:24 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer battery: ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wird Bewegung erkannt, wird Folgendes vom Gerät (hier: HM-Sen-MDIR-O-2) übermittelt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2014-11-19 16:27:55 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer trigDst_2573FB: noConfig&lt;br /&gt;
2014-11-19 16:27:55 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer motion&lt;br /&gt;
2014-11-19 16:27:55 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer motion: on (to MyHMLAN)&lt;br /&gt;
2014-11-19 16:27:55 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer motionCount: 235_next:116s&lt;br /&gt;
2014-11-19 16:27:55 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer brightness: 120&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Log-Auszug ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Bitte ergänzen&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== fhem.cfg ===&lt;br /&gt;
&lt;br /&gt;
Bei eingeschaltetem Autocreate werden die erforderlichen Definitionen beim Pairen selbstständig erstellt (Beispiel: HM-Sen-MDIR-O-2).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer CUL_HM 2B033A&lt;br /&gt;
attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer IODev MyHMLAN&lt;br /&gt;
attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer actCycle 000:10&lt;br /&gt;
attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer actStatus alive&lt;br /&gt;
attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer autoReadReg 4_reqStatus&lt;br /&gt;
attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer expert 2_full&lt;br /&gt;
attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer firmware 1.6&lt;br /&gt;
attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer model HM-Sen-MDIR-O-2&lt;br /&gt;
attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer peerIDs 00000000,&lt;br /&gt;
attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer room CUL_HM&lt;br /&gt;
attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer serialNr LEQ0xxxxxx&lt;br /&gt;
attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer subType motionDetector&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration über Register ===&lt;br /&gt;
==== Anzeige aller dekodierten Register ====&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;get &amp;amp;lt;name&amp;amp;gt; regList&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
zeigt alle moeglichen &#039;dekodierten&#039; Register an. Fuer mdir sind dies alle, sollte also komplett sein. Hier findet man sowohl den Wertebereich alsauch eine (sehr) kleine Beschreibung.&lt;br /&gt;
Ausgabe:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
list:         register | range              | peer     | description&lt;br /&gt;
   0: pairCentral      |   0 to 16777215    |          | pairing to central&lt;br /&gt;
   1: brightFilter     |   0 to 7           |          | brightness filter - ignore light at night&lt;br /&gt;
   1: captInInterval   |     literal        |          | capture within interval options:on,off&lt;br /&gt;
   1: evtFltrNum       |   1 to 15          |          | sensitivity - read each n-th puls&lt;br /&gt;
   1: evtFltrPeriod    | 0.5 to 7.5s        |          | event filter period&lt;br /&gt;
   1: ledOnTime        |   0 to 1.275s      |          | LED ontime&lt;br /&gt;
   1: minInterval      |     literal        |          | minimum interval in sec options:240,60,120,30,15&lt;br /&gt;
   4: peerNeedsBurst   |     literal        | required | peer expects burst options:on,off&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;minInterval&lt;br /&gt;
: Minimales Interval in Sekunden vor dem Senden einer neuen Funknachricht. Der Standard ist 240. D.h. nach einer Bewegungs-Meldung werden erst nach min. 4 Minuten weitere Meldungen gesendet. Ob dafür neue Bewegungen nötig sind oder Bewegungen innerhalb des Intervalls ausreichen, regelt das Register captInInterval.&lt;br /&gt;
;captInInterval&lt;br /&gt;
: Sendet am Ende der &amp;quot;Sendepause&amp;quot; (minInterval) eine Funkmeldung, wenn Bewegungen innerhalb der Pause gemäß Filtereinstellungen eine Meldung ausgelöst hätten.&lt;br /&gt;
;brightFilter&lt;br /&gt;
: Filtert plötzliche Helligkeitsschwankungen aus und wirkt sich auf den Helligkeitswert aus. Dies soll bei motion-Meldungen an einen Aktor verhindern, dass durch plötzliche/kurzzeitige Beleuchtung ein falscher Helligkeitswert übermittelt wird. 0 Filtert nichts aus.&lt;br /&gt;
;evtFltrNum&lt;br /&gt;
: Filtert Bewegungen aus. Steht dieser Wert z.B. auf 5 so wird erst bei der fünften Bewegung die Meldung gesendet.&lt;br /&gt;
;evtFltrPeriod&lt;br /&gt;
: Gibt an wie viel Zeit zwischen zwei Bewegungen vergehen muss um für den evtFltrNum Filter gezählt zu werden. Steht dieser Wert auf 1 und evtFltrNum auf 5 so muss der Sensor  5 Sekunden Bewegungen registrieren um eine Meldung zu senden.&lt;br /&gt;
;ledOnTime&lt;br /&gt;
: Legt die Aufleuchtdauer der internen LED zur optischen Rückmeldung fest. Die LED leuchtet jedoch nur bei einer Funkübertragung auf. D.h. ist auch von minInterval abhängig.&lt;br /&gt;
&lt;br /&gt;
=== Einsatzbeispiele (per Notify) ===&lt;br /&gt;
&lt;br /&gt;
==== Gerät bei Bewegung schalten ====&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden [[Notify]] kann z. B ein [[HM-LC-SW1-FM Schaltaktor 1-fach UP|Unterputz-Schaltaktor]] für die angegebene Zeit (in Sekunden) eingeschaltet werden - ein [[Homematic Peering Beispiele|Peeren]] ist dazu vorher nicht erforderlich. Das Einschalten passiert in diesem Beispiel unabhängig von der Helligkeit.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define Notify_Bewegungsmelder_Haustuer notify HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer:motion set HM_LC_SW1_FM_298FB2_HaustuerLicht on-for-timer 300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Außenbeleuchtung zeitgesteuert und bei Bewegung schalten ====&lt;br /&gt;
&lt;br /&gt;
Das fortgeschrittene Beispiel steuert die Beleuchtung in Abhängigkeit von Uhrzeiten und zwei Bewegungsmeldern.&lt;br /&gt;
&lt;br /&gt;
Dazu wird das Twilight-Modul verwendet:&lt;br /&gt;
&lt;br /&gt;
  define MyTwilight Twilight 54.2539407 9.0650127 1 12833034&lt;br /&gt;
&lt;br /&gt;
wobei die Koordinaten und die Stadt-ID (letzte Zahl) angepaßt werden müßen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Zeitgesteuerte Außenbeleuchtung&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Dummy namens &#039;&#039;&#039;D_TimerAussenlicht&#039;&#039;&#039; speichert, ob das Außenlicht über die Uhrzeitregelung aktiviert wurde:&lt;br /&gt;
&lt;br /&gt;
  define D_TimerAussenlicht dummy&lt;br /&gt;
  attr D_TimerAussenlicht room Aussen&lt;br /&gt;
  &lt;br /&gt;
  define AussenlichtONOFF DOIF (( [05:30-07:40|8] or [06:30-08:00|7] or [15:30-22:30] or ([15:30-01:00] and [PresTVWintergarten:state] eq &amp;quot;present&amp;quot;)) and [MyTwilight:twilight_weather] &amp;lt; 40) \&lt;br /&gt;
      (set D_TimerAussenlicht on, set Aussenlicht on) \&lt;br /&gt;
  DOELSE \&lt;br /&gt;
      (set D_TimerAussenlicht off, set Aussenlicht off)&lt;br /&gt;
&lt;br /&gt;
Dies aktiviert die Außenbeleuchtung zwischen 05:30-07:40 an Werktagen oder zwischen 06:30-08:00 an Wochenenden oder Ferientagen oder zwischen 15:30-22:30 oder zwischen 15:30-01:00 sofern der Fernseher (&#039;&#039;&#039;PresTVWintergarten&#039;&#039;&#039;) mit Hilfe des PRESENCE-Moduls erkannt wurde - aber nur, wenn es dunkel ist. Für die Erkennung der Dunkelheit wurde des Twilight-Modul verwendet und der Schwellwert auf 40 definiert. Wie in der Dokumentation ersichtlich, sind die angegebenen Uhrzeiten die möglichen START- und END-Zeiten - sollte die Dunkelheit (AND-Verknüpfung des Twilight-Modules) nicht ausreichen, wird das Licht später ein- oder früher ausgeschaltet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bewegungsmelder&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Lösung basiert auf der vorgeschlagenen Bewegungsmelder-Lösung mit DOIF, integriert jedoch das löschen des &#039;&#039;&#039;motion&#039;&#039;&#039;-Zustandes in den Bewegungsmeldern:&lt;br /&gt;
&lt;br /&gt;
  define D_MotionDetectHinten dummy&lt;br /&gt;
  &lt;br /&gt;
  define DI_MotionHintenScheune DOIF ([EG.Scheune.MotionDetect] eq &amp;quot;motion&amp;quot; )  (set D_MotionDetectHinten on, set D_MotionDetectHinten off, setreading EG.Scheune.MotionDetect state nomotion)&lt;br /&gt;
  attr DI_MotionHintenScheune do always&lt;br /&gt;
  &lt;br /&gt;
  define DI_MotionHintenDurchgang DOIF ([EG.Durchgang.MotionDetect] eq &amp;quot;motion&amp;quot; )  (set D_MotionDetectHinten on, set D_MotionDetectHinten off, setreading EG.Durchgang.MotionDetect state nomotion)&lt;br /&gt;
  attr DI_MotionHintenDurchgang do always&lt;br /&gt;
  &lt;br /&gt;
  define DI_MotionLichtHinten DOIF ([D_MotionDetectHinten] eq &amp;quot;on&amp;quot; and [D_TimerAussenlicht] eq &amp;quot;off&amp;quot; and [MyTwilight:twilight_weather] &amp;lt; 40) \&lt;br /&gt;
      (set LichtStruc.Aussen.Hinten on) \&lt;br /&gt;
  DOELSE  \&lt;br /&gt;
      (set   LichtStruc.Aussen.Hinten off)&lt;br /&gt;
  attr DI_MotionLichtHinten wait 0:240&lt;br /&gt;
&lt;br /&gt;
Der Dummy &#039;&#039;&#039;D_MotionDetectHinten&#039;&#039;&#039; wird von beiden Bewegungsmeldern (EG.Durchgang.MotionDetect und EG.Scheune.MotionDetect) getriggert. Sobald diese eine Bewegung erkennen, werden diese auf das Muster &#039;&#039;&#039;on&#039;&#039;&#039; gefolgt von &#039;&#039;&#039;off&#039;&#039;&#039; gesetzt. Direkt danach wird der motion-Status des auslösenden Bewegungsmelders gelöscht.&lt;br /&gt;
&lt;br /&gt;
Das dritte DOIF reagiert auf einen Wechsel des Dummys (D_MotionDetectHinten) und prüft, ob das Außenlicht bereits zeitgesteuert (D_TimerAussenlicht, siehe Abschnitt oben) aktiviert wurde. Ist dies nicht der Fall und dunkel (Twilight-Modul und Abfrage) genug, wird die structure (LichtStruc.Aussen.Hinten) ohne Verzögerung für 240 Sekunden aktiviert.&lt;br /&gt;
&lt;br /&gt;
Die Bewegungsmelder können dann ebenfalls auf eine 240-Sekunden-Verzögerung konfiguriert werden - die Lichter brennen ja bereits für diese Zeitdauer.&lt;br /&gt;
&lt;br /&gt;
==== Gerät bei Bewegung in Abhängigkeit der Helligkeit schalten ====&lt;br /&gt;
&lt;br /&gt;
Mit der nachfolgenden Notify-Definition werden zwei Log-Einträge erzeugt, eine Meldung auf der [[Enigma2 Receiver (Dreambox, VUplus etc.) steuern|Dreambox]] angezeigt, falls diese angeschaltet ist, und ein [[HM-LC-SW1-FM Schaltaktor 1-fach UP|Unterputz-Schaltaktor]] für die angegebene Zeit (in Sekunden) eingeschaltet, falls die gemessene Helligkeit am Bewegungsmelder kleiner oder gleich 90 ist.&lt;br /&gt;
&lt;br /&gt;
Der Code ist hier so angegeben, wie er in der Weboberfläche nach einem Klick auf das [[Konfiguration|DEF-Feld]] übernommen werden kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HM_BewegMelder_Carport:motion { &lt;br /&gt;
    Log 1, &amp;quot;Trigger-Notify von BewegMelderCarport: @&amp;quot;;&lt;br /&gt;
    Log 1, ReadingsVal( &amp;quot;HM_BewegMelder_Carport&amp;quot;, &amp;quot;brightness&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
    fhem( &amp;quot;set E2_Dreambox showText Bewegung am Carport&amp;quot; ) if ReadingsVal(&amp;quot;E2_Dreambox&amp;quot;,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;on&amp;quot;; &lt;br /&gt;
    if ( ReadingsVal( &amp;quot;HM_BewegMelder_Carport&amp;quot;, &amp;quot;brightness&amp;quot;, &amp;quot;&amp;quot;) &amp;lt;= 90 ) {&lt;br /&gt;
        fhem( &amp;quot;set HM_Sw1_GarageLED on-for-timer 300&amp;quot; );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einsatzbeispiele (per DOIF) ===&lt;br /&gt;
&lt;br /&gt;
==== Aktor in Abhängigkeit der Helligkeit und innerhalb eines Zeitraums schalten ====&lt;br /&gt;
&lt;br /&gt;
Voraussetzung: [[Twilight]]-Modul&lt;br /&gt;
Die Twilight-Abfragen könnten natürlich auch entfernt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define di_lampe DOIF (&lt;br /&gt;
(&lt;br /&gt;
	[sensor:brightness] &amp;lt; 120 and&lt;br /&gt;
	[?[twilight:ss_indoor]-23:59]&lt;br /&gt;
)&lt;br /&gt;
	(set lampe on)&lt;br /&gt;
DOELSEIF &lt;br /&gt;
(&lt;br /&gt;
	[sensor:brightness] &amp;gt; 80 and&lt;br /&gt;
	[?04:00-[twilight:sr_indoor]]&lt;br /&gt;
)&lt;br /&gt;
	(set lampe off)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Aktor bei Bewegung einschalten (inkl. weiterer Gimmicks) ====&lt;br /&gt;
&lt;br /&gt;
Benötigte Module: [[Twilight]] und [[Anwesenheitserkennung|Residents]]&lt;br /&gt;
&lt;br /&gt;
Die Zeilen zum Residents und Twilight-Modul könnten natürlich auch entfernt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define di_lampe2 DOIF (&lt;br /&gt;
(&lt;br /&gt;
	(&lt;br /&gt;
		## Bewegungsmelder löst aus&lt;br /&gt;
		[sensor:?motion] and&lt;br /&gt;
		## nur wenn Lampe nicht zuvor manuell eingeschaltet wurde&lt;br /&gt;
		[lampe:state] ne &amp;quot;on&amp;quot; and&lt;br /&gt;
		## und wenn es nicht sowieso hell genug ist.&lt;br /&gt;
		[?sensor:brightness] &amp;lt; 50&lt;br /&gt;
	) &lt;br /&gt;
	and&lt;br /&gt;
	(&lt;br /&gt;
		## entweder immer nachts&lt;br /&gt;
		[?00:00-[twilight:sr_civil]] or&lt;br /&gt;
		## oder wenn niemand daheim&lt;br /&gt;
		[?rgr_Residents] ne &amp;quot;home&amp;quot;&lt;br /&gt;
	)&lt;br /&gt;
) &lt;br /&gt;
	(set lampe2 on-for-timer 180)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sonstiges ===&lt;br /&gt;
&lt;br /&gt;
==== Anzeige der Uhrzeit der letzten Bewegung ====&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zeitpunkt der letzten erfassten Bewegung in der GUI sehen, so muss hierzu folgendes Attribut gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attr Sensor showtime 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
Geräte verfügen über keinen Sabotage-Kontakt.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Manual: [http://www.eq-3.de/Downloads/eq3/pdf_produkte/104108_HM-Sen-MDIR-O_V1.2_GE_eQ-3_20120510.pdf PDF HM-Sen-MDIR-O],&lt;br /&gt;
[http://www.eq-3.de/Downloads/eq3/pdf_produkte/HM-Sen-MDIR-O-2_UM_GE_131024.pdf PDF HM-Sen-MDIR-O-2]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Lichtsensoren]]&lt;br /&gt;
[[Kategorie:Bewegungs- und Anwesenheitsmelder]]&lt;/div&gt;</summary>
		<author><name>Cori</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Peering_Beispiele&amp;diff=14474</id>
		<title>HomeMatic Peering Beispiele</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Peering_Beispiele&amp;diff=14474"/>
		<updated>2016-03-04T22:04:06Z</updated>

		<summary type="html">&lt;p&gt;Cori: /*Virtuelle Entities &amp;amp; IO Entities */ Absatz überarbeitet und ergänzt, Todo (Sinn Peering IO mit Aktor) erledigt und gelöscht&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Artikel beschreibt wie mit FHEM Homematic Sensoren und Aktoren gepeert werden können. Peering ist nicht zu verwechseln mit Pairing, d.h. dem Verknüpfen von Homematic Geräten mit einer Zentrale (wie beispielsweise Fhem). Details zum Pairing findet man [[HomeMatic_Devices_pairen|&#039;&#039;&#039;hier&#039;&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
Beim &#039;&#039;Peering&#039;&#039; (deutsch sinngemäß: Verbindung von Gleichen) handelt es sich um das Verknüpfen von Kanälen (Channels) verschiedender HomeMatic-Geräte, um diese auch ohne Zentrale kommunizieren zu lassen. Nach dem Peering sendet meist ein Sensorkanal (remote, push-button, Bewegungsmelder,...) einen Trigger an einen Aktorkanal des anderen Gerätes. &lt;br /&gt;
Besonderheiten:&lt;br /&gt;
* peeren kann man nur Channels, nicht HomeMatic-Geräte. Die Peer-Listen der verschiedenen Kanäle eines Gerätes sind unabhängig voneinander.&lt;br /&gt;
* gepeert werden immer ein oder mehrere Sensorkanäle mit einem oder mehreren Aktorkanälen&lt;br /&gt;
* der Sensor sendet einen Trigger, evtl. mit einem Zusatzwert. Es ist &#039;&#039;immer&#039;&#039; der Aktorkanal, der festlegt, welche Aktion ergriffen wird. Ein Button kann demnach gleichzeitig ein Einschalter für einen Aktor und ein Ausschalter für einen anderen Aktor sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Das in vielen mitgelieferten HomeMatic-Anleitungen beschriebene Peering von Kanälen ohne Zentrale funktioniert nur, wenn keines der beiden Geräte gepairt ist. Im Folgenden gehen wir davon aus, dass beide Geräte bereits mit einer Homematic-Zentrale (z.B. Fhem) [[HomeMatic_Devices_pairen|gepairt]] sind.}}&lt;br /&gt;
&lt;br /&gt;
== Kommandos ==&lt;br /&gt;
&lt;br /&gt;
=== peerChan ===&lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;sensChan&amp;gt; peerChan 0 &amp;lt;actChan&amp;gt; [single|dual] [set|unset]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;peerChan&amp;lt;/code&amp;gt; peert (verbindet) einen Sensorkanal mit einem Aktorkanal.&lt;br /&gt;
Dabei ist &amp;lt;code&amp;gt;&amp;amp;lt;sensChan&amp;amp;gt;&amp;lt;/code&amp;gt; der Name des Sensorkanals und &amp;lt;code&amp;gt;&amp;amp;lt;actChan&amp;amp;gt;&amp;lt;/code&amp;gt; der Name des Aktorkanals.&lt;br /&gt;
&lt;br /&gt;
* Mit dem Schlüsselwort &#039;&#039;single&#039;&#039; wird genau dieser Sensorkanal gepeert. &lt;br /&gt;
* Mit dem Schlüsselwort &#039;&#039;dual&#039;&#039; werden zwei zusammengehörende Sensorkanäle mit dem Aktorkanal verknüpft. Die beiden Sensorkanäle lösen unterschiedliche Aktionen aus, beispielsweise &#039;&#039;an&#039;&#039; und &#039;&#039;aus&#039;&#039;.&lt;br /&gt;
* Das Schlüsselwort &#039;&#039;set&#039;&#039; legt das Peering an, das Schlüsselwort &#039;&#039;unset&#039;&#039; hebt es auf.&lt;br /&gt;
&lt;br /&gt;
Das Kommando unterliegt den allgemeinen [[HomeMatic#Kommunikation|Regeln]]. Es wirkt auf zwei Geräte gleichzeitig, weshalb beide Geräte beobachtet werden sollten – ggf. muss an einem oder beiden Geräten die Anlerntaste gedrückt werden.&lt;br /&gt;
&lt;br /&gt;
=== peerIODev ===&lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;actChan&amp;gt; peerIODev &amp;lt;IO&amp;gt; &amp;lt;chan&amp;gt; [set|unset]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;peerIODev&amp;lt;/code&amp;gt; peert (verbindet) einen Aktorkanal mit einem I/O-Device.&lt;br /&gt;
Dabei ist &amp;lt;code&amp;gt;&amp;amp;lt;IO&amp;amp;gt;&amp;lt;/code&amp;gt; der Namen des I/O-Devices und &amp;lt;code&amp;gt;&amp;amp;lt;chan&amp;amp;gt;&amp;lt;/code&amp;gt; die Nummer des virtuellen Kanals ist. Kanäle von 1 bis 50 sind zulässig.&lt;br /&gt;
&lt;br /&gt;
=== peerBulk ===&lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;sensChan&amp;gt; peerBulk &amp;lt;peer1,peer2,...&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;peerBulk&amp;lt;/code&amp;gt; dient der Wiederherstellung einer gesicherten Konfiguration.&lt;br /&gt;
Dieser Befehlt erlaubt eine Liste von Peers en-block in ein Gerät zu schreiben. Die Gegenstelle und die Kommunikation der Beiden wird nicht berücksichtigt.&lt;br /&gt;
&lt;br /&gt;
==Sensoren ==&lt;br /&gt;
Ist ein Sensorkanal mit einem Aktorkanal gepeert, gibt es meist nur wenig mögliche Einstellungen. Wichtige Beispiele sind &lt;br /&gt;
* Notwendigkeit, den Peer mit einem burst aufzuwecken (Register peerNeedsBurst). &lt;br /&gt;
* Erwartung von AES-Verschlüsselung/Authentifizierung (Register expectAES).&lt;br /&gt;
&lt;br /&gt;
===LED===&lt;br /&gt;
Ein ungepeerter Sensorkanal signalisiert einen Tastendruck meist mit gelber LED. Ist der Kanal gepeert, wird mit einer grünen LED signalisiert, dass ALLE Peers den Empfang des Triggers bestätigt (d.h. &amp;quot;ACK&amp;quot; gesendet) haben. Sollten nicht alle Peers eine Bestätigung senden, wird mit einer rot LED quittiert. &lt;br /&gt;
&lt;br /&gt;
==Aktoren==&lt;br /&gt;
Ist ein Sensorkanal mit einem Aktorkanal gepeert, muss im Aktorkanal eingestellt werden, welche Trigger gültig sind und welche Aktionen ergriffen werden sollen. Im Channel wird ein Satz Register angelegt, die als Reading mit &#039;&#039;&#039;R-&amp;lt;peername&amp;gt;...&#039;&#039;&#039; zusammengefasst sind. Meist sind 2 Gruppen je Peer vorhanden, eine für langen &#039;&#039;&#039;lg&#039;&#039;&#039; und eine für kurzen &#039;&#039;&#039;sh&#039;&#039;&#039; Tastendruck. Die Register für long und short sind deckungsgleich, bis auf das Register multiExec in der Gruppe long.&lt;br /&gt;
&lt;br /&gt;
Für das Setzen des Wertes im Aktorkanal gilt die Syntax&lt;br /&gt;
   set &amp;lt;actChan&amp;gt; regSet &amp;lt;register&amp;gt; &amp;lt;value&amp;gt; &amp;lt;peername&amp;gt;&lt;br /&gt;
===Condition Table===&lt;br /&gt;
Mit den Registern der Condition Table &#039;&#039;&#039;CT&#039;&#039;&#039; kann man Trigger filtern. So sendet beispielsweise ein Fensterkontakt einen Trigger mit einem Zusatzwert open=200 oder closed=0. Die CT hat 2 Vergleichswerte, &#039;&#039;&#039;Hi&#039;&#039;&#039; und &#039;&#039;&#039;Lo&#039;&#039;&#039;. Der Zusatzwert des Triggers wird entsprechend des Einträgen in der CT verglichen. Ist der Schalter z.B. an, dann wird auf den Eintrag in &#039;&#039;&#039;CTon&#039;&#039;&#039; genutzt. Steht dort &#039;&#039;&#039;geLo&#039;&#039;&#039; wird gprüft, ob der Zusatzwert des triggers grösser oder gleich dem Lo-Wert ist. Ist dies nicht der Fall, wird keine Aktion ausgeführt.&lt;br /&gt;
Register zur Condition Table sind:&lt;br /&gt;
   CtDlyOff |  literal | Jmp on condition from delayOff options:geLo,between,outside,ltLo,geHi,ltHi&lt;br /&gt;
   CtDlyOn  |  literal | Jmp on condition from delayOn options:geLo,between,outside,ltLo,geHi,ltHi&lt;br /&gt;
   CtOff    |  literal | Jmp on condition from off options:geLo,between,outside,ltLo,geHi,ltHi&lt;br /&gt;
   CtOn     |  literal | Jmp on condition from on options:geLo,between,outside,ltLo,geHi,ltHi&lt;br /&gt;
   CtValHi  |0 to 255  | Condition value high for CT table&lt;br /&gt;
   CtValLo  |0 to 255  | Condition value low for CT table&lt;br /&gt;
Remotes liefern keinen Zusatzwert. Die Conditon Table wird nicht genutzt. &lt;br /&gt;
===Jump Table===&lt;br /&gt;
In der Jump Table wird zusammen mit ActionType festgelegt, welche Aktion ein gültiger Trigger ausführen soll. Die Aktion ist vom Gerät abhängig.&lt;br /&gt;
&lt;br /&gt;
===Interne Peers===&lt;br /&gt;
Aktoren können eingebaute oder direkt angeschlossene Taster oder Tasteneingänge haben, die auch als Peers verarbeitet werden. Normalerweise sind diese nicht sichtbar, sie können aber durch Absetzen des Befehls &lt;br /&gt;
  set &amp;lt;device&amp;gt; regSet intKeysVisib visib&lt;br /&gt;
sichtbar und einstelllbar gemacht werden.&lt;br /&gt;
&lt;br /&gt;
==Virtuelle Entities==&lt;br /&gt;
Soll ein FHEM-Befehl bei einem Aktor nicht nur eine Aktion auslösen, muss er mit einem Kanal einer &amp;lt;u&amp;gt;[[HomeMatic#Virtuelle_Entities|virtuellen Entität]]&amp;lt;/u&amp;gt; oder einer &amp;lt;u&amp;gt;[[HomeMatic#IO_Entities|IO Entität]]&amp;lt;/u&amp;gt; gepeert werden. Das Peering erfolgt wie bei realen Homematic-Geräten. Achtung: da diese virtuellen Peers nicht in einem realen Gerät gespeichert werden, ist nach der Definition ein &#039;&#039;&#039;Save config&#039;&#039;&#039; nötig. &amp;lt;br /&amp;gt;&lt;br /&gt;
Dadurch lassen sich nicht nur einfache Befehle je Kanal aussenden, sondern die Peering-Listen in Aktoren nutzen um mit einem Funkbefehl z.B.&lt;br /&gt;
*Schleifen zu starten (z.B. bei Alarmauslösung ein Pulsieren der Beleuchtung, alle x Min eine kurze Unterbrechung, ...)&lt;br /&gt;
*Abläufe zu starten (z.B. Treppenhauslicht mit Vorwarnung bei Dimmern, ...)&lt;br /&gt;
*mehrere Aktoren gleichzeitig schalten zu lassen&lt;br /&gt;
Sonst müsste man für jede Zustandsänderung bzw. für jeden Aktor einen eigenen Befehl senden. Somit reagieren mehrere Aktoren auf ein FHEM-Kommando gleichzeitig.&lt;br /&gt;
&lt;br /&gt;
===IO Entities===&lt;br /&gt;
&amp;lt;u&amp;gt;[[HomeMatic#IO_Entities|IO Entities]]&amp;lt;/u&amp;gt; sind virtuelle Kanäle eines IO-Devices (z.B. [[Virtueller Controller VCCU|VCCU]], [[HM-CFG-LAN|HMLAN]], ...) und können somit gepeert werden. Hierfür gibt es das Kommando [[Homematic Peering Beispiele#peerIODev|peerIODev]].&lt;br /&gt;
&lt;br /&gt;
= Beispiele=&lt;br /&gt;
== Peering der Kanäle einer Fernbedienung mit einem Aktor ==&lt;br /&gt;
Dabei muss beachtet werden, dass auf den Fernbedienungen immer zwei Buttons zusammengehören, also z.B. lock/unlock, open/light oder Btn01/Btn02, Btn03/Btn04. Achtung: Für ein erfolgreiches Peering muss ggf. auf der Fernbedienung die Anlerntaste gedrückt werden.&lt;br /&gt;
&lt;br /&gt;
Bei einem &amp;quot;dual&amp;quot; Peering werden die beiden zusammengehörenden Kanäle der Fernbedienung mit einem Aktorkanal gepeert - einer der Buttons wirkt dann als &amp;quot;on&amp;quot;, der andere als &amp;quot;off&amp;quot;-Schalter.&lt;br /&gt;
&lt;br /&gt;
  set fb_Btn03 peerChan 0 blind&lt;br /&gt;
peert die Buttons Btn03 und Btn04 mit dem Aktorkanal &#039;&#039;blind&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bei einem &amp;quot;single&amp;quot; Peering wird nur einer der beiden Kanäle der Fernbedienung mit einem Aktorkanal gepeert - als Aktion wird dann im Aktorkanal ein &amp;quot;toggle&amp;quot; eingetragen.&lt;br /&gt;
&lt;br /&gt;
  set fb_Btn07 peerChan 0 blind single&lt;br /&gt;
peert nur den Button Btn07 mit dem Aktorkanal &#039;&#039;blind&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Das Unpeering, also das Löschen einer Paarung, erfolgt z.B. durch den Befehl&lt;br /&gt;
  set fb_Btn07 peerChan 0 blind single unset&lt;br /&gt;
&lt;br /&gt;
== Peering von I/O-Entities ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set blind peerIODev HMLAN1 5&lt;br /&gt;
set blind peerIODev HMLAN1 7 unset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Examples]]&lt;/div&gt;</summary>
		<author><name>Cori</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic&amp;diff=14473</id>
		<title>HomeMatic</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic&amp;diff=14473"/>
		<updated>2016-03-04T21:21:58Z</updated>

		<summary type="html">&lt;p&gt;Cori: /* IO Entities */ falschen Satz gelöscht&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Achtung, diese Seite wird derzeit im Sinne einer klareren Beschreibung überarbeitet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HomeMatic&#039;&#039;&#039; (HM) ist ein System des Herstellers eQ-3 zur Steuerung und Überwachung von zahlreichen Aufgaben und Situationen im Haus. Erhältlich sind sowohl Geräte mit Funkschnittstelle 868.3 MHz, als auch (seit 2008) drahtgebundene Geräte mit RS485-Schnittstelle. Im Programm sind Geräte zur Heizungs- und Lichtsteuerung, Temperatur-, Luftfeuchte- und Feuchtemessung, Zutrittskontrolle, als Wasser-, Brand- und Bewegungsmelder sowie als Wetterstation, ferner gibt es noch Fernbedienungen und Statusdisplays.&lt;br /&gt;
&lt;br /&gt;
=Grundlagen=&lt;br /&gt;
HomeMatic-Geräte können untereinander &#039;&#039;gepeert&#039;&#039; werden (engl. &#039;&#039;peers&#039;&#039; = &amp;quot;Gleiche&amp;quot;), im einfachsten Fall kann deshalb bereits ein Sensor (z.B. ein Temperatursensor) mit einem Aktor (z.B. einem Heizkörperregler) verbunden werden und diesen steuern. Hierbei können mehrere Sensoren und Aktoren untereinander verbunden werden, die Vorstellung der &amp;quot;Gleichen&amp;quot; ist also zutreffend.&lt;br /&gt;
&lt;br /&gt;
HomeMatic-Geräte können auch mit einer Zentrale verbunden (&#039;&#039;gepairt&#039;&#039;) werden, die dann einen Teil der Steuerungslogik übernehmen kann. Bei dieser Verbindung spricht man vom &#039;&#039;Pairing&#039;&#039;, weil jedes HomeMatic-Gerät nur mit einer Zentrale verbunden werden kann. Gepairte Geräte können auch nicht mehr direkt gepeert werden - dies geht dann nur noch unter Beteiligung der Zentrale.&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen==&lt;br /&gt;
Für den Betrieb ohne Zentrale sind keine weiteren Voraussetzungen zu erfüllen.&lt;br /&gt;
===Zentrale von eQ-3===&lt;br /&gt;
Vom Hersteller eQ-3 selbst wird eine Zentrale (derzeit aktuell CCU-2) und Windows-Software zur Steuerung und Auswertung der HM-Komponenten angeboten.&lt;br /&gt;
&lt;br /&gt;
===Fhem als Zentrale===&lt;br /&gt;
Zur Kommunikation mit HomeMatic benötigt Fhem eine Schnittstelle, die im 868,3-MHz-Band funken kann. Infrage kommen:&lt;br /&gt;
* [[CUL]] (USB)&lt;br /&gt;
* [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] (USB)&lt;br /&gt;
* [[CUNO]] (LAN)&lt;br /&gt;
* [[HM-CFG-LAN]] (oft auch &amp;quot;HMLAN&amp;quot; genannt; LAN)&lt;br /&gt;
&lt;br /&gt;
Für &#039;&#039;HomeMatic Wired&#039;&#039; benötigt man eine RS485-Schnittstelle. Verfügbar sind:&lt;br /&gt;
* [[HomeMatic Wired RS485 LAN Gateway|HMW-LGW-O-DR-GS-EU]] (LAN)&lt;br /&gt;
&lt;br /&gt;
===Migration von CCU-2 zu Fhem===&lt;br /&gt;
Der Umzug einer bestehenden HomeMatic Installation von einer HomeMatic CCU-2 auf Fhem ist möglich. Um die an die Zentrale angebundenen Devices in Fhem ohne größere Umkonfiguration weiter verwenden zu können, muß die HM-Id und, falls verwendet, die AES-Schlüssel der CCU-2 in Fhem übernommen werden. Um diese Daten aus der CCU-2 auszulesen, wird eine SSH-Verbindung (zum Beispiel mit PuTTY unter Windows) aufgebaut. Die HM-Id befindet sich in der Datei &amp;lt;code&amp;gt;/usr/local/etc/config/rfd/BidCoS-RF.dev&amp;lt;/code&amp;gt; in einer Zeile wie dieser:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;device serial=&amp;quot;BidCoS-RF&amp;quot; type=&amp;quot;HM-RCV-50&amp;quot; address=&amp;quot;&amp;lt;span style=&amp;quot;color: maroon; font-weight: bold;&amp;quot;&amp;gt;0xABCDEF&amp;lt;/span&amp;gt;&amp;quot; aes_key_index=&amp;quot;0&amp;quot; firmware_version=&amp;quot;2.11.9&amp;quot; bidcos_interface=&amp;quot;KEQ1234567&amp;quot; roaming=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die HM-Id ist der Wert des &amp;lt;code&amp;gt;address&amp;lt;/code&amp;gt;-Attributs. Die dort angegebene hexadezimale Zahl (hier &amp;lt;code&amp;gt;0xABCDEF&amp;lt;/code&amp;gt;) ist die HM-Id und wird in Fhem ohne das &amp;quot;0x&amp;quot;-Präfix verwendet.&lt;br /&gt;
&lt;br /&gt;
Falls AES-Schlüssel eingerichtet sind, sind diese in der Datei &amp;lt;code&amp;gt;/etc/config_templates/crypttool.cfg&amp;lt;/code&amp;gt; zu finden und können 1:1 als Schlüssel im [[HM-CFG-LAN]] in der gleichen Reihenfolge hinterlegt werden.&lt;br /&gt;
{{Todo|Wie werden AES-Schlüssel in HM-CFG-LAN &amp;quot;hinterlegt&amp;quot;?}}&lt;br /&gt;
&lt;br /&gt;
==Prototokoll==&lt;br /&gt;
HM-Geräte kommunizieren untereinander mit dem Protokoll &#039;&#039;Bidirectional Communication Standard&#039;&#039;, abgekürzt &#039;&#039;BidCoS&#039;&#039;. Jedes HM-Gerät enthält also Sender und Empfänger, das ist einer der wesentlichen Unterschiede z.B. zum FS20-System.&lt;br /&gt;
*Jedes HM-Gerät meldet beim Empfang eines Steuerbefehls durch einen Peer an diesen eine Bestätigung „ACK“ zurück. Erkennt das HM-Gerät den Befehl nicht, sendet es ein &#039;&#039;NACK&#039;&#039;. Kommt vom HM-Gerät keine Rückmeldung innerhalb einer festgelegten Zeit, meldet der steuernde Peer ein &#039;&#039;MISSING ACK&#039;&#039;.&lt;br /&gt;
*Jedes HM-Gerät meldet ferner seinen Status nach dem Erhalt eines Steuerbefehls zurück - so kann auch ein lokal am Gerät erfolgender Tastendruck in beim steuernden Peer oder  in der Zentrale registriert werden.&lt;br /&gt;
&lt;br /&gt;
Das Protokoll &#039;&#039;BidCoS&#039;&#039; wurde zum großen Teil entschlüsselt, seine offen verfügbare Variante heißt &#039;&#039;AskSin&#039;&#039;. Unter Verwendung der AskSin-Library entstehen derzeit erste Geräte, die in das HomeMatic-System eingebunden werden können. Zur Unterscheidung zwischen HM und den neuen Geräten werden diese als [[HomeBrew]] (HB) bezeichnet.&lt;br /&gt;
&lt;br /&gt;
=Betrieb mit Fhem=&lt;br /&gt;
Die Kenntnis des Dokumentes [http://fhem.de/Heimautomatisierung-mit-fhem.pdf Einsteigerdokuments &amp;quot;Heimautomatisierung mit Fhem&amp;quot;] wird vorausgesetzt. Im Anhang dieses Dokuments findet sich ein Teil über den Aufbau und die Funktion von HM-Geräten.&lt;br /&gt;
&lt;br /&gt;
=== Einrichten des IO-Devices (Funkschnittstelle)===&lt;br /&gt;
Zuerst muss ein IO-Device eingerichtet werden, um mit HM Geräten kommunizieren zu können. Siehe hierzu [[HMLAN Konfigurator]].&lt;br /&gt;
&lt;br /&gt;
=== Struktur von HM Geräten===&lt;br /&gt;
HM Geräte sind logisch in ein &#039;&#039;&#039;Device (Gerät)&#039;&#039;&#039; und ein oder mehrere &#039;&#039;&#039;Channels (Kanäle)&#039;&#039;&#039; gegliedert. Jedes Device und jeder Channel wird in einer Entity in FHEM repräsentiert. &amp;lt;br&amp;gt;&lt;br /&gt;
Ausnahme: Sollte ein Gerät nur einen Kanal haben werden diese zusammen in einer Entity angelegt. &lt;br /&gt;
====Device (Gerät)====&lt;br /&gt;
Das Device ist für die Kommunikation verantwortlich. Es sortiert und ordnet die zu sendenden und empfangenden Nachrichten. &lt;br /&gt;
Man kann prüfen, ob alle Nachrichten übertragen sind, oder ob es Probleme gegeben hat. Die Variablen &amp;quot;prot...&amp;quot; geben Auskunft darüber. Siehe auch [[Homematic_HMInfo#protoEvents]].&lt;br /&gt;
Zu beachten sind zudem die Übertragungsmodi. Nicht alle Devices sind ständig auf Empfang - FHEM muss berücksichtigen, wann gesendet werden kann. In &#039;&#039;&#039;protState&#039;&#039;&#039; kann man sehen, ob Kommandos auf Verarbeitung warten, also pending sind.&lt;br /&gt;
Einige Devices unterstützen mehrere Modi parallel. &lt;br /&gt;
===== Config=====&lt;br /&gt;
Wird von allen Devices unterstützt, auch wenn es bei Always kaum genutzt werden kann.&lt;br /&gt;
Man setzt die Kommandos in FHEM ab und diese warten in der Kommando-queue.  &lt;br /&gt;
Wenn die config-funktion am Device ausgelöst wird (Anlerntaste drücken) sendet FHEM die wartenden Nachrichten der Reihe nach.&lt;br /&gt;
Config wird bei allen Devices zum pairen genutzt.&lt;br /&gt;
===== Always=====&lt;br /&gt;
Trifft man meist bei netzbetriebenen Geräten an, da diese kein Problem mit dem Energieverbrauch haben. Man kann immer mit dem Device kommunizieren.&lt;br /&gt;
===== Burst=====&lt;br /&gt;
Nur der Empfänger des Device ist aktiv. Über eine Aufweck-sequenz kann das Device geweckt werden. Man kann quasi immer mit dem Device kommunizieren. Nachteil des Aufwecken ist zum Einen, dass immer ALLE Devices im Funknetz geweckt werden, was deren Batterie belastet. Zum Andere ist die Aufweck-sequenz funktechnisch aufwändig und belastet die maximal erlaubte Sendekapazität des IO device je Stunde. &lt;br /&gt;
===== ConditionalBurst=====&lt;br /&gt;
Bei einigen Devices kann man den Burst mode zuschalten. Dies sind Devices, die zusätzlich über andere modi verfügen, so z.B. wakeup. Schaltet man burst-empfang ein kann man immer und sofort mit dem Device reden, es kostet aber etwas mehr Batterie. Siehe hierzu Attribut &#039;&#039;&#039;burstAccess&#039;&#039;&#039;, Kommando &#039;&#039;&#039;burstXmit&#039;&#039;&#039; und Register &#039;&#039;&#039;burstRx&#039;&#039;&#039;&lt;br /&gt;
===== LazyConfig=====&lt;br /&gt;
Kommandos in der Queue werden bearbeitet, wenn eine Aktion vom Device ausgeht. So zum Beispiel ein Tastendruck bei einer Fernbedienung.&lt;br /&gt;
Dieser mode wird von CUL/CUNO nicht unterstützt. FHEM ignoriert diese Option automatisch und wartet i.a. auf ein Config.&lt;br /&gt;
===== Wakeup=====&lt;br /&gt;
Die Devices wachen regelmäßig auf und senden Daten, z.B. Temperatursensoren. Zu diesem Zeitpunkt kann FHEM die Nachrichten übertragen. Die Aufwachperiode ist unterschiedlich von 3 min bis zu 24h.&lt;br /&gt;
&lt;br /&gt;
====Channel (Kanal)====&lt;br /&gt;
Ein Kanal ist die Funktionseinheit des Geräts. Hier ist die Funktion des Sensors oder Aktors realisiert. &amp;lt;br /&amp;gt;&lt;br /&gt;
Nutzt ein Gerät nur einen Kanal, wird dieser in FHEM der Übersichtlichkeit halber nicht einzeln angelegt. Für die Kommandos und das Peering wird trotzdem die HM-ID des 1. Kanals verwendet.&amp;lt;br /&amp;gt;&lt;br /&gt;
Nutzt ein Gerät hingegen mehrere Kanäle, werden diese per [[autocreate]] zusätzlich zum Device angelegt. Es ist aber möglich, bei Geräten mit virtuellen Kanälen, diese zu löschen und fehlende Attribute manuell dem Device hinzu zu fügen. Danach kann es wie ein 1-Kanal-Gerät genutzt werden. Allerdings werden die Kanäle beim erneuten Pairing von [[autocreate]] neu angelegt.&lt;br /&gt;
&lt;br /&gt;
=====virtuelle Kanäle=====&lt;br /&gt;
Einige Dimmer unterstützen virtuelle Kanäle. Eigentlich haben sie keinen Hauptkanal sondern nur 3 virtuelle Kanäle, die je nach Verknüpfungslogik, den endgültigen Zustand des Aktors bestimmen. Dieses Verhalten wird in jedem Kanal per Register &#039;&#039;&#039;logicCombination&#039;&#039;&#039; gesetzt. &amp;lt;br /&amp;gt;&lt;br /&gt;
Folgende Logik wird dabei angewendet: &amp;lt;tt&amp;gt;phyLevel = (((0% o Ch1) o Ch2) o Ch3)&amp;lt;/tt&amp;gt;  [o = Logik-Platzhalter] &amp;lt;br /&amp;gt;&lt;br /&gt;
D.h. es wird immer der Kanal mit dem gesetzten Register mit dem vorherigen Teilergebnis kombiniert, angefangen mit Kanal1. &amp;lt;br /&amp;gt;&lt;br /&gt;
Es gibt folgende Logik-Optionen: [einzelne Betrachtung von &amp;lt;tt&amp;gt;(Vorergebnis o Kanal)&amp;lt;/tt&amp;gt;]&lt;br /&gt;
{|&lt;br /&gt;
!style=&amp;quot;text-align:left;&amp;quot;|Wert!!style=&amp;quot;text-align:left;&amp;quot;|Bedeutung!!style=&amp;quot;text-align:left;&amp;quot;|Beispiel (alle Werte in %)&lt;br /&gt;
|-&lt;br /&gt;
|inactive||keine Verknüpfung|| 30 inactive 80 = 30&lt;br /&gt;
|-&lt;br /&gt;
|or||oder (höchster Wert zählt)|| 30 or 80 = 80&lt;br /&gt;
|-&lt;br /&gt;
|and||und (kleinster Wert zählt)|| 30 and 80 = 30&lt;br /&gt;
|-&lt;br /&gt;
|xor||entweder-oder (nur 1 Kanal darf über 0% sein)|| 30 xor 80 = 0 &#039;&#039;aber&#039;&#039; 30 xor 0 = 30&lt;br /&gt;
|-&lt;br /&gt;
|nor||oder negiert (höchster Wert subtrahiert von 100%)|| 30 nor 80 &#039;&#039;= !80&#039;&#039; = 20&lt;br /&gt;
|-&lt;br /&gt;
|nand||und negiert (niedrigster Wert subtrahiert von 100%)|| 30 nand 80 &#039;&#039;= !30&#039;&#039; = 70&lt;br /&gt;
|-&lt;br /&gt;
|orinv||oder mit invertiertem Kanal|| 30 orinv 80 &#039;&#039;= 30 or 20&#039;&#039; = 30&lt;br /&gt;
|-&lt;br /&gt;
|andinv||und mit invertiertem Kanal|| 30 andinv 80 &#039;&#039;= 30 and 20&#039;&#039; = 20&lt;br /&gt;
|-&lt;br /&gt;
|plus||Vorergebnis addiert mit Kanal|| 30 plus 80 = 100&lt;br /&gt;
|-&lt;br /&gt;
|minus||Vorergebnis subtrahiert mit Kanal|| 30 minus 80 = 0&lt;br /&gt;
|-&lt;br /&gt;
|mul||Vorergebnis multipliziert mit Kanal|| 30 mul 80 = 24&lt;br /&gt;
|-&lt;br /&gt;
|plusinv||Vorergebnis addiert mit invertiertem Kanal|| 30 plusinv 80 &#039;&#039;= 30 plus 20&#039;&#039; = 50&lt;br /&gt;
|-&lt;br /&gt;
|minusinv||Vorergebnis subtrahiert mit invertiertem Kanal|| 30 minusinv 80 &#039;&#039;= 30 minus 20&#039;&#039; = 10&lt;br /&gt;
|-&lt;br /&gt;
|mulinv||Vorergebnis multipliziert mit invertiertem Kanal|| 30 mulinv 80 &#039;&#039;= 30 mul 20&#039;&#039; = 6&lt;br /&gt;
|-&lt;br /&gt;
|invPlus||invertiertes Vorergebnis addiert mit Kanal|| 30 invPlus 80 &#039;&#039;= 70 plus 80&#039;&#039; = 100&lt;br /&gt;
|-&lt;br /&gt;
|invMinus||invertiertes Vorergebnis subtrahiert mit Kanal|| 30 invMinus 80 &#039;&#039;= 70 minus 80&#039;&#039; = 0&lt;br /&gt;
|-&lt;br /&gt;
|invMul||invertiertes Vorergebnis multipliziert mit Kanal|| 30 invMul 80 &#039;&#039;= 70 mul 80&#039;&#039; = 56&lt;br /&gt;
|}&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[HM-LC-Dim1PWM-CV Dimmaktor PWM DC-LED#Beispiele|Verknüpfungsbeispiel]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Variablen===&lt;br /&gt;
Wie alle FHEM Entities werden 4 Gruppen von Daten unterstützt: &lt;br /&gt;
* Internals: Im Web-Interface sichtbare Variablen, die allgemeine Informationen über den Zustand enthalten.&lt;br /&gt;
* Readings: Im Web-Interface sichtbare Variablen. Sie werden aus von Entites empfangenen Nachrichten generiert. Man kann mit notify Trigger auf die setzen. Readings werden im Statefile bei save und gewissen neustarts gesichert und beim Booten eingelesen. Readings haben einen Zeitstempel. &lt;br /&gt;
* Attribute: Im Web-Interface sichtbare Variablen. Über sie kann man die Eigenschaften der Entity in FHEM steuern. &lt;br /&gt;
* Helper: Im Web-Interface nicht sichtbare Variablen. Man kann sie mit dem Kommando &#039;list&#039; sehen. Es sind hilfsvariablen, die für den User keine Bedeutung haben sollen. &lt;br /&gt;
==== Internals====&lt;br /&gt;
Viele Variablen sind nicht HM spezifisch - deren Bedeutung muss in allgemeinen Teil nachgelesen werden. Spezifische Variablen sind:&lt;br /&gt;
*Device&lt;br /&gt;
** channel_xx: Liste der Kanäle, die dem Device zugeordnet sind. &lt;br /&gt;
** prot... : Gruppe von Daten zum Zustand des &amp;lt;u&amp;gt;[[HomeMatic#Protokol|Protokolls]]&amp;lt;/u&amp;gt;, also der Kommunikation mit dem Device.&lt;br /&gt;
** rssi...: Gruppe von Daten die den &amp;lt;u&amp;gt;[[HomeMatic#Rssi|Empfangspegel]]&amp;lt;/u&amp;gt; des Device bei IOs, Peers und Repeatern darstellt. &lt;br /&gt;
&lt;br /&gt;
*Kanäle&lt;br /&gt;
** device: Das übergeordnete Device&lt;br /&gt;
** chanNo: Die Kanalnummer&lt;br /&gt;
** peerList: Ist die Entity mit einem anderen gepeert ist steht hier der Name der Peers. Siehe auch attribut peerIDs und Reading peerList. Diese Variable ist mit dem peer verlinkt, man kann darauf &#039;clicken&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Readings====&lt;br /&gt;
Readings für HM Entites unterliegenden allgemeinen FHEM Regeln. &lt;br /&gt;
Generell gilt, dass ein Wert, der von FHEM gesetzt wurde mit dem prefix &#039;&#039;&#039;&amp;quot;set_&amp;quot;&#039;&#039;&#039; versehen wird. Wenn der Zustand bestätigt ist wird das set_ entfernt. Sollte man also ein Reading mit diesem prefix haben, das sich nicht selbst entfernt sollt man unbedingt den Zustand kontrollieren. &amp;lt;br&amp;gt;&lt;br /&gt;
So ist nach einem &amp;quot;set Licht on&amp;quot; der Zustand des Licht erst einemal &amp;quot;set_on&amp;quot;. Mit der Antwort des Device wird es dann auf &amp;quot;on&amp;quot; gesetzt. &amp;lt;br&amp;gt;&lt;br /&gt;
Register machen eine Ausnahme:&lt;br /&gt;
=====Register=====&lt;br /&gt;
Register sind Konfigurationsparameter, die &#039;&#039;&#039;im Device flash&#039;&#039;&#039; gespeichert werden. Daten, die Registern zureordnet sind beginnen mit &amp;quot;R-&amp;quot;. Sollte das Register einem peer zugeordnet sein kommt dieser danach. Der Namen ist also&lt;br /&gt;
&#039;&#039;&#039;R-&amp;lt;peer&amp;gt;-&amp;lt;registerName&amp;gt;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Der Zugriff ist indirekt, geht also nur über Methoden und Kommandos. Man kann die Konfiguration (Register und peers) mit &#039;&#039;&#039;getConfig&#039;&#039;&#039; aus dem Device lesen und in FHEM dargestellen. FHEM bemüht sich, die angezeigten Register aktuell zu halten - der User muss aber ein gewisse Vorsicht im Umgang damit walten lassen. Register können mit &#039;&#039;&#039;regSet&#039;&#039;&#039; gesetzt werden. Ob die gelesenen Register komplett sind prüft &amp;lt;u&amp;gt;[[Homematic_HMInfo#Integrit.C3.A4tspr.C3.BCfungen|configCheck]]&amp;lt;/u&amp;gt;.&lt;br /&gt;
Da einige Entities viele Register haben kann man mit dem Attribut &#039;&#039;&#039;expert&#039;&#039;&#039; die Sichtbarkeit steuern. &amp;lt;br&amp;gt;&lt;br /&gt;
siehe auch &amp;lt;u&amp;gt;[[Homematic_HMInfo#Infos|register]]&amp;lt;/u&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Von einigen Devices sind Register schwer zu lesen, z.B. config devices. Man kann die Register-Readings &amp;lt;u&amp;gt;[[Homematic_HMInfo#archConfig|archivieren]]&amp;lt;/u&amp;gt; und beim reboot wieder &amp;lt;u&amp;gt;[[Homematic_HMInfo#archConfig|laden]]&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Attribute====&lt;br /&gt;
Attribute sind i.a. Parameter, die das Verhalten der Entity steuern. Sie werden mit &#039;&#039;&#039;save&#039;&#039;&#039; in fhem.cfg oder einem seiner subfiles gespeichert. Nach einer Änderung sollte der User ein &amp;quot;save&amp;quot; machen, sonst sind diese nach einem Reboot verloren.&amp;lt;br&amp;gt;&lt;br /&gt;
Hier werden nur &#039;&#039;&#039;HM spezifische Attribute&#039;&#039;&#039; besprochen.&amp;lt;br&amp;gt;&lt;br /&gt;
Attribute, die das System &#039;&#039;&#039;automatisch&#039;&#039;&#039; anlegt. Sollten diese nicht mehr stimmen kann der User anlernen am Device drücken und sie werden wieder hergestellt. Der User sollte sie &#039;&#039;&#039;nicht ändern&#039;&#039;&#039;.&lt;br /&gt;
* model&lt;br /&gt;
* subType&lt;br /&gt;
* peerIDs: HMIds der peers. Wird gelegentlich verschoben!&lt;br /&gt;
* serialNr: auslaufend - durch Reading D-serianNr ersetzt&lt;br /&gt;
* firmware: auslaufend - durch Reading D-firmware ersetzt&lt;br /&gt;
&lt;br /&gt;
Attribute für HM Entities, die der User steuern kann&lt;br /&gt;
* webCmd: FHEM setzt ggf. einen Default, der User kann dies anpassen&lt;br /&gt;
* expert: schaltet mehr oder weniger Readings sichtbar - dient der Übersichtlichkeit des Web-Interface. &lt;br /&gt;
* autoReadReg: steuert das automatische Lesen der Konfiguration - ggf. zeitverzögert um Resourcen zu schonen. Es wird Level 5 empfohlen&lt;br /&gt;
&lt;br /&gt;
Attribute für HM Entities am Device, die der User steuern kann&lt;br /&gt;
* msgRepeat: kann man im Device einstellen. Es legt fest wir oft eine Nachricht wiederholt werden soll, falls sie nicht empfangen wird. Beachte, dass unabhängig davon ein HMLAN/USB immer 3-mal probiert zu senden. Insbesondere bei Burst Devices sollte man einen niedrigen level einstellen.&lt;br /&gt;
* IODev: Sollte man auf das IO device setzen, über das zu diesem Device gesendet werden soll. Es wird i.a. beim Pairen gesetzt. &lt;br /&gt;
&lt;br /&gt;
Empfohlene Attribute außerhalb von HM&lt;br /&gt;
* event-on-change-reading .*&lt;br /&gt;
&lt;br /&gt;
===Kommandos===&lt;br /&gt;
====Allgemein====&lt;br /&gt;
* get &amp;lt;name&amp;gt; cmdList &#039;&#039;# zeigt alle Kommandos mit Parametern für diese Entity an&#039;&#039;&lt;br /&gt;
* clear [readings|register|rssi|msgEvents] &#039;&#039;# löschen von Readings oder Zählern&#039;&#039;&lt;br /&gt;
====Register kommandos====&lt;br /&gt;
* set &amp;lt;name&amp;gt; getConfig &#039;&#039;# liest alle Peers und Register. Auf ein Device angewendet werden ALLE channels auch gelesen&#039;&#039;&lt;br /&gt;
* set &amp;lt;name&amp;gt; regSet [prep|exec] &amp;lt;regName&amp;gt; &amp;lt;value&amp;gt; ... [&amp;lt;peerChannel&amp;gt;]&#039;&#039; #schreiben eines Registerwerts. Das Kommando landet im Kommandstack&#039;&#039;&lt;br /&gt;
* set &amp;lt;name&amp;gt; regbulk ...&#039;&#039;# kommando zum setzen von rohdaten und ganzen Registerlisten. Ausser zum re-configurieren eines ganzen Device eher nicht für den User zu gebrauchen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; sign [on|off &#039;&#039;# setzt das Register um AES einzuschalten. Man sollte sich über AES &#039;&#039;&#039;vorher&#039;&#039;&#039; einlesen!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* get &amp;lt;name&amp;gt; regList &#039;&#039;# zeigt alle Register, die diese Entity &#039;&#039;&#039;unterstützt&#039;&#039;&#039; - incl Beschreibung und Wertebereich. Als Anfänger sollte man einmal hinsehen!&#039;&#039;&lt;br /&gt;
* get &amp;lt;name&amp;gt; reg all &#039;&#039;# zeigt alle Register, die diese Entity &#039;&#039;&#039;hat&#039;&#039;&#039; und den aktuellen Wert&#039;&#039;&lt;br /&gt;
===Kommunikation===&lt;br /&gt;
Die Kommunikation zwischen Device und der Zentrale folgt einem Protokoll. Für die meisten Nachrichten erwartet der Sender eine Empfangsbestätigung. FHEM beachtet das Protokoll und implementiert es entsprechend der Fähigkeiten des IO device.&amp;lt;br&amp;gt;&lt;br /&gt;
Grundsätzlich kann jedes Device an jedes andere Nachrichten senden. Damit dies auch einen erfolg hat, müssen die Kanäle gepeert werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Um FHEM zu erlauben, Nachrichten an das Device zu richten muss FHEM gepairt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Senden der Nachrichten macht IMMER das Device - ein Kanal selbst kann nicht wirklich senden. &lt;br /&gt;
====Protokoll====&lt;br /&gt;
Da für das Senden das Device verantwortlich ist sind hier die entsprechenden Informationen zu finden. Zu Beachten sind die &amp;lt;u&amp;gt;[[HomeMatic#Device|Übertragungsmodi]]&amp;lt;/u&amp;gt;, die ein Device unterstützt.  Die Internals &amp;quot;prot...&amp;quot; enthalten alle notwendigen Daten. &lt;br /&gt;
* protState: Der Zustand der Protokollmaschine&lt;br /&gt;
** CMDs_done: alle Nachrichten übertragen, keine Fehler in diesem Durchgang aufgetreten&lt;br /&gt;
** CMDs_done_Error:xx : es hat xx Fehler bei der letzten Übertragung gegeben. &lt;br /&gt;
** CMDs_pending: Nachrichten warten auf das Senden&lt;br /&gt;
** CMDs_processing... : die Nachrichtenübertragung ist im Gange&lt;br /&gt;
** Info_Cleared: die Protokoll Statistik wurde rückgesetzt&lt;br /&gt;
* protCmdPend: Anzahl der Nachrichten, die auf das Senden warten&lt;br /&gt;
* protCmdDel: Anzahl gelöschter Nachrichten aufgrund von Fehlern&lt;br /&gt;
* protCmdNack: Anzahl der negativen Acknowledges&lt;br /&gt;
* protCmdResnd: Anzahl der Wiederholungen - die Nachrichten wurden nicht gelöscht. &lt;br /&gt;
* protCmdResndFail: Anzahl der fehlgeschlagenen Wiederholungen - die Nachrichten wurden gelöscht. &lt;br /&gt;
* protCmdIOerr: Anzahl der IO Fehler - Übertragung war nicht Möglich, weil das IO Device Probleme hatte. Der Grund sollte im IO Device nachgesehen werden. &lt;br /&gt;
* protCmdIOdly: Anzahl der Verzögerungen aufgrund von IO Problemen&lt;br /&gt;
* protCmdTimedOn: Anzahl der Nachrichten, wenn ein Timer im Device genutzt wird - z.B. durch on-for-timer&lt;br /&gt;
* protCmdRcv: Anzahl empfangene Nachrichten&lt;br /&gt;
* protCmdSnd: Anzahl gesendete Nachrichten&lt;br /&gt;
* protCmdErrIoId_...: Anzahl der Sendeversuche zum Device von einer anderen Zentrale&lt;br /&gt;
* protCmdErrIoAttack: Anzahl der Sendeversuche zum Device die nicht von FHEM kam- es könnte ein Versuch sein, das System zu hacken. Dies wird auch im Reading &#039;&#039;&#039;sabotageAttack&#039;&#039;&#039; ausgegeben und man kann ein notify darauf ansetzen. &lt;br /&gt;
&lt;br /&gt;
* protCmdEvt_AESCom: Anzahl der AES Nachrichten von Device&lt;br /&gt;
* protCmdEvt_AESKey: Benutzter AES key&lt;br /&gt;
&lt;br /&gt;
Die Zähler können mit &#039;&#039;&#039;set &amp;lt;device&amp;gt; clear msgEvents&#039;&#039;&#039; rückgesetzt werden. Dies kann vor Konfigurationsänderungen Sinn machen, um Probleme besser erkennen zu können. &amp;lt;br&amp;gt;&lt;br /&gt;
Eine Übersicht kann man mit HMInfo &amp;lt;u&amp;gt;[[Homematic_HMInfo#protoEvents|protoEvents]]&amp;lt;/u&amp;gt; erhalten. Auch das Löschen aller Zähler ist von HMInfo aus möglich.&lt;br /&gt;
&lt;br /&gt;
====Rssi====&lt;br /&gt;
Zeigt den Empfangspegel, den ein Device von einem Anderen misst. Die Variablen sind in Internals abgelegt. Angegeben werden minimale und maximale Wert. Außerdem wird der Durchschnitt und die Anzahl der Nachrichten ausgewertet.&amp;lt;br&amp;gt;&lt;br /&gt;
HM liefert Empfangspegel am IO Device (FHEM standard) aber auch den Empfangspegel am Device selbst. Ebenfalls ausgewertet werden Pegel, die beim Senden zwischen Peers erreicht werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Zähler können mit &#039;&#039;&#039;set &amp;lt;device&amp;gt; clear rssi&#039;&#039;&#039; rückgesetzt werden.&amp;lt;br&amp;gt; &lt;br /&gt;
Eine Übersicht erhält man mit HMInfo &amp;lt;u&amp;gt;[[Homematic_HMInfo#RSSI|Rssi]]&amp;lt;/u&amp;gt;. Das Löschen der Zähler aller HM devices ist von HMInfo aus möglich.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Man kann RSSI kontinuierlich aufzeichnen, wenn das Attribut &#039;&#039;&#039;rssiLog&#039;&#039;&#039; im Device gesetzt ist. Es wird ein Reading rssi_&amp;lt;name&amp;gt; erzeugt. Das generelle setzen dieses Attributs wird aus Performance-gründen nicht empfohlen.&lt;br /&gt;
&lt;br /&gt;
== Pairen und Peeren ==&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Pairing und Peering]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HomeMatic-Geräte können mit einer Zentrale (Fhem) &#039;&#039;gepairt&#039;&#039; und mit anderen HM-Geräten &#039;&#039;gepeert&#039;&#039; werden.&lt;br /&gt;
&lt;br /&gt;
=== Pairen ===&lt;br /&gt;
: &#039;&#039;→ Hauptartikel: [[HomeMatic Devices pairen]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HM-Geräte können mit und ohne Zentrale betrieben werden. Fhem geht davon aus, dass Geräte immer von einer Zentrale aus gesteuert werden können. Dazu muss das Gerät mit der Zentrale &#039;&#039;gepairt&#039;&#039; werden. &lt;br /&gt;
&lt;br /&gt;
=== Peeren ===&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Homematic Peering Beispiele]]&lt;br /&gt;
&lt;br /&gt;
Um es Geräten zu ermöglichen auch ohne Zentrale zu interagieren (zum Beispiel wenn die Zentrale einen Defekt hat), können HM-Geräte untereinander &#039;&#039;gepeert&#039;&#039; werden.&lt;br /&gt;
Dazu wird ein Sensor-Kanal mit einem Aktor-Kanal verknüpft.&lt;br /&gt;
&lt;br /&gt;
== HMInfo ==&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Homematic HMInfo]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bei der Betreuung einer HomeMatic-Installation ist das Modul [[Homematic_HMInfo|HMInfo]] sehr hilfreich. Es stellt eine Übersicht der HomeMatic-Komponenten zur Verfügung, kann die Konfiguration prüfen und Alarmierungen gesammelt auswerten.&lt;br /&gt;
&lt;br /&gt;
== Besondere Entites ==&lt;br /&gt;
&lt;br /&gt;
=== Virtuelle Entities ===&lt;br /&gt;
Virtuelle Entities sind nicht reale HM Devices und Kanäle. Man kann sie als Sender und Empfänger nutzen, auch im Zusammenhang mit Rauchmeldern oder zur Steuerung von Heizungsventilen. Die spezifischen Anwendungen sind im entsprechenden Kapitel nachzulesen. &amp;lt;br&amp;gt;&lt;br /&gt;
Angelegt wird das Device, dann wird per Kommando eine Anzahl Kanäle angelegt. &lt;br /&gt;
  define &amp;lt;virtDev&amp;gt; CUL_HM 112233&lt;br /&gt;
  set &amp;lt;virtDev&amp;gt; virtual 10&lt;br /&gt;
jetzt hat man ein virtuelles Device mit 10 Kanälen angelegt. &lt;br /&gt;
Die die gültigen Kommandos kann man wie immer mit &#039;&#039;&#039;get &amp;lt;entity&amp;gt; cmdList&#039;&#039;&#039; erfahren.&amp;lt;br&amp;gt;&lt;br /&gt;
Auch einem Virtuellen Device sollte man das &#039;&#039;&#039;Attribut IODev setzen &#039;&#039;&#039;.&lt;br /&gt;
=== IO Entities ===&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Virtueller Controller VCCU#Virtuelle Kanäle der VCCU]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IO-Entities&#039;&#039;&#039; sind virtuelle Kanäle der Zentrale, mit denen andere HomeMatic-Geräte gepeert werden können. Diese Kanäle sind einem &#039;&#039;IO-Device&#039;&#039; zugeordnet – im Unterschied zu &#039;&#039;virtuellen Entities&#039;&#039; gibt es kein virtuelles Homematic-Gerät welches die Kanäle beherbergt.&lt;br /&gt;
&lt;br /&gt;
Jedem IO-Device können bis zu 50 Kanäle zugewiesen werden. Wenn mehrere IO-Devices die gleiche HMId nutzen, zum Beispiel wenn ein [[Virtueller Controller VCCU|virtueller Controller]] verwendet wird, teilen sich diese IO-Devices die Kanäle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anlegen:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 # IO-Device definieren&lt;br /&gt;
 define &amp;lt;IO-Device&amp;gt; CUL_HM c0ffee&lt;br /&gt;
 attr &amp;lt;IO-Device&amp;gt; model CCU-FHEM&lt;br /&gt;
 &lt;br /&gt;
 # 4 IO-Entities definieren&lt;br /&gt;
 set &amp;lt;IO-Device&amp;gt; virtual 4&lt;br /&gt;
&lt;br /&gt;
=== Action Detector===&lt;br /&gt;
Einige Devices der HM-Geräteserie senden periodisch Nachrichten. Manche alle 3 Minuten, andere alle 3 Tage. Wenn so eine Zeit für einen Device spezifiziert ist wird diese automatisch vom ActionDetector überwacht.&amp;lt;br&amp;gt;&lt;br /&gt;
Meist sind dies batteriebetriebene Geräte. Sollte aus irgendwelchen Gründen der Batteriealarm übersehen werden und das Gerät keine Nachricht mehr senden wird es auf Dead gesetzt.&lt;br /&gt;
Die Kontrollinstanz ist ein Pseudo-Gerät &amp;quot;ActionDetector&amp;quot; mit der HMId &amp;quot;000000&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
* attribut&lt;br /&gt;
** actCycle: gibt an, in welchen Abständen sich das Device melden muss&lt;br /&gt;
** actStatus: gibt den Zustand an&lt;br /&gt;
*** alive: Device hat sich in der erwarteten Zeit min einmal gemeldet&lt;br /&gt;
*** dead: Device hat sich in der erwarteten Zeit nicht gemeldet&lt;br /&gt;
*** unknown: Device hat sich nicht gemeldet, es ist aber seit dem letzten reboot die Zykluszeit noch nicht abgelaufen. &lt;br /&gt;
&lt;br /&gt;
* readings&lt;br /&gt;
** Activity:    entsprechend dem actStatus. &lt;br /&gt;
&lt;br /&gt;
* get&lt;br /&gt;
** listDevice:           Gibt alle Objekte zurück&lt;br /&gt;
** listDevice notActive: Gibt alle Objekte zurück die nicht &amp;quot;alive&amp;quot; sind&lt;br /&gt;
** listDevice alive:     Gibt alle Objekte zurück die &amp;quot;alive&amp;quot; sind&lt;br /&gt;
** listDevice unknown:   Gibt alle Objekte zurück die &amp;quot;unknown&amp;quot; sind&lt;br /&gt;
** listDevice dead:      Gibt alle Objekte zurück die &amp;quot;dead&amp;quot; sind&lt;br /&gt;
&lt;br /&gt;
Durch das Setzen des Attributs im HM device wird der ActionDetector automatisch definiert - nach einem save steht er auch in der fhem.cfg.&lt;br /&gt;
Alternativ ist auch eine manuelle Definition möglich und sollte in etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 define ActionDetector CUL_HM 000000&lt;br /&gt;
 attr ActionDetector actCycle 30&lt;br /&gt;
 attr ActionDetector event-on-change-reading .*&lt;br /&gt;
 attr ActionDetector model ActionDetector&lt;br /&gt;
&lt;br /&gt;
Die HMId &amp;quot;000000&amp;quot; darf nicht geändert werden.&lt;br /&gt;
&lt;br /&gt;
In der Entity actionDetector kann man die Infos gesammelt einsehen.&lt;br /&gt;
Der User kann durch das Setzen des Attributs actCycle jedes Device in diese Liste aufnehmen. Es wird dann geprüft, ob sich das Device in dieser Zeit auch meldet. Der User muss dies aber selbst sicherstellen.&lt;br /&gt;
&lt;br /&gt;
== Tipps / HowTos / Beispiele ==&lt;br /&gt;
&lt;br /&gt;
* [[HomeMatic Devices pairen|HM Devices pairen]] zum &#039;&#039;&#039;Pairen&#039;&#039;&#039; der Geräte untereinander.&lt;br /&gt;
* [[CUL]] (also gleichzeitig)?&lt;br /&gt;
* [[Slider für HM-Rolladensteuerung anzeigen]]&lt;br /&gt;
* Für den &amp;quot;Fall der Fälle&amp;quot;: Erstellen Sie eine Liste aller HM-Geräte mit den Installationsorten, HM-Namen, Fhem-Namen &#039;&#039;&#039;und&#039;&#039;&#039; den Geräte-IDs. Falls Sie sich ihr Fhem einmal zerschießen, wird diese Liste sehr hilfreich sein. Zur Abwicklung von Gewährleistungsansprüchen sind Daten über Kaufdatum und Lieferant (bei größeren Installationen mit Zukauf in zeitlichen Abständen) ebenfalls angebracht.&lt;br /&gt;
&lt;br /&gt;
== Probleme ==&lt;br /&gt;
&lt;br /&gt;
=== Messages Sniffen ===&lt;br /&gt;
Um Probleme besser nachvollziehen zu können, kann man &amp;lt;u&amp;gt;[[Homematic_Nachrichten_sniffen|Nachrichten mitsniffen]]&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Daten können empfangen werden, Befehle werden nicht übertragen ===&lt;br /&gt;
&lt;br /&gt;
Das kann mehrere Ursachen haben:&lt;br /&gt;
* Pairing nicht abgeschlossen (bei den &#039;&#039;Readings&#039;&#039; &amp;quot;PairedTo&amp;quot; bzw. &amp;quot;R-pairCentral&amp;quot; steht der Wert &#039;&#039;&#039;set_&#039;&#039;&#039;0x1A2B3C). Das Pairing ist erst dann erfolgreich abgeschlossen, wenn das &#039;&#039;&#039;set_&#039;&#039;&#039; fehlt, also nur noch (beispielhaft) &amp;quot;0x1A2B3C&amp;quot; steht. Siehe [[HomeMatic_Devices_pairen]]&lt;br /&gt;
* Sender (CUL/HM-LAN) und Empfänger (HM-Device) stehen zu nah (RSSI-Werte bei ~ &amp;quot;-17&amp;quot;) beieinander&lt;br /&gt;
* Sender (CUL/HM-LAN) und Empfänger (HM-Device) stehen zu weit (RSSI-Werte bei unter ~ &amp;quot;-80&amp;quot;) voneinander entfernt&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Notifys und anderes funktionieren nach einem Fhem-Neustart nicht mehr oder nicht mehr zeitnah ===&lt;br /&gt;
&lt;br /&gt;
Obwohl HomeMatic wegen der höhren Datenübertragungsrate wesentlich weniger von der [[1% Regel]] betroffen ist als z.b. FS20 oder FHT, so kann es dennoch zu Funkkontingentüberschreitungen kommen.&lt;br /&gt;
&lt;br /&gt;
Insbesondere ist bei FHEM Versionen ab Oktober 2013 das Attribut &#039;&#039;autoReadReg&#039;&#039; auf &amp;quot;4_reqStatus&amp;quot; gesetzt. Damit wird für jedes HM-Device mit diesem so gesetzten Attribut beim Fhem-Start ein &#039;&#039;getConfig&#039;&#039; durchgeführt, was viel Funkverkehr erfordert.&lt;br /&gt;
&lt;br /&gt;
Je nach Anzahl der Geräte kann dazu führen, dass insgesamt zu viel Funklast erzeugt wird, im Logfile erscheint dann eine Meldung wie:&lt;br /&gt;
&lt;br /&gt;
 2013.10.03 13:41:18 2: HMLAN_Parse: HMLAN1 new condition ERROR-Overload&lt;br /&gt;
&lt;br /&gt;
Ab diesem Moment werden eben auch keine anderen Befehle mehr an weitere HM-Geräte geschickt, da das Funkkontigent aufgebraucht ist. Erst nach einer Stunde kann erneut gesendet werden. Als &#039;&#039;&#039;Notbehelf&#039;&#039;&#039; kann die Funkschnittstelle resetted oder  ([[HMLAN Konfigurator]]) kurz stromlos gemacht werden. Dann wird der Zähler wieder auf Null gesetzt.&lt;br /&gt;
&lt;br /&gt;
Alternativ können so viele HM-Geräte wie möglich auf &#039;&#039;autoReadReg 0_off&#039;&#039; gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[1% Regel]]&lt;br /&gt;
&lt;br /&gt;
=== Spannungsversorgung ===&lt;br /&gt;
Die Batterielebensdauer der HomaMatic Komponenten ist durchwachsen. Besonders die mitgelieferten Batterien sind mitunter schon nach wenigen Wochen leer, trotzdem werden öfters keine &#039;&#039;battery low&#039;&#039; Meldung erzeugt. Bei Störung des Funkverkehrs (z.b. blinkendes Antennensymbol im HM-CC-TC und kurzes piepen zur vollen Stunde von morgens bis abends, fehlende ACK Meldungen, nicht auslösende IR-Bewegungssensoren und ähnliches) sollte also immer auch eine schlechte Spannungsversorgung in Betracht gezogen werden.&lt;br /&gt;
&lt;br /&gt;
Gute neue Batterien halten jedoch i.d.R. 12 Monate und mehr, auch Lebensdauern über 2 Jahre sind bei einigen Geräten (Tür/Fensterkontakte, Sender, Retroanzeige,  IR-Bewegungsmelder) keine Seltenheit.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.homematic.com/ HomeMatic] Homepage&lt;br /&gt;
* Hersteller [http://www.eq-3.de eQ-3] &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Glossary]]&lt;/div&gt;</summary>
		<author><name>Cori</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic&amp;diff=14472</id>
		<title>HomeMatic</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic&amp;diff=14472"/>
		<updated>2016-03-04T20:50:18Z</updated>

		<summary type="html">&lt;p&gt;Cori: /*Struktur von HM Geräten*/ Ergänzung Kanäle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Achtung, diese Seite wird derzeit im Sinne einer klareren Beschreibung überarbeitet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HomeMatic&#039;&#039;&#039; (HM) ist ein System des Herstellers eQ-3 zur Steuerung und Überwachung von zahlreichen Aufgaben und Situationen im Haus. Erhältlich sind sowohl Geräte mit Funkschnittstelle 868.3 MHz, als auch (seit 2008) drahtgebundene Geräte mit RS485-Schnittstelle. Im Programm sind Geräte zur Heizungs- und Lichtsteuerung, Temperatur-, Luftfeuchte- und Feuchtemessung, Zutrittskontrolle, als Wasser-, Brand- und Bewegungsmelder sowie als Wetterstation, ferner gibt es noch Fernbedienungen und Statusdisplays.&lt;br /&gt;
&lt;br /&gt;
=Grundlagen=&lt;br /&gt;
HomeMatic-Geräte können untereinander &#039;&#039;gepeert&#039;&#039; werden (engl. &#039;&#039;peers&#039;&#039; = &amp;quot;Gleiche&amp;quot;), im einfachsten Fall kann deshalb bereits ein Sensor (z.B. ein Temperatursensor) mit einem Aktor (z.B. einem Heizkörperregler) verbunden werden und diesen steuern. Hierbei können mehrere Sensoren und Aktoren untereinander verbunden werden, die Vorstellung der &amp;quot;Gleichen&amp;quot; ist also zutreffend.&lt;br /&gt;
&lt;br /&gt;
HomeMatic-Geräte können auch mit einer Zentrale verbunden (&#039;&#039;gepairt&#039;&#039;) werden, die dann einen Teil der Steuerungslogik übernehmen kann. Bei dieser Verbindung spricht man vom &#039;&#039;Pairing&#039;&#039;, weil jedes HomeMatic-Gerät nur mit einer Zentrale verbunden werden kann. Gepairte Geräte können auch nicht mehr direkt gepeert werden - dies geht dann nur noch unter Beteiligung der Zentrale.&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen==&lt;br /&gt;
Für den Betrieb ohne Zentrale sind keine weiteren Voraussetzungen zu erfüllen.&lt;br /&gt;
===Zentrale von eQ-3===&lt;br /&gt;
Vom Hersteller eQ-3 selbst wird eine Zentrale (derzeit aktuell CCU-2) und Windows-Software zur Steuerung und Auswertung der HM-Komponenten angeboten.&lt;br /&gt;
&lt;br /&gt;
===Fhem als Zentrale===&lt;br /&gt;
Zur Kommunikation mit HomeMatic benötigt Fhem eine Schnittstelle, die im 868,3-MHz-Band funken kann. Infrage kommen:&lt;br /&gt;
* [[CUL]] (USB)&lt;br /&gt;
* [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] (USB)&lt;br /&gt;
* [[CUNO]] (LAN)&lt;br /&gt;
* [[HM-CFG-LAN]] (oft auch &amp;quot;HMLAN&amp;quot; genannt; LAN)&lt;br /&gt;
&lt;br /&gt;
Für &#039;&#039;HomeMatic Wired&#039;&#039; benötigt man eine RS485-Schnittstelle. Verfügbar sind:&lt;br /&gt;
* [[HomeMatic Wired RS485 LAN Gateway|HMW-LGW-O-DR-GS-EU]] (LAN)&lt;br /&gt;
&lt;br /&gt;
===Migration von CCU-2 zu Fhem===&lt;br /&gt;
Der Umzug einer bestehenden HomeMatic Installation von einer HomeMatic CCU-2 auf Fhem ist möglich. Um die an die Zentrale angebundenen Devices in Fhem ohne größere Umkonfiguration weiter verwenden zu können, muß die HM-Id und, falls verwendet, die AES-Schlüssel der CCU-2 in Fhem übernommen werden. Um diese Daten aus der CCU-2 auszulesen, wird eine SSH-Verbindung (zum Beispiel mit PuTTY unter Windows) aufgebaut. Die HM-Id befindet sich in der Datei &amp;lt;code&amp;gt;/usr/local/etc/config/rfd/BidCoS-RF.dev&amp;lt;/code&amp;gt; in einer Zeile wie dieser:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;device serial=&amp;quot;BidCoS-RF&amp;quot; type=&amp;quot;HM-RCV-50&amp;quot; address=&amp;quot;&amp;lt;span style=&amp;quot;color: maroon; font-weight: bold;&amp;quot;&amp;gt;0xABCDEF&amp;lt;/span&amp;gt;&amp;quot; aes_key_index=&amp;quot;0&amp;quot; firmware_version=&amp;quot;2.11.9&amp;quot; bidcos_interface=&amp;quot;KEQ1234567&amp;quot; roaming=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die HM-Id ist der Wert des &amp;lt;code&amp;gt;address&amp;lt;/code&amp;gt;-Attributs. Die dort angegebene hexadezimale Zahl (hier &amp;lt;code&amp;gt;0xABCDEF&amp;lt;/code&amp;gt;) ist die HM-Id und wird in Fhem ohne das &amp;quot;0x&amp;quot;-Präfix verwendet.&lt;br /&gt;
&lt;br /&gt;
Falls AES-Schlüssel eingerichtet sind, sind diese in der Datei &amp;lt;code&amp;gt;/etc/config_templates/crypttool.cfg&amp;lt;/code&amp;gt; zu finden und können 1:1 als Schlüssel im [[HM-CFG-LAN]] in der gleichen Reihenfolge hinterlegt werden.&lt;br /&gt;
{{Todo|Wie werden AES-Schlüssel in HM-CFG-LAN &amp;quot;hinterlegt&amp;quot;?}}&lt;br /&gt;
&lt;br /&gt;
==Prototokoll==&lt;br /&gt;
HM-Geräte kommunizieren untereinander mit dem Protokoll &#039;&#039;Bidirectional Communication Standard&#039;&#039;, abgekürzt &#039;&#039;BidCoS&#039;&#039;. Jedes HM-Gerät enthält also Sender und Empfänger, das ist einer der wesentlichen Unterschiede z.B. zum FS20-System.&lt;br /&gt;
*Jedes HM-Gerät meldet beim Empfang eines Steuerbefehls durch einen Peer an diesen eine Bestätigung „ACK“ zurück. Erkennt das HM-Gerät den Befehl nicht, sendet es ein &#039;&#039;NACK&#039;&#039;. Kommt vom HM-Gerät keine Rückmeldung innerhalb einer festgelegten Zeit, meldet der steuernde Peer ein &#039;&#039;MISSING ACK&#039;&#039;.&lt;br /&gt;
*Jedes HM-Gerät meldet ferner seinen Status nach dem Erhalt eines Steuerbefehls zurück - so kann auch ein lokal am Gerät erfolgender Tastendruck in beim steuernden Peer oder  in der Zentrale registriert werden.&lt;br /&gt;
&lt;br /&gt;
Das Protokoll &#039;&#039;BidCoS&#039;&#039; wurde zum großen Teil entschlüsselt, seine offen verfügbare Variante heißt &#039;&#039;AskSin&#039;&#039;. Unter Verwendung der AskSin-Library entstehen derzeit erste Geräte, die in das HomeMatic-System eingebunden werden können. Zur Unterscheidung zwischen HM und den neuen Geräten werden diese als [[HomeBrew]] (HB) bezeichnet.&lt;br /&gt;
&lt;br /&gt;
=Betrieb mit Fhem=&lt;br /&gt;
Die Kenntnis des Dokumentes [http://fhem.de/Heimautomatisierung-mit-fhem.pdf Einsteigerdokuments &amp;quot;Heimautomatisierung mit Fhem&amp;quot;] wird vorausgesetzt. Im Anhang dieses Dokuments findet sich ein Teil über den Aufbau und die Funktion von HM-Geräten.&lt;br /&gt;
&lt;br /&gt;
=== Einrichten des IO-Devices (Funkschnittstelle)===&lt;br /&gt;
Zuerst muss ein IO-Device eingerichtet werden, um mit HM Geräten kommunizieren zu können. Siehe hierzu [[HMLAN Konfigurator]].&lt;br /&gt;
&lt;br /&gt;
=== Struktur von HM Geräten===&lt;br /&gt;
HM Geräte sind logisch in ein &#039;&#039;&#039;Device (Gerät)&#039;&#039;&#039; und ein oder mehrere &#039;&#039;&#039;Channels (Kanäle)&#039;&#039;&#039; gegliedert. Jedes Device und jeder Channel wird in einer Entity in FHEM repräsentiert. &amp;lt;br&amp;gt;&lt;br /&gt;
Ausnahme: Sollte ein Gerät nur einen Kanal haben werden diese zusammen in einer Entity angelegt. &lt;br /&gt;
====Device (Gerät)====&lt;br /&gt;
Das Device ist für die Kommunikation verantwortlich. Es sortiert und ordnet die zu sendenden und empfangenden Nachrichten. &lt;br /&gt;
Man kann prüfen, ob alle Nachrichten übertragen sind, oder ob es Probleme gegeben hat. Die Variablen &amp;quot;prot...&amp;quot; geben Auskunft darüber. Siehe auch [[Homematic_HMInfo#protoEvents]].&lt;br /&gt;
Zu beachten sind zudem die Übertragungsmodi. Nicht alle Devices sind ständig auf Empfang - FHEM muss berücksichtigen, wann gesendet werden kann. In &#039;&#039;&#039;protState&#039;&#039;&#039; kann man sehen, ob Kommandos auf Verarbeitung warten, also pending sind.&lt;br /&gt;
Einige Devices unterstützen mehrere Modi parallel. &lt;br /&gt;
===== Config=====&lt;br /&gt;
Wird von allen Devices unterstützt, auch wenn es bei Always kaum genutzt werden kann.&lt;br /&gt;
Man setzt die Kommandos in FHEM ab und diese warten in der Kommando-queue.  &lt;br /&gt;
Wenn die config-funktion am Device ausgelöst wird (Anlerntaste drücken) sendet FHEM die wartenden Nachrichten der Reihe nach.&lt;br /&gt;
Config wird bei allen Devices zum pairen genutzt.&lt;br /&gt;
===== Always=====&lt;br /&gt;
Trifft man meist bei netzbetriebenen Geräten an, da diese kein Problem mit dem Energieverbrauch haben. Man kann immer mit dem Device kommunizieren.&lt;br /&gt;
===== Burst=====&lt;br /&gt;
Nur der Empfänger des Device ist aktiv. Über eine Aufweck-sequenz kann das Device geweckt werden. Man kann quasi immer mit dem Device kommunizieren. Nachteil des Aufwecken ist zum Einen, dass immer ALLE Devices im Funknetz geweckt werden, was deren Batterie belastet. Zum Andere ist die Aufweck-sequenz funktechnisch aufwändig und belastet die maximal erlaubte Sendekapazität des IO device je Stunde. &lt;br /&gt;
===== ConditionalBurst=====&lt;br /&gt;
Bei einigen Devices kann man den Burst mode zuschalten. Dies sind Devices, die zusätzlich über andere modi verfügen, so z.B. wakeup. Schaltet man burst-empfang ein kann man immer und sofort mit dem Device reden, es kostet aber etwas mehr Batterie. Siehe hierzu Attribut &#039;&#039;&#039;burstAccess&#039;&#039;&#039;, Kommando &#039;&#039;&#039;burstXmit&#039;&#039;&#039; und Register &#039;&#039;&#039;burstRx&#039;&#039;&#039;&lt;br /&gt;
===== LazyConfig=====&lt;br /&gt;
Kommandos in der Queue werden bearbeitet, wenn eine Aktion vom Device ausgeht. So zum Beispiel ein Tastendruck bei einer Fernbedienung.&lt;br /&gt;
Dieser mode wird von CUL/CUNO nicht unterstützt. FHEM ignoriert diese Option automatisch und wartet i.a. auf ein Config.&lt;br /&gt;
===== Wakeup=====&lt;br /&gt;
Die Devices wachen regelmäßig auf und senden Daten, z.B. Temperatursensoren. Zu diesem Zeitpunkt kann FHEM die Nachrichten übertragen. Die Aufwachperiode ist unterschiedlich von 3 min bis zu 24h.&lt;br /&gt;
&lt;br /&gt;
====Channel (Kanal)====&lt;br /&gt;
Ein Kanal ist die Funktionseinheit des Geräts. Hier ist die Funktion des Sensors oder Aktors realisiert. &amp;lt;br /&amp;gt;&lt;br /&gt;
Nutzt ein Gerät nur einen Kanal, wird dieser in FHEM der Übersichtlichkeit halber nicht einzeln angelegt. Für die Kommandos und das Peering wird trotzdem die HM-ID des 1. Kanals verwendet.&amp;lt;br /&amp;gt;&lt;br /&gt;
Nutzt ein Gerät hingegen mehrere Kanäle, werden diese per [[autocreate]] zusätzlich zum Device angelegt. Es ist aber möglich, bei Geräten mit virtuellen Kanälen, diese zu löschen und fehlende Attribute manuell dem Device hinzu zu fügen. Danach kann es wie ein 1-Kanal-Gerät genutzt werden. Allerdings werden die Kanäle beim erneuten Pairing von [[autocreate]] neu angelegt.&lt;br /&gt;
&lt;br /&gt;
=====virtuelle Kanäle=====&lt;br /&gt;
Einige Dimmer unterstützen virtuelle Kanäle. Eigentlich haben sie keinen Hauptkanal sondern nur 3 virtuelle Kanäle, die je nach Verknüpfungslogik, den endgültigen Zustand des Aktors bestimmen. Dieses Verhalten wird in jedem Kanal per Register &#039;&#039;&#039;logicCombination&#039;&#039;&#039; gesetzt. &amp;lt;br /&amp;gt;&lt;br /&gt;
Folgende Logik wird dabei angewendet: &amp;lt;tt&amp;gt;phyLevel = (((0% o Ch1) o Ch2) o Ch3)&amp;lt;/tt&amp;gt;  [o = Logik-Platzhalter] &amp;lt;br /&amp;gt;&lt;br /&gt;
D.h. es wird immer der Kanal mit dem gesetzten Register mit dem vorherigen Teilergebnis kombiniert, angefangen mit Kanal1. &amp;lt;br /&amp;gt;&lt;br /&gt;
Es gibt folgende Logik-Optionen: [einzelne Betrachtung von &amp;lt;tt&amp;gt;(Vorergebnis o Kanal)&amp;lt;/tt&amp;gt;]&lt;br /&gt;
{|&lt;br /&gt;
!style=&amp;quot;text-align:left;&amp;quot;|Wert!!style=&amp;quot;text-align:left;&amp;quot;|Bedeutung!!style=&amp;quot;text-align:left;&amp;quot;|Beispiel (alle Werte in %)&lt;br /&gt;
|-&lt;br /&gt;
|inactive||keine Verknüpfung|| 30 inactive 80 = 30&lt;br /&gt;
|-&lt;br /&gt;
|or||oder (höchster Wert zählt)|| 30 or 80 = 80&lt;br /&gt;
|-&lt;br /&gt;
|and||und (kleinster Wert zählt)|| 30 and 80 = 30&lt;br /&gt;
|-&lt;br /&gt;
|xor||entweder-oder (nur 1 Kanal darf über 0% sein)|| 30 xor 80 = 0 &#039;&#039;aber&#039;&#039; 30 xor 0 = 30&lt;br /&gt;
|-&lt;br /&gt;
|nor||oder negiert (höchster Wert subtrahiert von 100%)|| 30 nor 80 &#039;&#039;= !80&#039;&#039; = 20&lt;br /&gt;
|-&lt;br /&gt;
|nand||und negiert (niedrigster Wert subtrahiert von 100%)|| 30 nand 80 &#039;&#039;= !30&#039;&#039; = 70&lt;br /&gt;
|-&lt;br /&gt;
|orinv||oder mit invertiertem Kanal|| 30 orinv 80 &#039;&#039;= 30 or 20&#039;&#039; = 30&lt;br /&gt;
|-&lt;br /&gt;
|andinv||und mit invertiertem Kanal|| 30 andinv 80 &#039;&#039;= 30 and 20&#039;&#039; = 20&lt;br /&gt;
|-&lt;br /&gt;
|plus||Vorergebnis addiert mit Kanal|| 30 plus 80 = 100&lt;br /&gt;
|-&lt;br /&gt;
|minus||Vorergebnis subtrahiert mit Kanal|| 30 minus 80 = 0&lt;br /&gt;
|-&lt;br /&gt;
|mul||Vorergebnis multipliziert mit Kanal|| 30 mul 80 = 24&lt;br /&gt;
|-&lt;br /&gt;
|plusinv||Vorergebnis addiert mit invertiertem Kanal|| 30 plusinv 80 &#039;&#039;= 30 plus 20&#039;&#039; = 50&lt;br /&gt;
|-&lt;br /&gt;
|minusinv||Vorergebnis subtrahiert mit invertiertem Kanal|| 30 minusinv 80 &#039;&#039;= 30 minus 20&#039;&#039; = 10&lt;br /&gt;
|-&lt;br /&gt;
|mulinv||Vorergebnis multipliziert mit invertiertem Kanal|| 30 mulinv 80 &#039;&#039;= 30 mul 20&#039;&#039; = 6&lt;br /&gt;
|-&lt;br /&gt;
|invPlus||invertiertes Vorergebnis addiert mit Kanal|| 30 invPlus 80 &#039;&#039;= 70 plus 80&#039;&#039; = 100&lt;br /&gt;
|-&lt;br /&gt;
|invMinus||invertiertes Vorergebnis subtrahiert mit Kanal|| 30 invMinus 80 &#039;&#039;= 70 minus 80&#039;&#039; = 0&lt;br /&gt;
|-&lt;br /&gt;
|invMul||invertiertes Vorergebnis multipliziert mit Kanal|| 30 invMul 80 &#039;&#039;= 70 mul 80&#039;&#039; = 56&lt;br /&gt;
|}&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[HM-LC-Dim1PWM-CV Dimmaktor PWM DC-LED#Beispiele|Verknüpfungsbeispiel]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Variablen===&lt;br /&gt;
Wie alle FHEM Entities werden 4 Gruppen von Daten unterstützt: &lt;br /&gt;
* Internals: Im Web-Interface sichtbare Variablen, die allgemeine Informationen über den Zustand enthalten.&lt;br /&gt;
* Readings: Im Web-Interface sichtbare Variablen. Sie werden aus von Entites empfangenen Nachrichten generiert. Man kann mit notify Trigger auf die setzen. Readings werden im Statefile bei save und gewissen neustarts gesichert und beim Booten eingelesen. Readings haben einen Zeitstempel. &lt;br /&gt;
* Attribute: Im Web-Interface sichtbare Variablen. Über sie kann man die Eigenschaften der Entity in FHEM steuern. &lt;br /&gt;
* Helper: Im Web-Interface nicht sichtbare Variablen. Man kann sie mit dem Kommando &#039;list&#039; sehen. Es sind hilfsvariablen, die für den User keine Bedeutung haben sollen. &lt;br /&gt;
==== Internals====&lt;br /&gt;
Viele Variablen sind nicht HM spezifisch - deren Bedeutung muss in allgemeinen Teil nachgelesen werden. Spezifische Variablen sind:&lt;br /&gt;
*Device&lt;br /&gt;
** channel_xx: Liste der Kanäle, die dem Device zugeordnet sind. &lt;br /&gt;
** prot... : Gruppe von Daten zum Zustand des &amp;lt;u&amp;gt;[[HomeMatic#Protokol|Protokolls]]&amp;lt;/u&amp;gt;, also der Kommunikation mit dem Device.&lt;br /&gt;
** rssi...: Gruppe von Daten die den &amp;lt;u&amp;gt;[[HomeMatic#Rssi|Empfangspegel]]&amp;lt;/u&amp;gt; des Device bei IOs, Peers und Repeatern darstellt. &lt;br /&gt;
&lt;br /&gt;
*Kanäle&lt;br /&gt;
** device: Das übergeordnete Device&lt;br /&gt;
** chanNo: Die Kanalnummer&lt;br /&gt;
** peerList: Ist die Entity mit einem anderen gepeert ist steht hier der Name der Peers. Siehe auch attribut peerIDs und Reading peerList. Diese Variable ist mit dem peer verlinkt, man kann darauf &#039;clicken&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Readings====&lt;br /&gt;
Readings für HM Entites unterliegenden allgemeinen FHEM Regeln. &lt;br /&gt;
Generell gilt, dass ein Wert, der von FHEM gesetzt wurde mit dem prefix &#039;&#039;&#039;&amp;quot;set_&amp;quot;&#039;&#039;&#039; versehen wird. Wenn der Zustand bestätigt ist wird das set_ entfernt. Sollte man also ein Reading mit diesem prefix haben, das sich nicht selbst entfernt sollt man unbedingt den Zustand kontrollieren. &amp;lt;br&amp;gt;&lt;br /&gt;
So ist nach einem &amp;quot;set Licht on&amp;quot; der Zustand des Licht erst einemal &amp;quot;set_on&amp;quot;. Mit der Antwort des Device wird es dann auf &amp;quot;on&amp;quot; gesetzt. &amp;lt;br&amp;gt;&lt;br /&gt;
Register machen eine Ausnahme:&lt;br /&gt;
=====Register=====&lt;br /&gt;
Register sind Konfigurationsparameter, die &#039;&#039;&#039;im Device flash&#039;&#039;&#039; gespeichert werden. Daten, die Registern zureordnet sind beginnen mit &amp;quot;R-&amp;quot;. Sollte das Register einem peer zugeordnet sein kommt dieser danach. Der Namen ist also&lt;br /&gt;
&#039;&#039;&#039;R-&amp;lt;peer&amp;gt;-&amp;lt;registerName&amp;gt;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Der Zugriff ist indirekt, geht also nur über Methoden und Kommandos. Man kann die Konfiguration (Register und peers) mit &#039;&#039;&#039;getConfig&#039;&#039;&#039; aus dem Device lesen und in FHEM dargestellen. FHEM bemüht sich, die angezeigten Register aktuell zu halten - der User muss aber ein gewisse Vorsicht im Umgang damit walten lassen. Register können mit &#039;&#039;&#039;regSet&#039;&#039;&#039; gesetzt werden. Ob die gelesenen Register komplett sind prüft &amp;lt;u&amp;gt;[[Homematic_HMInfo#Integrit.C3.A4tspr.C3.BCfungen|configCheck]]&amp;lt;/u&amp;gt;.&lt;br /&gt;
Da einige Entities viele Register haben kann man mit dem Attribut &#039;&#039;&#039;expert&#039;&#039;&#039; die Sichtbarkeit steuern. &amp;lt;br&amp;gt;&lt;br /&gt;
siehe auch &amp;lt;u&amp;gt;[[Homematic_HMInfo#Infos|register]]&amp;lt;/u&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Von einigen Devices sind Register schwer zu lesen, z.B. config devices. Man kann die Register-Readings &amp;lt;u&amp;gt;[[Homematic_HMInfo#archConfig|archivieren]]&amp;lt;/u&amp;gt; und beim reboot wieder &amp;lt;u&amp;gt;[[Homematic_HMInfo#archConfig|laden]]&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Attribute====&lt;br /&gt;
Attribute sind i.a. Parameter, die das Verhalten der Entity steuern. Sie werden mit &#039;&#039;&#039;save&#039;&#039;&#039; in fhem.cfg oder einem seiner subfiles gespeichert. Nach einer Änderung sollte der User ein &amp;quot;save&amp;quot; machen, sonst sind diese nach einem Reboot verloren.&amp;lt;br&amp;gt;&lt;br /&gt;
Hier werden nur &#039;&#039;&#039;HM spezifische Attribute&#039;&#039;&#039; besprochen.&amp;lt;br&amp;gt;&lt;br /&gt;
Attribute, die das System &#039;&#039;&#039;automatisch&#039;&#039;&#039; anlegt. Sollten diese nicht mehr stimmen kann der User anlernen am Device drücken und sie werden wieder hergestellt. Der User sollte sie &#039;&#039;&#039;nicht ändern&#039;&#039;&#039;.&lt;br /&gt;
* model&lt;br /&gt;
* subType&lt;br /&gt;
* peerIDs: HMIds der peers. Wird gelegentlich verschoben!&lt;br /&gt;
* serialNr: auslaufend - durch Reading D-serianNr ersetzt&lt;br /&gt;
* firmware: auslaufend - durch Reading D-firmware ersetzt&lt;br /&gt;
&lt;br /&gt;
Attribute für HM Entities, die der User steuern kann&lt;br /&gt;
* webCmd: FHEM setzt ggf. einen Default, der User kann dies anpassen&lt;br /&gt;
* expert: schaltet mehr oder weniger Readings sichtbar - dient der Übersichtlichkeit des Web-Interface. &lt;br /&gt;
* autoReadReg: steuert das automatische Lesen der Konfiguration - ggf. zeitverzögert um Resourcen zu schonen. Es wird Level 5 empfohlen&lt;br /&gt;
&lt;br /&gt;
Attribute für HM Entities am Device, die der User steuern kann&lt;br /&gt;
* msgRepeat: kann man im Device einstellen. Es legt fest wir oft eine Nachricht wiederholt werden soll, falls sie nicht empfangen wird. Beachte, dass unabhängig davon ein HMLAN/USB immer 3-mal probiert zu senden. Insbesondere bei Burst Devices sollte man einen niedrigen level einstellen.&lt;br /&gt;
* IODev: Sollte man auf das IO device setzen, über das zu diesem Device gesendet werden soll. Es wird i.a. beim Pairen gesetzt. &lt;br /&gt;
&lt;br /&gt;
Empfohlene Attribute außerhalb von HM&lt;br /&gt;
* event-on-change-reading .*&lt;br /&gt;
&lt;br /&gt;
===Kommandos===&lt;br /&gt;
====Allgemein====&lt;br /&gt;
* get &amp;lt;name&amp;gt; cmdList &#039;&#039;# zeigt alle Kommandos mit Parametern für diese Entity an&#039;&#039;&lt;br /&gt;
* clear [readings|register|rssi|msgEvents] &#039;&#039;# löschen von Readings oder Zählern&#039;&#039;&lt;br /&gt;
====Register kommandos====&lt;br /&gt;
* set &amp;lt;name&amp;gt; getConfig &#039;&#039;# liest alle Peers und Register. Auf ein Device angewendet werden ALLE channels auch gelesen&#039;&#039;&lt;br /&gt;
* set &amp;lt;name&amp;gt; regSet [prep|exec] &amp;lt;regName&amp;gt; &amp;lt;value&amp;gt; ... [&amp;lt;peerChannel&amp;gt;]&#039;&#039; #schreiben eines Registerwerts. Das Kommando landet im Kommandstack&#039;&#039;&lt;br /&gt;
* set &amp;lt;name&amp;gt; regbulk ...&#039;&#039;# kommando zum setzen von rohdaten und ganzen Registerlisten. Ausser zum re-configurieren eines ganzen Device eher nicht für den User zu gebrauchen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; sign [on|off &#039;&#039;# setzt das Register um AES einzuschalten. Man sollte sich über AES &#039;&#039;&#039;vorher&#039;&#039;&#039; einlesen!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* get &amp;lt;name&amp;gt; regList &#039;&#039;# zeigt alle Register, die diese Entity &#039;&#039;&#039;unterstützt&#039;&#039;&#039; - incl Beschreibung und Wertebereich. Als Anfänger sollte man einmal hinsehen!&#039;&#039;&lt;br /&gt;
* get &amp;lt;name&amp;gt; reg all &#039;&#039;# zeigt alle Register, die diese Entity &#039;&#039;&#039;hat&#039;&#039;&#039; und den aktuellen Wert&#039;&#039;&lt;br /&gt;
===Kommunikation===&lt;br /&gt;
Die Kommunikation zwischen Device und der Zentrale folgt einem Protokoll. Für die meisten Nachrichten erwartet der Sender eine Empfangsbestätigung. FHEM beachtet das Protokoll und implementiert es entsprechend der Fähigkeiten des IO device.&amp;lt;br&amp;gt;&lt;br /&gt;
Grundsätzlich kann jedes Device an jedes andere Nachrichten senden. Damit dies auch einen erfolg hat, müssen die Kanäle gepeert werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Um FHEM zu erlauben, Nachrichten an das Device zu richten muss FHEM gepairt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Senden der Nachrichten macht IMMER das Device - ein Kanal selbst kann nicht wirklich senden. &lt;br /&gt;
====Protokoll====&lt;br /&gt;
Da für das Senden das Device verantwortlich ist sind hier die entsprechenden Informationen zu finden. Zu Beachten sind die &amp;lt;u&amp;gt;[[HomeMatic#Device|Übertragungsmodi]]&amp;lt;/u&amp;gt;, die ein Device unterstützt.  Die Internals &amp;quot;prot...&amp;quot; enthalten alle notwendigen Daten. &lt;br /&gt;
* protState: Der Zustand der Protokollmaschine&lt;br /&gt;
** CMDs_done: alle Nachrichten übertragen, keine Fehler in diesem Durchgang aufgetreten&lt;br /&gt;
** CMDs_done_Error:xx : es hat xx Fehler bei der letzten Übertragung gegeben. &lt;br /&gt;
** CMDs_pending: Nachrichten warten auf das Senden&lt;br /&gt;
** CMDs_processing... : die Nachrichtenübertragung ist im Gange&lt;br /&gt;
** Info_Cleared: die Protokoll Statistik wurde rückgesetzt&lt;br /&gt;
* protCmdPend: Anzahl der Nachrichten, die auf das Senden warten&lt;br /&gt;
* protCmdDel: Anzahl gelöschter Nachrichten aufgrund von Fehlern&lt;br /&gt;
* protCmdNack: Anzahl der negativen Acknowledges&lt;br /&gt;
* protCmdResnd: Anzahl der Wiederholungen - die Nachrichten wurden nicht gelöscht. &lt;br /&gt;
* protCmdResndFail: Anzahl der fehlgeschlagenen Wiederholungen - die Nachrichten wurden gelöscht. &lt;br /&gt;
* protCmdIOerr: Anzahl der IO Fehler - Übertragung war nicht Möglich, weil das IO Device Probleme hatte. Der Grund sollte im IO Device nachgesehen werden. &lt;br /&gt;
* protCmdIOdly: Anzahl der Verzögerungen aufgrund von IO Problemen&lt;br /&gt;
* protCmdTimedOn: Anzahl der Nachrichten, wenn ein Timer im Device genutzt wird - z.B. durch on-for-timer&lt;br /&gt;
* protCmdRcv: Anzahl empfangene Nachrichten&lt;br /&gt;
* protCmdSnd: Anzahl gesendete Nachrichten&lt;br /&gt;
* protCmdErrIoId_...: Anzahl der Sendeversuche zum Device von einer anderen Zentrale&lt;br /&gt;
* protCmdErrIoAttack: Anzahl der Sendeversuche zum Device die nicht von FHEM kam- es könnte ein Versuch sein, das System zu hacken. Dies wird auch im Reading &#039;&#039;&#039;sabotageAttack&#039;&#039;&#039; ausgegeben und man kann ein notify darauf ansetzen. &lt;br /&gt;
&lt;br /&gt;
* protCmdEvt_AESCom: Anzahl der AES Nachrichten von Device&lt;br /&gt;
* protCmdEvt_AESKey: Benutzter AES key&lt;br /&gt;
&lt;br /&gt;
Die Zähler können mit &#039;&#039;&#039;set &amp;lt;device&amp;gt; clear msgEvents&#039;&#039;&#039; rückgesetzt werden. Dies kann vor Konfigurationsänderungen Sinn machen, um Probleme besser erkennen zu können. &amp;lt;br&amp;gt;&lt;br /&gt;
Eine Übersicht kann man mit HMInfo &amp;lt;u&amp;gt;[[Homematic_HMInfo#protoEvents|protoEvents]]&amp;lt;/u&amp;gt; erhalten. Auch das Löschen aller Zähler ist von HMInfo aus möglich.&lt;br /&gt;
&lt;br /&gt;
====Rssi====&lt;br /&gt;
Zeigt den Empfangspegel, den ein Device von einem Anderen misst. Die Variablen sind in Internals abgelegt. Angegeben werden minimale und maximale Wert. Außerdem wird der Durchschnitt und die Anzahl der Nachrichten ausgewertet.&amp;lt;br&amp;gt;&lt;br /&gt;
HM liefert Empfangspegel am IO Device (FHEM standard) aber auch den Empfangspegel am Device selbst. Ebenfalls ausgewertet werden Pegel, die beim Senden zwischen Peers erreicht werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Zähler können mit &#039;&#039;&#039;set &amp;lt;device&amp;gt; clear rssi&#039;&#039;&#039; rückgesetzt werden.&amp;lt;br&amp;gt; &lt;br /&gt;
Eine Übersicht erhält man mit HMInfo &amp;lt;u&amp;gt;[[Homematic_HMInfo#RSSI|Rssi]]&amp;lt;/u&amp;gt;. Das Löschen der Zähler aller HM devices ist von HMInfo aus möglich.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Man kann RSSI kontinuierlich aufzeichnen, wenn das Attribut &#039;&#039;&#039;rssiLog&#039;&#039;&#039; im Device gesetzt ist. Es wird ein Reading rssi_&amp;lt;name&amp;gt; erzeugt. Das generelle setzen dieses Attributs wird aus Performance-gründen nicht empfohlen.&lt;br /&gt;
&lt;br /&gt;
== Pairen und Peeren ==&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Pairing und Peering]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HomeMatic-Geräte können mit einer Zentrale (Fhem) &#039;&#039;gepairt&#039;&#039; und mit anderen HM-Geräten &#039;&#039;gepeert&#039;&#039; werden.&lt;br /&gt;
&lt;br /&gt;
=== Pairen ===&lt;br /&gt;
: &#039;&#039;→ Hauptartikel: [[HomeMatic Devices pairen]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HM-Geräte können mit und ohne Zentrale betrieben werden. Fhem geht davon aus, dass Geräte immer von einer Zentrale aus gesteuert werden können. Dazu muss das Gerät mit der Zentrale &#039;&#039;gepairt&#039;&#039; werden. &lt;br /&gt;
&lt;br /&gt;
=== Peeren ===&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Homematic Peering Beispiele]]&lt;br /&gt;
&lt;br /&gt;
Um es Geräten zu ermöglichen auch ohne Zentrale zu interagieren (zum Beispiel wenn die Zentrale einen Defekt hat), können HM-Geräte untereinander &#039;&#039;gepeert&#039;&#039; werden.&lt;br /&gt;
Dazu wird ein Sensor-Kanal mit einem Aktor-Kanal verknüpft.&lt;br /&gt;
&lt;br /&gt;
== HMInfo ==&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Homematic HMInfo]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bei der Betreuung einer HomeMatic-Installation ist das Modul [[Homematic_HMInfo|HMInfo]] sehr hilfreich. Es stellt eine Übersicht der HomeMatic-Komponenten zur Verfügung, kann die Konfiguration prüfen und Alarmierungen gesammelt auswerten.&lt;br /&gt;
&lt;br /&gt;
== Besondere Entites ==&lt;br /&gt;
&lt;br /&gt;
=== Virtuelle Entities ===&lt;br /&gt;
Virtuelle Entities sind nicht reale HM Devices und Kanäle. Man kann sie als Sender und Empfänger nutzen, auch im Zusammenhang mit Rauchmeldern oder zur Steuerung von Heizungsventilen. Die spezifischen Anwendungen sind im entsprechenden Kapitel nachzulesen. &amp;lt;br&amp;gt;&lt;br /&gt;
Angelegt wird das Device, dann wird per Kommando eine Anzahl Kanäle angelegt. &lt;br /&gt;
  define &amp;lt;virtDev&amp;gt; CUL_HM 112233&lt;br /&gt;
  set &amp;lt;virtDev&amp;gt; virtual 10&lt;br /&gt;
jetzt hat man ein virtuelles Device mit 10 Kanälen angelegt. &lt;br /&gt;
Die die gültigen Kommandos kann man wie immer mit &#039;&#039;&#039;get &amp;lt;entity&amp;gt; cmdList&#039;&#039;&#039; erfahren.&amp;lt;br&amp;gt;&lt;br /&gt;
Auch einem Virtuellen Device sollte man das &#039;&#039;&#039;Attribut IODev setzen &#039;&#039;&#039;.&lt;br /&gt;
=== IO Entities ===&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Virtueller Controller VCCU#Virtuelle Kanäle der VCCU]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IO-Entities&#039;&#039;&#039; sind virtuelle Kanäle der Zentrale, mit denen andere HomeMatic-Geräte gepeert werden können. Diese Kanäle sind einem &#039;&#039;IO-Device&#039;&#039; zugeordnet – im Unterschied zu &#039;&#039;virtuellen Entities&#039;&#039; gibt es kein virtuelles Homematic-Gerät welches die Kanäle beherbergt.&lt;br /&gt;
&lt;br /&gt;
Jedem IO-Device können bis zu 50 Kanäle zugewiesen werden. Wenn mehrere IO-Devices die gleiche HMId nutzen, zum Beispiel wenn ein [[Virtueller Controller VCCU|virtueller Controller]] verwendet wird, teilen sich diese IO-Devices die Kanäle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anlegen:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 # IO-Device definieren&lt;br /&gt;
 define &amp;lt;IO-Device&amp;gt; CUL_HM c0ffee&lt;br /&gt;
 attr &amp;lt;IO-Device&amp;gt; model CCU-FHEM&lt;br /&gt;
 &lt;br /&gt;
 # 4 IO-Entities definieren&lt;br /&gt;
 set &amp;lt;IO-Device&amp;gt; virtual 4&lt;br /&gt;
&lt;br /&gt;
Aktuell werden IO-Entities in Fhem nicht dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Action Detector===&lt;br /&gt;
Einige Devices der HM-Geräteserie senden periodisch Nachrichten. Manche alle 3 Minuten, andere alle 3 Tage. Wenn so eine Zeit für einen Device spezifiziert ist wird diese automatisch vom ActionDetector überwacht.&amp;lt;br&amp;gt;&lt;br /&gt;
Meist sind dies batteriebetriebene Geräte. Sollte aus irgendwelchen Gründen der Batteriealarm übersehen werden und das Gerät keine Nachricht mehr senden wird es auf Dead gesetzt.&lt;br /&gt;
Die Kontrollinstanz ist ein Pseudo-Gerät &amp;quot;ActionDetector&amp;quot; mit der HMId &amp;quot;000000&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
* attribut&lt;br /&gt;
** actCycle: gibt an, in welchen Abständen sich das Device melden muss&lt;br /&gt;
** actStatus: gibt den Zustand an&lt;br /&gt;
*** alive: Device hat sich in der erwarteten Zeit min einmal gemeldet&lt;br /&gt;
*** dead: Device hat sich in der erwarteten Zeit nicht gemeldet&lt;br /&gt;
*** unknown: Device hat sich nicht gemeldet, es ist aber seit dem letzten reboot die Zykluszeit noch nicht abgelaufen. &lt;br /&gt;
&lt;br /&gt;
* readings&lt;br /&gt;
** Activity:    entsprechend dem actStatus. &lt;br /&gt;
&lt;br /&gt;
* get&lt;br /&gt;
** listDevice:           Gibt alle Objekte zurück&lt;br /&gt;
** listDevice notActive: Gibt alle Objekte zurück die nicht &amp;quot;alive&amp;quot; sind&lt;br /&gt;
** listDevice alive:     Gibt alle Objekte zurück die &amp;quot;alive&amp;quot; sind&lt;br /&gt;
** listDevice unknown:   Gibt alle Objekte zurück die &amp;quot;unknown&amp;quot; sind&lt;br /&gt;
** listDevice dead:      Gibt alle Objekte zurück die &amp;quot;dead&amp;quot; sind&lt;br /&gt;
&lt;br /&gt;
Durch das Setzen des Attributs im HM device wird der ActionDetector automatisch definiert - nach einem save steht er auch in der fhem.cfg.&lt;br /&gt;
Alternativ ist auch eine manuelle Definition möglich und sollte in etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 define ActionDetector CUL_HM 000000&lt;br /&gt;
 attr ActionDetector actCycle 30&lt;br /&gt;
 attr ActionDetector event-on-change-reading .*&lt;br /&gt;
 attr ActionDetector model ActionDetector&lt;br /&gt;
&lt;br /&gt;
Die HMId &amp;quot;000000&amp;quot; darf nicht geändert werden.&lt;br /&gt;
&lt;br /&gt;
In der Entity actionDetector kann man die Infos gesammelt einsehen.&lt;br /&gt;
Der User kann durch das Setzen des Attributs actCycle jedes Device in diese Liste aufnehmen. Es wird dann geprüft, ob sich das Device in dieser Zeit auch meldet. Der User muss dies aber selbst sicherstellen.&lt;br /&gt;
&lt;br /&gt;
== Tipps / HowTos / Beispiele ==&lt;br /&gt;
&lt;br /&gt;
* [[HomeMatic Devices pairen|HM Devices pairen]] zum &#039;&#039;&#039;Pairen&#039;&#039;&#039; der Geräte untereinander.&lt;br /&gt;
* [[CUL]] (also gleichzeitig)?&lt;br /&gt;
* [[Slider für HM-Rolladensteuerung anzeigen]]&lt;br /&gt;
* Für den &amp;quot;Fall der Fälle&amp;quot;: Erstellen Sie eine Liste aller HM-Geräte mit den Installationsorten, HM-Namen, Fhem-Namen &#039;&#039;&#039;und&#039;&#039;&#039; den Geräte-IDs. Falls Sie sich ihr Fhem einmal zerschießen, wird diese Liste sehr hilfreich sein. Zur Abwicklung von Gewährleistungsansprüchen sind Daten über Kaufdatum und Lieferant (bei größeren Installationen mit Zukauf in zeitlichen Abständen) ebenfalls angebracht.&lt;br /&gt;
&lt;br /&gt;
== Probleme ==&lt;br /&gt;
&lt;br /&gt;
=== Messages Sniffen ===&lt;br /&gt;
Um Probleme besser nachvollziehen zu können, kann man &amp;lt;u&amp;gt;[[Homematic_Nachrichten_sniffen|Nachrichten mitsniffen]]&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Daten können empfangen werden, Befehle werden nicht übertragen ===&lt;br /&gt;
&lt;br /&gt;
Das kann mehrere Ursachen haben:&lt;br /&gt;
* Pairing nicht abgeschlossen (bei den &#039;&#039;Readings&#039;&#039; &amp;quot;PairedTo&amp;quot; bzw. &amp;quot;R-pairCentral&amp;quot; steht der Wert &#039;&#039;&#039;set_&#039;&#039;&#039;0x1A2B3C). Das Pairing ist erst dann erfolgreich abgeschlossen, wenn das &#039;&#039;&#039;set_&#039;&#039;&#039; fehlt, also nur noch (beispielhaft) &amp;quot;0x1A2B3C&amp;quot; steht. Siehe [[HomeMatic_Devices_pairen]]&lt;br /&gt;
* Sender (CUL/HM-LAN) und Empfänger (HM-Device) stehen zu nah (RSSI-Werte bei ~ &amp;quot;-17&amp;quot;) beieinander&lt;br /&gt;
* Sender (CUL/HM-LAN) und Empfänger (HM-Device) stehen zu weit (RSSI-Werte bei unter ~ &amp;quot;-80&amp;quot;) voneinander entfernt&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Notifys und anderes funktionieren nach einem Fhem-Neustart nicht mehr oder nicht mehr zeitnah ===&lt;br /&gt;
&lt;br /&gt;
Obwohl HomeMatic wegen der höhren Datenübertragungsrate wesentlich weniger von der [[1% Regel]] betroffen ist als z.b. FS20 oder FHT, so kann es dennoch zu Funkkontingentüberschreitungen kommen.&lt;br /&gt;
&lt;br /&gt;
Insbesondere ist bei FHEM Versionen ab Oktober 2013 das Attribut &#039;&#039;autoReadReg&#039;&#039; auf &amp;quot;4_reqStatus&amp;quot; gesetzt. Damit wird für jedes HM-Device mit diesem so gesetzten Attribut beim Fhem-Start ein &#039;&#039;getConfig&#039;&#039; durchgeführt, was viel Funkverkehr erfordert.&lt;br /&gt;
&lt;br /&gt;
Je nach Anzahl der Geräte kann dazu führen, dass insgesamt zu viel Funklast erzeugt wird, im Logfile erscheint dann eine Meldung wie:&lt;br /&gt;
&lt;br /&gt;
 2013.10.03 13:41:18 2: HMLAN_Parse: HMLAN1 new condition ERROR-Overload&lt;br /&gt;
&lt;br /&gt;
Ab diesem Moment werden eben auch keine anderen Befehle mehr an weitere HM-Geräte geschickt, da das Funkkontigent aufgebraucht ist. Erst nach einer Stunde kann erneut gesendet werden. Als &#039;&#039;&#039;Notbehelf&#039;&#039;&#039; kann die Funkschnittstelle resetted oder  ([[HMLAN Konfigurator]]) kurz stromlos gemacht werden. Dann wird der Zähler wieder auf Null gesetzt.&lt;br /&gt;
&lt;br /&gt;
Alternativ können so viele HM-Geräte wie möglich auf &#039;&#039;autoReadReg 0_off&#039;&#039; gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[1% Regel]]&lt;br /&gt;
&lt;br /&gt;
=== Spannungsversorgung ===&lt;br /&gt;
Die Batterielebensdauer der HomaMatic Komponenten ist durchwachsen. Besonders die mitgelieferten Batterien sind mitunter schon nach wenigen Wochen leer, trotzdem werden öfters keine &#039;&#039;battery low&#039;&#039; Meldung erzeugt. Bei Störung des Funkverkehrs (z.b. blinkendes Antennensymbol im HM-CC-TC und kurzes piepen zur vollen Stunde von morgens bis abends, fehlende ACK Meldungen, nicht auslösende IR-Bewegungssensoren und ähnliches) sollte also immer auch eine schlechte Spannungsversorgung in Betracht gezogen werden.&lt;br /&gt;
&lt;br /&gt;
Gute neue Batterien halten jedoch i.d.R. 12 Monate und mehr, auch Lebensdauern über 2 Jahre sind bei einigen Geräten (Tür/Fensterkontakte, Sender, Retroanzeige,  IR-Bewegungsmelder) keine Seltenheit.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.homematic.com/ HomeMatic] Homepage&lt;br /&gt;
* Hersteller [http://www.eq-3.de eQ-3] &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Glossary]]&lt;/div&gt;</summary>
		<author><name>Cori</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic&amp;diff=14448</id>
		<title>HomeMatic</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic&amp;diff=14448"/>
		<updated>2016-03-03T01:17:03Z</updated>

		<summary type="html">&lt;p&gt;Cori: /* virtuelle Kanäle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Achtung, diese Seite wird derzeit im Sinne einer klareren Beschreibung überarbeitet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HomeMatic&#039;&#039;&#039; (HM) ist ein System des Herstellers eQ-3 zur Steuerung und Überwachung von zahlreichen Aufgaben und Situationen im Haus. Erhältlich sind sowohl Geräte mit Funkschnittstelle 868.3 MHz, als auch (seit 2008) drahtgebundene Geräte mit RS485-Schnittstelle. Im Programm sind Geräte zur Heizungs- und Lichtsteuerung, Temperatur-, Luftfeuchte- und Feuchtemessung, Zutrittskontrolle, als Wasser-, Brand- und Bewegungsmelder sowie als Wetterstation, ferner gibt es noch Fernbedienungen und Statusdisplays.&lt;br /&gt;
&lt;br /&gt;
=Grundlagen=&lt;br /&gt;
HomeMatic-Geräte können untereinander &#039;&#039;gepeert&#039;&#039; werden (engl. &#039;&#039;peers&#039;&#039; = &amp;quot;Gleiche&amp;quot;), im einfachsten Fall kann deshalb bereits ein Sensor (z.B. ein Temperatursensor) mit einem Aktor (z.B. einem Heizkörperregler) verbunden werden und diesen steuern. Hierbei können mehrere Sensoren und Aktoren untereinander verbunden werden, die Vorstellung der &amp;quot;Gleichen&amp;quot; ist also zutreffend.&lt;br /&gt;
&lt;br /&gt;
HomeMatic-Geräte können auch mit einer Zentrale verbunden (&#039;&#039;gepairt&#039;&#039;) werden, die dann einen Teil der Steuerungslogik übernehmen kann. Bei dieser Verbindung spricht man vom &#039;&#039;Pairing&#039;&#039;, weil jedes HomeMatic-Gerät nur mit einer Zentrale verbunden werden kann. Gepairte Geräte können auch nicht mehr direkt gepeert werden - dies geht dann nur noch unter Beteiligung der Zentrale.&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen==&lt;br /&gt;
Für den Betrieb ohne Zentrale sind keine weiteren Voraussetzungen zu erfüllen.&lt;br /&gt;
===Zentrale von eQ-3===&lt;br /&gt;
Vom Hersteller eQ-3 selbst wird eine Zentrale (derzeit aktuell CCU-2) und Windows-Software zur Steuerung und Auswertung der HM-Komponenten angeboten.&lt;br /&gt;
&lt;br /&gt;
===Fhem als Zentrale===&lt;br /&gt;
Zur Kommunikation mit HomeMatic benötigt Fhem eine Schnittstelle, die im 868,3-MHz-Band funken kann. Infrage kommen:&lt;br /&gt;
* [[CUL]] (USB)&lt;br /&gt;
* [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] (USB)&lt;br /&gt;
* [[CUNO]] (LAN)&lt;br /&gt;
* [[HM-CFG-LAN]] (oft auch &amp;quot;HMLAN&amp;quot; genannt; LAN)&lt;br /&gt;
&lt;br /&gt;
Für &#039;&#039;HomeMatic Wired&#039;&#039; benötigt man eine RS485-Schnittstelle. Verfügbar sind:&lt;br /&gt;
* [[HomeMatic Wired RS485 LAN Gateway|HMW-LGW-O-DR-GS-EU]] (LAN)&lt;br /&gt;
&lt;br /&gt;
===Migration von CCU-2 zu Fhem===&lt;br /&gt;
Der Umzug einer bestehenden HomeMatic Installation von einer HomeMatic CCU-2 auf Fhem ist möglich. Um die an die Zentrale angebundenen Devices in Fhem ohne größere Umkonfiguration weiter verwenden zu können, muß die HM-Id und, falls verwendet, die AES-Schlüssel der CCU-2 in Fhem übernommen werden. Um diese Daten aus der CCU-2 auszulesen, wird eine SSH-Verbindung (zum Beispiel mit PuTTY unter Windows) aufgebaut. Die HM-Id befindet sich in der Datei &amp;lt;code&amp;gt;/usr/local/etc/config/rfd/BidCoS-RF.dev&amp;lt;/code&amp;gt; in einer Zeile wie dieser:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;device serial=&amp;quot;BidCoS-RF&amp;quot; type=&amp;quot;HM-RCV-50&amp;quot; address=&amp;quot;&amp;lt;span style=&amp;quot;color: maroon; font-weight: bold;&amp;quot;&amp;gt;0xABCDEF&amp;lt;/span&amp;gt;&amp;quot; aes_key_index=&amp;quot;0&amp;quot; firmware_version=&amp;quot;2.11.9&amp;quot; bidcos_interface=&amp;quot;KEQ1234567&amp;quot; roaming=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die HM-Id ist der Wert des &amp;lt;code&amp;gt;address&amp;lt;/code&amp;gt;-Attributs. Die dort angegebene hexadezimale Zahl (hier &amp;lt;code&amp;gt;0xABCDEF&amp;lt;/code&amp;gt;) ist die HM-Id und wird in Fhem ohne das &amp;quot;0x&amp;quot;-Präfix verwendet.&lt;br /&gt;
&lt;br /&gt;
Falls AES-Schlüssel eingerichtet sind, sind diese in der Datei &amp;lt;code&amp;gt;/etc/config_templates/crypttool.cfg&amp;lt;/code&amp;gt; zu finden und können 1:1 als Schlüssel im [[HM-CFG-LAN]] in der gleichen Reihenfolge hinterlegt werden.&lt;br /&gt;
{{Todo|Wie werden AES-Schlüssel in HM-CFG-LAN &amp;quot;hinterlegt&amp;quot;?}}&lt;br /&gt;
&lt;br /&gt;
==Prototokoll==&lt;br /&gt;
HM-Geräte kommunizieren untereinander mit dem Protokoll &#039;&#039;Bidirectional Communication Standard&#039;&#039;, abgekürzt &#039;&#039;BidCoS&#039;&#039;. Jedes HM-Gerät enthält also Sender und Empfänger, das ist einer der wesentlichen Unterschiede z.B. zum FS20-System.&lt;br /&gt;
*Jedes HM-Gerät meldet beim Empfang eines Steuerbefehls durch einen Peer an diesen eine Bestätigung „ACK“ zurück. Erkennt das HM-Gerät den Befehl nicht, sendet es ein &#039;&#039;NACK&#039;&#039;. Kommt vom HM-Gerät keine Rückmeldung innerhalb einer festgelegten Zeit, meldet der steuernde Peer ein &#039;&#039;MISSING ACK&#039;&#039;.&lt;br /&gt;
*Jedes HM-Gerät meldet ferner seinen Status nach dem Erhalt eines Steuerbefehls zurück - so kann auch ein lokal am Gerät erfolgender Tastendruck in beim steuernden Peer oder  in der Zentrale registriert werden.&lt;br /&gt;
&lt;br /&gt;
Das Protokoll &#039;&#039;BidCoS&#039;&#039; wurde zum großen Teil entschlüsselt, seine offen verfügbare Variante heißt &#039;&#039;AskSin&#039;&#039;. Unter Verwendung der AskSin-Library entstehen derzeit erste Geräte, die in das HomeMatic-System eingebunden werden können. Zur Unterscheidung zwischen HM und den neuen Geräten werden diese als [[HomeBrew]] (HB) bezeichnet.&lt;br /&gt;
&lt;br /&gt;
=Betrieb mit Fhem=&lt;br /&gt;
Die Kenntnis des Dokumentes [http://fhem.de/Heimautomatisierung-mit-fhem.pdf Einsteigerdokuments &amp;quot;Heimautomatisierung mit Fhem&amp;quot;] wird vorausgesetzt. Im Anhang dieses Dokuments findet sich ein Teil über den Aufbau und die Funktion von HM-Geräten.&lt;br /&gt;
&lt;br /&gt;
=== Einrichten des IO-Devices (Funkschnittstelle)===&lt;br /&gt;
Zuerst muss ein IO-Device eingerichtet werden, um mit HM Geräten kommunizieren zu können. Siehe hierzu [[HMLAN Konfigurator]].&lt;br /&gt;
&lt;br /&gt;
=== Struktur von HM Geräten===&lt;br /&gt;
HM Geräte sind logisch in ein &#039;&#039;&#039;Device&#039;&#039;&#039; und ein oder mehrere &#039;&#039;&#039;Kanäle&#039;&#039;&#039; gegliedert. Jedes Device und jeder Kanal (Channel) wird in einer Entity in FHEM repräsentiert. &amp;lt;br&amp;gt;&lt;br /&gt;
Ausnahme: Sollte ein Gerät nur einen Kanal haben wird dieser in einer Entity mit dem Device eingerichtet. &lt;br /&gt;
====Device====&lt;br /&gt;
Das Device ist für die Kommunikation verantwortlich. Es sortiert und ordnet die zu sendenden und empfangenden Nachrichten. &lt;br /&gt;
Man kann prüfen, ob alle Nachrichten übertragen sind, oder ob es Probleme gegeben hat. Die Variablen &amp;quot;prot...&amp;quot; geben Auskunft darüber. Siehe auch [[Homematic_HMInfo#protoEvents]].&lt;br /&gt;
Zu beachten sind zudem die Übertragungsmodi. Nicht alle Devices sind ständig auf Empfang - FHEM muss berücksichtigen, wann gesendet werden kann. In &#039;&#039;&#039;protState&#039;&#039;&#039; kann man sehen, ob Kommandos auf Verarbeitung warten, also pending sind.&lt;br /&gt;
Einige Devices unterstützen mehrere Modi parallel. &lt;br /&gt;
===== Config=====&lt;br /&gt;
Wird von allen Devices unterstützt, auch wenn es bei Always kaum genutzt werden kann.&lt;br /&gt;
Man setzt die Kommandos in FHEM ab und diese warten in der Kommando-queue.  &lt;br /&gt;
Wenn die config-funktion am Device ausgelöst wird (Anlerntaste drücken) sendet FHEM die wartenden Nachrichten der Reihe nach.&lt;br /&gt;
Config wird bei allen Devices zum pairen genutzt.&lt;br /&gt;
===== Always=====&lt;br /&gt;
Trifft man meist bei netzbetriebenen Geräten an, da diese kein Problem mit dem Energieverbrauch haben. Man kann immer mit dem Device kommunizieren.&lt;br /&gt;
===== Burst=====&lt;br /&gt;
Nur der Empfänger des Device ist aktiv. Über eine Aufweck-sequenz kann das Device geweckt werden. Man kann quasi immer mit dem Device kommunizieren. Nachteil des Aufwecken ist zum Einen, dass immer ALLE Devices im Funknetz geweckt werden, was deren Batterie belastet. Zum Andere ist die Aufweck-sequenz funktechnisch aufwändig und belastet die maximal erlaubte Sendekapazität des IO device je Stunde. &lt;br /&gt;
===== ConditionalBurst=====&lt;br /&gt;
Bei einigen Devices kann man den Burst mode zuschalten. Dies sind Devices, die zusätzlich über andere modi verfügen, so z.B. wakeup. Schaltet man burst-empfang ein kann man immer und sofort mit dem Device reden, es kostet aber etwas mehr Batterie. Siehe hierzu Attribut &#039;&#039;&#039;burstAccess&#039;&#039;&#039;, Kommando &#039;&#039;&#039;burstXmit&#039;&#039;&#039; und Register &#039;&#039;&#039;burstRx&#039;&#039;&#039;&lt;br /&gt;
===== LazyConfig=====&lt;br /&gt;
Kommandos in der Queue werden bearbeitet, wenn eine Aktion vom Device ausgeht. So zum Beispiel ein Tastendruck bei einer Fernbedienung.&lt;br /&gt;
Dieser mode wird von CUL/CUNO nicht unterstützt. FHEM ignoriert diese Option automatisch und wartet i.a. auf ein Config.&lt;br /&gt;
&lt;br /&gt;
===== Wakeup=====&lt;br /&gt;
Die Devices wachen regelmäßig auf und senden Daten, z.B. Temperatursensoren. Zu diesem Zeitpunkt kann FHEM die Nachrichten übertragen. Die Aufwachperiode ist unterschiedlich von 3 min bis zu 24h.&lt;br /&gt;
&lt;br /&gt;
====Kanal====&lt;br /&gt;
Ein Kanal ist die Funktionseinheit des Geräts. Hier ist die Funktion des Sensors oder Aktors realisiert.&lt;br /&gt;
=====virtuelle Kanäle=====&lt;br /&gt;
Einige Dimmer unterstützen virtuelle Kanäle. Eigentlich haben sie keinen Hauptkanal sondern nur 3 virtuelle Kanäle, die je nach Verknüpfungslogik, den endgültigen Zustand des Aktors bestimmen. Dieses Verhalten wird in jedem Kanal per Register &#039;&#039;&#039;logicCombination&#039;&#039;&#039; gesetzt. &amp;lt;br /&amp;gt;&lt;br /&gt;
Folgende Logik wird dabei angewendet: &amp;lt;tt&amp;gt;phyLevel = (((0% o Ch1) o Ch2) o Ch3)&amp;lt;/tt&amp;gt;  [o = Logik-Platzhalter] &amp;lt;br /&amp;gt;&lt;br /&gt;
D.h. es wird immer der Kanal mit dem gesetzten Register mit dem vorherigen Teilergebnis kombiniert, angefangen mit Kanal1. &amp;lt;br /&amp;gt;&lt;br /&gt;
Es gibt folgende Logik-Optionen: [einzelne Betrachtung von &amp;lt;tt&amp;gt;(Vorergebnis o Kanal)&amp;lt;/tt&amp;gt;]&lt;br /&gt;
{|&lt;br /&gt;
!style=&amp;quot;text-align:left;&amp;quot;|Wert!!style=&amp;quot;text-align:left;&amp;quot;|Bedeutung!!style=&amp;quot;text-align:left;&amp;quot;|Beispiel (alle Werte in %)&lt;br /&gt;
|-&lt;br /&gt;
|inactive||keine Verknüpfung|| 30 inactive 80 = 30&lt;br /&gt;
|-&lt;br /&gt;
|or||oder (höchster Wert zählt)|| 30 or 80 = 80&lt;br /&gt;
|-&lt;br /&gt;
|and||und (kleinster Wert zählt)|| 30 and 80 = 30&lt;br /&gt;
|-&lt;br /&gt;
|xor||entweder-oder (nur 1 Kanal darf über 0% sein)|| 30 xor 80 = 0 &#039;&#039;aber&#039;&#039; 30 xor 0 = 30&lt;br /&gt;
|-&lt;br /&gt;
|nor||oder negiert (höchster Wert subtrahiert von 100%)|| 30 nor 80 &#039;&#039;= !80&#039;&#039; = 20&lt;br /&gt;
|-&lt;br /&gt;
|nand||und negiert (niedrigster Wert subtrahiert von 100%)|| 30 nand 80 &#039;&#039;= !30&#039;&#039; = 70&lt;br /&gt;
|-&lt;br /&gt;
|orinv||oder mit invertiertem Kanal|| 30 orinv 80 &#039;&#039;= 30 or 20&#039;&#039; = 30&lt;br /&gt;
|-&lt;br /&gt;
|andinv||und mit invertiertem Kanal|| 30 andinv 80 &#039;&#039;= 30 and 20&#039;&#039; = 20&lt;br /&gt;
|-&lt;br /&gt;
|plus||Vorergebnis addiert mit Kanal|| 30 plus 80 = 100&lt;br /&gt;
|-&lt;br /&gt;
|minus||Vorergebnis subtrahiert mit Kanal|| 30 minus 80 = 0&lt;br /&gt;
|-&lt;br /&gt;
|mul||Vorergebnis multipliziert mit Kanal|| 30 mul 80 = 24&lt;br /&gt;
|-&lt;br /&gt;
|plusinv||Vorergebnis addiert mit invertiertem Kanal|| 30 plusinv 80 &#039;&#039;= 30 plus 20&#039;&#039; = 50&lt;br /&gt;
|-&lt;br /&gt;
|minusinv||Vorergebnis subtrahiert mit invertiertem Kanal|| 30 minusinv 80 &#039;&#039;= 30 minus 20&#039;&#039; = 10&lt;br /&gt;
|-&lt;br /&gt;
|mulinv||Vorergebnis multipliziert mit invertiertem Kanal|| 30 mulinv 80 &#039;&#039;= 30 mul 20&#039;&#039; = 6&lt;br /&gt;
|-&lt;br /&gt;
|invPlus||invertiertes Vorergebnis addiert mit Kanal|| 30 invPlus 80 &#039;&#039;= 70 plus 80&#039;&#039; = 100&lt;br /&gt;
|-&lt;br /&gt;
|invMinus||invertiertes Vorergebnis subtrahiert mit Kanal|| 30 invMinus 80 &#039;&#039;= 70 minus 80&#039;&#039; = 0&lt;br /&gt;
|-&lt;br /&gt;
|invMul||invertiertes Vorergebnis multipliziert mit Kanal|| 30 invMul 80 &#039;&#039;= 70 mul 80&#039;&#039; = 56&lt;br /&gt;
|}&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[HM-LC-Dim1PWM-CV Dimmaktor PWM DC-LED#Beispiele|Verknüpfungsbeispiel]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Variablen===&lt;br /&gt;
Wie alle FHEM Entities werden 4 Gruppen von Daten unterstützt: &lt;br /&gt;
* Internals: Im Web-Interface sichtbare Variablen, die allgemeine Informationen über den Zustand enthalten.&lt;br /&gt;
* Readings: Im Web-Interface sichtbare Variablen. Sie werden aus von Entites empfangenen Nachrichten generiert. Man kann mit notify Trigger auf die setzen. Readings werden im Statefile bei save und gewissen neustarts gesichert und beim Booten eingelesen. Readings haben einen Zeitstempel. &lt;br /&gt;
* Attribute: Im Web-Interface sichtbare Variablen. Über sie kann man die Eigenschaften der Entity in FHEM steuern. &lt;br /&gt;
* Helper: Im Web-Interface nicht sichtbare Variablen. Man kann sie mit dem Kommando &#039;list&#039; sehen. Es sind hilfsvariablen, die für den User keine Bedeutung haben sollen. &lt;br /&gt;
==== Internals====&lt;br /&gt;
Viele Variablen sind nicht HM spezifisch - deren Bedeutung muss in allgemeinen Teil nachgelesen werden. Spezifische Variablen sind:&lt;br /&gt;
*Device&lt;br /&gt;
** channel_xx: Liste der Kanäle, die dem Device zugeordnet sind. &lt;br /&gt;
** prot... : Gruppe von Daten zum Zustand des &amp;lt;u&amp;gt;[[HomeMatic#Protokol|Protokolls]]&amp;lt;/u&amp;gt;, also der Kommunikation mit dem Device.&lt;br /&gt;
** rssi...: Gruppe von Daten die den &amp;lt;u&amp;gt;[[HomeMatic#Rssi|Empfangspegel]]&amp;lt;/u&amp;gt; des Device bei IOs, Peers und Repeatern darstellt. &lt;br /&gt;
&lt;br /&gt;
*Kanäle&lt;br /&gt;
** device: Das übergeordnete Device&lt;br /&gt;
** chanNo: Die Kanalnummer&lt;br /&gt;
** peerList: Ist die Entity mit einem anderen gepeert ist steht hier der Name der Peers. Siehe auch attribut peerIDs und Reading peerList. Diese Variable ist mit dem peer verlinkt, man kann darauf &#039;clicken&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Readings====&lt;br /&gt;
Readings für HM Entites unterliegenden allgemeinen FHEM Regeln. &lt;br /&gt;
Generell gilt, dass ein Wert, der von FHEM gesetzt wurde mit dem prefix &#039;&#039;&#039;&amp;quot;set_&amp;quot;&#039;&#039;&#039; versehen wird. Wenn der Zustand bestätigt ist wird das set_ entfernt. Sollte man also ein Reading mit diesem prefix haben, das sich nicht selbst entfernt sollt man unbedingt den Zustand kontrollieren. &amp;lt;br&amp;gt;&lt;br /&gt;
So ist nach einem &amp;quot;set Licht on&amp;quot; der Zustand des Licht erst einemal &amp;quot;set_on&amp;quot;. Mit der Antwort des Device wird es dann auf &amp;quot;on&amp;quot; gesetzt. &amp;lt;br&amp;gt;&lt;br /&gt;
Register machen eine Ausnahme:&lt;br /&gt;
=====Register=====&lt;br /&gt;
Register sind Konfigurationsparameter, die &#039;&#039;&#039;im Device flash&#039;&#039;&#039; gespeichert werden. Daten, die Registern zureordnet sind beginnen mit &amp;quot;R-&amp;quot;. Sollte das Register einem peer zugeordnet sein kommt dieser danach. Der Namen ist also&lt;br /&gt;
&#039;&#039;&#039;R-&amp;lt;peer&amp;gt;-&amp;lt;registerName&amp;gt;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Der Zugriff ist indirekt, geht also nur über Methoden und Kommandos. Man kann die Konfiguration (Register und peers) mit &#039;&#039;&#039;getConfig&#039;&#039;&#039; aus dem Device lesen und in FHEM dargestellen. FHEM bemüht sich, die angezeigten Register aktuell zu halten - der User muss aber ein gewisse Vorsicht im Umgang damit walten lassen. Register können mit &#039;&#039;&#039;regSet&#039;&#039;&#039; gesetzt werden. Ob die gelesenen Register komplett sind prüft &amp;lt;u&amp;gt;[[Homematic_HMInfo#Integrit.C3.A4tspr.C3.BCfungen|configCheck]]&amp;lt;/u&amp;gt;.&lt;br /&gt;
Da einige Entities viele Register haben kann man mit dem Attribut &#039;&#039;&#039;expert&#039;&#039;&#039; die Sichtbarkeit steuern. &amp;lt;br&amp;gt;&lt;br /&gt;
siehe auch &amp;lt;u&amp;gt;[[Homematic_HMInfo#Infos|register]]&amp;lt;/u&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Von einigen Devices sind Register schwer zu lesen, z.B. config devices. Man kann die Register-Readings &amp;lt;u&amp;gt;[[Homematic_HMInfo#archConfig|archivieren]]&amp;lt;/u&amp;gt; und beim reboot wieder &amp;lt;u&amp;gt;[[Homematic_HMInfo#archConfig|laden]]&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Attribute====&lt;br /&gt;
Attribute sind i.a. Parameter, die das Verhalten der Entity steuern. Sie werden mit &#039;&#039;&#039;save&#039;&#039;&#039; in fhem.cfg oder einem seiner subfiles gespeichert. Nach einer Änderung sollte der User ein &amp;quot;save&amp;quot; machen, sonst sind diese nach einem Reboot verloren.&amp;lt;br&amp;gt;&lt;br /&gt;
Hier werden nur &#039;&#039;&#039;HM spezifische Attribute&#039;&#039;&#039; besprochen.&amp;lt;br&amp;gt;&lt;br /&gt;
Attribute, die das System &#039;&#039;&#039;automatisch&#039;&#039;&#039; anlegt. Sollten diese nicht mehr stimmen kann der User anlernen am Device drücken und sie werden wieder hergestellt. Der User sollte sie &#039;&#039;&#039;nicht ändern&#039;&#039;&#039;.&lt;br /&gt;
* model&lt;br /&gt;
* subType&lt;br /&gt;
* peerIDs: HMIds der peers. Wird gelegentlich verschoben!&lt;br /&gt;
* serialNr: auslaufend - durch Reading D-serianNr ersetzt&lt;br /&gt;
* firmware: auslaufend - durch Reading D-firmware ersetzt&lt;br /&gt;
&lt;br /&gt;
Attribute für HM Entities, die der User steuern kann&lt;br /&gt;
* webCmd: FHEM setzt ggf. einen Default, der User kann dies anpassen&lt;br /&gt;
* expert: schaltet mehr oder weniger Readings sichtbar - dient der Übersichtlichkeit des Web-Interface. &lt;br /&gt;
* autoReadReg: steuert das automatische Lesen der Konfiguration - ggf. zeitverzögert um Resourcen zu schonen. Es wird Level 5 empfohlen&lt;br /&gt;
&lt;br /&gt;
Attribute für HM Entities am Device, die der User steuern kann&lt;br /&gt;
* msgRepeat: kann man im Device einstellen. Es legt fest wir oft eine Nachricht wiederholt werden soll, falls sie nicht empfangen wird. Beachte, dass unabhängig davon ein HMLAN/USB immer 3-mal probiert zu senden. Insbesondere bei Burst Devices sollte man einen niedrigen level einstellen.&lt;br /&gt;
* IODev: Sollte man auf das IO device setzen, über das zu diesem Device gesendet werden soll. Es wird i.a. beim Pairen gesetzt. &lt;br /&gt;
&lt;br /&gt;
Empfohlene Attribute außerhalb von HM&lt;br /&gt;
* event-on-change-reading .*&lt;br /&gt;
&lt;br /&gt;
===Kommandos===&lt;br /&gt;
====Allgemein====&lt;br /&gt;
* get &amp;lt;name&amp;gt; cmdList &#039;&#039;# zeigt alle Kommandos mit Parametern für diese Entity an&#039;&#039;&lt;br /&gt;
* clear [readings|register|rssi|msgEvents] &#039;&#039;# löschen von Readings oder Zählern&#039;&#039;&lt;br /&gt;
====Register kommandos====&lt;br /&gt;
* set &amp;lt;name&amp;gt; getConfig &#039;&#039;# liest alle Peers und Register. Auf ein Device angewendet werden ALLE channels auch gelesen&#039;&#039;&lt;br /&gt;
* set &amp;lt;name&amp;gt; regSet [prep|exec] &amp;lt;regName&amp;gt; &amp;lt;value&amp;gt; ... [&amp;lt;peerChannel&amp;gt;]&#039;&#039; #schreiben eines Registerwerts. Das Kommando landet im Kommandstack&#039;&#039;&lt;br /&gt;
* set &amp;lt;name&amp;gt; regbulk ...&#039;&#039;# kommando zum setzen von rohdaten und ganzen Registerlisten. Ausser zum re-configurieren eines ganzen Device eher nicht für den User zu gebrauchen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; sign [on|off &#039;&#039;# setzt das Register um AES einzuschalten. Man sollte sich über AES &#039;&#039;&#039;vorher&#039;&#039;&#039; einlesen!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* get &amp;lt;name&amp;gt; regList &#039;&#039;# zeigt alle Register, die diese Entity &#039;&#039;&#039;unterstützt&#039;&#039;&#039; - incl Beschreibung und Wertebereich. Als Anfänger sollte man einmal hinsehen!&#039;&#039;&lt;br /&gt;
* get &amp;lt;name&amp;gt; reg all &#039;&#039;# zeigt alle Register, die diese Entity &#039;&#039;&#039;hat&#039;&#039;&#039; und den aktuellen Wert&#039;&#039;&lt;br /&gt;
===Kommunikation===&lt;br /&gt;
Die Kommunikation zwischen Device und der Zentrale folgt einem Protokoll. Für die meisten Nachrichten erwartet der Sender eine Empfangsbestätigung. FHEM beachtet das Protokoll und implementiert es entsprechend der Fähigkeiten des IO device.&amp;lt;br&amp;gt;&lt;br /&gt;
Grundsätzlich kann jedes Device an jedes andere Nachrichten senden. Damit dies auch einen erfolg hat, müssen die Kanäle gepeert werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Um FHEM zu erlauben, Nachrichten an das Device zu richten muss FHEM gepairt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Senden der Nachrichten macht IMMER das Device - ein Kanal selbst kann nicht wirklich senden. &lt;br /&gt;
====Protokoll====&lt;br /&gt;
Da für das Senden das Device verantwortlich ist sind hier die entsprechenden Informationen zu finden. Zu Beachten sind die &amp;lt;u&amp;gt;[[HomeMatic#Device|Übertragungsmodi]]&amp;lt;/u&amp;gt;, die ein Device unterstützt.  Die Internals &amp;quot;prot...&amp;quot; enthalten alle notwendigen Daten. &lt;br /&gt;
* protState: Der Zustand der Protokollmaschine&lt;br /&gt;
** CMDs_done: alle Nachrichten übertragen, keine Fehler in diesem Durchgang aufgetreten&lt;br /&gt;
** CMDs_done_Error:xx : es hat xx Fehler bei der letzten Übertragung gegeben. &lt;br /&gt;
** CMDs_pending: Nachrichten warten auf das Senden&lt;br /&gt;
** CMDs_processing... : die Nachrichtenübertragung ist im Gange&lt;br /&gt;
** Info_Cleared: die Protokoll Statistik wurde rückgesetzt&lt;br /&gt;
* protCmdPend: Anzahl der Nachrichten, die auf das Senden warten&lt;br /&gt;
* protCmdDel: Anzahl gelöschter Nachrichten aufgrund von Fehlern&lt;br /&gt;
* protCmdNack: Anzahl der negativen Acknowledges&lt;br /&gt;
* protCmdResnd: Anzahl der Wiederholungen - die Nachrichten wurden nicht gelöscht. &lt;br /&gt;
* protCmdResndFail: Anzahl der fehlgeschlagenen Wiederholungen - die Nachrichten wurden gelöscht. &lt;br /&gt;
* protCmdIOerr: Anzahl der IO Fehler - Übertragung war nicht Möglich, weil das IO Device Probleme hatte. Der Grund sollte im IO Device nachgesehen werden. &lt;br /&gt;
* protCmdIOdly: Anzahl der Verzögerungen aufgrund von IO Problemen&lt;br /&gt;
* protCmdTimedOn: Anzahl der Nachrichten, wenn ein Timer im Device genutzt wird - z.B. durch on-for-timer&lt;br /&gt;
* protCmdRcv: Anzahl empfangene Nachrichten&lt;br /&gt;
* protCmdSnd: Anzahl gesendete Nachrichten&lt;br /&gt;
* protCmdErrIoId_...: Anzahl der Sendeversuche zum Device von einer anderen Zentrale&lt;br /&gt;
* protCmdErrIoAttack: Anzahl der Sendeversuche zum Device die nicht von FHEM kam- es könnte ein Versuch sein, das System zu hacken. Dies wird auch im Reading &#039;&#039;&#039;sabotageAttack&#039;&#039;&#039; ausgegeben und man kann ein notify darauf ansetzen. &lt;br /&gt;
&lt;br /&gt;
* protCmdEvt_AESCom: Anzahl der AES Nachrichten von Device&lt;br /&gt;
* protCmdEvt_AESKey: Benutzter AES key&lt;br /&gt;
&lt;br /&gt;
Die Zähler können mit &#039;&#039;&#039;set &amp;lt;device&amp;gt; clear msgEvents&#039;&#039;&#039; rückgesetzt werden. Dies kann vor Konfigurationsänderungen Sinn machen, um Probleme besser erkennen zu können. &amp;lt;br&amp;gt;&lt;br /&gt;
Eine Übersicht kann man mit HMInfo &amp;lt;u&amp;gt;[[Homematic_HMInfo#protoEvents|protoEvents]]&amp;lt;/u&amp;gt; erhalten. Auch das Löschen aller Zähler ist von HMInfo aus möglich.&lt;br /&gt;
&lt;br /&gt;
====Rssi====&lt;br /&gt;
Zeigt den Empfangspegel, den ein Device von einem Anderen misst. Die Variablen sind in Internals abgelegt. Angegeben werden minimale und maximale Wert. Außerdem wird der Durchschnitt und die Anzahl der Nachrichten ausgewertet.&amp;lt;br&amp;gt;&lt;br /&gt;
HM liefert Empfangspegel am IO Device (FHEM standard) aber auch den Empfangspegel am Device selbst. Ebenfalls ausgewertet werden Pegel, die beim Senden zwischen Peers erreicht werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Zähler können mit &#039;&#039;&#039;set &amp;lt;device&amp;gt; clear rssi&#039;&#039;&#039; rückgesetzt werden.&amp;lt;br&amp;gt; &lt;br /&gt;
Eine Übersicht erhält man mit HMInfo &amp;lt;u&amp;gt;[[Homematic_HMInfo#RSSI|Rssi]]&amp;lt;/u&amp;gt;. Das Löschen der Zähler aller HM devices ist von HMInfo aus möglich.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Man kann RSSI kontinuierlich aufzeichnen, wenn das Attribut &#039;&#039;&#039;rssiLog&#039;&#039;&#039; im Device gesetzt ist. Es wird ein Reading rssi_&amp;lt;name&amp;gt; erzeugt. Das generelle setzen dieses Attributs wird aus Performance-gründen nicht empfohlen.&lt;br /&gt;
&lt;br /&gt;
== Pairen und Peeren ==&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Pairing und Peering]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HomeMatic-Geräte können mit einer Zentrale (Fhem) &#039;&#039;gepairt&#039;&#039; und mit anderen HM-Geräten &#039;&#039;gepeert&#039;&#039; werden.&lt;br /&gt;
&lt;br /&gt;
=== Pairen ===&lt;br /&gt;
: &#039;&#039;→ Hauptartikel: [[HomeMatic Devices pairen]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HM-Geräte können mit und ohne Zentrale betrieben werden. Fhem geht davon aus, dass Geräte immer von einer Zentrale aus gesteuert werden können. Dazu muss das Gerät mit der Zentrale &#039;&#039;gepairt&#039;&#039; werden. &lt;br /&gt;
&lt;br /&gt;
=== Peeren ===&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Homematic Peering Beispiele]]&lt;br /&gt;
&lt;br /&gt;
Um es Geräten zu ermöglichen auch ohne Zentrale zu interagieren (zum Beispiel wenn die Zentrale einen Defekt hat), können HM-Geräte untereinander &#039;&#039;gepeert&#039;&#039; werden.&lt;br /&gt;
Dazu wird ein Sensor-Kanal mit einem Aktor-Kanal verknüpft.&lt;br /&gt;
&lt;br /&gt;
== HMInfo ==&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Homematic HMInfo]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bei der Betreuung einer HomeMatic-Installation ist das Modul [[Homematic_HMInfo|HMInfo]] sehr hilfreich. Es stellt eine Übersicht der HomeMatic-Komponenten zur Verfügung, kann die Konfiguration prüfen und Alarmierungen gesammelt auswerten.&lt;br /&gt;
&lt;br /&gt;
== Besondere Entites ==&lt;br /&gt;
&lt;br /&gt;
=== Virtuelle Entities ===&lt;br /&gt;
Virtuelle Entities sind nicht reale HM Devices und Kanäle. Man kann sie als Sender und Empfänger nutzen, auch im Zusammenhang mit Rauchmeldern oder zur Steuerung von Heizungsventilen. Die spezifischen Anwendungen sind im entsprechenden Kapitel nachzulesen. &amp;lt;br&amp;gt;&lt;br /&gt;
Angelegt wird das Device, dann wird per Kommando eine Anzahl Kanäle angelegt. &lt;br /&gt;
  define &amp;lt;virtDev&amp;gt; CUL_HM 112233&lt;br /&gt;
  set &amp;lt;virtDev&amp;gt; virtual 10&lt;br /&gt;
jetzt hat man ein virtuelles Device mit 10 Kanälen angelegt. &lt;br /&gt;
Die die gültigen Kommandos kann man wie immer mit &#039;&#039;&#039;get &amp;lt;entity&amp;gt; cmdList&#039;&#039;&#039; erfahren.&amp;lt;br&amp;gt;&lt;br /&gt;
Auch einem Virtuellen Device sollte man das &#039;&#039;&#039;Attribut IODev setzen &#039;&#039;&#039;.&lt;br /&gt;
=== IO Entities ===&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Virtueller Controller VCCU#Virtuelle Kanäle der VCCU]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IO-Entities&#039;&#039;&#039; sind virtuelle Kanäle der Zentrale, mit denen andere HomeMatic-Geräte gepeert werden können. Diese Kanäle sind einem &#039;&#039;IO-Device&#039;&#039; zugeordnet – im Unterschied zu &#039;&#039;virtuellen Entities&#039;&#039; gibt es kein virtuelles Homematic-Gerät welches die Kanäle beherbergt.&lt;br /&gt;
&lt;br /&gt;
Jedem IO-Device können bis zu 50 Kanäle zugewiesen werden. Wenn mehrere IO-Devices die gleiche HMId nutzen, zum Beispiel wenn ein [[Virtueller Controller VCCU|virtueller Controller]] verwendet wird, teilen sich diese IO-Devices die Kanäle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anlegen:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 # IO-Device definieren&lt;br /&gt;
 define &amp;lt;IO-Device&amp;gt; CUL_HM c0ffee&lt;br /&gt;
 attr &amp;lt;IO-Device&amp;gt; model CCU-FHEM&lt;br /&gt;
 &lt;br /&gt;
 # 4 IO-Entities definieren&lt;br /&gt;
 set &amp;lt;IO-Device&amp;gt; virtual 4&lt;br /&gt;
&lt;br /&gt;
Aktuell werden IO-Entities in Fhem nicht dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Action Detector===&lt;br /&gt;
Einige Devices der HM-Geräteserie senden periodisch Nachrichten. Manche alle 3 Minuten, andere alle 3 Tage. Wenn so eine Zeit für einen Device spezifiziert ist wird diese automatisch vom ActionDetector überwacht.&amp;lt;br&amp;gt;&lt;br /&gt;
Meist sind dies batteriebetriebene Geräte. Sollte aus irgendwelchen Gründen der Batteriealarm übersehen werden und das Gerät keine Nachricht mehr senden wird es auf Dead gesetzt.&lt;br /&gt;
Die Kontrollinstanz ist ein Pseudo-Gerät &amp;quot;ActionDetector&amp;quot; mit der HMId &amp;quot;000000&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
* attribut&lt;br /&gt;
** actCycle: gibt an, in welchen Abständen sich das Device melden muss&lt;br /&gt;
** actStatus: gibt den Zustand an&lt;br /&gt;
*** alive: Device hat sich in der erwarteten Zeit min einmal gemeldet&lt;br /&gt;
*** dead: Device hat sich in der erwarteten Zeit nicht gemeldet&lt;br /&gt;
*** unknown: Device hat sich nicht gemeldet, es ist aber seit dem letzten reboot die Zykluszeit noch nicht abgelaufen. &lt;br /&gt;
&lt;br /&gt;
* readings&lt;br /&gt;
** Activity:    entsprechend dem actStatus. &lt;br /&gt;
&lt;br /&gt;
* get&lt;br /&gt;
** listDevice:           Gibt alle Objekte zurück&lt;br /&gt;
** listDevice notActive: Gibt alle Objekte zurück die nicht &amp;quot;alive&amp;quot; sind&lt;br /&gt;
** listDevice alive:     Gibt alle Objekte zurück die &amp;quot;alive&amp;quot; sind&lt;br /&gt;
** listDevice unknown:   Gibt alle Objekte zurück die &amp;quot;unknown&amp;quot; sind&lt;br /&gt;
** listDevice dead:      Gibt alle Objekte zurück die &amp;quot;dead&amp;quot; sind&lt;br /&gt;
&lt;br /&gt;
Durch das Setzen des Attributs im HM device wird der ActionDetector automatisch definiert - nach einem save steht er auch in der fhem.cfg.&lt;br /&gt;
Alternativ ist auch eine manuelle Definition möglich und sollte in etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 define ActionDetector CUL_HM 000000&lt;br /&gt;
 attr ActionDetector actCycle 30&lt;br /&gt;
 attr ActionDetector event-on-change-reading .*&lt;br /&gt;
 attr ActionDetector model ActionDetector&lt;br /&gt;
&lt;br /&gt;
Die HMId &amp;quot;000000&amp;quot; darf nicht geändert werden.&lt;br /&gt;
&lt;br /&gt;
In der Entity actionDetector kann man die Infos gesammelt einsehen.&lt;br /&gt;
Der User kann durch das Setzen des Attributs actCycle jedes Device in diese Liste aufnehmen. Es wird dann geprüft, ob sich das Device in dieser Zeit auch meldet. Der User muss dies aber selbst sicherstellen.&lt;br /&gt;
&lt;br /&gt;
== Tipps / HowTos / Beispiele ==&lt;br /&gt;
&lt;br /&gt;
* [[HomeMatic Devices pairen|HM Devices pairen]] zum &#039;&#039;&#039;Pairen&#039;&#039;&#039; der Geräte untereinander.&lt;br /&gt;
* [[CUL]] (also gleichzeitig)?&lt;br /&gt;
* [[Slider für HM-Rolladensteuerung anzeigen]]&lt;br /&gt;
* Für den &amp;quot;Fall der Fälle&amp;quot;: Erstellen Sie eine Liste aller HM-Geräte mit den Installationsorten, HM-Namen, Fhem-Namen &#039;&#039;&#039;und&#039;&#039;&#039; den Geräte-IDs. Falls Sie sich ihr Fhem einmal zerschießen, wird diese Liste sehr hilfreich sein. Zur Abwicklung von Gewährleistungsansprüchen sind Daten über Kaufdatum und Lieferant (bei größeren Installationen mit Zukauf in zeitlichen Abständen) ebenfalls angebracht.&lt;br /&gt;
&lt;br /&gt;
== Probleme ==&lt;br /&gt;
&lt;br /&gt;
=== Messages Sniffen ===&lt;br /&gt;
Um Probleme besser nachvollziehen zu können, kann man &amp;lt;u&amp;gt;[[Homematic_Nachrichten_sniffen|Nachrichten mitsniffen]]&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Daten können empfangen werden, Befehle werden nicht übertragen ===&lt;br /&gt;
&lt;br /&gt;
Das kann mehrere Ursachen haben:&lt;br /&gt;
* Pairing nicht abgeschlossen (bei den &#039;&#039;Readings&#039;&#039; &amp;quot;PairedTo&amp;quot; bzw. &amp;quot;R-pairCentral&amp;quot; steht der Wert &#039;&#039;&#039;set_&#039;&#039;&#039;0x1A2B3C). Das Pairing ist erst dann erfolgreich abgeschlossen, wenn das &#039;&#039;&#039;set_&#039;&#039;&#039; fehlt, also nur noch (beispielhaft) &amp;quot;0x1A2B3C&amp;quot; steht. Siehe [[HomeMatic_Devices_pairen]]&lt;br /&gt;
* Sender (CUL/HM-LAN) und Empfänger (HM-Device) stehen zu nah (RSSI-Werte bei ~ &amp;quot;-17&amp;quot;) beieinander&lt;br /&gt;
* Sender (CUL/HM-LAN) und Empfänger (HM-Device) stehen zu weit (RSSI-Werte bei unter ~ &amp;quot;-80&amp;quot;) voneinander entfernt&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Notifys und anderes funktionieren nach einem Fhem-Neustart nicht mehr oder nicht mehr zeitnah ===&lt;br /&gt;
&lt;br /&gt;
Obwohl HomeMatic wegen der höhren Datenübertragungsrate wesentlich weniger von der [[1% Regel]] betroffen ist als z.b. FS20 oder FHT, so kann es dennoch zu Funkkontingentüberschreitungen kommen.&lt;br /&gt;
&lt;br /&gt;
Insbesondere ist bei FHEM Versionen ab Oktober 2013 das Attribut &#039;&#039;autoReadReg&#039;&#039; auf &amp;quot;4_reqStatus&amp;quot; gesetzt. Damit wird für jedes HM-Device mit diesem so gesetzten Attribut beim Fhem-Start ein &#039;&#039;getConfig&#039;&#039; durchgeführt, was viel Funkverkehr erfordert.&lt;br /&gt;
&lt;br /&gt;
Je nach Anzahl der Geräte kann dazu führen, dass insgesamt zu viel Funklast erzeugt wird, im Logfile erscheint dann eine Meldung wie:&lt;br /&gt;
&lt;br /&gt;
 2013.10.03 13:41:18 2: HMLAN_Parse: HMLAN1 new condition ERROR-Overload&lt;br /&gt;
&lt;br /&gt;
Ab diesem Moment werden eben auch keine anderen Befehle mehr an weitere HM-Geräte geschickt, da das Funkkontigent aufgebraucht ist. Erst nach einer Stunde kann erneut gesendet werden. Als &#039;&#039;&#039;Notbehelf&#039;&#039;&#039; kann die Funkschnittstelle resetted oder  ([[HMLAN Konfigurator]]) kurz stromlos gemacht werden. Dann wird der Zähler wieder auf Null gesetzt.&lt;br /&gt;
&lt;br /&gt;
Alternativ können so viele HM-Geräte wie möglich auf &#039;&#039;autoReadReg 0_off&#039;&#039; gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[1% Regel]]&lt;br /&gt;
&lt;br /&gt;
=== Spannungsversorgung ===&lt;br /&gt;
Die Batterielebensdauer der HomaMatic Komponenten ist durchwachsen. Besonders die mitgelieferten Batterien sind mitunter schon nach wenigen Wochen leer, trotzdem werden öfters keine &#039;&#039;battery low&#039;&#039; Meldung erzeugt. Bei Störung des Funkverkehrs (z.b. blinkendes Antennensymbol im HM-CC-TC und kurzes piepen zur vollen Stunde von morgens bis abends, fehlende ACK Meldungen, nicht auslösende IR-Bewegungssensoren und ähnliches) sollte also immer auch eine schlechte Spannungsversorgung in Betracht gezogen werden.&lt;br /&gt;
&lt;br /&gt;
Gute neue Batterien halten jedoch i.d.R. 12 Monate und mehr, auch Lebensdauern über 2 Jahre sind bei einigen Geräten (Tür/Fensterkontakte, Sender, Retroanzeige,  IR-Bewegungsmelder) keine Seltenheit.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.homematic.com/ HomeMatic] Homepage&lt;br /&gt;
* Hersteller [http://www.eq-3.de eQ-3] &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Glossary]]&lt;/div&gt;</summary>
		<author><name>Cori</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HM-LC-Dim1PWM-CV_Dimmaktor_PWM_DC-LED&amp;diff=14447</id>
		<title>HM-LC-Dim1PWM-CV Dimmaktor PWM DC-LED</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HM-LC-Dim1PWM-CV_Dimmaktor_PWM_DC-LED&amp;diff=14447"/>
		<updated>2016-03-03T01:15:26Z</updated>

		<summary type="html">&lt;p&gt;Cori: /* virtuelle Kanäle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;HM-LC-Dim1PWM-CV Dimmaktor PWM DC-LED&#039;&#039;&#039;&lt;br /&gt;
= Features =&lt;br /&gt;
&lt;br /&gt;
Dimmaktor für LED-Leuchtmittel (z.B. LED-Leisten oder Flex-Stripes &#039;&#039;&#039;ohne Vorschaltgerät&#039;&#039;&#039;), deren Betriebsspannung 12 oder 24 V beträgt. Geeignet / vorgesehen für die Zwischendeckenmontage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technische Daten:&#039;&#039;&#039;&lt;br /&gt;
* Spannungsversorgung: 12 - 24 V (DC)&lt;br /&gt;
* Stromaufnahme (ohne Last): ~ 45 mA&lt;br /&gt;
* Anschlussleistung: max. 60 VA (5 A bei 12 V, 2,5 A bei 24 V)&lt;br /&gt;
* Lastbereich: 0 - 60 VA&lt;br /&gt;
* Geräteschutz: Überlast- und Temperatursicherung&lt;br /&gt;
* Maße(B x H x T): 40 x 32 x 164 mm&lt;br /&gt;
&lt;br /&gt;
= Hinweise zur Hardware-Installation =&lt;br /&gt;
&lt;br /&gt;
Der Dimmaktor benötigt eingangsseitig eine Gleichspannung von 12 oder 24 V.&lt;br /&gt;
&lt;br /&gt;
= Hinweise zum Betrieb mit FHEM =&lt;br /&gt;
&lt;br /&gt;
Das Pairen mit FHEM wird in [[HomeMatic Devices pairen|dieser Anleitung]] erläutert.&lt;br /&gt;
&lt;br /&gt;
== Besonderheiten ==&lt;br /&gt;
&lt;br /&gt;
Siehe [[HomeMatic#Besonderheiten|hier]]&lt;br /&gt;
&lt;br /&gt;
== virtuelle Kanäle ==&lt;br /&gt;
Per autocreate wird das Device und 3 Kanäle angelegt. Diese sind virtuelle Kanäle und ergeben je nach Konfiguration zusammen das physische Level des Aktors. &amp;lt;br /&amp;gt;&lt;br /&gt;
Ein Anwendungsbeispiel dazu weiter unten.&amp;lt;br /&amp;gt;&lt;br /&gt;
Siehe [[HomeMatic#virtuelle Kanäle]]&lt;br /&gt;
&lt;br /&gt;
== FHEM Config-Auszug ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define WZ.LEDdimmer CUL_HM 1D06D2&lt;br /&gt;
attr WZ.LEDdimmer .devInfo 410100&lt;br /&gt;
attr WZ.LEDdimmer .stc 20&lt;br /&gt;
attr WZ.LEDdimmer firmware 2.2&lt;br /&gt;
attr WZ.LEDdimmer model HM-LC-Dim1PWM-CV&lt;br /&gt;
attr WZ.LEDdimmer peerIDs &lt;br /&gt;
attr WZ.LEDdimmer room CUL_HM&lt;br /&gt;
attr WZ.LEDdimmer serialNr JEQ1567425&lt;br /&gt;
attr WZ.LEDdimmer subType dimmer&lt;br /&gt;
attr WZ.LEDdimmer webCmd toggle:on:off:statusRequest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mögliche DIM-Operationen ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;bitte einfügen / erläutern&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FHEM-Log-Auszug ==&lt;br /&gt;
&lt;br /&gt;
Bei attr global verbose 5 erscheint folgendes in der FHEM-Log-Datei (incl. Pair-Vorgang):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 3: CUL_HM Unknown device CUL_HM_HM_LC_Dim1PWM_CV_1D06D2, please define it&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 5: Triggering global (1 changes)&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 5: Notify loop for global UNDEFINED CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 CUL_HM 1D06D2 A1A0384001D06D20000002200674A45513033373931383020410100&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 2: autocreate: define CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 CUL_HM 1D06D2 A1A0384001D06D20000002200674A45513033373931383020410100&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 3: CUL_HM pair: CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 dimmer, model HM-LC-Dim1PWM-CV serialNr JEQ1567425&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 5: Triggering CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 (1 changes)&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 5: Notify loop for CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 R-pairCentral: set_0x123456&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 5: HMLAN_Send:  +1D06D2,00,00,&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 5: HMLAN_Send:  SE334EDD2,00,00000000,01,E334EDD2,AEA0011234561D06D200050000000000&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 5: Triggering global (2 changes)&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 2: autocreate: define FileLog_CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 FileLog /opt/fhem/log/CUL_HM_HM_LC_Dim1PWM_CV_1D06D2-%Y-%m.log CUL_HM_HM_LC_Dim1PWM_CV_1D06D2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Event monitor ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; CUL_HM CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 R-pairCentral: set_0x123456&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; Global global UNDEFINED CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 CUL_HM 1D06D2 A1A0384001D06D20000002200674A45513033373931383020410100&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; Global global DEFINED CUL_HM_HM_LC_Dim1PWM_CV_1D06D2&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; Global global DEFINED FileLog_CUL_HM_HM_LC_Dim1PWM_CV_1D06D2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Device-Log ==&lt;br /&gt;
&lt;br /&gt;
Nach einem rename auf einen &amp;quot;verständlichen&amp;quot; Namen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer deviceMsg: 99.5 % (to HMLAN1)&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer dim: down:99.5 %&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer overload: off&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer overheat: off&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer reduced: off&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer 99.5 %&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer deviceMsg: off (to HMLAN1)&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer dim: stop:off&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer off&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer set_toggle&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer deviceMsg: on (to HMLAN1)&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer dim: stop:on&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer on&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer set_off&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer set_100&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer set_0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Beispiele =&lt;br /&gt;
== Eingangslicht/Treppenhauslicht mit Bewegungsmelder ==&lt;br /&gt;
Dank der 3 virt. Kanäle kann man den Dimmer mit Bewegungsmeldern und Schaltern koppeln ohne das der Wert des anderen überschrieben wird, wenn diese unterschiedlichen Kanälen zugeordnet sind. Z.B. wird das Licht nicht vollständig ausgehen, wenn per Taster (das z.B. 100%-ige Licht) ausgeschaltet wird, der vom Bewegungsmelder gesetzte Timer (z.B. nur mit 50%) aber noch nicht abgelaufen ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ein Beispiel für die Verknüpfung aus dämmerungsgesteuerter Helligkeit, Bewegungsmelder und Taster wäre:&lt;br /&gt;
 phyLevel = (((0% or Ch1) mul Ch2) plus Ch3)&lt;br /&gt;
* Ch1: Dämmerungskanal (or)&lt;br /&gt;
*: wird per FHEM bei einbrechender Dämmerung eingeschaltet und per &amp;lt;code&amp;gt;set &#039;&#039;Ch1&#039;&#039; 25 0 3600&amp;lt;/code&amp;gt; innerhalb einer Stunde auf 25% gedimmt&lt;br /&gt;
*: bei beginnendem Sonnenaufgang reicht dann ein &amp;lt;code&amp;gt;set &#039;&#039;Ch1&#039;&#039; 100 300 3600&amp;lt;/code&amp;gt; um innerhalb einer Stunde auf 100% hoch zu dimmen und nach weiteren 5 min automatisch aus zu gehen&lt;br /&gt;
*:: Die 3600Sek sind nur beispielhaft. Ich verwende eine berechnete Zeitspanne bis &amp;lt;code&amp;gt;sunset(&#039;horizon=-12&#039;)&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;sunrise(&#039;horizon=0&#039;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Ch2: Bewegungskanal (mul)&lt;br /&gt;
*: Bei erneuten Triggern sollte der Dimmer stets bei on gehalten bzw. wieder dahin versetzt werden. Außerdem ist es angebracht ein dezentes Flackern kurz vor dem Ausschalten (DlyOff) einzubauen und man kann die Ramp-Zeiten ruhig etwas verlängern. &amp;lt;br /&amp;gt;&lt;br /&gt;
*: Durch die Verknüpfung per Multiplikation wird das Vorwarnen (Flackern) auch über den Ch1 weitergegeben, was bei einer Und-Verknüpfung nicht erfolgen würde.&amp;lt;br /&amp;gt;&lt;br /&gt;
*: Für den Peer werden daher folgende Register gesetzt: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
shActionTypeDim = jmpToTarget&lt;br /&gt;
shDimJtDlyOff = on&lt;br /&gt;
shDimJtDlyOn = rampOn&lt;br /&gt;
shDimJtOff = dlyOn&lt;br /&gt;
shDimJtOn = on&lt;br /&gt;
shDimJtRampOff = rampOn&lt;br /&gt;
shDimJtRampOn = on&lt;br /&gt;
shOffDly = 15 s&lt;br /&gt;
shOffDlyBlink = on&lt;br /&gt;
shOffDlyNewTime = 0.6 s&lt;br /&gt;
shOffDlyOldTime = 9.4 s&lt;br /&gt;
shOffDlyStep = 20 %&lt;br /&gt;
shOnTime = 90 s&lt;br /&gt;
shRampOffTime = 2.5 s&lt;br /&gt;
shRampOnTime = 2.5 s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Ch3: Tasterkanal (plus)&lt;br /&gt;
*: Nur die Verknüpfung per Addition weicht von der Standardeinstellung ab. Somit kann die Helligkeit beim Hochdimmen per langem Tastendruck sofort erhöht werden. Bei der Oder-Verknüpfung erhält man erst eine Helligkeitserhöhung, wenn Ch3 die Kombination aus Ch1&amp;amp;2 übersteigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
&lt;br /&gt;
Anleitung: [http://www.eq-3.de/Downloads/eq3/pdf_produkte/HM-LC-Dim1PWM-CV_UM_GE_eQ-3_110922.pdf PDF]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Dimmer]]&lt;/div&gt;</summary>
		<author><name>Cori</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic&amp;diff=14446</id>
		<title>HomeMatic</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic&amp;diff=14446"/>
		<updated>2016-03-03T01:14:37Z</updated>

		<summary type="html">&lt;p&gt;Cori: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Achtung, diese Seite wird derzeit im Sinne einer klareren Beschreibung überarbeitet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HomeMatic&#039;&#039;&#039; (HM) ist ein System des Herstellers eQ-3 zur Steuerung und Überwachung von zahlreichen Aufgaben und Situationen im Haus. Erhältlich sind sowohl Geräte mit Funkschnittstelle 868.3 MHz, als auch (seit 2008) drahtgebundene Geräte mit RS485-Schnittstelle. Im Programm sind Geräte zur Heizungs- und Lichtsteuerung, Temperatur-, Luftfeuchte- und Feuchtemessung, Zutrittskontrolle, als Wasser-, Brand- und Bewegungsmelder sowie als Wetterstation, ferner gibt es noch Fernbedienungen und Statusdisplays.&lt;br /&gt;
&lt;br /&gt;
=Grundlagen=&lt;br /&gt;
HomeMatic-Geräte können untereinander &#039;&#039;gepeert&#039;&#039; werden (engl. &#039;&#039;peers&#039;&#039; = &amp;quot;Gleiche&amp;quot;), im einfachsten Fall kann deshalb bereits ein Sensor (z.B. ein Temperatursensor) mit einem Aktor (z.B. einem Heizkörperregler) verbunden werden und diesen steuern. Hierbei können mehrere Sensoren und Aktoren untereinander verbunden werden, die Vorstellung der &amp;quot;Gleichen&amp;quot; ist also zutreffend.&lt;br /&gt;
&lt;br /&gt;
HomeMatic-Geräte können auch mit einer Zentrale verbunden (&#039;&#039;gepairt&#039;&#039;) werden, die dann einen Teil der Steuerungslogik übernehmen kann. Bei dieser Verbindung spricht man vom &#039;&#039;Pairing&#039;&#039;, weil jedes HomeMatic-Gerät nur mit einer Zentrale verbunden werden kann. Gepairte Geräte können auch nicht mehr direkt gepeert werden - dies geht dann nur noch unter Beteiligung der Zentrale.&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen==&lt;br /&gt;
Für den Betrieb ohne Zentrale sind keine weiteren Voraussetzungen zu erfüllen.&lt;br /&gt;
===Zentrale von eQ-3===&lt;br /&gt;
Vom Hersteller eQ-3 selbst wird eine Zentrale (derzeit aktuell CCU-2) und Windows-Software zur Steuerung und Auswertung der HM-Komponenten angeboten.&lt;br /&gt;
&lt;br /&gt;
===Fhem als Zentrale===&lt;br /&gt;
Zur Kommunikation mit HomeMatic benötigt Fhem eine Schnittstelle, die im 868,3-MHz-Band funken kann. Infrage kommen:&lt;br /&gt;
* [[CUL]] (USB)&lt;br /&gt;
* [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] (USB)&lt;br /&gt;
* [[CUNO]] (LAN)&lt;br /&gt;
* [[HM-CFG-LAN]] (oft auch &amp;quot;HMLAN&amp;quot; genannt; LAN)&lt;br /&gt;
&lt;br /&gt;
Für &#039;&#039;HomeMatic Wired&#039;&#039; benötigt man eine RS485-Schnittstelle. Verfügbar sind:&lt;br /&gt;
* [[HomeMatic Wired RS485 LAN Gateway|HMW-LGW-O-DR-GS-EU]] (LAN)&lt;br /&gt;
&lt;br /&gt;
===Migration von CCU-2 zu Fhem===&lt;br /&gt;
Der Umzug einer bestehenden HomeMatic Installation von einer HomeMatic CCU-2 auf Fhem ist möglich. Um die an die Zentrale angebundenen Devices in Fhem ohne größere Umkonfiguration weiter verwenden zu können, muß die HM-Id und, falls verwendet, die AES-Schlüssel der CCU-2 in Fhem übernommen werden. Um diese Daten aus der CCU-2 auszulesen, wird eine SSH-Verbindung (zum Beispiel mit PuTTY unter Windows) aufgebaut. Die HM-Id befindet sich in der Datei &amp;lt;code&amp;gt;/usr/local/etc/config/rfd/BidCoS-RF.dev&amp;lt;/code&amp;gt; in einer Zeile wie dieser:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;device serial=&amp;quot;BidCoS-RF&amp;quot; type=&amp;quot;HM-RCV-50&amp;quot; address=&amp;quot;&amp;lt;span style=&amp;quot;color: maroon; font-weight: bold;&amp;quot;&amp;gt;0xABCDEF&amp;lt;/span&amp;gt;&amp;quot; aes_key_index=&amp;quot;0&amp;quot; firmware_version=&amp;quot;2.11.9&amp;quot; bidcos_interface=&amp;quot;KEQ1234567&amp;quot; roaming=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die HM-Id ist der Wert des &amp;lt;code&amp;gt;address&amp;lt;/code&amp;gt;-Attributs. Die dort angegebene hexadezimale Zahl (hier &amp;lt;code&amp;gt;0xABCDEF&amp;lt;/code&amp;gt;) ist die HM-Id und wird in Fhem ohne das &amp;quot;0x&amp;quot;-Präfix verwendet.&lt;br /&gt;
&lt;br /&gt;
Falls AES-Schlüssel eingerichtet sind, sind diese in der Datei &amp;lt;code&amp;gt;/etc/config_templates/crypttool.cfg&amp;lt;/code&amp;gt; zu finden und können 1:1 als Schlüssel im [[HM-CFG-LAN]] in der gleichen Reihenfolge hinterlegt werden.&lt;br /&gt;
{{Todo|Wie werden AES-Schlüssel in HM-CFG-LAN &amp;quot;hinterlegt&amp;quot;?}}&lt;br /&gt;
&lt;br /&gt;
==Prototokoll==&lt;br /&gt;
HM-Geräte kommunizieren untereinander mit dem Protokoll &#039;&#039;Bidirectional Communication Standard&#039;&#039;, abgekürzt &#039;&#039;BidCoS&#039;&#039;. Jedes HM-Gerät enthält also Sender und Empfänger, das ist einer der wesentlichen Unterschiede z.B. zum FS20-System.&lt;br /&gt;
*Jedes HM-Gerät meldet beim Empfang eines Steuerbefehls durch einen Peer an diesen eine Bestätigung „ACK“ zurück. Erkennt das HM-Gerät den Befehl nicht, sendet es ein &#039;&#039;NACK&#039;&#039;. Kommt vom HM-Gerät keine Rückmeldung innerhalb einer festgelegten Zeit, meldet der steuernde Peer ein &#039;&#039;MISSING ACK&#039;&#039;.&lt;br /&gt;
*Jedes HM-Gerät meldet ferner seinen Status nach dem Erhalt eines Steuerbefehls zurück - so kann auch ein lokal am Gerät erfolgender Tastendruck in beim steuernden Peer oder  in der Zentrale registriert werden.&lt;br /&gt;
&lt;br /&gt;
Das Protokoll &#039;&#039;BidCoS&#039;&#039; wurde zum großen Teil entschlüsselt, seine offen verfügbare Variante heißt &#039;&#039;AskSin&#039;&#039;. Unter Verwendung der AskSin-Library entstehen derzeit erste Geräte, die in das HomeMatic-System eingebunden werden können. Zur Unterscheidung zwischen HM und den neuen Geräten werden diese als [[HomeBrew]] (HB) bezeichnet.&lt;br /&gt;
&lt;br /&gt;
=Betrieb mit Fhem=&lt;br /&gt;
Die Kenntnis des Dokumentes [http://fhem.de/Heimautomatisierung-mit-fhem.pdf Einsteigerdokuments &amp;quot;Heimautomatisierung mit Fhem&amp;quot;] wird vorausgesetzt. Im Anhang dieses Dokuments findet sich ein Teil über den Aufbau und die Funktion von HM-Geräten.&lt;br /&gt;
&lt;br /&gt;
=== Einrichten des IO-Devices (Funkschnittstelle)===&lt;br /&gt;
Zuerst muss ein IO-Device eingerichtet werden, um mit HM Geräten kommunizieren zu können. Siehe hierzu [[HMLAN Konfigurator]].&lt;br /&gt;
&lt;br /&gt;
=== Struktur von HM Geräten===&lt;br /&gt;
HM Geräte sind logisch in ein &#039;&#039;&#039;Device&#039;&#039;&#039; und ein oder mehrere &#039;&#039;&#039;Kanäle&#039;&#039;&#039; gegliedert. Jedes Device und jeder Kanal (Channel) wird in einer Entity in FHEM repräsentiert. &amp;lt;br&amp;gt;&lt;br /&gt;
Ausnahme: Sollte ein Gerät nur einen Kanal haben wird dieser in einer Entity mit dem Device eingerichtet. &lt;br /&gt;
====Device====&lt;br /&gt;
Das Device ist für die Kommunikation verantwortlich. Es sortiert und ordnet die zu sendenden und empfangenden Nachrichten. &lt;br /&gt;
Man kann prüfen, ob alle Nachrichten übertragen sind, oder ob es Probleme gegeben hat. Die Variablen &amp;quot;prot...&amp;quot; geben Auskunft darüber. Siehe auch [[Homematic_HMInfo#protoEvents]].&lt;br /&gt;
Zu beachten sind zudem die Übertragungsmodi. Nicht alle Devices sind ständig auf Empfang - FHEM muss berücksichtigen, wann gesendet werden kann. In &#039;&#039;&#039;protState&#039;&#039;&#039; kann man sehen, ob Kommandos auf Verarbeitung warten, also pending sind.&lt;br /&gt;
Einige Devices unterstützen mehrere Modi parallel. &lt;br /&gt;
===== Config=====&lt;br /&gt;
Wird von allen Devices unterstützt, auch wenn es bei Always kaum genutzt werden kann.&lt;br /&gt;
Man setzt die Kommandos in FHEM ab und diese warten in der Kommando-queue.  &lt;br /&gt;
Wenn die config-funktion am Device ausgelöst wird (Anlerntaste drücken) sendet FHEM die wartenden Nachrichten der Reihe nach.&lt;br /&gt;
Config wird bei allen Devices zum pairen genutzt.&lt;br /&gt;
===== Always=====&lt;br /&gt;
Trifft man meist bei netzbetriebenen Geräten an, da diese kein Problem mit dem Energieverbrauch haben. Man kann immer mit dem Device kommunizieren.&lt;br /&gt;
===== Burst=====&lt;br /&gt;
Nur der Empfänger des Device ist aktiv. Über eine Aufweck-sequenz kann das Device geweckt werden. Man kann quasi immer mit dem Device kommunizieren. Nachteil des Aufwecken ist zum Einen, dass immer ALLE Devices im Funknetz geweckt werden, was deren Batterie belastet. Zum Andere ist die Aufweck-sequenz funktechnisch aufwändig und belastet die maximal erlaubte Sendekapazität des IO device je Stunde. &lt;br /&gt;
===== ConditionalBurst=====&lt;br /&gt;
Bei einigen Devices kann man den Burst mode zuschalten. Dies sind Devices, die zusätzlich über andere modi verfügen, so z.B. wakeup. Schaltet man burst-empfang ein kann man immer und sofort mit dem Device reden, es kostet aber etwas mehr Batterie. Siehe hierzu Attribut &#039;&#039;&#039;burstAccess&#039;&#039;&#039;, Kommando &#039;&#039;&#039;burstXmit&#039;&#039;&#039; und Register &#039;&#039;&#039;burstRx&#039;&#039;&#039;&lt;br /&gt;
===== LazyConfig=====&lt;br /&gt;
Kommandos in der Queue werden bearbeitet, wenn eine Aktion vom Device ausgeht. So zum Beispiel ein Tastendruck bei einer Fernbedienung.&lt;br /&gt;
Dieser mode wird von CUL/CUNO nicht unterstützt. FHEM ignoriert diese Option automatisch und wartet i.a. auf ein Config.&lt;br /&gt;
&lt;br /&gt;
===== Wakeup=====&lt;br /&gt;
Die Devices wachen regelmäßig auf und senden Daten, z.B. Temperatursensoren. Zu diesem Zeitpunkt kann FHEM die Nachrichten übertragen. Die Aufwachperiode ist unterschiedlich von 3 min bis zu 24h.&lt;br /&gt;
&lt;br /&gt;
====Kanal====&lt;br /&gt;
Ein Kanal ist die Funktionseinheit des Geräts. Hier ist die Funktion des Sensors oder Aktors realisiert.&lt;br /&gt;
=====virtuelle Kanäle=====&lt;br /&gt;
Einige Dimmer unterstützen virtuelle Kanäle. Eigentlich haben sie keinen Hauptkanal sondern nur 3 virtuelle Kanäle, die je nach Verknüpfungslogik, den endgültigen Zustand des Aktors bestimmen. Dieses Verhalten wird in jedem Kanal per Register &#039;&#039;&#039;logicCombination&#039;&#039;&#039; gesetzt. &amp;lt;br /&amp;gt;&lt;br /&gt;
Folgende Logik wird dabei angewendet: &amp;lt;tt&amp;gt;phyLevel = (((0% o Ch1) o Ch2) o Ch3)&amp;lt;/tt&amp;gt;  [o = Logik-Platzhalter] &amp;lt;br /&amp;gt;&lt;br /&gt;
D.h. es wird immer der Kanal mit dem gesetzten Register mit dem niedrigeren Teilergebnis kombiniert, angefangen mit Kanal1. &amp;lt;br /&amp;gt;&lt;br /&gt;
Es gibt folgende Logik-Optionen: [einzelne Betrachtung von &amp;lt;tt&amp;gt;(Vorergebnis o Kanal)&amp;lt;/tt&amp;gt;]&lt;br /&gt;
{|&lt;br /&gt;
!style=&amp;quot;text-align:left;&amp;quot;|Wert!!style=&amp;quot;text-align:left;&amp;quot;|Bedeutung!!style=&amp;quot;text-align:left;&amp;quot;|Beispiel (alle Werte in %)&lt;br /&gt;
|-&lt;br /&gt;
|inactive||keine Verknüpfung|| 30 inactive 80 = 30&lt;br /&gt;
|-&lt;br /&gt;
|or||oder (höchster Wert zählt)|| 30 or 80 = 80&lt;br /&gt;
|-&lt;br /&gt;
|and||und (kleinster Wert zählt)|| 30 and 80 = 30&lt;br /&gt;
|-&lt;br /&gt;
|xor||entweder-oder (nur 1 Kanal darf über 0% sein)|| 30 xor 80 = 0 &#039;&#039;aber&#039;&#039; 30 xor 0 = 30&lt;br /&gt;
|-&lt;br /&gt;
|nor||oder negiert (höchster Wert subtrahiert von 100%)|| 30 nor 80 &#039;&#039;= !80&#039;&#039; = 20&lt;br /&gt;
|-&lt;br /&gt;
|nand||und negiert (niedrigster Wert subtrahiert von 100%)|| 30 nand 80 &#039;&#039;= !30&#039;&#039; = 70&lt;br /&gt;
|-&lt;br /&gt;
|orinv||oder mit invertiertem Kanal|| 30 orinv 80 &#039;&#039;= 30 or 20&#039;&#039; = 30&lt;br /&gt;
|-&lt;br /&gt;
|andinv||und mit invertiertem Kanal|| 30 andinv 80 &#039;&#039;= 30 and 20&#039;&#039; = 20&lt;br /&gt;
|-&lt;br /&gt;
|plus||Vorergebnis addiert mit Kanal|| 30 plus 80 = 100&lt;br /&gt;
|-&lt;br /&gt;
|minus||Vorergebnis subtrahiert mit Kanal|| 30 minus 80 = 0&lt;br /&gt;
|-&lt;br /&gt;
|mul||Vorergebnis multipliziert mit Kanal|| 30 mul 80 = 24&lt;br /&gt;
|-&lt;br /&gt;
|plusinv||Vorergebnis addiert mit invertiertem Kanal|| 30 plusinv 80 &#039;&#039;= 30 plus 20&#039;&#039; = 50&lt;br /&gt;
|-&lt;br /&gt;
|minusinv||Vorergebnis subtrahiert mit invertiertem Kanal|| 30 minusinv 80 &#039;&#039;= 30 minus 20&#039;&#039; = 10&lt;br /&gt;
|-&lt;br /&gt;
|mulinv||Vorergebnis multipliziert mit invertiertem Kanal|| 30 mulinv 80 &#039;&#039;= 30 mul 20&#039;&#039; = 6&lt;br /&gt;
|-&lt;br /&gt;
|invPlus||invertiertes Vorergebnis addiert mit Kanal|| 30 invPlus 80 &#039;&#039;= 70 plus 80&#039;&#039; = 100&lt;br /&gt;
|-&lt;br /&gt;
|invMinus||invertiertes Vorergebnis subtrahiert mit Kanal|| 30 invMinus 80 &#039;&#039;= 70 minus 80&#039;&#039; = 0&lt;br /&gt;
|-&lt;br /&gt;
|invMul||invertiertes Vorergebnis multipliziert mit Kanal|| 30 invMul 80 &#039;&#039;= 70 mul 80&#039;&#039; = 56&lt;br /&gt;
|}&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[HM-LC-Dim1PWM-CV Dimmaktor PWM DC-LED#Beispiele|Verknüpfungsbeispiel]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Variablen===&lt;br /&gt;
Wie alle FHEM Entities werden 4 Gruppen von Daten unterstützt: &lt;br /&gt;
* Internals: Im Web-Interface sichtbare Variablen, die allgemeine Informationen über den Zustand enthalten.&lt;br /&gt;
* Readings: Im Web-Interface sichtbare Variablen. Sie werden aus von Entites empfangenen Nachrichten generiert. Man kann mit notify Trigger auf die setzen. Readings werden im Statefile bei save und gewissen neustarts gesichert und beim Booten eingelesen. Readings haben einen Zeitstempel. &lt;br /&gt;
* Attribute: Im Web-Interface sichtbare Variablen. Über sie kann man die Eigenschaften der Entity in FHEM steuern. &lt;br /&gt;
* Helper: Im Web-Interface nicht sichtbare Variablen. Man kann sie mit dem Kommando &#039;list&#039; sehen. Es sind hilfsvariablen, die für den User keine Bedeutung haben sollen. &lt;br /&gt;
==== Internals====&lt;br /&gt;
Viele Variablen sind nicht HM spezifisch - deren Bedeutung muss in allgemeinen Teil nachgelesen werden. Spezifische Variablen sind:&lt;br /&gt;
*Device&lt;br /&gt;
** channel_xx: Liste der Kanäle, die dem Device zugeordnet sind. &lt;br /&gt;
** prot... : Gruppe von Daten zum Zustand des &amp;lt;u&amp;gt;[[HomeMatic#Protokol|Protokolls]]&amp;lt;/u&amp;gt;, also der Kommunikation mit dem Device.&lt;br /&gt;
** rssi...: Gruppe von Daten die den &amp;lt;u&amp;gt;[[HomeMatic#Rssi|Empfangspegel]]&amp;lt;/u&amp;gt; des Device bei IOs, Peers und Repeatern darstellt. &lt;br /&gt;
&lt;br /&gt;
*Kanäle&lt;br /&gt;
** device: Das übergeordnete Device&lt;br /&gt;
** chanNo: Die Kanalnummer&lt;br /&gt;
** peerList: Ist die Entity mit einem anderen gepeert ist steht hier der Name der Peers. Siehe auch attribut peerIDs und Reading peerList. Diese Variable ist mit dem peer verlinkt, man kann darauf &#039;clicken&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Readings====&lt;br /&gt;
Readings für HM Entites unterliegenden allgemeinen FHEM Regeln. &lt;br /&gt;
Generell gilt, dass ein Wert, der von FHEM gesetzt wurde mit dem prefix &#039;&#039;&#039;&amp;quot;set_&amp;quot;&#039;&#039;&#039; versehen wird. Wenn der Zustand bestätigt ist wird das set_ entfernt. Sollte man also ein Reading mit diesem prefix haben, das sich nicht selbst entfernt sollt man unbedingt den Zustand kontrollieren. &amp;lt;br&amp;gt;&lt;br /&gt;
So ist nach einem &amp;quot;set Licht on&amp;quot; der Zustand des Licht erst einemal &amp;quot;set_on&amp;quot;. Mit der Antwort des Device wird es dann auf &amp;quot;on&amp;quot; gesetzt. &amp;lt;br&amp;gt;&lt;br /&gt;
Register machen eine Ausnahme:&lt;br /&gt;
=====Register=====&lt;br /&gt;
Register sind Konfigurationsparameter, die &#039;&#039;&#039;im Device flash&#039;&#039;&#039; gespeichert werden. Daten, die Registern zureordnet sind beginnen mit &amp;quot;R-&amp;quot;. Sollte das Register einem peer zugeordnet sein kommt dieser danach. Der Namen ist also&lt;br /&gt;
&#039;&#039;&#039;R-&amp;lt;peer&amp;gt;-&amp;lt;registerName&amp;gt;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Der Zugriff ist indirekt, geht also nur über Methoden und Kommandos. Man kann die Konfiguration (Register und peers) mit &#039;&#039;&#039;getConfig&#039;&#039;&#039; aus dem Device lesen und in FHEM dargestellen. FHEM bemüht sich, die angezeigten Register aktuell zu halten - der User muss aber ein gewisse Vorsicht im Umgang damit walten lassen. Register können mit &#039;&#039;&#039;regSet&#039;&#039;&#039; gesetzt werden. Ob die gelesenen Register komplett sind prüft &amp;lt;u&amp;gt;[[Homematic_HMInfo#Integrit.C3.A4tspr.C3.BCfungen|configCheck]]&amp;lt;/u&amp;gt;.&lt;br /&gt;
Da einige Entities viele Register haben kann man mit dem Attribut &#039;&#039;&#039;expert&#039;&#039;&#039; die Sichtbarkeit steuern. &amp;lt;br&amp;gt;&lt;br /&gt;
siehe auch &amp;lt;u&amp;gt;[[Homematic_HMInfo#Infos|register]]&amp;lt;/u&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Von einigen Devices sind Register schwer zu lesen, z.B. config devices. Man kann die Register-Readings &amp;lt;u&amp;gt;[[Homematic_HMInfo#archConfig|archivieren]]&amp;lt;/u&amp;gt; und beim reboot wieder &amp;lt;u&amp;gt;[[Homematic_HMInfo#archConfig|laden]]&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Attribute====&lt;br /&gt;
Attribute sind i.a. Parameter, die das Verhalten der Entity steuern. Sie werden mit &#039;&#039;&#039;save&#039;&#039;&#039; in fhem.cfg oder einem seiner subfiles gespeichert. Nach einer Änderung sollte der User ein &amp;quot;save&amp;quot; machen, sonst sind diese nach einem Reboot verloren.&amp;lt;br&amp;gt;&lt;br /&gt;
Hier werden nur &#039;&#039;&#039;HM spezifische Attribute&#039;&#039;&#039; besprochen.&amp;lt;br&amp;gt;&lt;br /&gt;
Attribute, die das System &#039;&#039;&#039;automatisch&#039;&#039;&#039; anlegt. Sollten diese nicht mehr stimmen kann der User anlernen am Device drücken und sie werden wieder hergestellt. Der User sollte sie &#039;&#039;&#039;nicht ändern&#039;&#039;&#039;.&lt;br /&gt;
* model&lt;br /&gt;
* subType&lt;br /&gt;
* peerIDs: HMIds der peers. Wird gelegentlich verschoben!&lt;br /&gt;
* serialNr: auslaufend - durch Reading D-serianNr ersetzt&lt;br /&gt;
* firmware: auslaufend - durch Reading D-firmware ersetzt&lt;br /&gt;
&lt;br /&gt;
Attribute für HM Entities, die der User steuern kann&lt;br /&gt;
* webCmd: FHEM setzt ggf. einen Default, der User kann dies anpassen&lt;br /&gt;
* expert: schaltet mehr oder weniger Readings sichtbar - dient der Übersichtlichkeit des Web-Interface. &lt;br /&gt;
* autoReadReg: steuert das automatische Lesen der Konfiguration - ggf. zeitverzögert um Resourcen zu schonen. Es wird Level 5 empfohlen&lt;br /&gt;
&lt;br /&gt;
Attribute für HM Entities am Device, die der User steuern kann&lt;br /&gt;
* msgRepeat: kann man im Device einstellen. Es legt fest wir oft eine Nachricht wiederholt werden soll, falls sie nicht empfangen wird. Beachte, dass unabhängig davon ein HMLAN/USB immer 3-mal probiert zu senden. Insbesondere bei Burst Devices sollte man einen niedrigen level einstellen.&lt;br /&gt;
* IODev: Sollte man auf das IO device setzen, über das zu diesem Device gesendet werden soll. Es wird i.a. beim Pairen gesetzt. &lt;br /&gt;
&lt;br /&gt;
Empfohlene Attribute außerhalb von HM&lt;br /&gt;
* event-on-change-reading .*&lt;br /&gt;
&lt;br /&gt;
===Kommandos===&lt;br /&gt;
====Allgemein====&lt;br /&gt;
* get &amp;lt;name&amp;gt; cmdList &#039;&#039;# zeigt alle Kommandos mit Parametern für diese Entity an&#039;&#039;&lt;br /&gt;
* clear [readings|register|rssi|msgEvents] &#039;&#039;# löschen von Readings oder Zählern&#039;&#039;&lt;br /&gt;
====Register kommandos====&lt;br /&gt;
* set &amp;lt;name&amp;gt; getConfig &#039;&#039;# liest alle Peers und Register. Auf ein Device angewendet werden ALLE channels auch gelesen&#039;&#039;&lt;br /&gt;
* set &amp;lt;name&amp;gt; regSet [prep|exec] &amp;lt;regName&amp;gt; &amp;lt;value&amp;gt; ... [&amp;lt;peerChannel&amp;gt;]&#039;&#039; #schreiben eines Registerwerts. Das Kommando landet im Kommandstack&#039;&#039;&lt;br /&gt;
* set &amp;lt;name&amp;gt; regbulk ...&#039;&#039;# kommando zum setzen von rohdaten und ganzen Registerlisten. Ausser zum re-configurieren eines ganzen Device eher nicht für den User zu gebrauchen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; sign [on|off &#039;&#039;# setzt das Register um AES einzuschalten. Man sollte sich über AES &#039;&#039;&#039;vorher&#039;&#039;&#039; einlesen!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* get &amp;lt;name&amp;gt; regList &#039;&#039;# zeigt alle Register, die diese Entity &#039;&#039;&#039;unterstützt&#039;&#039;&#039; - incl Beschreibung und Wertebereich. Als Anfänger sollte man einmal hinsehen!&#039;&#039;&lt;br /&gt;
* get &amp;lt;name&amp;gt; reg all &#039;&#039;# zeigt alle Register, die diese Entity &#039;&#039;&#039;hat&#039;&#039;&#039; und den aktuellen Wert&#039;&#039;&lt;br /&gt;
===Kommunikation===&lt;br /&gt;
Die Kommunikation zwischen Device und der Zentrale folgt einem Protokoll. Für die meisten Nachrichten erwartet der Sender eine Empfangsbestätigung. FHEM beachtet das Protokoll und implementiert es entsprechend der Fähigkeiten des IO device.&amp;lt;br&amp;gt;&lt;br /&gt;
Grundsätzlich kann jedes Device an jedes andere Nachrichten senden. Damit dies auch einen erfolg hat, müssen die Kanäle gepeert werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Um FHEM zu erlauben, Nachrichten an das Device zu richten muss FHEM gepairt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Senden der Nachrichten macht IMMER das Device - ein Kanal selbst kann nicht wirklich senden. &lt;br /&gt;
====Protokoll====&lt;br /&gt;
Da für das Senden das Device verantwortlich ist sind hier die entsprechenden Informationen zu finden. Zu Beachten sind die &amp;lt;u&amp;gt;[[HomeMatic#Device|Übertragungsmodi]]&amp;lt;/u&amp;gt;, die ein Device unterstützt.  Die Internals &amp;quot;prot...&amp;quot; enthalten alle notwendigen Daten. &lt;br /&gt;
* protState: Der Zustand der Protokollmaschine&lt;br /&gt;
** CMDs_done: alle Nachrichten übertragen, keine Fehler in diesem Durchgang aufgetreten&lt;br /&gt;
** CMDs_done_Error:xx : es hat xx Fehler bei der letzten Übertragung gegeben. &lt;br /&gt;
** CMDs_pending: Nachrichten warten auf das Senden&lt;br /&gt;
** CMDs_processing... : die Nachrichtenübertragung ist im Gange&lt;br /&gt;
** Info_Cleared: die Protokoll Statistik wurde rückgesetzt&lt;br /&gt;
* protCmdPend: Anzahl der Nachrichten, die auf das Senden warten&lt;br /&gt;
* protCmdDel: Anzahl gelöschter Nachrichten aufgrund von Fehlern&lt;br /&gt;
* protCmdNack: Anzahl der negativen Acknowledges&lt;br /&gt;
* protCmdResnd: Anzahl der Wiederholungen - die Nachrichten wurden nicht gelöscht. &lt;br /&gt;
* protCmdResndFail: Anzahl der fehlgeschlagenen Wiederholungen - die Nachrichten wurden gelöscht. &lt;br /&gt;
* protCmdIOerr: Anzahl der IO Fehler - Übertragung war nicht Möglich, weil das IO Device Probleme hatte. Der Grund sollte im IO Device nachgesehen werden. &lt;br /&gt;
* protCmdIOdly: Anzahl der Verzögerungen aufgrund von IO Problemen&lt;br /&gt;
* protCmdTimedOn: Anzahl der Nachrichten, wenn ein Timer im Device genutzt wird - z.B. durch on-for-timer&lt;br /&gt;
* protCmdRcv: Anzahl empfangene Nachrichten&lt;br /&gt;
* protCmdSnd: Anzahl gesendete Nachrichten&lt;br /&gt;
* protCmdErrIoId_...: Anzahl der Sendeversuche zum Device von einer anderen Zentrale&lt;br /&gt;
* protCmdErrIoAttack: Anzahl der Sendeversuche zum Device die nicht von FHEM kam- es könnte ein Versuch sein, das System zu hacken. Dies wird auch im Reading &#039;&#039;&#039;sabotageAttack&#039;&#039;&#039; ausgegeben und man kann ein notify darauf ansetzen. &lt;br /&gt;
&lt;br /&gt;
* protCmdEvt_AESCom: Anzahl der AES Nachrichten von Device&lt;br /&gt;
* protCmdEvt_AESKey: Benutzter AES key&lt;br /&gt;
&lt;br /&gt;
Die Zähler können mit &#039;&#039;&#039;set &amp;lt;device&amp;gt; clear msgEvents&#039;&#039;&#039; rückgesetzt werden. Dies kann vor Konfigurationsänderungen Sinn machen, um Probleme besser erkennen zu können. &amp;lt;br&amp;gt;&lt;br /&gt;
Eine Übersicht kann man mit HMInfo &amp;lt;u&amp;gt;[[Homematic_HMInfo#protoEvents|protoEvents]]&amp;lt;/u&amp;gt; erhalten. Auch das Löschen aller Zähler ist von HMInfo aus möglich.&lt;br /&gt;
&lt;br /&gt;
====Rssi====&lt;br /&gt;
Zeigt den Empfangspegel, den ein Device von einem Anderen misst. Die Variablen sind in Internals abgelegt. Angegeben werden minimale und maximale Wert. Außerdem wird der Durchschnitt und die Anzahl der Nachrichten ausgewertet.&amp;lt;br&amp;gt;&lt;br /&gt;
HM liefert Empfangspegel am IO Device (FHEM standard) aber auch den Empfangspegel am Device selbst. Ebenfalls ausgewertet werden Pegel, die beim Senden zwischen Peers erreicht werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Zähler können mit &#039;&#039;&#039;set &amp;lt;device&amp;gt; clear rssi&#039;&#039;&#039; rückgesetzt werden.&amp;lt;br&amp;gt; &lt;br /&gt;
Eine Übersicht erhält man mit HMInfo &amp;lt;u&amp;gt;[[Homematic_HMInfo#RSSI|Rssi]]&amp;lt;/u&amp;gt;. Das Löschen der Zähler aller HM devices ist von HMInfo aus möglich.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Man kann RSSI kontinuierlich aufzeichnen, wenn das Attribut &#039;&#039;&#039;rssiLog&#039;&#039;&#039; im Device gesetzt ist. Es wird ein Reading rssi_&amp;lt;name&amp;gt; erzeugt. Das generelle setzen dieses Attributs wird aus Performance-gründen nicht empfohlen.&lt;br /&gt;
&lt;br /&gt;
== Pairen und Peeren ==&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Pairing und Peering]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HomeMatic-Geräte können mit einer Zentrale (Fhem) &#039;&#039;gepairt&#039;&#039; und mit anderen HM-Geräten &#039;&#039;gepeert&#039;&#039; werden.&lt;br /&gt;
&lt;br /&gt;
=== Pairen ===&lt;br /&gt;
: &#039;&#039;→ Hauptartikel: [[HomeMatic Devices pairen]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HM-Geräte können mit und ohne Zentrale betrieben werden. Fhem geht davon aus, dass Geräte immer von einer Zentrale aus gesteuert werden können. Dazu muss das Gerät mit der Zentrale &#039;&#039;gepairt&#039;&#039; werden. &lt;br /&gt;
&lt;br /&gt;
=== Peeren ===&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Homematic Peering Beispiele]]&lt;br /&gt;
&lt;br /&gt;
Um es Geräten zu ermöglichen auch ohne Zentrale zu interagieren (zum Beispiel wenn die Zentrale einen Defekt hat), können HM-Geräte untereinander &#039;&#039;gepeert&#039;&#039; werden.&lt;br /&gt;
Dazu wird ein Sensor-Kanal mit einem Aktor-Kanal verknüpft.&lt;br /&gt;
&lt;br /&gt;
== HMInfo ==&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Homematic HMInfo]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bei der Betreuung einer HomeMatic-Installation ist das Modul [[Homematic_HMInfo|HMInfo]] sehr hilfreich. Es stellt eine Übersicht der HomeMatic-Komponenten zur Verfügung, kann die Konfiguration prüfen und Alarmierungen gesammelt auswerten.&lt;br /&gt;
&lt;br /&gt;
== Besondere Entites ==&lt;br /&gt;
&lt;br /&gt;
=== Virtuelle Entities ===&lt;br /&gt;
Virtuelle Entities sind nicht reale HM Devices und Kanäle. Man kann sie als Sender und Empfänger nutzen, auch im Zusammenhang mit Rauchmeldern oder zur Steuerung von Heizungsventilen. Die spezifischen Anwendungen sind im entsprechenden Kapitel nachzulesen. &amp;lt;br&amp;gt;&lt;br /&gt;
Angelegt wird das Device, dann wird per Kommando eine Anzahl Kanäle angelegt. &lt;br /&gt;
  define &amp;lt;virtDev&amp;gt; CUL_HM 112233&lt;br /&gt;
  set &amp;lt;virtDev&amp;gt; virtual 10&lt;br /&gt;
jetzt hat man ein virtuelles Device mit 10 Kanälen angelegt. &lt;br /&gt;
Die die gültigen Kommandos kann man wie immer mit &#039;&#039;&#039;get &amp;lt;entity&amp;gt; cmdList&#039;&#039;&#039; erfahren.&amp;lt;br&amp;gt;&lt;br /&gt;
Auch einem Virtuellen Device sollte man das &#039;&#039;&#039;Attribut IODev setzen &#039;&#039;&#039;.&lt;br /&gt;
=== IO Entities ===&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[Virtueller Controller VCCU#Virtuelle Kanäle der VCCU]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IO-Entities&#039;&#039;&#039; sind virtuelle Kanäle der Zentrale, mit denen andere HomeMatic-Geräte gepeert werden können. Diese Kanäle sind einem &#039;&#039;IO-Device&#039;&#039; zugeordnet – im Unterschied zu &#039;&#039;virtuellen Entities&#039;&#039; gibt es kein virtuelles Homematic-Gerät welches die Kanäle beherbergt.&lt;br /&gt;
&lt;br /&gt;
Jedem IO-Device können bis zu 50 Kanäle zugewiesen werden. Wenn mehrere IO-Devices die gleiche HMId nutzen, zum Beispiel wenn ein [[Virtueller Controller VCCU|virtueller Controller]] verwendet wird, teilen sich diese IO-Devices die Kanäle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anlegen:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 # IO-Device definieren&lt;br /&gt;
 define &amp;lt;IO-Device&amp;gt; CUL_HM c0ffee&lt;br /&gt;
 attr &amp;lt;IO-Device&amp;gt; model CCU-FHEM&lt;br /&gt;
 &lt;br /&gt;
 # 4 IO-Entities definieren&lt;br /&gt;
 set &amp;lt;IO-Device&amp;gt; virtual 4&lt;br /&gt;
&lt;br /&gt;
Aktuell werden IO-Entities in Fhem nicht dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Action Detector===&lt;br /&gt;
Einige Devices der HM-Geräteserie senden periodisch Nachrichten. Manche alle 3 Minuten, andere alle 3 Tage. Wenn so eine Zeit für einen Device spezifiziert ist wird diese automatisch vom ActionDetector überwacht.&amp;lt;br&amp;gt;&lt;br /&gt;
Meist sind dies batteriebetriebene Geräte. Sollte aus irgendwelchen Gründen der Batteriealarm übersehen werden und das Gerät keine Nachricht mehr senden wird es auf Dead gesetzt.&lt;br /&gt;
Die Kontrollinstanz ist ein Pseudo-Gerät &amp;quot;ActionDetector&amp;quot; mit der HMId &amp;quot;000000&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
* attribut&lt;br /&gt;
** actCycle: gibt an, in welchen Abständen sich das Device melden muss&lt;br /&gt;
** actStatus: gibt den Zustand an&lt;br /&gt;
*** alive: Device hat sich in der erwarteten Zeit min einmal gemeldet&lt;br /&gt;
*** dead: Device hat sich in der erwarteten Zeit nicht gemeldet&lt;br /&gt;
*** unknown: Device hat sich nicht gemeldet, es ist aber seit dem letzten reboot die Zykluszeit noch nicht abgelaufen. &lt;br /&gt;
&lt;br /&gt;
* readings&lt;br /&gt;
** Activity:    entsprechend dem actStatus. &lt;br /&gt;
&lt;br /&gt;
* get&lt;br /&gt;
** listDevice:           Gibt alle Objekte zurück&lt;br /&gt;
** listDevice notActive: Gibt alle Objekte zurück die nicht &amp;quot;alive&amp;quot; sind&lt;br /&gt;
** listDevice alive:     Gibt alle Objekte zurück die &amp;quot;alive&amp;quot; sind&lt;br /&gt;
** listDevice unknown:   Gibt alle Objekte zurück die &amp;quot;unknown&amp;quot; sind&lt;br /&gt;
** listDevice dead:      Gibt alle Objekte zurück die &amp;quot;dead&amp;quot; sind&lt;br /&gt;
&lt;br /&gt;
Durch das Setzen des Attributs im HM device wird der ActionDetector automatisch definiert - nach einem save steht er auch in der fhem.cfg.&lt;br /&gt;
Alternativ ist auch eine manuelle Definition möglich und sollte in etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 define ActionDetector CUL_HM 000000&lt;br /&gt;
 attr ActionDetector actCycle 30&lt;br /&gt;
 attr ActionDetector event-on-change-reading .*&lt;br /&gt;
 attr ActionDetector model ActionDetector&lt;br /&gt;
&lt;br /&gt;
Die HMId &amp;quot;000000&amp;quot; darf nicht geändert werden.&lt;br /&gt;
&lt;br /&gt;
In der Entity actionDetector kann man die Infos gesammelt einsehen.&lt;br /&gt;
Der User kann durch das Setzen des Attributs actCycle jedes Device in diese Liste aufnehmen. Es wird dann geprüft, ob sich das Device in dieser Zeit auch meldet. Der User muss dies aber selbst sicherstellen.&lt;br /&gt;
&lt;br /&gt;
== Tipps / HowTos / Beispiele ==&lt;br /&gt;
&lt;br /&gt;
* [[HomeMatic Devices pairen|HM Devices pairen]] zum &#039;&#039;&#039;Pairen&#039;&#039;&#039; der Geräte untereinander.&lt;br /&gt;
* [[CUL]] (also gleichzeitig)?&lt;br /&gt;
* [[Slider für HM-Rolladensteuerung anzeigen]]&lt;br /&gt;
* Für den &amp;quot;Fall der Fälle&amp;quot;: Erstellen Sie eine Liste aller HM-Geräte mit den Installationsorten, HM-Namen, Fhem-Namen &#039;&#039;&#039;und&#039;&#039;&#039; den Geräte-IDs. Falls Sie sich ihr Fhem einmal zerschießen, wird diese Liste sehr hilfreich sein. Zur Abwicklung von Gewährleistungsansprüchen sind Daten über Kaufdatum und Lieferant (bei größeren Installationen mit Zukauf in zeitlichen Abständen) ebenfalls angebracht.&lt;br /&gt;
&lt;br /&gt;
== Probleme ==&lt;br /&gt;
&lt;br /&gt;
=== Messages Sniffen ===&lt;br /&gt;
Um Probleme besser nachvollziehen zu können, kann man &amp;lt;u&amp;gt;[[Homematic_Nachrichten_sniffen|Nachrichten mitsniffen]]&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Daten können empfangen werden, Befehle werden nicht übertragen ===&lt;br /&gt;
&lt;br /&gt;
Das kann mehrere Ursachen haben:&lt;br /&gt;
* Pairing nicht abgeschlossen (bei den &#039;&#039;Readings&#039;&#039; &amp;quot;PairedTo&amp;quot; bzw. &amp;quot;R-pairCentral&amp;quot; steht der Wert &#039;&#039;&#039;set_&#039;&#039;&#039;0x1A2B3C). Das Pairing ist erst dann erfolgreich abgeschlossen, wenn das &#039;&#039;&#039;set_&#039;&#039;&#039; fehlt, also nur noch (beispielhaft) &amp;quot;0x1A2B3C&amp;quot; steht. Siehe [[HomeMatic_Devices_pairen]]&lt;br /&gt;
* Sender (CUL/HM-LAN) und Empfänger (HM-Device) stehen zu nah (RSSI-Werte bei ~ &amp;quot;-17&amp;quot;) beieinander&lt;br /&gt;
* Sender (CUL/HM-LAN) und Empfänger (HM-Device) stehen zu weit (RSSI-Werte bei unter ~ &amp;quot;-80&amp;quot;) voneinander entfernt&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Notifys und anderes funktionieren nach einem Fhem-Neustart nicht mehr oder nicht mehr zeitnah ===&lt;br /&gt;
&lt;br /&gt;
Obwohl HomeMatic wegen der höhren Datenübertragungsrate wesentlich weniger von der [[1% Regel]] betroffen ist als z.b. FS20 oder FHT, so kann es dennoch zu Funkkontingentüberschreitungen kommen.&lt;br /&gt;
&lt;br /&gt;
Insbesondere ist bei FHEM Versionen ab Oktober 2013 das Attribut &#039;&#039;autoReadReg&#039;&#039; auf &amp;quot;4_reqStatus&amp;quot; gesetzt. Damit wird für jedes HM-Device mit diesem so gesetzten Attribut beim Fhem-Start ein &#039;&#039;getConfig&#039;&#039; durchgeführt, was viel Funkverkehr erfordert.&lt;br /&gt;
&lt;br /&gt;
Je nach Anzahl der Geräte kann dazu führen, dass insgesamt zu viel Funklast erzeugt wird, im Logfile erscheint dann eine Meldung wie:&lt;br /&gt;
&lt;br /&gt;
 2013.10.03 13:41:18 2: HMLAN_Parse: HMLAN1 new condition ERROR-Overload&lt;br /&gt;
&lt;br /&gt;
Ab diesem Moment werden eben auch keine anderen Befehle mehr an weitere HM-Geräte geschickt, da das Funkkontigent aufgebraucht ist. Erst nach einer Stunde kann erneut gesendet werden. Als &#039;&#039;&#039;Notbehelf&#039;&#039;&#039; kann die Funkschnittstelle resetted oder  ([[HMLAN Konfigurator]]) kurz stromlos gemacht werden. Dann wird der Zähler wieder auf Null gesetzt.&lt;br /&gt;
&lt;br /&gt;
Alternativ können so viele HM-Geräte wie möglich auf &#039;&#039;autoReadReg 0_off&#039;&#039; gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[1% Regel]]&lt;br /&gt;
&lt;br /&gt;
=== Spannungsversorgung ===&lt;br /&gt;
Die Batterielebensdauer der HomaMatic Komponenten ist durchwachsen. Besonders die mitgelieferten Batterien sind mitunter schon nach wenigen Wochen leer, trotzdem werden öfters keine &#039;&#039;battery low&#039;&#039; Meldung erzeugt. Bei Störung des Funkverkehrs (z.b. blinkendes Antennensymbol im HM-CC-TC und kurzes piepen zur vollen Stunde von morgens bis abends, fehlende ACK Meldungen, nicht auslösende IR-Bewegungssensoren und ähnliches) sollte also immer auch eine schlechte Spannungsversorgung in Betracht gezogen werden.&lt;br /&gt;
&lt;br /&gt;
Gute neue Batterien halten jedoch i.d.R. 12 Monate und mehr, auch Lebensdauern über 2 Jahre sind bei einigen Geräten (Tür/Fensterkontakte, Sender, Retroanzeige,  IR-Bewegungsmelder) keine Seltenheit.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.homematic.com/ HomeMatic] Homepage&lt;br /&gt;
* Hersteller [http://www.eq-3.de eQ-3] &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Glossary]]&lt;/div&gt;</summary>
		<author><name>Cori</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HM-LC-Dim1PWM-CV_Dimmaktor_PWM_DC-LED&amp;diff=14445</id>
		<title>HM-LC-Dim1PWM-CV Dimmaktor PWM DC-LED</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HM-LC-Dim1PWM-CV_Dimmaktor_PWM_DC-LED&amp;diff=14445"/>
		<updated>2016-03-03T01:11:27Z</updated>

		<summary type="html">&lt;p&gt;Cori: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;HM-LC-Dim1PWM-CV Dimmaktor PWM DC-LED&#039;&#039;&#039;&lt;br /&gt;
= Features =&lt;br /&gt;
&lt;br /&gt;
Dimmaktor für LED-Leuchtmittel (z.B. LED-Leisten oder Flex-Stripes &#039;&#039;&#039;ohne Vorschaltgerät&#039;&#039;&#039;), deren Betriebsspannung 12 oder 24 V beträgt. Geeignet / vorgesehen für die Zwischendeckenmontage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technische Daten:&#039;&#039;&#039;&lt;br /&gt;
* Spannungsversorgung: 12 - 24 V (DC)&lt;br /&gt;
* Stromaufnahme (ohne Last): ~ 45 mA&lt;br /&gt;
* Anschlussleistung: max. 60 VA (5 A bei 12 V, 2,5 A bei 24 V)&lt;br /&gt;
* Lastbereich: 0 - 60 VA&lt;br /&gt;
* Geräteschutz: Überlast- und Temperatursicherung&lt;br /&gt;
* Maße(B x H x T): 40 x 32 x 164 mm&lt;br /&gt;
&lt;br /&gt;
= Hinweise zur Hardware-Installation =&lt;br /&gt;
&lt;br /&gt;
Der Dimmaktor benötigt eingangsseitig eine Gleichspannung von 12 oder 24 V.&lt;br /&gt;
&lt;br /&gt;
= Hinweise zum Betrieb mit FHEM =&lt;br /&gt;
&lt;br /&gt;
Das Pairen mit FHEM wird in [[HomeMatic Devices pairen|dieser Anleitung]] erläutert.&lt;br /&gt;
&lt;br /&gt;
== Besonderheiten ==&lt;br /&gt;
&lt;br /&gt;
Siehe [[HomeMatic#Besonderheiten|hier]]&lt;br /&gt;
&lt;br /&gt;
== virtuelle Kanäle ==&lt;br /&gt;
Per autocreate wird das Device und 3 Kanäle angelegt. Diese sind virtuelle Kanäle und ergeben je nach Konfiguration zusammen das physische Level des Aktors. &amp;lt;br /&amp;gt;&lt;br /&gt;
Ein Anwendungsbeispiel dazu weiter unten.&lt;br /&gt;
Siehe [[HomeMatic#virtuelle Kanäle]]&lt;br /&gt;
&lt;br /&gt;
== FHEM Config-Auszug ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define WZ.LEDdimmer CUL_HM 1D06D2&lt;br /&gt;
attr WZ.LEDdimmer .devInfo 410100&lt;br /&gt;
attr WZ.LEDdimmer .stc 20&lt;br /&gt;
attr WZ.LEDdimmer firmware 2.2&lt;br /&gt;
attr WZ.LEDdimmer model HM-LC-Dim1PWM-CV&lt;br /&gt;
attr WZ.LEDdimmer peerIDs &lt;br /&gt;
attr WZ.LEDdimmer room CUL_HM&lt;br /&gt;
attr WZ.LEDdimmer serialNr JEQ1567425&lt;br /&gt;
attr WZ.LEDdimmer subType dimmer&lt;br /&gt;
attr WZ.LEDdimmer webCmd toggle:on:off:statusRequest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mögliche DIM-Operationen ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;bitte einfügen / erläutern&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FHEM-Log-Auszug ==&lt;br /&gt;
&lt;br /&gt;
Bei attr global verbose 5 erscheint folgendes in der FHEM-Log-Datei (incl. Pair-Vorgang):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 3: CUL_HM Unknown device CUL_HM_HM_LC_Dim1PWM_CV_1D06D2, please define it&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 5: Triggering global (1 changes)&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 5: Notify loop for global UNDEFINED CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 CUL_HM 1D06D2 A1A0384001D06D20000002200674A45513033373931383020410100&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 2: autocreate: define CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 CUL_HM 1D06D2 A1A0384001D06D20000002200674A45513033373931383020410100&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 3: CUL_HM pair: CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 dimmer, model HM-LC-Dim1PWM-CV serialNr JEQ1567425&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 5: Triggering CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 (1 changes)&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 5: Notify loop for CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 R-pairCentral: set_0x123456&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 5: HMLAN_Send:  +1D06D2,00,00,&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 5: HMLAN_Send:  SE334EDD2,00,00000000,01,E334EDD2,AEA0011234561D06D200050000000000&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 5: Triggering global (2 changes)&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; 2: autocreate: define FileLog_CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 FileLog /opt/fhem/log/CUL_HM_HM_LC_Dim1PWM_CV_1D06D2-%Y-%m.log CUL_HM_HM_LC_Dim1PWM_CV_1D06D2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Event monitor ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; CUL_HM CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 R-pairCentral: set_0x123456&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; Global global UNDEFINED CUL_HM_HM_LC_Dim1PWM_CV_1D06D2 CUL_HM 1D06D2 A1A0384001D06D20000002200674A45513033373931383020410100&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; Global global DEFINED CUL_HM_HM_LC_Dim1PWM_CV_1D06D2&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; Global global DEFINED FileLog_CUL_HM_HM_LC_Dim1PWM_CV_1D06D2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Device-Log ==&lt;br /&gt;
&lt;br /&gt;
Nach einem rename auf einen &amp;quot;verständlichen&amp;quot; Namen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer deviceMsg: 99.5 % (to HMLAN1)&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer dim: down:99.5 %&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer overload: off&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer overheat: off&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer reduced: off&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer 99.5 %&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer deviceMsg: off (to HMLAN1)&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer dim: stop:off&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer off&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer set_toggle&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer deviceMsg: on (to HMLAN1)&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer dim: stop:on&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer on&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer set_off&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer set_100&lt;br /&gt;
&amp;lt;Datum&amp;gt;_&amp;lt;Zeit&amp;gt; WZ.LEDdimmer set_0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Beispiele =&lt;br /&gt;
== Eingangslicht/Treppenhauslicht mit Bewegungsmelder ==&lt;br /&gt;
Dank der 3 virt. Kanäle kann man den Dimmer mit Bewegungsmeldern und Schaltern koppeln ohne das der Wert des anderen überschrieben wird, wenn diese unterschiedlichen Kanälen zugeordnet sind. Z.B. wird das Licht nicht vollständig ausgehen, wenn per Taster (das z.B. 100%-ige Licht) ausgeschaltet wird, der vom Bewegungsmelder gesetzte Timer (z.B. nur mit 50%) aber noch nicht abgelaufen ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ein Beispiel für die Verknüpfung aus dämmerungsgesteuerter Helligkeit, Bewegungsmelder und Taster wäre:&lt;br /&gt;
 phyLevel = (((0% or Ch1) mul Ch2) plus Ch3)&lt;br /&gt;
* Ch1: Dämmerungskanal (or)&lt;br /&gt;
*: wird per FHEM bei einbrechender Dämmerung eingeschaltet und per &amp;lt;code&amp;gt;set &#039;&#039;Ch1&#039;&#039; 25 0 3600&amp;lt;/code&amp;gt; innerhalb einer Stunde auf 25% gedimmt&lt;br /&gt;
*: bei beginnendem Sonnenaufgang reicht dann ein &amp;lt;code&amp;gt;set &#039;&#039;Ch1&#039;&#039; 100 300 3600&amp;lt;/code&amp;gt; um innerhalb einer Stunde auf 100% hoch zu dimmen und nach weiteren 5 min automatisch aus zu gehen&lt;br /&gt;
*:: Die 3600Sek sind nur beispielhaft. Ich verwende eine berechnete Zeitspanne bis &amp;lt;code&amp;gt;sunset(&#039;horizon=-12&#039;)&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;sunrise(&#039;horizon=0&#039;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Ch2: Bewegungskanal (mul)&lt;br /&gt;
*: Bei erneuten Triggern sollte der Dimmer stets bei on gehalten bzw. wieder dahin versetzt werden. Außerdem ist es angebracht ein dezentes Flackern kurz vor dem Ausschalten (DlyOff) einzubauen und man kann die Ramp-Zeiten ruhig etwas verlängern. &amp;lt;br /&amp;gt;&lt;br /&gt;
*: Durch die Verknüpfung per Multiplikation wird das Vorwarnen (Flackern) auch über den Ch1 weitergegeben, was bei einer Und-Verknüpfung nicht erfolgen würde.&amp;lt;br /&amp;gt;&lt;br /&gt;
*: Für den Peer werden daher folgende Register gesetzt: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
shActionTypeDim = jmpToTarget&lt;br /&gt;
shDimJtDlyOff = on&lt;br /&gt;
shDimJtDlyOn = rampOn&lt;br /&gt;
shDimJtOff = dlyOn&lt;br /&gt;
shDimJtOn = on&lt;br /&gt;
shDimJtRampOff = rampOn&lt;br /&gt;
shDimJtRampOn = on&lt;br /&gt;
shOffDly = 15 s&lt;br /&gt;
shOffDlyBlink = on&lt;br /&gt;
shOffDlyNewTime = 0.6 s&lt;br /&gt;
shOffDlyOldTime = 9.4 s&lt;br /&gt;
shOffDlyStep = 20 %&lt;br /&gt;
shOnTime = 90 s&lt;br /&gt;
shRampOffTime = 2.5 s&lt;br /&gt;
shRampOnTime = 2.5 s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Ch3: Tasterkanal (plus)&lt;br /&gt;
*: Nur die Verknüpfung per Addition weicht von der Standardeinstellung ab. Somit kann die Helligkeit beim Hochdimmen per langem Tastendruck sofort erhöht werden. Bei der Oder-Verknüpfung erhält man erst eine Helligkeitserhöhung, wenn Ch3 die Kombination aus Ch1&amp;amp;2 übersteigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
&lt;br /&gt;
Anleitung: [http://www.eq-3.de/Downloads/eq3/pdf_produkte/HM-LC-Dim1PWM-CV_UM_GE_eQ-3_110922.pdf PDF]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Dimmer]]&lt;/div&gt;</summary>
		<author><name>Cori</name></author>
	</entry>
</feed>