<?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=PeMue</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=PeMue"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/PeMue"/>
	<updated>2026-04-10T21:06:10Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&amp;diff=37156</id>
		<title>LaCrosseGateway V1.x</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&amp;diff=37156"/>
		<updated>2022-01-26T08:58:56Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Baudrate hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Wiki-Seite beschreibt ausschließlich das LaCrosseGateway V1.x, das auf dem ESP8266 basiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für das LaCrosseGateway32 [https://forum.fhem.de/index.php?topic=70338.0] das auf dem ESP32 basiert, wird es eine eigene Seite geben.{{Randnotiz|RNText=Dokumentationsstand Version 1.27}}&lt;br /&gt;
&lt;br /&gt;
Das LaCrosseGateway (hier und im Forum auch mit LGW abgekürzt) erfüllt den gleichen Zweck wie ein [[JeeLink|JeeLink USB-Stick]] und zwar das Empfangen, Abfragen und Steuern von funkbasierten LaCrosse Sensoren und Aktoren, die im 868 MHz FSK Sendeverfahren arbeiten (OOK-Sendeverfahren (433 MHz) wird nicht unterstützt). Die Verarbeitung der Daten und Steuerung der Aktoren erfolgt mithilfe von FHEM, das als zentrale Steuereinheit dient. &lt;br /&gt;
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). &lt;br /&gt;
Das Herzstück des LaCrosse-Gateways besteht aus einem ESP8266-12E/F. Das LaCrosseGateway ist aufgrund des hohen Stromverbrauchs nicht für den Akkubetrieb geeignet.&lt;br /&gt;
&lt;br /&gt;
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:&lt;br /&gt;
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich&lt;br /&gt;
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig&lt;br /&gt;
*Alternativ am USB-Port wie ein JeeLink verwendbar&lt;br /&gt;
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Anbindung in FHEM kann zwar noch mit dem JeeLink-Modul erfolgen, aber es ist sinnvoll, auf das LaCrosseGateway-Modul (36_LaCrosseGateway.pm) umzustellen, da dieses eine bessere Unterstützung für die Funktionen des LGW bietet.&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Bauteile==&lt;br /&gt;
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:&lt;br /&gt;
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].&amp;lt;br /&amp;gt;Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.&amp;lt;br /&amp;gt;Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an einen [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]] angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. &lt;br /&gt;
*[Option 2] [https://raw.githubusercontent.com/nodemcu/nodemcu-devkit-v1.0/master/Documents/NodeMCU_DEVKIT_1.0.jpg NodeMCU DEVKIT 1.0 (oder 2.0)]ist die Inbetriebnahme einfacher, da alles für das Aufbringen der Firmware bereits vorhanden ist und kein Löten nötig ist.&amp;lt;br /&amp;gt;{{Link2Forum|Topic=45594|Message=430183|LinkText=Hinweis:}} Folgende Devkits werden nicht &amp;quot;offiziell&amp;quot; unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:&lt;br /&gt;
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)&lt;br /&gt;
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht &amp;quot;Lolin&amp;quot;.&lt;br /&gt;
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)&lt;br /&gt;
*[Option 3] Alternativ zu einem DEVKIT 1.0 kann auch ein [http://www.wemos.cc/Products/d1_mini.html &amp;quot;WeMOS D1 mini&amp;quot;] eingesetzt werden. Vorteil bei diesem Kit ist die kleine Bauform bei gleichem Funktionsumfang wie das DEVKIT 1.0.&lt;br /&gt;
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.&lt;br /&gt;
**&#039;&#039;Hinweis:&#039;&#039; Der ESP-07 hat einen 25Q80 1M flash Chip. Dieser ist für den Betrieb mit der LaCrosseGateway Firmware geeignet, für ein OTA-Update ist es jedoch zu wenig. Aus diesem Grund muss/kann dieser auf 4M flash umgebaut werden. Weitere Informationen und Details zum Umbau sind im {{Link2Forum|Topic=45594|Message=448307|LinkText=Forenthread (Gehäuse-Variante)}} beschrieben.&lt;br /&gt;
*[Optional] RFM69CW - Für das Senden und Empfangen funkbasierter LaCrosse Aktoren und Sensoren&lt;br /&gt;
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])&lt;br /&gt;
*[Optional] SC16IS750 Zur Bereitstellung der seriellen Schnittstelle, da die GPIOs (GPIO1 / GPIO3) DEVKIT&#039;s V1.0 von FTDI verwendet werden und damit nicht genutzt werden können.&lt;br /&gt;
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)&lt;br /&gt;
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)&lt;br /&gt;
*[Optional] Nextion Touch Display zur Darstellung von verschiedenen Informationen oder zum Schalten von Aktoren. &lt;br /&gt;
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.) / [[#Platine|PeMue Platine]]&lt;br /&gt;
&lt;br /&gt;
==Schaltung==&lt;br /&gt;
===Variante: DEVKIT 1.0 Minimum===&lt;br /&gt;
[[Datei:lgw_Schaltplan_Devkit_minimum.png|400px|thumb|left|Variante: DEVKIT 1.0]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Variante: DEVKIT 1.0 Maximalausbau===&lt;br /&gt;
[[Datei:lgw_Schaltplan_Devkit_full.png|400px|thumb|left|Variante: FTDI]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Variante: Platine (PeMue)===&lt;br /&gt;
siehe hier: {{Link2Forum|Topic=45594|LinkText=Thread}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].&lt;br /&gt;
&lt;br /&gt;
===MCP23008=== &lt;br /&gt;
I2C Adresse 0x27 -&amp;gt; A0,A1,A2 = 3.3V&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;             &lt;br /&gt;
               |-------\/-------|&lt;br /&gt;
    LGW D1     |1 SCL     VDD 18|  LGW 3.3V &lt;br /&gt;
    LGW D2     |2 SDA     GP7 17|  PB7   --/ --- GND  or Output&lt;br /&gt;
    LGW 3.3V   |3 A2      GP6 16|  PB6   --/ --- GND  or Output&lt;br /&gt;
    LGW 3.3V   |4 A1      GP5 15|  PB5   --/ --- GND  or Output&lt;br /&gt;
    LGW 3.3V   |5 A0      GP4 14|  PB4   --/ --- GND  or Output&lt;br /&gt;
    LGW 3.3V   |6 RES     GP3 13|  PB3   --/ --- GND  or Output&lt;br /&gt;
               |7 NC      GP2 12|  PB2   --/ --- GND  or Output&lt;br /&gt;
               |8 INT     GP1 11|  PB1   --/ --- GND  or Output&lt;br /&gt;
    LGW GND    |9 VSS     GP0 10|  PB0   --/ --- GND  or Output&lt;br /&gt;
               |----------------|&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Nextion Display===&lt;br /&gt;
Angeschlossen wird das Display wie folgt:&lt;br /&gt;
GPIO0: TXD -&amp;gt; Nextion RXD&lt;br /&gt;
GPIO2: RXD -&amp;gt; Nextion TXD&lt;br /&gt;
&lt;br /&gt;
Das Display benötigt eine 5V Spannungsversorgung, diese kann vom VIN des DEVKIT&#039;s abgegriffen werden. Vom Betrieb mit 3.3V wird abgeraten.&lt;br /&gt;
Ein level shifter für RXD/TXD ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
==Aufbau auf einem Steckbrett==&lt;br /&gt;
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Platine==&lt;br /&gt;
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).&lt;br /&gt;
&lt;br /&gt;
===Oberseite===&lt;br /&gt;
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Unterseite===&lt;br /&gt;
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DEVKIT 1.0 bestückt Oberseite===&lt;br /&gt;
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DEVKIT 1.0 bestückt Unterseite===&lt;br /&gt;
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ESP8266-12E bestückt Oberseite===&lt;br /&gt;
{| class=&amp;quot;galleryTable noFloat&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]&lt;br /&gt;
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]&lt;br /&gt;
| [[Datei:lgw_Platine_ESP-12E_oberseite_2_inkl_GE.jpg.jpg|325px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 inkl. Gehäuse]]&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Die Platine (Bild (1)) ist mit einem LM75 Sensor bestückt. Diese Bestückung macht zusammen mit einem BME280 keinen Sinn, es handelt sich hierbei um eine Entwicklungsplatine.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===ESP8266-12E bestückt Unterseite===&lt;br /&gt;
{| class=&amp;quot;galleryTable noFloat&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]&lt;br /&gt;
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Platine bestücken (Hinweise und Tipps)===&lt;br /&gt;
*Auf der Platine (Version 1.0) ist für das RFM69CW-Modul eine Markierung (zwei Quadrate) aufgedruckt, die den Chip und den Quarz symbolisieren. Wenn man den RFM69CW so drauflötet, wie abgebildet, ist er falsch rum drauf.&amp;lt;br /&amp;gt;Es muss darauf geachtet werden, wo auf dem RFM69CW die &amp;quot;Ant&amp;quot; Beschriftung steht, dieser Lötpunkt muss auf die Platine an den Punkt &amp;quot;1&amp;quot; ausgerichtet werden. Zur Sicherheit bitte den [[#Variante: Platine (PeMue)|Schaltplan]] konsultieren und die genaue Position ermitteln.&amp;lt;br&amp;gt;&#039;&#039;&#039;Für die Platine V1.1 wurde das korrigiert.&#039;&#039;&#039;&lt;br /&gt;
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrahtigen Leiter (aus Kupfer) verwenden.&lt;br /&gt;
&lt;br /&gt;
==Erweiterungsmöglichkeiten==&lt;br /&gt;
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.&lt;br /&gt;
&lt;br /&gt;
Folgende Erweiterungen sind möglich:&lt;br /&gt;
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.&lt;br /&gt;
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.&lt;br /&gt;
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.&lt;br /&gt;
*es kann ein aktiver Piezo Summer (Piezo Buzzer) angeschlossen (an GPIO7 des SC16IS750) werden, um von FHEM aus das LaCrosseGateway einen Alarm ausgeben zu lassen. Hinweis: Falls der Strom von 10mA, den die Ausgänge liefern, nicht reicht, ist noch eine Transistor-Schaltstufe vorzusehen.&lt;br /&gt;
&lt;br /&gt;
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.&lt;br /&gt;
&lt;br /&gt;
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.&lt;br /&gt;
Für die Realisierung der o.g. Möglichkeiten wird ein [http://www.aliexpress.com/item/1x-Breakout-Board-for-SC16IS750-I2C-SPI-to-UART-IC/1327351219.html?spm=2114.30010308.3.38.HxdznQ&amp;amp;ws_ab_test=searchweb201556_9,searchweb201602_2_10034_507_10020_10001_10002_10017_10010_10005_10011_10006_10021_10003_10004_10022_10009_10008_10018_10019,searchweb201603_6&amp;amp;btsid=97b30f2b-e937-426b-8202-de585dd7ee97 SC16IS750] verwendet.&lt;br /&gt;
&lt;br /&gt;
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dieser Basis sind momentan folgende Erweiterungen möglich:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===SubProzessor===&lt;br /&gt;
Der SubProzessor dient dazu, dass mit einem eigenen Sketch Daten erfasst werden können, ohne sich um die ganze Nummer, die das LGW macht (WiFi, Kommunikation mit FHEM, Frontend, OTA, ...), kümmern zu müssen.&lt;br /&gt;
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.&lt;br /&gt;
&lt;br /&gt;
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)&lt;br /&gt;
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; Alle LaCrosseGateway Komponenten laufen ausschließlich mit &#039;&#039;&#039;3.3V&#039;&#039;&#039;, aus diesem Grund dürfen keine &#039;&#039;&#039;5V&#039;&#039;&#039; Komponenten angeschlossen werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Firmware flashen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu wird sie auf das LGW hochgeladen (&amp;lt;nowiki&amp;gt;http://&amp;lt;LGW-IP&amp;gt;/ota/addon.hex&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.&lt;br /&gt;
&lt;br /&gt;
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorgehen Firmware flashen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Firmware kann z.B. mithilfe von &amp;quot;curl&amp;quot; mit dem nachfolgenden Befehl hochgeladen werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;curl --http1.0 -H &amp;quot;Content_Type:multipart/form-data&amp;quot; -F &amp;quot;file=@/myFolder/LGW-Addon.ino.hex; filename=addon.hex&amp;quot; http://192.168.31.211/ota/addon.hex&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; filename=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt kommen, das wie folgt aussieht:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;Start receiving &#039;addon.hex&#039;&lt;br /&gt;
File: /addon.hex Size: 21417&lt;br /&gt;
Starting flash&lt;br /&gt;
Sending sync&lt;br /&gt;
Enter program mode&lt;br /&gt;
Binary size is:7608&lt;br /&gt;
Leave Program Mode&lt;br /&gt;
Flash finished&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KeyValueProtokoll (KVP):&#039;&#039;&#039;&lt;br /&gt;
Format:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;KV &amp;lt;Type&amp;gt; &amp;lt;Address&amp;gt; &amp;lt;Key&amp;gt;=&amp;lt;Value&amp;gt;,&amp;lt;Key&amp;gt;=&amp;lt;Value&amp;gt;,&amp;lt;Key&amp;gt;=&amp;lt;Value&amp;gt;, ...&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;KV DHT 01 Temperature=21.5,Humidity=62&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;LaCrosse:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Format:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;LC &amp;lt;Address&amp;gt; T=&amp;lt;Temperature&amp;gt;,H=&amp;lt;Humidity&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;LC 9F T=21.5,H=62&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;LC 9F T=21.5&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.&lt;br /&gt;
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.&lt;br /&gt;
&lt;br /&gt;
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.&lt;br /&gt;
Es bindet den geliebten DHT22 an und sendet ihn als LaCrosse-Sensor (über das LGW) an FHEM und es misst die Spannung und sendet sie zusammen mit der UpTime des SubProzessors als KVP&lt;br /&gt;
&lt;br /&gt;
Der umrandete Bereich [[#Addon Schaltung |Schaltung - &amp;quot;Example&amp;quot;]] &amp;quot;Example&amp;quot; ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Sensoren und Aktoren==&lt;br /&gt;
Alle Sensoren und Aktoren, die auch vom &amp;quot;LaCrosse Arduino&amp;quot; Sketch unterstützt werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
(siehe [[JeeLink#Unterst.C3.BCtzte_Sensoren_und_Aktoren_incl._Wetterstation_WS_1600JeeLink|vom JeeLink unterstützte LaCrosse Sensoren und Aktoren]])&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu LaCrosse werden auch die folgenden Geräte unterstützt:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Bezeichnung !! Datenrate !! Sonstiges !! Funktion !! Hinweise&lt;br /&gt;
|-&lt;br /&gt;
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützt werden bis zu 50 Dosen) || &lt;br /&gt;
|-&lt;br /&gt;
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose || &lt;br /&gt;
|-&lt;br /&gt;
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten || Hinweise DHT22 beachten.&lt;br /&gt;
|-&lt;br /&gt;
| BME280 || || on board || Temperatur, Feuchte und Druck || Falls das verwendete Breakout bereits PullUp-Widerstände für SDA und SCL enthält, sind diese nicht mehr zusätzlich nötig.&lt;br /&gt;
|-&lt;br /&gt;
| BMP180 || || on board || Temperatur und Druck || Falls das verwendete Breakout bereits PullUp-Widerstände für SDA und SCL enthält, sind diese nicht mehr zusätzlich nötig.&lt;br /&gt;
|-&lt;br /&gt;
| LM75 || || on board|| Temperatur || &lt;br /&gt;
|-&lt;br /&gt;
| DHT22 || ||on board|| Temperatur und Feuchte || Kann anstatt RFM69 Radio#3 eingesetzt werden.&lt;br /&gt;
|-&lt;br /&gt;
| SC16IS750 || I2C Adresse: 0x90 ||on board || OI Erweiterung || &lt;br /&gt;
|-&lt;br /&gt;
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||&lt;br /&gt;
|-&lt;br /&gt;
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||&lt;br /&gt;
|-&lt;br /&gt;
| Piezo Summer |||| on board ||Piezo Buzzer||&lt;br /&gt;
|-&lt;br /&gt;
| Nextion Display ||(Max.) 57600 baud || on board ||Touch Display||&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle direkt am LGW anschließbaren Sensoren werden automatisch erkannt, wenn sie vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Sie werden in folgender Reihenfolge verwendet:&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.&lt;br /&gt;
&lt;br /&gt;
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.&lt;br /&gt;
&lt;br /&gt;
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.&lt;br /&gt;
&lt;br /&gt;
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.&lt;br /&gt;
&lt;br /&gt;
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.&lt;br /&gt;
&lt;br /&gt;
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway Release Notes im Forum]&lt;br /&gt;
&lt;br /&gt;
==Funktionsumfang==&lt;br /&gt;
*Access Point für die Konfiguration&lt;br /&gt;
*Konfiguration über WEB-Frontend (Erreichbar per &#039;&#039;&amp;lt;nowiki&amp;gt;http://IP-Adresse oder Hostname/setup&amp;lt;/nowiki&amp;gt;&#039;&#039; auf Port 80 )&lt;br /&gt;
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)&lt;br /&gt;
**Statische IP-Adresse anstatt DHCP&lt;br /&gt;
**Hostname&lt;br /&gt;
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.&lt;br /&gt;
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) &lt;br /&gt;
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])&lt;br /&gt;
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre&lt;br /&gt;
*FHEM Anbindung&lt;br /&gt;
*Log im Web-Frontend&lt;br /&gt;
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)&lt;br /&gt;
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)&lt;br /&gt;
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))&lt;br /&gt;
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)&lt;br /&gt;
*Software Serial Bridge - Stellt die Soft Serial Schnittstelle transparent auf einem TCP Port bereit.&lt;br /&gt;
&lt;br /&gt;
==Sourcecode==&lt;br /&gt;
Der Quellcode des LaCrosse Gateways befindet sich [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip im FHEM SVN Repository (contrib)].&lt;br /&gt;
&lt;br /&gt;
==Firmware Download==&lt;br /&gt;
Die [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] befindet sich im [https://svn.fhem.de/trac/browser/trunk/fhem FHEM SVN Repository] und wird per FHEM Update verteilt. Neue Version der [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum &amp;quot;LaCrosse Gateway&amp;quot;}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.&lt;br /&gt;
&lt;br /&gt;
Nach einem FHEM-Update alternativ auch: &#039;&#039;&amp;lt;FHEM-Installations-Verzeichnis&amp;gt;/FHEM/firmware/JeeLink_LaCrosseGateway.bin&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Firmware aufspielen==&lt;br /&gt;
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.&lt;br /&gt;
&lt;br /&gt;
Das [https://raw.githubusercontent.com/nodemcu/nodemcu-devkit-v1.0/master/Documents/NodeMCU_DEVKIT_1.0.jpg NodeMCU DEVKIT 1.0] hat eine CP2102 UART Bridge implementiert, dafür muss ein CP2102 Treiber installiert sein.&lt;br /&gt;
&lt;br /&gt;
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.&lt;br /&gt;
&lt;br /&gt;
===Windows/Mac/Linux per &amp;quot;esptool&amp;quot;===&lt;br /&gt;
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):&lt;br /&gt;
&lt;br /&gt;
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.&lt;br /&gt;
&lt;br /&gt;
2) Zum Aufspielen der Firmware muss ein Befehl mit der folgenden Syntax ausgeführt werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Port]&#039;&#039;&#039; und &#039;&#039;&#039;[Pfad zur Firmware (bin-File)]&#039;&#039;&#039; müssen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Beispiel (Mac/Linux):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Das esptool ist nicht sonderlich stabil. Es kommt vor, dass es manchmal den Upload nicht startet oder nicht durchbekommt. In diesem Fall hilft es den Vorgang, auch mehrmals, zu wiederholen.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Linux/Debian/Ubuntu &amp;quot;esptool v2.1&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Installieren:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get esptool&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Beispiel mit neuer Syntax bei esptool v2.1:&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; sudo esptool --port /dev/ttyUSB0 write_flash 0x00000 JeeLink_LaCrosseGateway.bin&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows per &amp;quot;nodemcu-flasher&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:&lt;br /&gt;
&lt;br /&gt;
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden&lt;br /&gt;
&lt;br /&gt;
3) FlashTool starten und wie folgt einstellen:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;galleryTable noFloat&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]&lt;br /&gt;
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
4) COM-Port auswählen und den Flashvorgang starten (Button: &#039;&#039;&#039;Flash(F)&#039;&#039;&#039;) ...&lt;br /&gt;
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das &amp;quot;Flashen&amp;quot; initiieren]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Flashen sollte über die serielle Ausgabe (57600 Baud) des ESP der Start und das Öffnen des AccessPoints zu sehen sein.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Funktionsweise==&lt;br /&gt;
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.&lt;br /&gt;
&lt;br /&gt;
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:&lt;br /&gt;
&lt;br /&gt;
Wenn es sich in keinem WLAN anmelden kann, dann öffnet es einen Access Point mit der SSID &amp;quot;LaCrosseGateway_&#039;&#039;&#039;xxxxxx&#039;&#039;&#039;&amp;quot;, wobei &#039;&#039;&#039;xxxxxx&#039;&#039;&#039; die eindeutige Chip-ID des ESP8266 ist.&lt;br /&gt;
&lt;br /&gt;
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.&lt;br /&gt;
Innerhalb dieser 15 Minuten kann man sich mit dem Access Point verbinden. Der Access Point vergibt (per DHCP) IP-Adressen aus dem Netzwerk 192.168.222.0. Anschließend kann über die LaCrosseGateway Konfigurationsseite [http://192.168.222.1/setup http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.&lt;br /&gt;
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.&lt;br /&gt;
Die Konfigurationsseite ist auch im &amp;quot;Normalbetrieb&amp;quot; (ohne Access Point) über die Adresse http://&#039;&#039;seine aktuelle IP-Adresse&#039;&#039;/setup erreichbar.&lt;br /&gt;
&lt;br /&gt;
Wenn sich das LaCrosseGateway an dem konfigurierten WLAN anmelden konnte (es wartet max. 30 Sekunden auf einen connect) und von diesem per DHCP eine IP-Adresse erhalten hat, dann stellt es auf dieser Adresse den Port 81 zur Verfügung, über den in FHEM das LaCrosseGateway Modul senden und empfangen kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Optische Darstellung der Initialisierung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisiert, was gerade passiert:&lt;br /&gt;
*5 schnelle Blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat&lt;br /&gt;
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden&lt;br /&gt;
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden&lt;br /&gt;
&lt;br /&gt;
== LaCrosseGateway einrichten ==&lt;br /&gt;
Für die Ersteinrichtung des LaCrosseGateways werden die SSID und das Passwort des WLAN-Routers benötigt. Ferner wird empfohlen auf dem WLAN-Router bzw. dem DHCP-Server eine IP-Adresse für das LaCrosseGateway zu reservieren. Für die Reservierung wird die MAC-Adresse des LaCrosseGateways benötigt, diese kann über die &amp;quot;Home&amp;quot;-Page des LaCrosseGateways ermittelt, alternativ von dem [[#Windows per &amp;quot;nodemcu-flasher&amp;quot; |NODEMCU Firmware Programmer]] (&#039;&#039;Reiter &amp;quot;Operation -&amp;gt; &amp;quot;STA MAC&amp;quot;&#039;&#039;) entnommen werden. &lt;br /&gt;
&lt;br /&gt;
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;&amp;lt;u&amp;gt;Für die Konfiguration sind folgende Schritte nötig:&amp;lt;/u&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
*Mit dem LaCrosseGateway Access Point &amp;quot;LaCrosseGateway_xxxxxx&amp;quot; verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])&lt;br /&gt;
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway &amp;quot;Setup&amp;quot;-Page] öffnen&lt;br /&gt;
*SSID und das Password eintragen. Man kann zwei SSID/Passwort-Kombinationen mit jeweils einem Timeout konfigurieren. 120 bedeutet z.B. dass das LGW 120 Sekunden lang versucht, die SSID zu erreichen. Falls die erste SSID nach &amp;quot;Timeout&amp;quot; Sekunden nicht erreicht wurde, wird Timeout Sekunden lang versucht, die zweite SSID zu connecten.&lt;br /&gt;
*&#039;&#039;[Empfohlen]&#039;&#039; Das Frontend Passwort festlegen&lt;br /&gt;
*&#039;&#039;[Optional]&#039;&#039; Falls kein DHCP-Server zur Verfügung steht bzw. keine Reservierung erwünscht ist, dann muss die IP-Adresse / Netmask (Optional auch Gateway) eingetragen werden&lt;br /&gt;
*&#039;&#039;[Empfohlen]&#039;&#039; Hostnamen festlegen bzw. anpassen&lt;br /&gt;
*Alle Angaben mit dem Button &amp;quot;save and restart&amp;quot; bestätigen. Dabei werden die vorgenommenen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. &lt;br /&gt;
&lt;br /&gt;
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.&lt;br /&gt;
&lt;br /&gt;
==Firmware aktualisieren==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.&lt;br /&gt;
&lt;br /&gt;
=== Per FHEM (OTA-Update)===&lt;br /&gt;
Voraussetzungen:&lt;br /&gt;
&lt;br /&gt;
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein&lt;br /&gt;
*Es wird kein avrdude benötigt&lt;br /&gt;
*Das Attribut &amp;quot;flashCommand&amp;quot; spielt keine Rolle&lt;br /&gt;
&lt;br /&gt;
Die LaCrosseGateway Firmware kann vom LaCrosseGateway Device (LaCrosseGateway Modul) aus mit &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set myLaCrosseGateway flash&amp;lt;/syntaxhighlight&amp;gt; aktualisiert werden.&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;myLaCrosseGateway&#039;&#039;&#039; muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Das Update dauert ca. 30 Sekunden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Per FHEM (USB)===&lt;br /&gt;
Voraussetzungen:&lt;br /&gt;
Auf dem FHEM-Server muss Python und pyserial installiert sein. Die Installation kann z.B. so erfolgen:&lt;br /&gt;
*apt-get install python&lt;br /&gt;
*wget https://bootstrap.pypa.io/get-pip.py&lt;br /&gt;
*python get-pip.py&lt;br /&gt;
*pip install pyserial&lt;br /&gt;
&lt;br /&gt;
Das Attribut &amp;quot;mode&amp;quot; muss auf USB gesetzt sein: attr myLaCrosseGateway mode USB&lt;br /&gt;
&lt;br /&gt;
Der flash-Vorgang wird gestartet mit: set myLaCrosseGateway flash&lt;br /&gt;
&lt;br /&gt;
=== Per CURL ===&lt;br /&gt;
Voraussetzungen:&lt;br /&gt;
*[https://curl.haxx.se/download.html curl-Tool] installiert &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;curl --http1.0 -# -o ~output.txt -H &amp;quot;Content_Type:multipart/form-data&amp;quot; -F &amp;quot;file=@.\JeeLink_LaCrosseGateway.bin; filename=firmware.bin&amp;quot; http://192.168.31.211/ota/firmware.bin&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Firmwaredateiname (file=)&#039;&#039;&#039; und die &#039;&#039;&#039;IP-Adresse&#039;&#039;&#039; muss entsprechend angepasst werden.&lt;br /&gt;
&lt;br /&gt;
=== Per WEB OTA-Update (deprecated)===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;deprecated&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==LaCrosseGateway Web-Frontend==&lt;br /&gt;
===Status-Wert RSSI===&lt;br /&gt;
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)&lt;br /&gt;
&lt;br /&gt;
===Status-Wert FramesPerMinute===&lt;br /&gt;
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.&lt;br /&gt;
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.&lt;br /&gt;
&lt;br /&gt;
===Status-Wert ReceivedFrames===&lt;br /&gt;
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.&lt;br /&gt;
&lt;br /&gt;
===WiFi &amp;quot;Startup-delay&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Mit diesem Konfigurationsparameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einem Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.&lt;br /&gt;
&lt;br /&gt;
Eine Anpassung kann für den folgenden Fall sinnvoll sein:&lt;br /&gt;
&lt;br /&gt;
Nach einem Stromausfall benötigt ein WiFi Access Point (Router: Fritzbox etc.) in den meisten Fällen länger zum Starten als das LGW. In der default Einstellung führt das dazu, dass der LGW nach dem Starten versucht 30 Sekunden lang eine Verbindung zum AP herzustellen. Wenn keine Verbindung innerhalb dieser Zeit zustande kommt, dann gibt das LGW auf und macht seinen eigenen AP auf. Mit einer entsprechenden Verzögerung (Dauer bis der Router gestartet ist und der WiFi-AP zur Verfügung steht) kann sichergestellt werden, dass der AP gestartet ist und sich das LGW mit dem AP verbinden kann.&lt;br /&gt;
&lt;br /&gt;
===Internal Sensors &amp;quot;Sensor-ID&amp;quot;===&lt;br /&gt;
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. &lt;br /&gt;
Hierbei ist darauf zu achten, dass die LaCrosse-ID nur einmal auf einer FHEM Instanz vorkommen darf. Die ID kann entweder Dezimal (211) oder Hex (0xD3) angegeben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Detailinformationen:&#039;&#039;&#039;&#039;&#039; Wenn ein LGW interne Sensoren hat (BME280, BMP180, DHT22, ...) dann sendet es die Daten des Sensors so, als ob es eine Wetterstation wäre (WS 1600 Format) an das LGW. Bisher hat es dafür die Sensor-ID 0 verwendet. Wenn man mehrere LGWs an einem FHEM angebunden hat, dann mischen sich deren Sensor-Daten auf dem LaCrosse device mit der ID 0. Um das zu vermeiden, kann man nun konfigurieren, mit welcher Sensor-ID die internen Sensoren gesendet werden sollen und die beiden LGWs unterschiedlich konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.&lt;br /&gt;
&lt;br /&gt;
===Internal Sensors &amp;quot;Altitude&amp;quot;===&lt;br /&gt;
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
===Internal Sensors &amp;quot;Temperature-/Humidity-correction&amp;quot;===&lt;br /&gt;
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Der Wert kann entweder ein Offset oder prozentual sein.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-left: 0px;&amp;quot;&lt;br /&gt;
! Korrekturwert !! Gemessen !! Ergebnis&lt;br /&gt;
|-&lt;br /&gt;
| -5 &lt;br /&gt;
| 20°C&lt;br /&gt;
| 15°C&lt;br /&gt;
|-&lt;br /&gt;
| +3&lt;br /&gt;
| 20°C&lt;br /&gt;
| 23°C&lt;br /&gt;
|-&lt;br /&gt;
| -10%&lt;br /&gt;
| 20°C&lt;br /&gt;
| 18°C&lt;br /&gt;
|-&lt;br /&gt;
| +20%&lt;br /&gt;
| 20°C&lt;br /&gt;
| 24°C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===SC16IS750-Clone===&lt;br /&gt;
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und&lt;br /&gt;
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer&lt;br /&gt;
als echte Hardware ist, mitkommt.&lt;br /&gt;
Sollte man ohne zwingenden Grund nicht aktivieren.&lt;br /&gt;
&lt;br /&gt;
===Use MDNS=== &lt;br /&gt;
Legt fest, ob das LGW seine IP-Adresse per MDNS bekannt gibt. Dies ist nötig, wenn man einen Mac hat oder bei Windows einen Bonjour-Service laufen hat.&lt;br /&gt;
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.&lt;br /&gt;
&lt;br /&gt;
===MCP23008=== &lt;br /&gt;
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).&lt;br /&gt;
&lt;br /&gt;
===Serial bridge port und bridge baud===&lt;br /&gt;
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.&lt;br /&gt;
Dazu gibt es die &amp;quot;Serial bridge port&amp;quot; und &amp;quot;Serial bridge baud&amp;quot; auf der &amp;quot;config&amp;quot;-Page des LGWs.&lt;br /&gt;
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.&lt;br /&gt;
&lt;br /&gt;
===Soft Serial Bridge===&lt;br /&gt;
Das LGW kann optional eine Soft serial bridge (zuverlässig nur mit bis zu 57600 Baud) transparent auf einem TCP Port bereitstellen.&lt;br /&gt;
Folgende Parameter können auf der LGW Setup-Page angepasst/konfiguriert werden:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-left: 0px;&amp;quot;&lt;br /&gt;
! Parameter !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| Port&lt;br /&gt;
| Der Port, auf dem es angesprochen werden kann&lt;br /&gt;
|-&lt;br /&gt;
| Baud&lt;br /&gt;
| Die Baudrate für die Kommunikation&lt;br /&gt;
|-&lt;br /&gt;
| Nextion display&lt;br /&gt;
| Für den Betrieb eines Nextion Display muss diese Option aktiviert sein.&lt;br /&gt;
|-&lt;br /&gt;
| Add units&lt;br /&gt;
| Fügt an die Werte (Temp,Hum,Pres), die das LGW an das Display schickt, Einheiten an.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Mithilfe des Soft serial bridge können verschiedene Geräte (nanoCUL, Nextion Display, etc.), welche per serieller Schnittstelle kommunizieren können, in Betrieb genommen werden.&lt;br /&gt;
&lt;br /&gt;
===Statuswerte abrufen===&lt;br /&gt;
Mit http://&amp;lt;IP-des-LGW&amp;gt;/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;LGW&amp;gt;&lt;br /&gt;
  &amp;lt;Info Key=&amp;quot;UpTimeSeconds&amp;quot; Value=&amp;quot;107086&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Info Key=&amp;quot;UpTimeText&amp;quot; Value=&amp;quot;1Tg. 5Std. 44Min. 46Sek. &amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Info Key=&amp;quot;WIFI&amp;quot; Value=&amp;quot;NeverTellThem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Info Key=&amp;quot;MacAddress&amp;quot; Value=&amp;quot;18:FE:34:9A:6D:48&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Info Key=&amp;quot;ChipID&amp;quot; Value=&amp;quot;10120520&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Info Key=&amp;quot;ReceivedFrames&amp;quot; Value=&amp;quot;93593&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Info Key=&amp;quot;FramesPerMinute&amp;quot; Value=&amp;quot;52&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/LGW&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Funktionsweise Log===&lt;br /&gt;
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie fragt und antwortet oder um zu schauen, ob irgendwelche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Mit &amp;quot;Command&amp;quot; kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit &amp;quot;set myLaCrosseGateway raw ...&amp;quot; aus FHEM schicken kann.&lt;br /&gt;
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)&lt;br /&gt;
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.&lt;br /&gt;
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben&lt;br /&gt;
&lt;br /&gt;
Das Log kann per HTTP abgerufen werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;http://&amp;lt;LGW-IP&amp;gt;/getLogData&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;http://192.168.31.211/getLogData&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
das Ergebnis sieht wie folgt aus:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;DATA:OK 22 117 196 0 58 226 102 0 58 191 86 0 0 40 172 0 105 1 101 3 0 [75 C4 E2 66 00 00 BF 56 00 00 00 02 3B FC DC 00 69 01 65 4A A4 C4 F9 F2 4F 11 A4 F6 7C 03 A0 00 00 00 00 03 A0 38 09 21 27]&lt;br /&gt;
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]&lt;br /&gt;
DATA:OK EMT7110 84 81 8 207 0 36 0 1 1 199 1 [25 6A 54 51 40 02 00 24 C3 41 C7 9B]&lt;br /&gt;
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921&lt;br /&gt;
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921&lt;br /&gt;
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]&lt;br /&gt;
DATA:OK 22 126 67 0 65 236 34 0 65 231 116 0 0 32 103 0 48 0 134 1 0 [7E 43 EC 22 00 00 E7 74 00 00 00 01 C7 AC D7 00 30 00 86 00 57 E4 69 1E 46 8E D4 68 C7 04 10 00 00 00 00 04 10 18 0A DC F7]&lt;br /&gt;
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]&lt;br /&gt;
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;DATA:&#039;&#039;&#039;&#039;&#039; für die obere Liste&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;SYS: &#039;&#039;&#039;&#039;&#039; für die untere Liste&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.&lt;br /&gt;
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039; Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.&lt;br /&gt;
&lt;br /&gt;
=Hinweise zum Betrieb mit FHEM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen==&lt;br /&gt;
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
Perl Modul: &#039;&#039;LWP::UserAgent&#039;&#039; - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.&lt;br /&gt;
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;sudo apt-get install libwww-perl&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
alternativ auch mit&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;sudo cpan LWP::UserAgent&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FHEM Module&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Ursprünglich wurde für das LaCrosseGateway das FHEM-Modul 36_JeeLink.pm verwendet. Da es aber inzwischen erhebliche Unterschiede zwischen dem JeeLink-LaCrosse-Sketch und dem LaCrosseGateway gibt, existiert seit Mitte November 2016 ein für das LaCrosseGateway spezialisiertes und optimiertes FHEM-Modul, das 36_LaCrosseGateway.pm.&amp;lt;br&amp;gt;&lt;br /&gt;
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;36_LaCrosseGateway.pm&#039;&#039; (wird per FHEM Update verteilt)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;36_KeyValueProtocol.pm&#039;&#039; (wird per FHEM Update verteilt)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;36_LaCrosse.pm&#039;&#039; (wird per FHEM Update verteilt)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;36_PCA301.pm&#039;&#039; (wird per FHEM Update verteilt)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;36_EC3000.pm&#039;&#039; (wird per FHEM Update verteilt)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;36_EMT7110.pm&#039;&#039; (wird per FHEM Update verteilt)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;36_Level.pm&#039;&#039; (wird per FHEM Update verteilt)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;42_Nextion.pm&#039;&#039; (wird per FHEM Update verteilt)&lt;br /&gt;
&lt;br /&gt;
==Device Definition==&lt;br /&gt;
===WLAN===&lt;br /&gt;
Die Definition sieht dann wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;myLaCrosseGateway&amp;gt; LaCrosseGateway &amp;lt;IP-Adresse&amp;gt;:81&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;myLaCrosseGateway&amp;gt;&#039;&#039; kann bei Bedarf angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;IP-Adresse&amp;gt;&#039;&#039; muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;IP-Adresse ermitteln:&amp;lt;/u&amp;gt; Das LaCrosseGateway heist per default Einstellung &amp;quot;&#039;&#039;LaCrosseGateway&#039;&#039;&amp;quot;, per ping auf den Hostnamen &#039;&#039;LaCrosseGateway&#039;&#039; kann die &amp;lt;IP-Adresse&amp;gt; ermittelt werden.&lt;br /&gt;
&lt;br /&gt;
===USB===&lt;br /&gt;
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.&lt;br /&gt;
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:&amp;lt;br&amp;gt;&lt;br /&gt;
1.) Man kann mit einem 10k pullup auf 3.3V an MOSI == GPIO13 == D7 &amp;quot;jumpern&amp;quot;, dass man kein WiFi will. Wenn vorhanden, wird WiFi sofort beim Start deaktiviert.&amp;lt;br&amp;gt;&lt;br /&gt;
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für den Betrieb via USB sieht die Definition wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;myLaCrosseGateway&amp;gt; LaCrosseGateway &amp;lt;USB-Port&amp;gt;@57600&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;myLaCrosseGateway&amp;gt;&#039;&#039; kann bei Bedarf angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;USB-Port&amp;gt;&#039;&#039; muss entsprechend angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &amp;lt;code&amp;gt;define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600&amp;lt;/code&amp;gt;&lt;br /&gt;
&#039;&#039;/dev/ttyUSB0&#039;&#039; Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Sind mehrere USB Devices am FHEM Server (z.B. RPI, Cubietruck etc.) in Betrieb, dann ist die Zuordnung über den USB-Port nicht zuverlässig. Die Ports werden u.a. in der Reihenfolge vergeben, in der die Geräte angeschlossen werden. Zuverlässiger und eindeutiger ist die Zuordnung über die Serial-ID.&lt;br /&gt;
&lt;br /&gt;
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: &lt;br /&gt;
&amp;lt;code&amp;gt;ls -l /dev/serial/by-id&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel für die Ausgabe:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -&amp;gt; ../../ttyUSB1&lt;br /&gt;
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -&amp;gt; ../../ttyUSB2&lt;br /&gt;
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -&amp;gt; ../../ttyUSB0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In diesem Fall ist u.a. ein DEVKIT 1.0 mit der Serial-ID &#039;&#039;usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -&amp;gt; ../../ttyUSB2&#039;&#039; angeschlossen.&lt;br /&gt;
&lt;br /&gt;
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.&amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set myLaCrosseGateway raw &amp;quot;SETUP ...&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.&amp;lt;br&amp;gt;&lt;br /&gt;
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst&amp;lt;br&amp;gt;&lt;br /&gt;
Einen Reboot kann man mit &amp;quot;set myLaCrosseGateway raw 8377e&amp;quot; auslösen.&amp;lt;br&amp;gt;&lt;br /&gt;
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;code&amp;gt;set myJeeLink213 raw &amp;quot;SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.&lt;br /&gt;
Das command ist 1g&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set myLaCrosseGateway raw 1g&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Man bekommt dann so etwas zurück:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;&lt;br /&gt;
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; &lt;br /&gt;
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; &lt;br /&gt;
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reconnect==&lt;br /&gt;
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbindung unterbrochen etc.), bricht das LaCrosseGateway Device die Kommunikation ab. Über das entsprechende &#039;&#039;timeout&#039;&#039; Attribut kann das LaCrosseGateway device so konfigurert werden, dass es in regelmässigen Abständen erneut versucht eine Verbindung mit dem LaCrosseGateway herzustellen.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsempfehlung für &#039;&#039;timeout&#039;&#039; = 120 Sekunden und &#039;&#039;checkInterval&#039;&#039; = 30 Sekunden:&lt;br /&gt;
&lt;br /&gt;
Der Wert kann in FHEM wie folgt gesetzt werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;attr myLaCrosseGateway timeout 120,30&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;myLaCrosseGateway&#039;&#039;&#039; muss auf den Gerätenamen in FHEM angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Während das LaCrosseGateway eine WiFi-Verbindung aufbaut, benötigt das LaCrosseGateway-Modul je nach Konfiguration einige Zeit bis es einen neuen Connect auf den Datenport des LaCrosseGateway versucht. Das Finden der optimalen Werte erfordert etwas Geduld, es kann auch schon mal ein, zwei Minuten dauern, bis die ersten Daten in FHEM übertragen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Erklärung der Timeout Werte:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
120,30 prüft alle 30 Sekunden, ob seit mindestens 120 Sekunden keine Daten mehr übermittelt wurden und falls dem so ist, macht es einen Reset auf der Schnittstelle, was die Verbindung zum LaCrosseGateway neu aufbaut. Das bedeutet, in so einem Fall ist die Verbindung nach spätestens 150 Sekunden wieder hergestellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Liste aller initCommands==&lt;br /&gt;
Eine aktuelle Liste der initCommands, die man von FHEM, Terminalprogramm oder Web-Frontend aus senden kann, sind auf dem Web-Frontend &amp;quot;Help&amp;quot;-Page des LaCrosseGateways (ab V1.17) aufgeführt.&lt;br /&gt;
&lt;br /&gt;
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;n&amp;gt;a       set to 0 if the blue LED bothers&lt;br /&gt;
&amp;lt;n&amp;gt;c       use one of the possible data rates (for transmit on RFM #1)&lt;br /&gt;
&amp;lt;n&amp;gt;d       set to 1 to see debug messages&lt;br /&gt;
&amp;lt;8266&amp;gt;e    Clear EEPROM&lt;br /&gt;
&amp;lt;n&amp;gt;f       initial frequency in kHz (5 kHz steps, 860480 ... 879515)&lt;br /&gt;
&amp;lt;n&amp;gt;g       get information (1g: get current settings)&lt;br /&gt;
&amp;lt;n&amp;gt;h       Altitude&lt;br /&gt;
&amp;lt;n,f,i&amp;gt;i   Init PCA for Radio #&amp;lt;n&amp;gt; to &amp;lt;m&amp;gt;MHz and &amp;lt;i&amp;gt;s Interval&lt;br /&gt;
&amp;lt;n&amp;gt;m       bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)&lt;br /&gt;
&amp;lt;n&amp;gt;M       bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)&lt;br /&gt;
&amp;lt;n&amp;gt;#&amp;lt;x&amp;gt;m   bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)&lt;br /&gt;
&amp;lt;n&amp;gt;o       set HF-parameter e.g. 1,4o for RFM69&lt;br /&gt;
&amp;lt;n&amp;gt;p       payload on the serial port (1: all, 2: only undecoded data)&lt;br /&gt;
&amp;lt;n&amp;gt;r       use one of the possible data rates (for RFM #1)&lt;br /&gt;
&amp;lt;n&amp;gt;R       use one of the possible data rates (for RFM #2)&lt;br /&gt;
&amp;lt;n&amp;gt;#&amp;lt;x&amp;gt;r   use one of the possible data rates (for RFM #x)&lt;br /&gt;
&amp;lt;x,x,...&amp;gt;s Send to PCA301 (must be 10 byte)&lt;br /&gt;
&amp;lt;x,x,...&amp;gt;S Send to CustomSensor&lt;br /&gt;
&amp;lt;n&amp;gt;t       0=no toggle, else interval in seconds (for RFM #1)&lt;br /&gt;
&amp;lt;n&amp;gt;T       0=no toggle, else interval in seconds (for RFM #2)&lt;br /&gt;
&amp;lt;n&amp;gt;#&amp;lt;x&amp;gt;t   0=no toggle, else interval in seconds (for RFM #x)&lt;br /&gt;
v          show version&lt;br /&gt;
&amp;lt;n&amp;gt;w       0=no wifi&lt;br /&gt;
&amp;lt;n&amp;gt;z       set to 1 to display analyzed frame data instead of the normal data&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LaCrosseGateway zurücksetzen==&lt;br /&gt;
Das LaCrosseGateway kann auf die &amp;quot;Werkseinstellungen&amp;quot; zurückgesetzt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.&lt;br /&gt;
Der Befehl dazu lautet: &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;8266e&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Er kann mit einem Terminalprogramm, von FHEM aus mit &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set &amp;lt;myLaCrosseGateway&amp;gt; raw 8266e&amp;lt;/syntaxhighlight&amp;gt; oder von der Log-Page des LGW gesendet werden.&lt;br /&gt;
&lt;br /&gt;
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die &amp;quot;Setup-Page&amp;quot; neu vorgenommen werden kann.&lt;br /&gt;
&lt;br /&gt;
==Sensoren/Aktoren anlegen==&lt;br /&gt;
&lt;br /&gt;
Voraussetzung: die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.&lt;br /&gt;
&lt;br /&gt;
Die erkannten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.&lt;br /&gt;
&lt;br /&gt;
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme von BMP180 / BME280==&lt;br /&gt;
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann sollte von [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ein LaCrosse Device mit der [[#Sensor-ID | Sensor-ID]] (Default Wert: 0) angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann das FHEM Device manuell angelegt werden:&lt;br /&gt;
Die &#039;&#039;&#039;&#039;&#039;ID&#039;&#039;&#039;&#039;&#039;, mit der das LGW die internen Sensoren sendet, entspricht der konfigurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)&lt;br /&gt;
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;define &amp;lt;name&amp;gt; LaCrosse 00&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Anchließend muss eine Höhenkorrektur (Grund: der Luftdruck wird immer bezogen auf NN angegeben, der Sensor liefert aber den Absolutdruck) mit dem command &#039;&#039;&#039;&#039;&#039;h&#039;&#039;&#039;&#039;&#039; in den initCommands vorgenommen werden, dies erfolgt mit dem FHEM Befehl:&lt;br /&gt;
&lt;br /&gt;
Beispiel: 220h legt 220m über NN fest.&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;attr myLaCrosseGateway initCommands 220h&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Besser:&#039;&#039;&#039; Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Das hat den Vorteil, dass sofort vom Start an der normalisierte Luftdruck an FHEM gesendet wird und nicht erst, wenn die initCommands von FHEM geschickt wurden.&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme Piezo Summer==&lt;br /&gt;
&lt;br /&gt;
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
set myLaCrosseGateway raw 1,60b   -&amp;gt; beep ... beep ... beep                      60 Sekunden lang&lt;br /&gt;
set myLaCrosseGateway raw 2,300b  -&amp;gt; beep beep ... beep beep ... beep beep      300 Sekunden lang&lt;br /&gt;
set myLaCrosseGateway raw 3,120b  -&amp;gt; beep beep beep ... beep beep beep ...      120 Sekunden lang&lt;br /&gt;
set myLaCrosseGateway raw 0b      -&amp;gt; beep stoppen&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme von RFM69CW==&lt;br /&gt;
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzen. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;Default Werte&amp;quot; (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
#1 (Erste)  =&amp;gt; 17241&lt;br /&gt;
#2 (Zweite) =&amp;gt; 9579&lt;br /&gt;
#3 (Dritte) =&amp;gt; 8842&lt;br /&gt;
#4 (Vierte) =&amp;gt; 20000&lt;br /&gt;
#5 (Fünfte) =&amp;gt; 17241&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Detailinformationen sind auch auf der LaCrosseGateway &amp;quot;Help&amp;quot;-Page zu finden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-left: 0px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;&amp;lt;Datenrate&amp;gt;#&amp;lt;Radio-Nummer&amp;gt;&amp;lt;command&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m t:&amp;lt;/code&amp;gt;    || &#039;&#039;Toggle-Steuerung&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r:&amp;lt;/code&amp;gt;    || &#039;&#039;DataRate&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;f:&amp;lt;/code&amp;gt;    || &#039;&#039;Frequenz&#039;&#039; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-left: 0px;&amp;quot;&lt;br /&gt;
!Definition !! Erläuterungen &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;attr myLaCrosseGateway initCommands 0#1r v&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| DataRate des ersten RFM setzen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;attr myLaCrosseGateway initCommands 8842#3r v &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| DataRate des dritten RFM setzen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;attr myLaCrosseGateway initCommands 868300#2f v&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Frequenz des zweiten RFM setzten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;attr myLaCrosseGateway initCommands 868295#3f v&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Frequenz des dritten RFM setzten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;attr myLaCrosseGateway initCommands 17241#1r 8842#2r v&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Zwei RFM69CW mit DataRate 17241 und 8842&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Drei RFMs Frequenz 868295 / PCA301 / WS1600 sowie Höhe über NN &amp;lt;br&amp;gt;Radio 1 auf 868295 MHz und Toggle 9K/17K mit 20 Sekunden&amp;lt;br&amp;gt;Radio 2 für PCA301 initialisiert&amp;lt;br&amp;gt;Radio 3 macht 8842 kbps für die WS 1600&amp;lt;br&amp;gt;Höhe 220m über NN&amp;lt;br&amp;gt;Activity LED aus&amp;lt;br&amp;gt;v am Ende ruft die neu gesetzten Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Es ist wichtig ein &amp;quot;v&amp;quot; an das Ende eines initCommands anzuhängen. Damit wird veranlasst, dass das LaCrosseGateway seine neuen Einstellungen an FHEM zurückmeldet.&lt;br /&gt;
==Inbetriebnahme von PCA301==&lt;br /&gt;
PCA301 im LGW funktioniert ähnlich dem PCA301 Sketch, allerdings mit einigen systembedingten Abweichungen.&lt;br /&gt;
&lt;br /&gt;
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command &amp;quot;&#039;&#039;&#039;&#039;&#039;i&#039;&#039;&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;RadioNr&amp;gt;,&amp;lt;Frequenz&amp;gt;,&amp;lt;Poll-Intervall&amp;gt;i&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Wichtig:&#039;&#039;&#039;&#039;&#039; Es darf nur &#039;&#039;&#039;&amp;quot;ein&amp;quot;&#039;&#039;&#039; Radio für PCA301 initialisiert sein, nicht mehrere. Das PCA301 initialisierte Radio ist dediziert für PCA301 zuständig, es kann nicht zwischen anderen Protokollen (z.B. LaCrosse) toggeln.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Das &#039;&#039;Poll-Interval&#039;&#039; sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat höhere Priorität, da es bei der Kommunikation&lt;br /&gt;
mit den Dosen keine Antworten überhören darf.&lt;br /&gt;
&lt;br /&gt;
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.&lt;br /&gt;
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.&lt;br /&gt;
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-left: 0px;&amp;quot;&lt;br /&gt;
! Definition !! Erläuterungen &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:40%&amp;quot; | &amp;lt;code&amp;gt;attr myLaCrosseGateway initCommands 2,868950,120i v&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initialisierung eines LaCrosseGateways mit zwei Radios für TX29, TX35, PCA301 und BMP180/BME280.&amp;lt;br&amp;gt;Das erste Radio macht PCA301 und das zweite toggelt 17241/9579 im 20 Sekunden Takt um TX29 und TX35 zu empfangen&amp;lt;br&amp;gt;der BMP180/BME280 liefert den Druck für 220m Meereshöhe&amp;lt;br&amp;gt;die LED ist deaktiviert&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ablauf:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.&lt;br /&gt;
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.&lt;br /&gt;
&lt;br /&gt;
Das &#039;&#039;Polling&#039;&#039; funktioniert so, dass für jede Dose geschaut wird, wann sie zuletzt empfangen wurde und wenn das länger als das konfigurierte Interval zurück liegt,&lt;br /&gt;
dann wird sie abgefragt. Wenn sonst etwas (Basisstation, anderes FHEM) die Dose abgefragt hat und das LaCrosseGateway die Antwort gehört hat, dann gilt das auch als&lt;br /&gt;
empfangen und es wird kein eigener Poll für die Dose ausgelöst. &#039;&#039;Das Zusammenspiel mit einer echten Basisstation konnte bisher nur grob simuliert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Das &#039;&#039;Pairing&#039;&#039; (also die Vergabe eines Kanals) funktioniert wie im PCA301-Sketch, button an der Dose &#039;&#039;&amp;quot;3 Sekunden&amp;quot;&#039;&#039; drücken, dann vergibt das LaCrosseGateway den nächsten freien Kanal.&lt;br /&gt;
Dosen, die bereits einen Kanal haben, können durch ein Schalten vor Ort, an das LaCrosseGateway angelernt werden. Das LaCrosseGateway erkennt sie und nimmt sie in die&lt;br /&gt;
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.&lt;br /&gt;
&lt;br /&gt;
Auf der Setup-Page im Web-Frontend (http://IP-Adresse oder Hostname/setup) des LaCrosseGateway kann die Liste der bekannten Dosen (ID=Kanal) eingesehen werden. Hinweis: Es sollten keine Änderungen in diesem Bereich vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
Wenn ein Kommando (Schalten, Daten abfragen, ...) an eine Dose gesendet wurde und keine Antwort kam, wird bereits im Sketch drei mal versucht, eine Antwort zu bekommen.&lt;br /&gt;
&lt;br /&gt;
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-left: 0px;&amp;quot;&lt;br /&gt;
! Befehl (Beschreibung)!! Erläuterungen &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;a &amp;quot;turn activity LED on or off&amp;lt;/code&amp;gt;&lt;br /&gt;
| wie bisher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;l &amp;quot;list known devices&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
| entfallen, kann man nun im Web-Frontend sehen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;q &amp;quot;turn quiet mode on or off&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
| wie bisher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r &amp;quot;list recordings&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
| entfallen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;s &amp;quot;send to plug&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
| wie bisher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;v &amp;quot;report version and configuration parameters&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
| wie bisher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;d, e, p &amp;quot;poll / turn a device on / off&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
| entfallen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;h, +, -, # &amp;quot;modify and display RF12 Frequency register&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
| entfallen, ersetzt durch das &amp;quot;i&amp;quot; command bzw. das bereits vorhandene &amp;quot;f&amp;quot; command&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme von Energy Count 3000 (EC3000)==&lt;br /&gt;
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.&lt;br /&gt;
Sie kann mit 3r oder 20000r gesetzt werden. Wenn diese data rate gesetzt wird, wird auch automatisch der RFM69 auf den Empfang von EC3000 uminitialisiert.&lt;br /&gt;
&lt;br /&gt;
EC3000 kann auch in einen data rate toggle mit einbezogen werden. Dazu gibt es nun das bit mit dem Wert 8 für 20.000 kbps&lt;br /&gt;
&lt;br /&gt;
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:&lt;br /&gt;
20000#2r&lt;br /&gt;
&lt;br /&gt;
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.&lt;br /&gt;
Wenn man z.B. mit dem zweiten Radio 17k Sensoren  (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;attr myLaCrosseGateway initCommands 9#2m 20#2t v&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme von MCP23008==&lt;br /&gt;
Auf der LaCrosseGateway &amp;quot;config&amp;quot;-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input&#039;&#039;&#039;: Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluss von Pushbuttons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;: Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluss von LEDs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel: &#039;&#039;Input =&amp;gt; Eingang, wird per KVP an FHEM übermittelt&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel: &#039;&#039;Output =&amp;gt; Kann von FHEM aus gesetzt werden.&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set myLaCrosseGateway raw &amp;quot;MCP GP0=1,GP1=0&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme Analogport==&lt;br /&gt;
Der Analogport A0 des ESP8266 wird als Reading im LaCrosseGatewayModul aufgeführt.&lt;br /&gt;
Um das zu aktivieren, muss man auf der Setup-Page des LGW die Option &amp;quot;Send analog values&amp;quot; ankreuzen.&lt;br /&gt;
Der Eingangsspannungsbereich von A0 ist 0V ... 1.0V, was zu einem Reading von 0 ... 1023 führt.&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme von OLED-Display==&lt;br /&gt;
Es wird das 128x64 pixel 0.96&amp;quot; I2C Display mit dem SSD1306 controller und das 128x64 pixel 1.3&amp;quot; mit dem SH1106 controller unterstützt.&lt;br /&gt;
&lt;br /&gt;
Für die korrekte Darstellung auf dem 1.3&amp;quot; Display, muss die Checkbox 1.3&amp;quot; auf der Setup-Page aktiviert werden &lt;br /&gt;
&lt;br /&gt;
Hinweis: das 0.96&amp;quot; Display bekommt man auch in einer Variante, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. &lt;br /&gt;
&lt;br /&gt;
Der nachfolgende Funktionsumfang ist implementiert:&lt;br /&gt;
&lt;br /&gt;
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls&lt;br /&gt;
*OLED Startverhalten konfigurierbar&lt;br /&gt;
*Übermittlung des Display Status im KVP&lt;br /&gt;
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)&lt;br /&gt;
**WiFi connect erfolgreich&lt;br /&gt;
**Ein FHEM hat sich auf einen DataPort connected&lt;br /&gt;
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|UART bridge]] connected&lt;br /&gt;
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60&lt;br /&gt;
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
*Darstellung von bis zu drei Texten und optional eines Symbols&lt;br /&gt;
*Definition des Zeitintervalls für das Umschalten zur nächsten Seite&lt;br /&gt;
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der &amp;quot;Setup&amp;quot;-Page)&lt;br /&gt;
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)&lt;br /&gt;
&lt;br /&gt;
===OLED Start Modus===&lt;br /&gt;
Einstellungsmöglichkeit über die &amp;quot;Config&amp;quot;-Page wie sich das OLED nach einem Start verhalten soll.&lt;br /&gt;
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.&lt;br /&gt;
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)&lt;br /&gt;
&lt;br /&gt;
===Modes===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-left: 0px;&amp;quot;&lt;br /&gt;
! Prefix !! Parameter !! Erläuterung &lt;br /&gt;
|-&lt;br /&gt;
| OLED mode= &lt;br /&gt;
| t&lt;br /&gt;
| Temperatur des internen Sensors&lt;br /&gt;
|-&lt;br /&gt;
| OLED mode=&lt;br /&gt;
| h&lt;br /&gt;
| Feuchte des internen Sensors&lt;br /&gt;
|-&lt;br /&gt;
| OLED mode=&lt;br /&gt;
| p&lt;br /&gt;
| Druck des internen Sensors&lt;br /&gt;
|-&lt;br /&gt;
| OLED mode=&lt;br /&gt;
| s&lt;br /&gt;
| Statuswerte des LGW&lt;br /&gt;
|-&lt;br /&gt;
| OLED mode=&lt;br /&gt;
| f&lt;br /&gt;
| von FHEM gesetzter Text&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Mögliche Symbole===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-left: 0px;&amp;quot;&lt;br /&gt;
! Parameter !! Erläuterung !! OLED Darstellung&lt;br /&gt;
|-&lt;br /&gt;
| t&lt;br /&gt;
| Temperature&lt;br /&gt;
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| h&lt;br /&gt;
| Humidity&lt;br /&gt;
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| p&lt;br /&gt;
| Pressure&lt;br /&gt;
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| s&lt;br /&gt;
| System&lt;br /&gt;
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| i&lt;br /&gt;
| Info&lt;br /&gt;
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| w&lt;br /&gt;
| Warning&lt;br /&gt;
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| e&lt;br /&gt;
| Error&lt;br /&gt;
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-left: 0px;&amp;quot;&lt;br /&gt;
! Definition !! Erläuterung&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:30%&amp;quot; | &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set myLaCrosseGateway raw &amp;quot;OLED On&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Schaltet ein angeschlossenes Display ein &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set myLaCrosseGateway raw &amp;quot;OLED Off&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Schaltet ein angeschlossenes Display aus &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set myLaCrosseGateway raw &amp;quot;OLED interval=20&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set myLaCrosseGateway raw &amp;quot;OLED mode=ths&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set myLaCrosseGateway raw &amp;quot;OLED mode=thp&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set myLaCrosseGateway raw &amp;quot;OLED mode=thps&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set myLaCrosseGateway raw &amp;quot;OLED mode=f&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Zeigt ausschließlich den von FHEM festgelegten Text an&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set myLaCrosseGateway raw &amp;quot;OLED mode=s&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Zeigt ausschließlich die Systemdaten an&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set myLaCrosseGateway raw &amp;quot;OLED show=Soll: 20.5,Ist: 19.2,,t&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set myLaCrosseGateway raw &amp;quot;OLED show=55%,,,h&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Zeigt nur den Text &amp;quot;55%&amp;quot; und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set myLaCrosseGateway raw &amp;quot;OLED show=Line 1,Line 2,Line 3&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Zeigt drei Texte aber kein Symbol an.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;attr myLaCrosseGateway initCommands &amp;quot;OLED mode=thps&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme eines Nextion Displays==&lt;br /&gt;
&lt;br /&gt;
Mithilfe der Seriellen Schnittstelle [[#Soft_serial_bridge|(Soft serial bridge]]), kann ein Nextion Display in Betrieb genommen werden. Das Besondere dabei ist, dass das LGW zusätzlich seine Status Informationen (AP-Verbindungsstatus, RSSI, IP, Version, FHEM Verbindungsstatus, etc.) an das Display schickt. &lt;br /&gt;
Die Anbindung an FHEM erfolgt mithilfe des Nextion Moduls (42_Nextion.pm), welches per FHEM Update verteilt wird. &lt;br /&gt;
&lt;br /&gt;
Ein Diskussionsthread zum Thema „LaCrosseGateway mit Nextion Display“ findet man {{Link2Forum|Topic=63443|LinkText=hier}}. &lt;br /&gt;
&lt;br /&gt;
===Voraussetzungen===&lt;br /&gt;
Vor der Inbetriebnahme in FHEM, müssen folgende Voraussetzungen erfüllt sein:&lt;br /&gt;
*Das Display ist wie [[#Nextion_Display|hier]] beschrieben an das LGW angeschlossen.&lt;br /&gt;
*Die [[#Soft_serial_bridge|Soft serial bridge]] auf der LGW Setup-page ist konfiguriert.&lt;br /&gt;
*Das LaCrosse Gateway Device ist wie [[#Device_Definition|hier]] beschrieben angelegt.&lt;br /&gt;
&lt;br /&gt;
===Funktionsumfang===&lt;br /&gt;
&lt;br /&gt;
Der nachfolgende Funktionsumfang ist implementiert:&lt;br /&gt;
&lt;br /&gt;
*OTA Firmware (.tft File) Übertragung an das Display &lt;br /&gt;
*Automatische Anpassung der Baudrate auf dem Nextion&lt;br /&gt;
*Das LGW schickt (periodisch) Werte an folgende Controls:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-left: 0px;&amp;quot;&lt;br /&gt;
! Control!! Beschreibung/Anmerkung&lt;br /&gt;
|-&lt;br /&gt;
| LGW#temp.txt&lt;br /&gt;
| Nur wenn ein entsprechender on board sensor vorhanden ist.&lt;br /&gt;
|-&lt;br /&gt;
| LGW#hum.txt&lt;br /&gt;
| Nur wenn ein entsprechender on board sensor vorhanden ist.&lt;br /&gt;
|-&lt;br /&gt;
| LGW#pres.txt&lt;br /&gt;
| Nur wenn ein entsprechender on board sensor vorhanden ist.&lt;br /&gt;
|-&lt;br /&gt;
| LGW#rssi.txt&lt;br /&gt;
| WLAN RSSI Signalstärke&lt;br /&gt;
|-&lt;br /&gt;
| LGW#ip.txt&lt;br /&gt;
| IP-Adresse des LGW&#039;s&lt;br /&gt;
|-&lt;br /&gt;
| LGW#fpm.txt&lt;br /&gt;
| Frames Per Minute&lt;br /&gt;
|-&lt;br /&gt;
| LGW#heap.txt&lt;br /&gt;
| Free Heap&lt;br /&gt;
|-&lt;br /&gt;
| LGW#up.txt&lt;br /&gt;
| Uptime&lt;br /&gt;
|-&lt;br /&gt;
| LGW#ver.txt&lt;br /&gt;
| Version&lt;br /&gt;
|-&lt;br /&gt;
| LGW#wifi (vis)&lt;br /&gt;
| Setzt die visibility&lt;br /&gt;
|-&lt;br /&gt;
| LGW#fhem&lt;br /&gt;
| Setzt die visibility&lt;br /&gt;
|-&lt;br /&gt;
| LGW#cpu1 &lt;br /&gt;
| Setzt die visibility&lt;br /&gt;
|-&lt;br /&gt;
| LGW#cpu2&lt;br /&gt;
| Setzt die visibility&lt;br /&gt;
|-&lt;br /&gt;
| LGW#main&lt;br /&gt;
| Sendet, nachdem es sich initialisiert hat, ein &amp;quot;page LGW#main&amp;quot; an das Nextion.&lt;br /&gt;
|-&lt;br /&gt;
| LGW#info&lt;br /&gt;
| Sendet die Info an die LGW#prog page&lt;br /&gt;
|-&lt;br /&gt;
| LGW#ptext&lt;br /&gt;
| Sendet die Info an die LGW#prog page&lt;br /&gt;
|-&lt;br /&gt;
| LGW#pbar&lt;br /&gt;
| Sendet die Info an die LGW#prog page&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Fortschrittsanzeige beim flashen der Nextion Firmware&lt;br /&gt;
&lt;br /&gt;
===Device Definition Nextion Modul===&lt;br /&gt;
&lt;br /&gt;
Die Definition für die Nextion Bridge sieht dann wie folgt aus: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;nextion&amp;gt; Nextion &amp;lt;IP-Adresse&amp;gt;:&amp;lt;Port&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;nextion&amp;gt;&#039;&#039; kann bei Bedarf angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;IP-Adresse&amp;gt;&#039;&#039; muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&amp;lt;Port&amp;gt;&#039;&#039; Ist der auf der Setup-page definierte Port &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;define nextion Nextion 192.168.22.33:86&amp;lt;/syntaxhighlight&amp;gt; IP-Adresse ermitteln: Das LaCrosseGateway heisst per default Einstellung &amp;quot;LaCrosseGateway&amp;quot;, per ping auf den Hostnamen LaCrosseGateway kann die &amp;lt;IP-Adresse&amp;gt; ermittelt werden.&lt;br /&gt;
&lt;br /&gt;
===Firmware erstellen und flashen ===&lt;br /&gt;
Ein UI für das Nextion Display wird mit dem Nextion Editor erstellt. Mithilfe des Editors kann die entsprechende Firmware (tft Datei – siehe „File -&amp;gt; Open build folder“) kompiliert (Button: Compile) werden. &lt;br /&gt;
&lt;br /&gt;
Das LGW kann die Firmware (.tft Datei) zum Display übertragen. Dazu gibt es zwei Varianten:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;curl&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Syntax lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --http1.0 -# -o ~output.txt -H &amp;quot;Content_Type:multipart/form-data&amp;quot; -F &amp;quot;file=@&amp;lt;tftFileName&amp;gt;; filename=nextion.tft&amp;quot; http://&amp;lt;LGW-IP&amp;gt;/ota/nextion&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --http1.0 -# -o ~output.txt -H &amp;quot;Content_Type:multipart/form-data&amp;quot; -F &amp;quot;file=@D:\MyNextionFiles\lgw.tft; filename=nextion.tft&amp;quot; http://192.168.31.213/ota/nextion&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das LaCrosseGateway Modul in FHEM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Syntax lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;set &amp;lt;myLaCrosseGateway&amp;gt; nextionUpload&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn das Attribut &amp;quot;tftFile&amp;quot; gesetzt ist, wird die darin angegebene Datei hochgeladen, ansonsten wird versucht, das File „FHEM/firmware/nextion.tft“ hochzuladen.&lt;br /&gt;
&lt;br /&gt;
===Anwendungsbeispiel===&lt;br /&gt;
In {{Link2Forum|Topic=63443|LinkText=diesem FHEM Forum Thread}} wurde ein LGW Nextion UI erarbeitet (Stand 01.08.2017 {{Link2Forum|Topic=63443|Message=582453|LinkText=Version 0.7}}), um die Funktionsweise zu demonstrieren.&lt;br /&gt;
Das Nextion UI besteht aus folgenden Pages: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!ID !! Name !! Page !! Beispiel !! Hinweise/Funktion/Bechreibung !! Nextion Debug commands&lt;br /&gt;
|-&lt;br /&gt;
| 0 ||Boot || Boot || [[Datei:lgw_nextion_boot.png|200px|thumb|left|]]&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; || Das ist die Startseite nach Einschalten des Nextion Displays. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 ||Progress||LGW#prog ||[[Datei:lgw_nextion_prog.png|200px|thumb|left|]]&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;|| Auf dieser Seite wird der WiFi Verbindungsfortschritt angezeigt. Alle Werte werden vom LGW befüllt. ||page LGW#prog&lt;br /&gt;
vis LGW#pbar,1&lt;br /&gt;
&lt;br /&gt;
vis LGW#ptext,1&lt;br /&gt;
&lt;br /&gt;
LGW#pbar.val=50&lt;br /&gt;
&lt;br /&gt;
LGW#ptext.txt=&amp;quot;Connect WiFi (1)&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 2 ||Main|| LGW#main ||  [[Datei:lgw_nextion_main.png|200px|thumb|left|]]&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; ||Dies ist die Hauptseite, welche vom LGW aufgerufen wird, sobald der Bootvorgang abgeschlossen ist.&amp;lt;br&amp;gt;Hinweise zur Funktionsweise findet man {{Link2Forum|Topic=63443|Message=546896|LinkText=hier}}|| page LGW#main&lt;br /&gt;
vis LGW#wifi,1&lt;br /&gt;
&lt;br /&gt;
vis LGW#fhem,1&lt;br /&gt;
&lt;br /&gt;
vis LGW#cpu1,1&lt;br /&gt;
&lt;br /&gt;
vis LGW#cpu2,1&lt;br /&gt;
&lt;br /&gt;
LGW#rssi.txt=&amp;quot;-68&amp;quot;&lt;br /&gt;
&lt;br /&gt;
tTime.txt=&amp;quot;23:45&amp;quot;&lt;br /&gt;
&lt;br /&gt;
tDate.txt=&amp;quot;01.08.2017&amp;quot;&lt;br /&gt;
&lt;br /&gt;
vis iTemp,1&lt;br /&gt;
&lt;br /&gt;
LGW#temp.txt=&amp;quot;25.7&amp;quot;&lt;br /&gt;
&lt;br /&gt;
vis iHum,1&lt;br /&gt;
&lt;br /&gt;
LGW#hum.txt=&amp;quot;68%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
vis iPres,1&lt;br /&gt;
&lt;br /&gt;
LGW#pres.txt=&amp;quot;1024hPa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
vis iWind,1&lt;br /&gt;
&lt;br /&gt;
tout_ws.txt=&amp;quot;23km/h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
vis iOutT,1&lt;br /&gt;
&lt;br /&gt;
tout_t.txt=&amp;quot;28°C&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 3 ||Info Page||  Info || [[Datei:lgw_nextion_info.png|200px|thumb|left|]]&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; || Alle Informationen auf dieser Seite werden von LGW automatisch befüllt. || page Info&lt;br /&gt;
vis LGW#ip,1&lt;br /&gt;
&lt;br /&gt;
LGW#ip.txt=&amp;quot;192.168.222.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
vis LGW#fpm,1&lt;br /&gt;
&lt;br /&gt;
LGW#fpm.txt=&amp;quot;5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
vis LGW#heap,1&lt;br /&gt;
&lt;br /&gt;
LGW#heap.txt=&amp;quot;16280&amp;quot;&lt;br /&gt;
&lt;br /&gt;
vis LGW#ver,1&lt;br /&gt;
&lt;br /&gt;
LGW#ver.txt=&amp;quot;1.30&amp;quot;&lt;br /&gt;
&lt;br /&gt;
vis LGW#up,1&lt;br /&gt;
&lt;br /&gt;
LGW#up.txt=&amp;quot;1Tg.4Std.34Min.&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Info Page 2 ||  Info2 ||  [[Datei:lgw_nextion_info2.png|200px|thumb|left|]]&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; || tInfo50 und tInfo51 sind für Nextion UI Version reserviert. tInfo60 bis tInfo91 sind nicht belegt und können verwendet werden, um z.B. die FHEM Verison anzuzeigen. || page Info2&lt;br /&gt;
tInfo60.txt=&amp;quot;tInfo60:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
tInfo61.txt=&amp;quot;tInfo61&amp;quot;&lt;br /&gt;
&lt;br /&gt;
tInfo70.txt=&amp;quot;tInfo70:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
tInfo71.txt=&amp;quot;tInfo71&amp;quot;&lt;br /&gt;
&lt;br /&gt;
tInfo80.txt=&amp;quot;tInfo80:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
tInfo81.txt=&amp;quot;tInfo81&amp;quot;&lt;br /&gt;
&lt;br /&gt;
tInfo90.txt=&amp;quot;tInfo90:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
tInfo91.txt=&amp;quot;tInfo91&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Settings || Settings || [[Datei:Lgw_nextion_Settings.png|200px|thumb|left|]]&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; || Einstellungsmöglichkeit von Helligkeit (Wertebereich von 10% bis 100%) des Displays und des PowerOff Timeouts (Wertebereich: off und 1-120 Sek.)||page Settings&lt;br /&gt;
h1.val=25&lt;br /&gt;
&lt;br /&gt;
h0.val=60&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Control Center||CoCe||[[Datei:lgw_nextion_CoCe.png|200px|thumb|left|]]&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; ||Zum Schalten von Aktoren und Status Anzeige.&amp;lt;br&amp;gt;Weitere Hinweise zur Funktionsweise sind {{Link2Forum|Topic=63443|Message=576902|LinkText=hier}} zu finden. || page CoCe&lt;br /&gt;
lblT1.txt=&amp;quot;lbT1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lblS1.txt=&amp;quot;aus&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lblT2.txt=&amp;quot;lbT2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lblS2.txt=&amp;quot;an&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lblT3.txt=&amp;quot;lbT4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lblS3.txt=&amp;quot;zu&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lblT4.txt=&amp;quot;lbT3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lblS4.txt=&amp;quot;auf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lblT5.txt=&amp;quot;lbT5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lblS5.txt=&amp;quot;n.a.&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Weather ||Weather||[[Datei:lgw_nextion_Weather.png|200px|thumb|left|]]&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;||Zur Anzeige einer Wettervorhersage. Diese Seite wird durch ein touch auf den &amp;quot;Temp-Wert&amp;quot; in der Main#Page aufgerufen. &amp;lt;br&amp;gt;Implementierungshinweise sind {{Link2Forum|Topic=63443|Message=582453|LinkText=hier}} zu finden. ||page Weather&lt;br /&gt;
p0.pic=12&lt;br /&gt;
&lt;br /&gt;
t0.txt=&amp;quot;Mo 01 Aug 2017\rmin:15 max:18&amp;quot;&lt;br /&gt;
&lt;br /&gt;
p1.pic=16&lt;br /&gt;
&lt;br /&gt;
t1.txt=&amp;quot;Di 02 Aug 2017\rmin:15 max:18&amp;quot;&lt;br /&gt;
&lt;br /&gt;
p2.pic=17&lt;br /&gt;
&lt;br /&gt;
t2.txt=&amp;quot;Mi 03 Aug 2017\rmin:15 max:18&amp;quot;&lt;br /&gt;
&lt;br /&gt;
p3.pic=12&lt;br /&gt;
&lt;br /&gt;
t3.txt=&amp;quot;Do 04 Aug 2017\rmin:25 max:28&amp;quot;&lt;br /&gt;
&lt;br /&gt;
p4.pic=15&lt;br /&gt;
&lt;br /&gt;
t4.txt=&amp;quot;Fr 05 Aug 2017\rmin:28 max:32&amp;quot; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hinweis: Alle Controls die mit dem Namen &amp;quot;LGW#&amp;quot; beginnen sind für das LGW reserviert und werden entsprechend vom Gateway befüllt.&lt;br /&gt;
&lt;br /&gt;
===Nextion Tipps &amp;amp; Tricks===&lt;br /&gt;
====Nextion Commandreferenz====&lt;br /&gt;
Sehr hilfreich ist die Nextion instruction Page, welche hier: https://www.itead.cc/wiki/Nextion_Instruction_Set zu finden ist.&lt;br /&gt;
&lt;br /&gt;
==Serial Transparent Bridge==&lt;br /&gt;
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.&lt;br /&gt;
Dazu gibt es die settings &#039;&#039;&amp;quot;Serial bridge port&amp;quot;&#039;&#039; und &#039;&#039;&amp;quot;Serial bridge baud&amp;quot;&#039;&#039; auf der &amp;quot;Setup&amp;quot;-Page&amp;quot; (Web-Frontend) des LaCrosseGateways.&lt;br /&gt;
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.&lt;br /&gt;
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Vorgehensweise:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. &lt;br /&gt;
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen&lt;br /&gt;
*Port und baud rate auf der &amp;quot;Setup&amp;quot;-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud&lt;br /&gt;
*CUL in FHEM definieren (Beispiel): &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;define CULXYZ CUL &amp;lt;IP-Adresse&amp;gt;:85 0000&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;&amp;lt;CULXYZ&amp;gt;&#039;&#039;&#039;&#039;&#039; Muss nach eigenen Bedürfnissen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;&amp;lt;IP-Adresse&amp;gt;&#039;&#039;&#039;&#039;&#039; Muss entsprechend angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Defekts etc.), empfiehlt es sich einen reconnect Mechanismus in FHEM zu implementieren.&lt;br /&gt;
&lt;br /&gt;
Dieser kann wie folgt aussehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;define CULXYZ-Reconnector at +*00:00:30 {\&lt;br /&gt;
my $deviceName = &amp;quot;&amp;lt;CULXYZ&amp;gt;&amp;quot;;;\&lt;br /&gt;
my $version = CommandGet(&amp;quot;&amp;quot;, $deviceName . &amp;quot; version&amp;quot;);;\&lt;br /&gt;
my $gotAnswer = index($version, &#039;No answer&#039;) == -1;;\&lt;br /&gt;
\&lt;br /&gt;
if(!$gotAnswer) {\&lt;br /&gt;
  fhem(&amp;quot;set &amp;quot; . $deviceName . &amp;quot; reopen&amp;quot;);;\&lt;br /&gt;
}\&lt;br /&gt;
\&lt;br /&gt;
}  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;&amp;lt;CULXYZ&amp;gt;&#039;&#039;&#039;&#039;&#039; Muss nach eigenen Bedürfnissen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Vorgehen Firmware flashen mit LGW&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ein bereits in Betrieb genommener NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|&amp;quot;SubProzessor - Vorgehen Firmware flashen&amp;quot;]]) wie ein SubProzessor geflasht werden.&lt;br /&gt;
&lt;br /&gt;
==Zugriff mit mehreren FHEM Instanzen==&lt;br /&gt;
&lt;br /&gt;
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.&lt;br /&gt;
Auf der &amp;quot;Setup&amp;quot;-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).&lt;br /&gt;
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweise:&#039;&#039;&#039;&#039;&#039; Die Portnummer 8266 wird für OTA Update verwendet, und 80 für die &amp;quot;Config&amp;quot;-page. Aus diesem Grund ist die Verwendung dieser ports nicht erlaubt.&lt;br /&gt;
&lt;br /&gt;
Wenn sich mehrere FHEM Instanzen ein LaCrosseGateway teilen, dann ist darauf zu achten, dass die eine gemeinsame/gleiche initCommand Konfiguration haben. Sollten die FHEM Instanzen unterschiedliche initCommands senden, gewinnt das (zufällig) letzte und legt es für alle anderen fest.&lt;br /&gt;
&lt;br /&gt;
=Nano LaCrosse Gateway=&lt;br /&gt;
Das nano LaCrosse Gateway verwendet die gleiche [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jedoch nicht alle Bauteile verwendet werden.&lt;br /&gt;
Das Gateway eignet sich sehr gut als Entwicklungsstick (dies ist der Ent­ste­hungs­grund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI, Cubietruck, etc.).&lt;br /&gt;
&lt;br /&gt;
Der Betrieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.&lt;br /&gt;
&lt;br /&gt;
==Bauteile==&lt;br /&gt;
Folgende Bauteile werden benötigt:&lt;br /&gt;
*Gehäuse [http://www.elv.de/output/controller.aspx?cid=74&amp;amp;detail=10&amp;amp;detail2=36507 schwarz] oder [http://www.voelkner.de/products/164819/USB-Gehaeuse-USB-1kl-Transparent.html transparent]&lt;br /&gt;
*ESP-12E&lt;br /&gt;
*Auto-Flash-Reset-Schaltung&lt;br /&gt;
*[http://www.aliexpress.com/item/6Pin-USB-2-0-to-TTL-UART-Module-Serial-Converter-CP2102-STC-Replace-Ft232/32364013343.html?spm=2114.13010208.99999999.261.mWmpl5 CP2102 FTDI]&lt;br /&gt;
*RFM69CW&lt;br /&gt;
*Status-LED&lt;br /&gt;
&lt;br /&gt;
==Schaltung==&lt;br /&gt;
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Selbstbau==&lt;br /&gt;
{| class=&amp;quot;galleryTable noFloat&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]&lt;br /&gt;
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]&lt;br /&gt;
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]&lt;br /&gt;
|}&lt;br /&gt;
==Platine==&lt;br /&gt;
===nano LaCrosse Gateway===&lt;br /&gt;
{| class=&amp;quot;galleryTable noFloat&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]&lt;br /&gt;
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]&lt;br /&gt;
|}&lt;br /&gt;
===USB2TTL===&lt;br /&gt;
{| class=&amp;quot;galleryTable noFloat&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]&lt;br /&gt;
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]&lt;br /&gt;
|}&lt;br /&gt;
===nano LaCrosse Gateway inkl. USB2TTL===&lt;br /&gt;
{| class=&amp;quot;galleryTable noFloat&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]&lt;br /&gt;
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;galleryTable noFloat&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]&lt;br /&gt;
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]&lt;br /&gt;
|}&lt;br /&gt;
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===&lt;br /&gt;
{| class=&amp;quot;galleryTable noFloat&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]&lt;br /&gt;
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]&lt;br /&gt;
|}&lt;br /&gt;
===Platine bestücken (Hinweise und Tipps)===&lt;br /&gt;
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.&lt;br /&gt;
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine &amp;quot;Schönheitskorrektur&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= Tipps &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
==Löschen des kompletten Flash des ESP8266 mit dem esptool==&lt;br /&gt;
Aufgrund eines aktuell im espressif SDK vorhandenen Bugs, kann es passieren, dass das LaCrosseGateway nach dem Aufspielen der Firmware, mit einer Exception den Bootvorgang (nach &amp;quot;Start WIFI_STA&amp;quot;) abbricht und nicht mehr ordnungsgemäß starten kann. In diesem Fall hilft nur noch das Löschen des kompletten Speichers des ESP8266 und das erneute Aufspielen der Firmware.&lt;br /&gt;
&lt;br /&gt;
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Dabei werden alle Einstellungen unwiderruflich gelöscht&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;&amp;lt;/dev/tty.SLAB_USBtoUART&amp;gt;&#039;&#039;&#039; Muss entsprechend angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Weiterführende Links=&lt;br /&gt;
Diskussionsthread aus dem Forum:&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=43672|LinkText=LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino}}&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=45594|LinkText=Platine für LaCrosseGateway: Platinenbestellung}}&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=51329|LinkText=Platine für nanoLGW (LaCrosse Gateway): Layout}}&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=52921|LinkText=Display für LaCrosseGateway}}&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=63443|LinkText=LaCrosseGateway mit Nextion Display}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:IP Components]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;br /&gt;
[[Kategorie:Temperatursensoren]]&lt;br /&gt;
[[Kategorie:Feuchtesensoren]]&lt;br /&gt;
[[Kategorie:Wetterstationen]]&lt;br /&gt;
[[Kategorie:868MHz]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=MapleCUN&amp;diff=34672</id>
		<title>MapleCUN</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=MapleCUN&amp;diff=34672"/>
		<updated>2021-01-29T15:18:01Z</updated>

		<summary type="html">&lt;p&gt;PeMue: typo corrected&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Hardware|&lt;br /&gt;
|Bild=MapleCULx4.jpg&lt;br /&gt;
|Bildbeschreibung=MAPLE CUL (ohne LAN)&lt;br /&gt;
|HWProtocol=diverse&lt;br /&gt;
|HWType=Transceiver&lt;br /&gt;
|HWCategory=CUL&lt;br /&gt;
|HWComm=Funk 433MHz oder 868MHz &lt;br /&gt;
|HWChannels=N/A&lt;br /&gt;
|HWVoltage=3,3V nach Spannungsregler&lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=USB&lt;br /&gt;
|HWSize=&lt;br /&gt;
|HWDeviceFHEM=CUL&lt;br /&gt;
|HWManufacturer=Eigenbau&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Der MapleCUN ist neuartiges CUN oder CUL Interface zum Selbstbau, entwickelt von Telekatz.&lt;br /&gt;
Durch den STM32 Mikrocontroller ist die Basis sehr leistungsfähig. Der Controller ist deutlich schneller als ATMega und verfügt über mehr Flash und RAM sowie integriertes USB.&lt;br /&gt;
Es können 1-4 Transceiver verbaut werden. &lt;br /&gt;
&lt;br /&gt;
Alle 4 Transceiver werden über ein einziges serielles Device (alternativ LAN) angesprochen als &amp;quot;stackable&amp;quot; Modul ...&lt;br /&gt;
&lt;br /&gt;
Der MAPLE-Mini stellt jedoch über zwei UARTs noch zwei Serielle-Interfaces bereit, die anderweitig genutzt werden können.Diese konkrete Nutzung z.B. [[MapleCUX-Platinen|bei Ranseyers-Platinen oder anderen Umsetzunge]]n hat jedoch keinen Zusammenhang mit dem MAPLE-CUL, wird daher separat beschrieben und sollte bei Fragen auch separat diskutiert werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:MapleCUN.jpg|Schaltplan|alt=alt language&lt;br /&gt;
File:MapleCULx4.jpg|Prototypen-Aufbau mit Steck-Transceivern|alt=alt language&lt;br /&gt;
File:4-fach-1.3-1280.jpg|4-Fach CUL V1.3|alt=alt language&lt;br /&gt;
File:4-fach-1.3-LAN.jpg|4-Fach CUN mit LAN-Modul V1.3|alt=alt language&lt;br /&gt;
File:4-fach-produktiv.jpg|4-Fach CUL im offenen Gehäuse|alt=alt language&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufbau ==&lt;br /&gt;
Benötigt werden dazu folgende Teile:&lt;br /&gt;
&lt;br /&gt;
* [https://de.aliexpress.com/item/leaflabs-Leaf-maple-mini-ARM-STM32-compatibility/1400667476.html Maple Mini Board]&lt;br /&gt;
* [https://de.aliexpress.com/item/CC1101-Wireless-Module-Long-Distance-Transmission-Antenna-868MHZ-M115/32635393463.html CC1101 Funkmodul]&lt;br /&gt;
* [https://de.aliexpress.com/item/Free-shipping-W5100-Ethernet-module-Ethernet-network-module-for-arduino/32341522510.html W5100] oder [https://de.aliexpress.com/item/Free-shipping-W5500-Ethernet-network-module-hardware-TCP-IP-51-STM32-microcontroller-program-over-W5100/32750316619.html W5500] Ethernet Modul (Optional)&lt;br /&gt;
Der Aufbau kann auf Lochraster erfolgen, fertige Platinen (siehe Foto) sparen jedoch Zeit, reduzieren Fehlerquellen und erhöhen die Zuverlässigkeit.&lt;br /&gt;
&lt;br /&gt;
Die Module werden gemäß Schaltplan miteinander verbunden. Da alle Module mit 3,3V laufen, sind keine Bauteile für eine Pegelanpassung notwendig.&lt;br /&gt;
&lt;br /&gt;
== Bestückung der Module / Protokolle ==&lt;br /&gt;
Stand 07/2017: Es sind noch nicht alle Protokolle an den zusätzlichen Transceivern verfügbar.&lt;br /&gt;
Nach einem Reset der Konfiguration ist die Frequenz von CC0 auf 868MHz und CC1 auf 433MHz voreingestellt, lässt sich dann aber auch umkonfigurieren.&lt;br /&gt;
&lt;br /&gt;
Ende Juni 2017 wurde die automatische Erkennung der Module überarbeitet. Jetzt ist es auch möglich, einen Slot unbestückt zu lassen und die nachfolgenden Slots trotzdem verwenden zu können. Wenn alle 4 Slots belegt sind, funktioniert SlowRF an Slot0, Slot1 und Slot2. Ist irgend ein beliebiger Slot unbelegt, funktioniert es an den übrigen 3 Slots. Allerdings funktioniert das Senden von SlowRF nicht am letzten Slot, da dort kein Output Pin angeschlossen ist.&lt;br /&gt;
&lt;br /&gt;
Neben [[SlowRF]] nutzt der MapleCUN Intertechno und [[SOMFY|Somfy]] 433MHz. &lt;br /&gt;
&lt;br /&gt;
Wegen der fehlenden &amp;quot;Out&amp;quot;-Leitung am vierten Steckplatz kann man dort diese Protokolle aber auch nicht verwenden. Nutzbar am vierten Steckplatz sind [[HomeMatic]], [[MAX]], RWE, [[LaCrosse]] und FastRF (alles 868MHz). Durch die Wahl des Protokolls wird die Frequenz automatisch eingestellt &#039;&#039;&#039;und kann auch nicht geändert werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Weitere Infos zu [http://culfw.de/culfw.html SlowRF]&lt;br /&gt;
&lt;br /&gt;
== Bootloader flashen ==&lt;br /&gt;
Zum Flashen kann entweder von ST der &amp;quot;STM32 Flash Loader Demonstrator&amp;quot; oder das Tool stm32flash benutzt werden. Flashen über den originalen MAPLE Bootloader per USB funktioniert nicht.&lt;br /&gt;
&lt;br /&gt;
Pin Belegung zum Bootloader flashen:&lt;br /&gt;
* FTDI-GND an MapleMini-GND&lt;br /&gt;
* FTDI-VCC an MapleMini-VCC&lt;br /&gt;
* FTDI-TX an MapleMini-rx1&lt;br /&gt;
* FTDI-RX an MapleMini-tx1&lt;br /&gt;
* MapleMini-boot1 an MapleMini-GND&lt;br /&gt;
&lt;br /&gt;
MapleMini in den Flash-Modus versetzen:&lt;br /&gt;
* Taster [But32] und Taster [Reset] drücken&lt;br /&gt;
* Taster [Reset] los lassen&lt;br /&gt;
* Nach ca. 1 sec. den Taster [But32] los lassen&lt;br /&gt;
* Der MapleMini befindet sich jetzt im Flash-Modus und kann über rx1 und tx1 geflasht werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Flash1.png|Flash Bootloader 1|alt=alt language&lt;br /&gt;
File:Flash2.png|Flash Bootloader 2|alt=alt language&lt;br /&gt;
File:Flash3.png|Flash Bootloader 3|alt=alt language&lt;br /&gt;
File:Flash4.png|Flash Bootloader 4|alt=alt language&lt;br /&gt;
File:Flash5.png|Flash Bootloader 5|alt=alt language&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bootloader flashen ohne TTL-Adapter ==&lt;br /&gt;
[[Datei:MapleCUN Bootloader serial monitor.png|mini|200px|rechts|Bootloader, serieller Monitor]]&lt;br /&gt;
Der Bootloader kann mittlerweile auch komplett ohne TTL-Adapter über den USB-Port des MapleMini geflasht werden. Grundbedingung dürfte wohl nur sein, dass bereits ein Bootloader geflasht ist (beim Anschließen leuchtet/blinkt die blaue LED). Dazu müssen erst in der Arduino IDE die nötigen Treiber installiert werden. Die Anleitung für die gängigen Betriebssysteme findet sich [https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Installation hier].&lt;br /&gt;
&lt;br /&gt;
Wichtig: Hierbei sollten auch wirklich die Treiber von dort verwendet werden und keine vorher evtl. von anderen Quellen installierten Treiber. Nach der Installation muss die IDE neu gestartet werden. Im Anschluss kann der Sketch von [https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Bootloader#update-using-the-updater-sketch hier] installiert werden.&lt;br /&gt;
&lt;br /&gt;
Es kann sein, dass nach der Installation in der Konsole steht, dass der Reset am Board nicht geklappt hat. In dem Fall muss der Maple noch händisch per reset-Button resettet werden.&lt;br /&gt;
Nachdem das Board wieder erkannt wurde (Port: COMx), muss der Serielle Monitor in der Arduino IDE aufgerufen werden. Dort sollte dann der obere Teil des Screenshots zu sehen sein. Nun muss noch in der Textbox oben &amp;quot;Y&amp;quot; eingeben und das ganze mit &#039;&#039;Senden&#039;&#039; freigegeben werden.&lt;br /&gt;
Wenn das wie auf dem Screenshot gezeigt durchgelaufen ist, kann jetzt direkt a-culfw geflasht werden.&lt;br /&gt;
&lt;br /&gt;
== Alternative Bootloader ==&lt;br /&gt;
Alternativ zum V2 bootloader kann auch der MSC Bootloader verwendet werden (anzupassen: der Maple hat die LED an PB1).&lt;br /&gt;
&lt;br /&gt;
Der MSC Bootloader stellt ein USB Laufwerk bereit, auf welches z.B. mit dem Dateimanager einfach die Firmware kopiert wird.&lt;br /&gt;
&lt;br /&gt;
Zweimal innerhalb einer Sekunde &amp;quot;Reset&amp;quot; betätigen startet den Bootloader. Dieser funktioniert aber wegen der unterschiedlichen USB Reset Schaltung auch nicht mit dem Blue Pill (siehe {{Link2Forum|Topic=101610|LinkText=diesen Forentitel}}).&lt;br /&gt;
&lt;br /&gt;
== Firmware / Flashen ==&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Sofern auf dem Maple bereits der spezielle und zur Firmware passende Bootloader installiert ist, kann über den USB-Port geflasht werden, ansonsten wird noch ein USB/TTL Wandler benötigt. Da der UART1 Anschluss des Controllers 5V-tolerant ist kann auch ein Wandler mit 5V Ausgang verwendet werden. Angeschlossen wird der Wandler an den Debug-Port (DBG).&lt;br /&gt;
&lt;br /&gt;
Achtung: Der Bootloader sollte ohne zwingenden Grund niemals getauscht werden. Bei Firmwareupdates reicht es normalerweise immer aus, nur die a-culfw zu tauschen.}}&lt;br /&gt;
&lt;br /&gt;
Die Sourcen sind auf [https://github.com/heliflieger/a-culfw github] zu finden, der Link auf die aktuellen binaries sowie auf die aktuelle Flash-Anleitung findet sich {{Link2Forum|Topic=60458|msg=518449|LinkText=hier (im ersten Post)}}.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist in der a-culfw enthalten. Für den MapleCUN gibt es jetzt nur noch zwei verschiedene Firmware-Dateien, je nach verwendetem Wizchip:&lt;br /&gt;
* MapleCUNx4_W5100.bin&lt;br /&gt;
* MapleCUNx4_W5500.bin&lt;br /&gt;
In diesen Versionen sind alle Protokolle enthalten. Für einen MapleCUL (also ohne LAN Modul) kann man beide Versionen verwenden. &lt;br /&gt;
&lt;br /&gt;
Falls kein Netzwerkmodul angeschlossen ist, wird dies automatisch erkannt. Auch die Anzahl der Transceivermodule wird automatisch erkannt.&lt;br /&gt;
&lt;br /&gt;
Anmerkungen zur Firmware:&lt;br /&gt;
*Die Umschaltung zwischen den RF Protokollen wurde angepasst. Dies funktioniert mit Ausnahme von KOPP_FC mit allen Protokollen.&lt;br /&gt;
*Folgende Einschränkungen gibt es für den Betrieb mit mehreren Transceivern:&lt;br /&gt;
*SlowRF funktioniert nur an CC0 und CC1.&lt;br /&gt;
*MBUS funktioniert an jedem Transceiver, aber insgesamt nicht an mehr als einem Transceiver gleichzeitig.&lt;br /&gt;
*KOPP_FC funktioniert nur an CC0.&lt;br /&gt;
*Die restlichen Protokolle funktionieren an allen Transceivern und auch mehrfach gleichzeitig.&lt;br /&gt;
*LaCrosse geht seit Firmware (a-culfw) 1.26.03. Empfangen funktioniert ohne Zusatzhardware mit einem freien 868Mhz Modul, auf das ein&lt;br /&gt;
::&amp;lt;code&amp;gt;set raw Nr1&amp;lt;/code&amp;gt;&lt;br /&gt;
:bzw.&lt;br /&gt;
::&amp;lt;code&amp;gt;set raw Nr2&amp;lt;/code&amp;gt;&lt;br /&gt;
:gesetzt wird.&lt;br /&gt;
&lt;br /&gt;
===Firmware flashen: ===&lt;br /&gt;
* Zuerst den Bootloader tauschen (einmalig)&lt;br /&gt;
* per USB das Firmware Binary flashen&lt;br /&gt;
Bitte jeweils die aktuelle README der Firmware beachten.&lt;br /&gt;
&lt;br /&gt;
Probleme beim Flashen:&lt;br /&gt;
&lt;br /&gt;
 sudo ./stm32flash -w maple_mini_boot20.bin -v /dev/ttyUSB1&lt;br /&gt;
 stm32flash 0.5&lt;br /&gt;
 &lt;br /&gt;
 http://stm32flash.sourceforge.net/&lt;br /&gt;
 &lt;br /&gt;
 Using Parser : Raw BINARY&lt;br /&gt;
 Interface serial_posix: 57600 8E1&lt;br /&gt;
 Version      : 0x22&lt;br /&gt;
 Option 1     : 0x00&lt;br /&gt;
 Option 2     : 0x00&lt;br /&gt;
 Device ID    : 0x0410 (STM32F10xxx Medium-density)&lt;br /&gt;
 - RAM        : 20KiB  (512b reserved by bootloader)&lt;br /&gt;
 - Flash      : 128KiB (size first sector: 4x1024)&lt;br /&gt;
 - Option RAM : 16b&lt;br /&gt;
 - System RAM : 2KiB&lt;br /&gt;
 Write to memory&lt;br /&gt;
 Erasing memory&lt;br /&gt;
 Got NACK from device on command 0x43&lt;br /&gt;
 Can&#039;t initiate chip mass erase!&lt;br /&gt;
 Failed to erase memory&lt;br /&gt;
&lt;br /&gt;
Lösung:&lt;br /&gt;
 sudo ./stm32flash -k  /dev/ttyUSB1                        &lt;br /&gt;
 ...&lt;br /&gt;
 Read-UnProtecting flash&lt;br /&gt;
&lt;br /&gt;
=== Trick zum USB-Flashen (Code Schnipsel für kleines Skript) ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 #! /bin/sh&lt;br /&gt;
 while (true); do&lt;br /&gt;
 sudo dfu-util --verbose --device 1eaf:0003 --cfg 1 --alt 2 --download MapleCUNx4_W5500_BL.bin&lt;br /&gt;
 #sudo dfu-util --verbose --device 1eaf:0003 --cfg 1 --alt 2 --download MapleCUNx4_W5100_BL.bin&lt;br /&gt;
 if [ $? -eq 0 ]&lt;br /&gt;
 then break&lt;br /&gt;
 fi&lt;br /&gt;
 sleep 1&lt;br /&gt;
 done&lt;br /&gt;
 exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware flashen unter Windows 7 - 64bit ==&lt;br /&gt;
Folgende Sourcen werden genutzt: &lt;br /&gt;
* https://github.com/rogerclarkmelbourne/Arduino_STM32&lt;br /&gt;
* https://zadig.akeo.ie/&lt;br /&gt;
&lt;br /&gt;
Die einzelnen Schritte: &lt;br /&gt;
* Reset des Maple durch drücken des Reset Buttons&lt;br /&gt;
* Drücken des &amp;quot;but=32&amp;quot; Buttons direkt nach dem Reset und gedrückt halten&lt;br /&gt;
* Der Maple sollte jetzt im 4 Hz Takt blinken und im DFU Modus sein&lt;br /&gt;
* &amp;quot;but=32&amp;quot; loslassen&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;doscon&amp;quot;&amp;gt;&lt;br /&gt;
 C:\tmp\Arduino_STM32-master\Arduino_STM32-master\tools\win&amp;gt;dfu-util --list&lt;br /&gt;
 dfu-util - (C) 2007-2008 by OpenMoko Inc.&lt;br /&gt;
 This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
 Found DFU: [0x1eaf:0x0003] devnum=1, cfg=0, intf=0, alt=0, name=&amp;quot;&amp;quot;&lt;br /&gt;
 Found DFU: [0x1eaf:0x0003] devnum=1, cfg=0, intf=0, alt=1, name=&amp;quot;STM32duino bootloader v1.0  Upload to Flash 0x8005000&amp;quot;&lt;br /&gt;
 Found DFU: [0x1eaf:0x0003] devnum=1, cfg=0, intf=0, alt=2, name=&amp;quot;STM32duino bootloader v1.0  Upload to Flash 0x8002000&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Treiber für den Maple mit Zadig setzen:&lt;br /&gt;
:&amp;lt;code&amp;gt;libusbk (v3.0.7.0)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Firmware flashen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;doscon&amp;quot;&amp;gt;&lt;br /&gt;
 C:\tmp\Arduino_STM32-master\Arduino_STM32-master\tools\win\dfu-util-0.9-win64&amp;gt;dfu-util --verbose --device 1eaf:0003 --cfg 1 --alt 2 --download MapleCUNx4_W5500_BL.bin&lt;br /&gt;
 dfu-util 0.9&lt;br /&gt;
 &lt;br /&gt;
 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.&lt;br /&gt;
 Copyright 2010-2016 Tormod Volden and Stefan Schmidt&lt;br /&gt;
 This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
 Please report bugs to http://sourceforge.net/p/dfu-util/tickets/&lt;br /&gt;
 &lt;br /&gt;
 Invalid DFU suffix signature&lt;br /&gt;
 A valid DFU suffix will be required in a future dfu-util release!!!&lt;br /&gt;
 Opening DFU capable USB device...&lt;br /&gt;
 ID 1eaf:0003&lt;br /&gt;
 Run-time device DFU version 0110&lt;br /&gt;
 Claiming USB DFU Interface...&lt;br /&gt;
 Setting Alternate Setting #2 ...&lt;br /&gt;
 Determining device status: state = dfuIDLE, status = 0&lt;br /&gt;
 dfuIDLE, continuing&lt;br /&gt;
 DFU mode device DFU version 0110&lt;br /&gt;
 Device returned transfer size 1024&lt;br /&gt;
 Copying data from PC to DFU device&lt;br /&gt;
 Download        [=========================] 100%        66288 bytes&lt;br /&gt;
 Download done.&lt;br /&gt;
 Sent a total of 66288 bytes&lt;br /&gt;
 state(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present&lt;br /&gt;
 Done!&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Tipp: Bei mir funktioniert das flashen nur direkt am PC. Ist ein USB Hub dazwischen erkennt dfu-util den Maple nicht.&lt;br /&gt;
&lt;br /&gt;
== Einrichtung in FHEM (alt) ==&lt;br /&gt;
Per USB oder LAN:&lt;br /&gt;
 ## USB&lt;br /&gt;
 define MAPLECUL1_868 CUL /dev/serial/by-id/usb-STM32_MAPLECUL_USB__6bfbb14f-if0@38400 4444&lt;br /&gt;
 ## LAN&lt;br /&gt;
 ## define MAPLECUL1_868 CUL IP:Port=2323 FHTIDattr MAPLECUL_USB_868 group Gateways&lt;br /&gt;
 #define MAPLECUL1_868 CUL 192.168.1.65:2323 1234&lt;br /&gt;
 attr MAPLECUL1_868 icon cul_868&lt;br /&gt;
 attr MAPLECUL1_868 model CUN&lt;br /&gt;
 attr MAPLECUL1_868 hmId 308393 &lt;br /&gt;
 attr MAPLECUL1_868 rfmode HomeMatic&lt;br /&gt;
 attr MAPLECUL1_868 room TRX&lt;br /&gt;
 attr MAPLECUL1_868 group Gateways&lt;br /&gt;
&lt;br /&gt;
1234 oder 4444 muss oder besser kann durch eine eigene &amp;quot;FHTID&amp;quot; ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Die zusätzlichen Transceiver werden als STACKABLE_CC angelegt.&lt;br /&gt;
&lt;br /&gt;
 define MAPLECUL2_433 STACKABLE_CC MAPLECUL1_868&lt;br /&gt;
 attr MAPLECUL2_433 group Gateways&lt;br /&gt;
 attr MAPLECUL2_433 icon cul_cul&lt;br /&gt;
 attr MAPLECUL2_433 model CUN&lt;br /&gt;
 attr MAPLECUL2_433 room TRX&lt;br /&gt;
 attr MAPLECUL2_433 rfmode SlowRF&lt;br /&gt;
 &lt;br /&gt;
 define MAPLECUL3 STACKABLE_CC MAPLECUL2_433&lt;br /&gt;
 attr MAPLECUL3 group Gateways&lt;br /&gt;
 attr MAPLECUL3 icon cul_868&lt;br /&gt;
 attr MAPLECUL3 rfmode SlowRF&lt;br /&gt;
 attr MAPLECUL3 room 8.00_Zentral,TRX&lt;br /&gt;
 &lt;br /&gt;
 define MAPLECUL4 STACKABLE_CC MAPLECUL3&lt;br /&gt;
 attr MAPLECUL4 group Gateways&lt;br /&gt;
 attr MAPLECUL4 hmId 308393&lt;br /&gt;
 attr MAPLECUL4 icon cul_868&lt;br /&gt;
 attr MAPLECUL4 rfmode HomeMatic&lt;br /&gt;
 attr MAPLECUL4 room 8.00_Zentral,TRX&lt;br /&gt;
&lt;br /&gt;
== Einrichtung in FHEM (neu) ==&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Läuft aktuell nicht stabil. Siehe Forenthema  {{Link2Forum|Topic=99751|LinkText=MAPLECUN verabschiedet sich seit einigen Tagen jede Stunde}}.}}&lt;br /&gt;
Beispiel: Bis zu 4fach:&lt;br /&gt;
 define MAPLECUL1_868 CUL /dev/serial/by-id/usb-STM32_MAPLECUL_USB__6bfbb14f-if0@38400 4444&lt;br /&gt;
 #define MAPLECUL1_868 CUL 192.168.1.65:2323 1234&lt;br /&gt;
 #define MAPLECUL1_868 CUL IP:Port=2323 FHTIDattr MAPLECUL_USB_868 group Gateways&lt;br /&gt;
 attr MAPLECUL1_868 icon cul_868&lt;br /&gt;
 attr MAPLECUL1_868 model CUN&lt;br /&gt;
 attr MAPLECUL1_868 hmId 308393 &lt;br /&gt;
 attr MAPLECUL1_868 rfmode HomeMatic&lt;br /&gt;
 attr MAPLECUL1_868 room TRX&lt;br /&gt;
 attr MAPLECUL1_868 group Gateways&lt;br /&gt;
 &lt;br /&gt;
 define MAPLECUL1Stack STACKABLE MAPLECUL1_868&lt;br /&gt;
 attr MAPLECUL1Stack room TRX&lt;br /&gt;
 define MAPLECUL2_433 CUL FHEM:DEVIO:MAPLECUL1Stack:9600 0000&lt;br /&gt;
 attr MAPLECUL2_433 group Gateways&lt;br /&gt;
 attr MAPLECUL2_433 icon cul_cul&lt;br /&gt;
 attr MAPLECUL2_433 model CUN&lt;br /&gt;
 attr MAPLECUL2_433 room TRX&lt;br /&gt;
 attr MAPLECUL2_433 rfmode SlowRF&lt;br /&gt;
 &lt;br /&gt;
 define MAPLECUL2Stack STACKABLE MAPLECUL2_433&lt;br /&gt;
 attr MAPLECUL2Stack room TRX&lt;br /&gt;
 define MAPLECUL3 CUL FHEM:DEVIO:MAPLECUL2Stack:9600 0000&lt;br /&gt;
 attr MAPLECUL3 group Gateways&lt;br /&gt;
 attr MAPLECUL3 icon cul_868&lt;br /&gt;
 attr MAPLECUL3 rfmode SlowRF&lt;br /&gt;
 attr MAPLECUL3 room 8.00_Zentral,TRX&lt;br /&gt;
 &lt;br /&gt;
 define MAPLECUL4Stack STACKABLE MAPLECUL3&lt;br /&gt;
 attr MAPLECUL4Stack room TRX&lt;br /&gt;
 define MAPLECUL4 CUL FHEM:DEVIO:MAPLECUL4Stack:9600 0000&lt;br /&gt;
 attr MAPLECUL4 group Gateways&lt;br /&gt;
 attr MAPLECUL4 hmId 308393&lt;br /&gt;
 attr MAPLECUL4 icon cul_868&lt;br /&gt;
 attr MAPLECUL4 rfmode HomeMatic&lt;br /&gt;
 attr MAPLECUL4 room 8.00_Zentral,TRX&lt;br /&gt;
&lt;br /&gt;
 #nach shutdown restart&lt;br /&gt;
 set MAPLECUL2_433 freq 433.920&lt;br /&gt;
 set MAPLECUL2_433 bWidth 464&lt;br /&gt;
 set MAPLECUL2_433 rAmpl 42&lt;br /&gt;
 set MAPLECUL2_433 sens 4&lt;br /&gt;
 # 115200 Baud für HM-Mod-UART und z.B. CC2530&lt;br /&gt;
 set MAPLECUL1_868 raw pb0@115200&lt;br /&gt;
 set MAPLECUL1_868 raw pb1@115200&lt;br /&gt;
 set MAPLECUL1_868 raw ps&lt;br /&gt;
&lt;br /&gt;
Beispiel 4* ZWAVE Seriell:&lt;br /&gt;
 define mCUL ZWCUL /dev/serial/by-id/usb-STM32_MapleCUL_71a7e023-if00 00000000 01&lt;br /&gt;
 attr mCUL dataRate 100k&lt;br /&gt;
 &lt;br /&gt;
 define SCC1 STACKABLE mCUL&lt;br /&gt;
 define z100k ZWCUL FHEM:DEVIO:SCC1:9600 00000000 01&lt;br /&gt;
 attr z100k dataRate 100k&lt;br /&gt;
 &lt;br /&gt;
 define SCC2 STACKABLE z100k&lt;br /&gt;
 define z40k ZWCUL FHEM:DEVIO:SCC2:9600 00000000 01&lt;br /&gt;
 attr z40k dataRate 40k&lt;br /&gt;
 &lt;br /&gt;
 define SCC3 STACKABLE z40k&lt;br /&gt;
 define z9k6 ZWCUL FHEM:DEVIO:SCC3:9600 00000000 01&lt;br /&gt;
 attr z9k6 dataRate 9600&lt;br /&gt;
&lt;br /&gt;
Beispiel 2 fach:&lt;br /&gt;
 define CULMGrau868 CUL /dev/serial/by-id/usb-STM32_MapleCUL_6bfbb14f-if00@38400 1432&lt;br /&gt;
 attr CULMGrau868 group Gateways&lt;br /&gt;
 attr CULMGrau868 icon cul_868&lt;br /&gt;
 attr CULMGrau868 model CUN&lt;br /&gt;
 attr CULMGrau868 rfmode SlowRF&lt;br /&gt;
 &lt;br /&gt;
 define CULMGrau868Stack STACKABLE CULMGrau868&lt;br /&gt;
 &lt;br /&gt;
 define CULMGrau433 CUL FHEM:DEVIO:CULMGrau868Stack:9600 0000&lt;br /&gt;
 attr CULMGrau433 group Gateways&lt;br /&gt;
 attr CULMGrau433 icon cul_cul&lt;br /&gt;
 attr CULMGrau433 model CUN&lt;br /&gt;
 attr CULMGrau433 rfmode SlowRF&lt;br /&gt;
&lt;br /&gt;
== Zusätzliche Serielle Schnittstellen ==&lt;br /&gt;
Die UARTs werden als &amp;quot;virtuelle&amp;quot; Schnittstellen per USB und LAN bereitgestellt:&lt;br /&gt;
* Über USB werden zwei weitere Schnittstellen angelegt (typischerweise neben /dev/ttyACM0 eben /dev/ttyACM1 und /dev/ttyACM2 unter Linux und unter Windows einfach zwei weitere COM Ports).&lt;br /&gt;
&lt;br /&gt;
Beispiel HM-UART an der zweite Seriellen-Schnittstelle auf einer Ranseyer Platine gelötet und local „by-id“ angesprechen:&lt;br /&gt;
:&amp;lt;code&amp;gt;define mapleCUL CUL /dev/serial/by-id/usb-STM32_MapleCUL_71a7e023-if00@38400 4444  ### &amp;lt;/code&amp;gt; &lt;br /&gt;
Der MAPLE-Cul selbst&lt;br /&gt;
:&amp;lt;code&amp;gt;define myRemoteHmUART HMUARTLGW /dev/serial/by-id/usb-STM32_MapleCUL_71a7e023-if02 ### &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die zweite Serielle&lt;br /&gt;
* Der Netzwerkzugriff erfolgt über die Ports 2324 und 2325.&lt;br /&gt;
&lt;br /&gt;
Zur Einstellung der Baudrate über Netzwerk gibt es folgende Befehle:&lt;br /&gt;
* UART0 Baudrate einstellen: pb0@38400&lt;br /&gt;
* UART1 Baudrate einstellen: pb1@9600&lt;br /&gt;
* Baudrate im EEPROM speichern: ps&lt;br /&gt;
* Baudrate anzeigen: pi&lt;br /&gt;
&lt;br /&gt;
 set MapleCUL raw pb0@38400&lt;br /&gt;
 set MapleCUL raw pb1@9600&lt;br /&gt;
 set MapleCUL raw ps&lt;br /&gt;
 get MapleCUL raw pi&lt;br /&gt;
&lt;br /&gt;
Ein am UART0 angeschlossener [[HM-MOD-RPI-PCB HomeMatic Funkmodul für Raspberry Pi#Platine 2 -UART-Modul|HM-MOD-UART]] kann z.B. mit folgender Definition in FHEM eingebunden werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myRemoteHmUART HMUARTLGW uart://192.168.42.23:2324&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weiteres:&lt;br /&gt;
:&amp;lt;code&amp;gt;UART0= 8+9 = PA3+2 &amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;UART1= 0+1 = PB11+10 &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für die Anbindung des MapleCUL ist die Baudrate egal, da kann man nichts falsch einstellen. Sie wird nicht benötigt, da der MapleCUL nicht über RS232 angebunden ist. Anders verhält es sich mit den beiden zusätzlichen UART0 und UART1 Ports. Dort ist die Baudrate relevant, da die serielle Schnittstelle dort auch physikalisch existiert.&lt;br /&gt;
&lt;br /&gt;
== Debugging / weiteres ==&lt;br /&gt;
* Das Gerät startet ständig neu: Netzteil tauschen!&lt;br /&gt;
* Ich habe das Netzteil schon getauscht. Nochmals tauschen! Grund: Ein 500mA Netzteil liefert meist 500mA ohne, dass das vorher auf den Datenleitungen ausgehandelt wurde. Kein 2A Netzteil. Diese liefern meist nur 100mA, wenn das Gerät nicht mehr anfordert. 100mA sind nur leider zu wenig, wenn ein CC1101 sendet. Das führt dann dazu, dass die Spannung kurz einbricht und der MapleCUN resetet. Das könnte möglicherweise in Zukunft per Software gefixt werden: https://github.com/heliflieger/a-culfw/pull/25&lt;br /&gt;
* Stromverbrauch der Transceiver: Typischerweise 17 mA für RX und 34 mA für TX pro Modul (bei Inaktivität: 4 Transceiver, LAN-Modul, MAPLE ca 100mA).&lt;br /&gt;
* Debug-Port bzw WLAN-Anbindung über den Debug-Port: Der Maple erkennt, ob am USB-Port Kommunikation stattfindet. Konkret: ist ein Rechner am USB Port des Maple angeschlossen, dann funktioniert USB oder LAN Betrieb des MapleCUN. Ist nur ein Steckernetzteil am USB (oder ein Kabel ohne Datenleitungen - wie z.B. von einer Powerbank), dann funktioniert der LAN und WLAN Betrieb. Das liegt daran, dass seit Firmware Version 1.26.02 alle Daten durch die a-culfw auf den Debugport kopiert werden.&lt;br /&gt;
* Auf die OUT-Leitung kann bei den meisten FastRF Protokollen verzichtet werden. MAX und HM funktionieren z.B. ohne OUT Leitung&lt;br /&gt;
* Beim ersten Transceiver ist der Status nicht &amp;quot;Initialized&amp;quot;: Möglicherweise ist die Verdrahtung fehlerhaft&lt;br /&gt;
* Der MAPLE-CUN startet ständig neu (z.B. unter Linux zu sehen bei &amp;lt;code&amp;gt;tail -f /var/log/syslog&amp;lt;/code&amp;gt;, hier taucht das selbe USB Gerät ständig neu auf): Eventuell wurde eine veraltete Firmware für das LAN-Modul aufgespielt, aber kein LAN-Modul erkannt&lt;br /&gt;
* Devices auf einem Linux Rechner:&lt;br /&gt;
 pi@raspberrypi:/dev/serial/by-id $ ls -la&lt;br /&gt;
 total 0&lt;br /&gt;
 drwxr-xr-x 2 root root 100 Jul 27 18:52 .&lt;br /&gt;
 drwxr-xr-x 4 root root  80 Jul 27 18:52 ..&lt;br /&gt;
 lrwxrwxrwx 1 root root  13 Jul 27 18:52 usb-STM32_MapleCUL_2788282f-if00 -&amp;gt; ../../ttyACM0&lt;br /&gt;
 lrwxrwxrwx 1 root root  13 Jul 27 18:52 usb-STM32_MapleCUL_2788282f-if02 -&amp;gt; ../../ttyACM1&lt;br /&gt;
 lrwxrwxrwx 1 root root  13 Jul 27 18:52 usb-STM32_MapleCUL_2788282f-if04 -&amp;gt; ../../ttyACM2&lt;br /&gt;
&lt;br /&gt;
* Wenn gar nicht mehr klar ist, wie der MAPLE-CUL eingestellt ist, ggf mal zurücksetzen (statt CUL1 das erste Gerät angeben): &lt;br /&gt;
:&amp;lt;code&amp;gt;set CUL1 raw e &amp;lt;/code&amp;gt;&lt;br /&gt;
* Wenn keiner der Transceiver erkannt, wird an einem beliebigen Modul von Pin8 rückwärts Kurschlüsse suchen bis Pin1. Also messen zwischen 8+7, 7+6, 6+5,... Anschliessend einen Pin auslassen und noch messen 8+6, 7+5, 6+4, ...)&lt;br /&gt;
* Debug Port (115.200; Ausgaben nur, wenn USB Kommunikation erfolgt; letzte vorkompilierte Firmware: 1.26.01. Bei neueren Firmwares ist statt Debug die WLAN Anbindung vorgesehen)&lt;br /&gt;
Beispiel für Meldungen am Debug-Port mit 4 Transceivern und LAN-Modul:&lt;br /&gt;
&lt;br /&gt;
 -I- Getting new Started Project --&lt;br /&gt;
 -I- MapleCUNx4&lt;br /&gt;
 -I- Compiled: Mar 18 2017 15:46:32 --&lt;br /&gt;
 -I- init Flash&lt;br /&gt;
 -I- init Timer&lt;br /&gt;
 -I- init EEprom&lt;br /&gt;
 -I- init Ethernet&lt;br /&gt;
 WIZCHIP Initialized success.&lt;br /&gt;
 -I- Detected CC0: PN 0x00  VER 0x14 &lt;br /&gt;
 -I- Detected CC1: PN 0x00  VER 0x18 &lt;br /&gt;
 -I- Detected CC2: PN 0x00  VER 0x14 &lt;br /&gt;
 -I- Detected CC3: PN 0x00  VER 0x14 &lt;br /&gt;
 -I- Detected ethernet &lt;br /&gt;
 -I- init USB&lt;br /&gt;
 -I- init Complete&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* {{Link2Forum|Topic=https://forum.fhem.de/index.php/topic,60458.0.html |LinkText=Diskussion im Forum}}&lt;br /&gt;
* [https://github.com/heliflieger/a-culfw/branches a-culfw Sourcecode]&lt;br /&gt;
* [[MapleCUX-Platinen|Fertige Platinen mit Erweiterungen wie mySensors, ESP8266, ...]]&lt;br /&gt;
* [[MapleCUx und 1-wire|MapleCUx und 1-wire]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:CUL]]&lt;br /&gt;
[[Kategorie:433MHz]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=JeeLink&amp;diff=34563</id>
		<title>JeeLink</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=JeeLink&amp;diff=34563"/>
		<updated>2021-01-09T12:24:19Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Formatierung Relay Betrieb&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;JeeLink&#039;&#039;&#039; ist ein RF-Gerät im Formfaktor eines USB-Sticks mit externer Antenne.&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=JeeLink.jpg&lt;br /&gt;
|Bildbeschreibung=JeeLink mit Drahtantenne&lt;br /&gt;
|HWProtocol=PCA301, EC3000, RoomNode oder LaCrosse und EMT7110&lt;br /&gt;
|HWType=[[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=433/868/913 MHz&lt;br /&gt;
|HWChannels=?&lt;br /&gt;
|HWVoltage=5 V&lt;br /&gt;
|HWPowerConsumption=ca. 90 mA&lt;br /&gt;
|HWPoweredBy=USB&lt;br /&gt;
|HWSize=23*67*9mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#JeeLink 36_JeeLink.pm]&lt;br /&gt;
|ModOwner={{Link2FU|430|Andre / justme1968}}&lt;br /&gt;
|HWManufacturer=JeeLabs&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Vergleichbar mit dem [[CUL]] von Busware, ist der JeeLink ein USB-Stick, mit dem Funk-Hausautomations-Komponenten angebunden werden können. CUL und JeeLink unterscheiden sich im Funkmodul (CUL -&amp;gt; CC1101; JeeLink -&amp;gt; RF12B), die nicht miteinander kompatibel sind. Daher kann man auch keinen CUL als JeeLink-Ersatz nutzen!&lt;br /&gt;
&lt;br /&gt;
Den JeeLink gibt es in einer &lt;br /&gt;
* 433 MHz Version&lt;br /&gt;
* 868 MHz Version (Standard)&lt;br /&gt;
* 915 MHz Version (Betrieb in Europa nicht zugelassen)&lt;br /&gt;
&lt;br /&gt;
== Vorbereitung JeeLink == &lt;br /&gt;
Um mit dem JeeLink die jeweils gewünschten Signale empfangen zu können, ist er zunächst mit der passenden Firmware zu versorgen. Dies kann auf zwei Arten geschehen. Entweder durch das selber kompilieren der Software und das Flashen aus der Arduino IDE oder aus FHEM heraus mit einem aktuellen Firmwareimage das per update mit ausgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
=== Selber Kompilieren ===&lt;br /&gt;
[[Datei:JeeLink_flashen_1.jpg|mini|100px|rechts|Vorbereitung: Arduino einrichten]]&lt;br /&gt;
Um den JeeLink mit FHEM benutzen zu können, muss (mit der Arduino Software / Entwicklungsumgebung (IDE)) eine spezifische &amp;quot;Firmware&amp;quot; (ein Sketch) auf dem JeeLink installiert werden. Die generelle Vorbereitung für diese Aktion ist unabhängig vom benötigten Sketch und besteht aus den folgenden Schritten:&lt;br /&gt;
* Für Windows oder Mac OS X den passenden [http://www.ftdichip.com/Drivers/VCP.htm FTDI Treiber] installieren, unter Linux ist dieser meist schon vorhanden&lt;br /&gt;
* Installation der [http://arduino.cc/de/Guide/HomePage Arduino Software] für die benutzte Plattform (verfügbar sind Windows, Mac OS X und Linux)&lt;br /&gt;
* Je nach Sketch einbinden der [https://github.com/jcw/jeelib/archive/master.zip Jeelabs Library] in die Arduino IDE&lt;br /&gt;
* Herunterladen des benötigten Sketches (aus [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino FHEM/contrib])&lt;br /&gt;
* Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE&lt;br /&gt;
* Start der Arduino Software und JeeLink flashen&lt;br /&gt;
&lt;br /&gt;
=== JeeLink aus Arduino flashen ===&lt;br /&gt;
[[Datei:JeeLink_flashen_2.jpg|mini|100px|rechts|JeeLink Flashen]]&lt;br /&gt;
* Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE&lt;br /&gt;
* Start der Arduino Software&lt;br /&gt;
* Seriellen Port des JeeLink auswählen&lt;br /&gt;
* Einstellungen: in den Tools als Board &amp;quot;Arduino Uno&amp;quot; auswählen&lt;br /&gt;
* Sketch mit &amp;quot;Datei öffnen&amp;quot; auswählen&lt;br /&gt;
* Upload klicken&lt;br /&gt;
&lt;br /&gt;
=== JeeLink aus FHEM flashen ===&lt;br /&gt;
* Auf dem FHEM System muss &amp;quot;avrdude&amp;quot; installiert sein. Das kann z.B. über die &amp;quot;normale&amp;quot; Linux Paketverwaltung geschehen.&lt;br /&gt;
** Auf dem Paspberry (Raspbian Linux) funktioniert die Installation von &amp;quot;avrdude&amp;quot; mit &amp;lt;code&amp;gt;sudo apt-get update&amp;lt;/code&amp;gt; und dannach &amp;lt;code&amp;gt;sudo apt-get install avrdude&amp;lt;/code&amp;gt;&lt;br /&gt;
* mit &amp;lt;code&amp;gt;set &amp;lt;JeeLinkDevice&amp;gt; flash [firmware]&amp;lt;/code&amp;gt; wird das Flashen angestossen&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;firmware&amp;lt;/code&amp;gt; kann LaCrosse, PCA301 oder EC3000 sein. Wenn &amp;lt;code&amp;gt;firmware&amp;lt;/code&amp;gt; nicht angegeben wird versucht FHEM den Namen der zu flashenden Firmware aus der zur Zeit installierten Firmware abzuleiten.&lt;br /&gt;
* im FHEM Log kann der Ausgang des Flashvorgangs kontrolliert werden&lt;br /&gt;
* über das &amp;lt;code&amp;gt;flashCommand&amp;lt;/code&amp;gt; Attribut lässt sich das Kommando zum Flashen an besondere Anforderungen anpassen &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorsicht bei Jeelink Clones!&#039;&#039;&#039; &lt;br /&gt;
 &lt;br /&gt;
Jeelink Clones basierend auf dem Arduino Nano haben normalerweise keinen Optibootloader drauf im Gegensatz zum Original JeeLink und JeeNode. &lt;br /&gt;
&lt;br /&gt;
Konsequenz: &lt;br /&gt;
 &lt;br /&gt;
Beim &amp;quot;Nano Clone&amp;quot; und ähnliches muß man zum flashen in FHEM die Baudrate setzen mit &amp;quot;-b 57600&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Original JeeLink, original JeeNode, und alle Arduinos, die einen Optibootloader drauf haben flashen in FHEM ohne &amp;quot;-b 57600&amp;quot; &lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit FHEM == &lt;br /&gt;
Um den JeeLink (erstmalig) mit FHEM benutzen zu können, muss dieser erfolgreich geflasht worden sein.&lt;br /&gt;
* JeeLink an den FHEM-Rechner anschließen&lt;br /&gt;
* Auf Linux Systemen kann es notwendig sein, mit &amp;lt;code&amp;gt;mknod /dev/ttyUSB0 c 188 0&amp;lt;/code&amp;gt; das Device anzulegen (bitte erst überprüfen, ob der Stick nicht automatisch erkannt wird)&lt;br /&gt;
&lt;br /&gt;
=== Definition in fhem.cfg ===&lt;br /&gt;
Erforderliche Definitionen in FHEM:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myJeeLink JeeLink /dev/ttyUSBx@57600&amp;lt;/code&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;USBx&#039;&#039;&#039; ist anzupassen an die aktuell benutzte Schnittstelle, 0 wenn sonst nichts am USB-Port hängt&lt;br /&gt;
*x=0,1,2, usw.&lt;br /&gt;
&lt;br /&gt;
Die [http://fhem.de/commandref.html#autocreate autocreate-Funktion] sollte aktiv sein. Alle erkannten Devices (PCA301, LaCrosse Sensoren incl. IT+ Wetterstation WS1600, EMT7110, EC3000,  und RoomNodes) werden dann automatisch angelegt, sobald die jeweiligen Daten empfangen werden.&lt;br /&gt;
&lt;br /&gt;
Pro Geräte-Art/Protokoll muss ein eigener JeeLink mit dem passenden Sketch zum Empfang dieser Daten vorhanden sein (es kann jeweils nur ein Sketch im JeeLink aktiv sein und es gibt (zumindest derzeit (04/2014)) keinen Sketch, der mehr als eines der Protokolle abdeckt).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Der LaCrosse Sketch deckt sowohl die LaCrosse Temperatursensoren, die IT+ Wetterstation WS1600 als auch den Energieverbrauchssensor EMT7110 ab.&lt;br /&gt;
&lt;br /&gt;
=== PCA301 Sketch ===&lt;br /&gt;
Der Sketch für die Unterstützung der &#039;&#039;PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung&#039;&#039; (PCA301-pcaSerial.zip) kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ FHEM-Repository] heruntergeladen werden. Details zur Benutzung finden sich im Artikel zur [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung|PCA301]].&lt;br /&gt;
&lt;br /&gt;
Unter Umständen werden die Signale der PCA301 nicht empfangen. Insbesondere mit selbst erstellten &amp;quot;JeeLinks&amp;quot; durch wahrscheinlich hohe Bauteiltoleranzen der RF12B Sendeeinheiten. Mit dem im Sketch voreingestellten rf12_center_freq = 0xA6FE (868,9500 MHz) bekommt man in diesem Fall keine Steckdose angelernt.&lt;br /&gt;
&lt;br /&gt;
==== Frequenzanpassung über modifizierten Sketch ====&lt;br /&gt;
Durch Tests mittels &#039;&#039;set &amp;lt;myJeeLink&amp;gt; raw +&#039;&#039; bzw &#039;&#039;set &amp;lt;myJeeLink&amp;gt; raw -&#039;&#039; kann man dann ermitteln, ob die Funksignale z.B. ab A703 bis A715 empfangen werden. Das entspricht einem Frequenzbereich zwischen 868,9750 MHz und 869,0550 MHz.&lt;br /&gt;
Die Mitte ist die Lösung, die man dann im Sketch ändern muss:&lt;br /&gt;
:&amp;lt;code&amp;gt;static uint16_t rf12_center_freq = 0xA70C;&amp;lt;/code&amp;gt;&lt;br /&gt;
Anschließend auf den JeeLink neu flashen.&lt;br /&gt;
&lt;br /&gt;
==== Frequenzanpassung über Attribut initCommands ====&lt;br /&gt;
Über das &amp;lt;code&amp;gt;initCommands&amp;lt;/code&amp;gt; lässt sich die gefundene Frequenz einstellen, ohne dass die Firmware verändert werden muss. &lt;br /&gt;
:&amp;lt;code&amp;gt;attr &amp;lt;JeeLinkDevice&amp;gt; initCommands &amp;lt;hhhh&amp;gt;h&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaCrosse Sketch ===&lt;br /&gt;
Der Sketch für die Unterstützung der LaCrosse Temperatursensoren, der IT+ Wetterstation WS1600 und des Energieverbrauchssensors EMT7110 so wie auch TechnoLine Sensoren (Temperatur, Luftfeuchte,...).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Er kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino FHEM-Repository] heruntergeladen werden.&lt;br /&gt;
* Alternative ist den Sketch direkt über FHEM zu flashen &amp;lt;code&amp;gt;set &amp;lt;JeeLinkDevice&amp;gt; flash LaCrosse&amp;lt;/code&amp;gt; z.B.: &amp;lt;code&amp;gt;set myJeeLink flash LaCrosse&amp;lt;/code&amp;gt; zuvor sollte aber ein FHEM update mit &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; durchgeführt werden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sensoren anlernen:&lt;br /&gt;
Mit folgenden Befehl hat man die Möglichkeit 60 Sekunden ein Gerät anzulernen. Das Gerät erscheint dann unter der Rubrik LaCrosse. &amp;lt;code&amp;gt;set &amp;lt;JeeLinkDevice&amp;gt; LaCrossePairForSec 60&amp;lt;/code&amp;gt; zum Beispiel: &amp;lt;code&amp;gt;set myJeeLink LaCrossePairForSec 60&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In der neuesten Version unterstützt er auch den SuperJee&#039;&#039;&#039; (siehe auch diesen {{Link2Forum|Topic=14786|Message=316924|LinkText=Forenbeitrag}}) mit folgenden Optionen:  &lt;br /&gt;
&lt;br /&gt;
* Option 1 (Dual RFM): &lt;br /&gt;
:Es kann ein zweiter RFM12B oder RFM69CW angeschlossen werden. Somit können zwei data rates (z.B. 17241 für TX29DTH und 8842 für WS 1600) gleichzeitig empfangen werden. Das geht natürlich auch mit dem toggle mode, nur ist es bei der Wetterstation ärgerlich, wenn man 30 Sekunden lang nichts empfängt und dadurch die alles entscheidende Windböe verpasst.&lt;br /&gt;
* Option 2 (BMP180): &lt;br /&gt;
:Da der Luftdruck in den Basisstationen gemessen wird, steht er für FHEM nicht zur Verfügung.&lt;br /&gt;
Deshalb kann nun optional ein BMP180 oder BMP085 angeschlossen werden. Auch hier wird automatisch erkannt, ob er vorhanden ist. &lt;br /&gt;
:Der BMP180 wird mit 3,3V versorgt und SDA mit PC4 und SCL mit PC5 verbunden (siehe die in diesem {{Link2Forum|Topic=14786|Message=316924|LinkText=Forenbeitrag}} angehängte SuperJee-CL.png) &lt;br /&gt;
&lt;br /&gt;
==== Übersicht Kommandos ====&lt;br /&gt;
 &amp;lt;n&amp;gt;a     set to 0 if the blue LED bothers&lt;br /&gt;
 &amp;lt;n&amp;gt;f     initial frequency in kHz (5 kHz steps, 860480 ... 879515)  (for RFM #1)&lt;br /&gt;
 &amp;lt;n&amp;gt;F     initial frequency in kHz (5 kHz steps, 860480 ... 879515)  (for RFM #2)&lt;br /&gt;
 &amp;lt;n&amp;gt;h     altituide above sea level&lt;br /&gt;
 &amp;lt;n&amp;gt;m     bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps (for RFM #1)&lt;br /&gt;
 &amp;lt;n&amp;gt;M     bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps (for RFM #2)&lt;br /&gt;
 &amp;lt;n&amp;gt;r     use one of the possible data rates (for RFM #1)&lt;br /&gt;
 &amp;lt;n&amp;gt;R     use one of the possible data rates (for RFM #2)&lt;br /&gt;
 &amp;lt;n&amp;gt;t     0=no toggle, else interval in seconds (for RFM #1)&lt;br /&gt;
 &amp;lt;n&amp;gt;T     0=no toggle, else interval in seconds (for RFM #2)&lt;br /&gt;
    v     show version&lt;br /&gt;
 &amp;lt;n&amp;gt;y     if 1 all received packets will be retransmitted  (Relay mode)&lt;br /&gt;
&lt;br /&gt;
==== Relay-Betrieb ====&lt;br /&gt;
Der LaCrosse Sketch ermöglicht auch den Relay-Betrieb zur Reichweitenverbesserung. Er funktioniert damit ähnlich wie z.&amp;amp;nbsp;B. ein WLAN Range Extender. Wenn der Sketch für den Relay-Betrieb konfiguriert ist, wird jedes empfangene IT+ Datenpaket, das eine gültige Prüfsumme hat, direkt nach dem Empfang wieder gesendet.&lt;br /&gt;
&lt;br /&gt;
Das Prinzip ist generell recht einfach:&lt;br /&gt;
# JeeLink im Sketch als Relais konfigurieren und flashen: Um den Relay Betrieb einzuschalten, muss im Sketch der Parameter &amp;lt;code&amp;gt;bool RELAY = 1;&amp;lt;/code&amp;gt; auf den Wert 1 gesetzt werden. Falls die LED stört, kann diese im Sketch durch Setzen des Parameters &amp;lt;code&amp;gt;#define ENABLE_ACTIVITY_LED 0&amp;lt;/code&amp;gt; auf 0 gesetzt werden.&lt;br /&gt;
# Auf &amp;quot;halber Strecke&amp;quot; (d.h. irgendwo zwischen dem primären Sender und dem entfernten Empfänger) auf ein USB-Steckernetzteil stecken. Der JeeLink arbeitet in diesem Modus &amp;quot;autonom&amp;quot;, er benötigt also lediglich einen Spannungsversorgung.&lt;br /&gt;
&lt;br /&gt;
Der JeeLink empfängt und decodiert alle Protokolle, die er auch für FHEM unterstützt. Wenn er ein Paket empfangen hat (egal von welchem Sensor) und CRC OK war, dann sendet er es wieder aus. Der JeeLink am FHEM merkt keinen Unterschied. Falls ein Paket es doch bis zum FHEM direkt geschafft hat, kommt es dort zweimal an. Diese Situation muss in FHEM behandelt werden.&lt;br /&gt;
&lt;br /&gt;
Details zu diesem Betriebsmodus sind in diesen Forenbeiträgen ({{Link2Forum|Topic=14786|Message=165153|LinkText=LaCrosse}} bzw. {{Link2Forum|Topic=26494|Message=196648|LinkText=EMT7110}}) zu finden.&lt;br /&gt;
&lt;br /&gt;
==== Frequenzanpassung ====&lt;br /&gt;
Ab Version LaCrosseITPlusReader.10.1e wurde der  Sketch so erweitert, dass man von FHEM aus die Frequenz setzen kann. Dazu versteht der Sketch das neue Kommando &amp;quot;f&amp;quot;:&lt;br /&gt;
:&amp;lt;code&amp;gt;set myJeeLink raw 868295f&amp;lt;/code&amp;gt;&lt;br /&gt;
setzt die Frequenz auf 868295 kHz.&lt;br /&gt;
&lt;br /&gt;
Die Frequenz kann im Bereich von 860480 kHz bis 879515 kHz in 5kHz -Schritten eingestellt werden.&lt;br /&gt;
Details dazu in diesem {{Link2Forum|Topic=14786|Message=222541}} im Forum. Die Frequenzanpassung ist insbesondere beim 30.3155.WD häufig erforderlich, weshalb er als kritisch einzustufen und nicht zu empfehlen ist (siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}).&lt;br /&gt;
&lt;br /&gt;
==== Toggle und Datenrate ====&lt;br /&gt;
Toggle&lt;br /&gt;
 t: toggle time&lt;br /&gt;
 20t = alle 20 Sekunden die Datenrate wechseln&lt;br /&gt;
&lt;br /&gt;
Datenrate&lt;br /&gt;
 m: toggle mode&lt;br /&gt;
 bits:  1= 17.241 kbps, 2= 9.579 kbps, 4= 8.842 kbps&lt;br /&gt;
 3m ist 17.241 kbps (TX29) und 9.579 kbps (TX35)&lt;br /&gt;
&lt;br /&gt;
Beispiel initCommands&lt;br /&gt;
 6m 30t v&lt;br /&gt;
 Zwischen 8.842 kbps und 9.579 kbps wechseln (4+2=6), alle 30 Sekunden&lt;br /&gt;
&lt;br /&gt;
==== Unterstützte Sensoren und Aktoren incl. Wetterstation WS 1600 ====&lt;br /&gt;
{{Randnotiz|RNTyp=y|RNText=Die Ausführungen in diesem Abschnitt gelten ab der Version 10.1q auch für die Wetterstation WS1080.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig WS1800&#039;&#039;&#039;: die WS1080 gibt es (unter gleichem Namen) in einer &amp;quot;OOK&amp;quot;- und in einer &amp;quot;FSK&amp;quot;-Version.&lt;br /&gt;
* Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version wird  nicht unterstützt.&lt;br /&gt;
* Die FSK-Version ist zu erkennen an einem runden grünen Aufkleber im Batteriefach der Station mit dem Aufdruck &amp;quot;PASS 7&amp;quot;. Details dazu in {{Link2Forum|Topic=14786|Message=363766|LinkText=diesem Forenbeitrag}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die in der folgenden Liste (Quelle: {{Link2Forum|Topic=14786|Message=164801|LinkText=FHEM Forum}}) aufgeführten Sensoren wurden bisher erfolgreich getestet:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Bezeichnung     !! Datenrate   !! Link / Hinweise&lt;br /&gt;
|-&lt;br /&gt;
| TX21IT         || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX25-IT        || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX27-IT        || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX29-IT        || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX29DTH-IT     || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX37           || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX35TH-IT      ||  9.579 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX35DTH-IT     ||  9.579 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| 30.3143.IT     || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| 30.3144.IT     || 17.241 kbps || ({{Link2Forum|Topic=17662|LinkText=Forenthread}})&lt;br /&gt;
|-&lt;br /&gt;
| 30.3147.IT     || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| 30.3155WD      ||  9.579 kbps || kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}&lt;br /&gt;
|-&lt;br /&gt;
| 30.3156WD      ||  9.579 kbps || Batterie-kritisch. Funktioniert schlecht mit Akkus!&lt;br /&gt;
|-&lt;br /&gt;
| 30.3187.IT     || 17.241 kbps || haben alle die gleiche ID, daher nur einzeln verwendbar ({{Link2Forum|Topic=64636|LinkText=Forenthread}})&lt;br /&gt;
|-&lt;br /&gt;
| WT440XH        || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| WS 1600 (TX22) ||  8.842 kbps || ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})&lt;br /&gt;
|-&lt;br /&gt;
| WS 1080        || 17.241 kbps || Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})&lt;br /&gt;
|-&lt;br /&gt;
| [[EMT7110]]    ||  9.579 kbps || ({{Link2Forum|Topic=26494|LinkText=Forenthread}})&lt;br /&gt;
|-&lt;br /&gt;
| LevelSender    || 17.241 kbps || ({{Link2Forum|Topic=23217|LinkText=Forenthread}})&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Werden Sensoren mit unterschiedlichen Datenraten gleichzeitig betrieben, ist der Toggle Modus einzustellen, z.B. mit dem Befehl &lt;br /&gt;
:&amp;lt;code&amp;gt;initCommands 6m 30t v &amp;lt;/code&amp;gt;&lt;br /&gt;
wobei &#039;&#039;30t&#039;&#039; für &amp;quot;Toggle Modus, alle 30 Sekunden&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== Energy Count 3000 Sketch ===&lt;br /&gt;
Der Sketch für die Unterstützung der Energy Count 3000 Zwischenstecker kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ FHEM-Repository] heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
Das FHEM Modul dazu (36_EC3000.pm) ist genau wie die Module für JeeLink (36_JeeLink.pm) und PCA301 (36_PCA301.pm) mittlerweile im aktuellen FHEM enthalten.&lt;br /&gt;
&lt;br /&gt;
=== JeeLabs RoomNode ===&lt;br /&gt;
Eine Beschreibung zum Empfang der JeeLabs RoomNodes ist in {{Link2Forum|Topic=11648|Message=92037|LinkText=diesem Forenbeitrag}} enthalten.&lt;br /&gt;
&lt;br /&gt;
=== JeeLink LED deaktivieren ===&lt;br /&gt;
Ein &amp;quot;dauerhaftes&amp;quot; Deaktivieren der LED des JeeLink ist möglich mit&lt;br /&gt;
:&amp;lt;code&amp;gt;define not.global notify global:INITIALIZED set myJeeLink led off&amp;lt;/code&amp;gt;&lt;br /&gt;
damit wird, sobald FHEM komplett gestartet ist, von FHEM der Befehl zum Ausschalten der LED gesendet. Alternativ kann mit &lt;br /&gt;
:&amp;lt;code&amp;gt;attr myJeeLink initCommands 0a v&amp;lt;/code&amp;gt;&lt;br /&gt;
dem Sketch die Anweisung gegeben werden, bei der Initialisierung die LED zu deaktivieren.&lt;br /&gt;
&#039;&#039;Quelle: dieser {{Link2Forum|Topic=27161|LinkText=Forenthread}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Weitergehende Informationen ===&lt;br /&gt;
Hinweise zum Betrieb eines JeeLink mit FHEM finden sich aktuell in größerer Anzahl in verschiedenen Diskussionen im Forum:&lt;br /&gt;
* {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301}} - Analyse des Funkprotokolls; Anfänge der Entstehung der PCA301 Unterstützung in FHEM.&lt;br /&gt;
* {{Link2Forum|Topic=14786|LinkText=JeeLink / LaCrosse}} - JeeLink Modul zur Einbindung von La Crosse&lt;br /&gt;
* {{Link2Forum|Topic=11648|Message=92019|LinkText=JeeLink / EC3000}} - Anfänge der Entstehung der EC3000 Unterstützung in FHEM.&lt;br /&gt;
* Hinweise zu {{Link2Forum|Topic=11648|Message=92037|LinkText=JeeLabs RoomNode}} und anderen JeeLab Nodes&lt;br /&gt;
* {{Link2Forum|Topic=25399|Message=183910|LinkText=JeeLink mit FHEM2FHEM nutzen}}&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
* Beim Betrieb an einer [[AVM Fritz!Box|FritzBox]] wird der JeeLink unter Umständen als &#039;&#039;Für die Nutzung mit dem USB-Fernanschluss reserviert&#039;&#039; angezeigt. In diesem Fall muss die Reservierung deaktiviert/aufgehoben werden (Details dazu in diesem {{Link2Forum|Topic=16579|LinkText=Forenthread}}).&lt;br /&gt;
* Die Version &#039;&#039;v3c&#039;&#039; des JeeLink funktioniert (Stand 06/2015) nur mit dem LaCrosse Sketch. PCA301 und EC3000 Sketch sind auf den JeeLink Classic beschränkt (siehe unter anderem Diskussion im Forum, startend {{Link2Forum|Topic=11648|Message=308267|LinkText=hier}}).&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://jeelabs.com/products/jeelink JeeLabs], JeeLink Hersteller&lt;br /&gt;
* [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ PCA301 Sketch] im SVN&lt;br /&gt;
* [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ LaCrosse Sketch] im SVN&lt;br /&gt;
* [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ EC3000 Sketch] im SVN&lt;br /&gt;
* [http://blog.moneybag.de/hausautomation-fhem-mit-funksteckdose-energiemessung-elv-pca-301/ Blog] zum Thema JeeLink zur Anbindung von PCA301 und von LaCrosse Temperatursensoren an FHEM&lt;br /&gt;
* {{Link2Forum|Topic=23217|LinkText=LevelSender}} Tankfüllstand mit JeeLink empfangen&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;br /&gt;
[[Kategorie:868MHz]]&lt;br /&gt;
[[Kategorie:433MHz]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=JeeLink&amp;diff=34562</id>
		<title>JeeLink</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=JeeLink&amp;diff=34562"/>
		<updated>2021-01-09T12:18:38Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Erklärung Relay Betrieb eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;JeeLink&#039;&#039;&#039; ist ein RF-Gerät im Formfaktor eines USB-Sticks mit externer Antenne.&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=JeeLink.jpg&lt;br /&gt;
|Bildbeschreibung=JeeLink mit Drahtantenne&lt;br /&gt;
|HWProtocol=PCA301, EC3000, RoomNode oder LaCrosse und EMT7110&lt;br /&gt;
|HWType=[[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=433/868/913 MHz&lt;br /&gt;
|HWChannels=?&lt;br /&gt;
|HWVoltage=5 V&lt;br /&gt;
|HWPowerConsumption=ca. 90 mA&lt;br /&gt;
|HWPoweredBy=USB&lt;br /&gt;
|HWSize=23*67*9mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#JeeLink 36_JeeLink.pm]&lt;br /&gt;
|ModOwner={{Link2FU|430|Andre / justme1968}}&lt;br /&gt;
|HWManufacturer=JeeLabs&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Vergleichbar mit dem [[CUL]] von Busware, ist der JeeLink ein USB-Stick, mit dem Funk-Hausautomations-Komponenten angebunden werden können. CUL und JeeLink unterscheiden sich im Funkmodul (CUL -&amp;gt; CC1101; JeeLink -&amp;gt; RF12B), die nicht miteinander kompatibel sind. Daher kann man auch keinen CUL als JeeLink-Ersatz nutzen!&lt;br /&gt;
&lt;br /&gt;
Den JeeLink gibt es in einer &lt;br /&gt;
* 433 MHz Version&lt;br /&gt;
* 868 MHz Version (Standard)&lt;br /&gt;
* 915 MHz Version (Betrieb in Europa nicht zugelassen)&lt;br /&gt;
&lt;br /&gt;
== Vorbereitung JeeLink == &lt;br /&gt;
Um mit dem JeeLink die jeweils gewünschten Signale empfangen zu können, ist er zunächst mit der passenden Firmware zu versorgen. Dies kann auf zwei Arten geschehen. Entweder durch das selber kompilieren der Software und das Flashen aus der Arduino IDE oder aus FHEM heraus mit einem aktuellen Firmwareimage das per update mit ausgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
=== Selber Kompilieren ===&lt;br /&gt;
[[Datei:JeeLink_flashen_1.jpg|mini|100px|rechts|Vorbereitung: Arduino einrichten]]&lt;br /&gt;
Um den JeeLink mit FHEM benutzen zu können, muss (mit der Arduino Software / Entwicklungsumgebung (IDE)) eine spezifische &amp;quot;Firmware&amp;quot; (ein Sketch) auf dem JeeLink installiert werden. Die generelle Vorbereitung für diese Aktion ist unabhängig vom benötigten Sketch und besteht aus den folgenden Schritten:&lt;br /&gt;
* Für Windows oder Mac OS X den passenden [http://www.ftdichip.com/Drivers/VCP.htm FTDI Treiber] installieren, unter Linux ist dieser meist schon vorhanden&lt;br /&gt;
* Installation der [http://arduino.cc/de/Guide/HomePage Arduino Software] für die benutzte Plattform (verfügbar sind Windows, Mac OS X und Linux)&lt;br /&gt;
* Je nach Sketch einbinden der [https://github.com/jcw/jeelib/archive/master.zip Jeelabs Library] in die Arduino IDE&lt;br /&gt;
* Herunterladen des benötigten Sketches (aus [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino FHEM/contrib])&lt;br /&gt;
* Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE&lt;br /&gt;
* Start der Arduino Software und JeeLink flashen&lt;br /&gt;
&lt;br /&gt;
=== JeeLink aus Arduino flashen ===&lt;br /&gt;
[[Datei:JeeLink_flashen_2.jpg|mini|100px|rechts|JeeLink Flashen]]&lt;br /&gt;
* Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE&lt;br /&gt;
* Start der Arduino Software&lt;br /&gt;
* Seriellen Port des JeeLink auswählen&lt;br /&gt;
* Einstellungen: in den Tools als Board &amp;quot;Arduino Uno&amp;quot; auswählen&lt;br /&gt;
* Sketch mit &amp;quot;Datei öffnen&amp;quot; auswählen&lt;br /&gt;
* Upload klicken&lt;br /&gt;
&lt;br /&gt;
=== JeeLink aus FHEM flashen ===&lt;br /&gt;
* Auf dem FHEM System muss &amp;quot;avrdude&amp;quot; installiert sein. Das kann z.B. über die &amp;quot;normale&amp;quot; Linux Paketverwaltung geschehen.&lt;br /&gt;
** Auf dem Paspberry (Raspbian Linux) funktioniert die Installation von &amp;quot;avrdude&amp;quot; mit &amp;lt;code&amp;gt;sudo apt-get update&amp;lt;/code&amp;gt; und dannach &amp;lt;code&amp;gt;sudo apt-get install avrdude&amp;lt;/code&amp;gt;&lt;br /&gt;
* mit &amp;lt;code&amp;gt;set &amp;lt;JeeLinkDevice&amp;gt; flash [firmware]&amp;lt;/code&amp;gt; wird das Flashen angestossen&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;firmware&amp;lt;/code&amp;gt; kann LaCrosse, PCA301 oder EC3000 sein. Wenn &amp;lt;code&amp;gt;firmware&amp;lt;/code&amp;gt; nicht angegeben wird versucht FHEM den Namen der zu flashenden Firmware aus der zur Zeit installierten Firmware abzuleiten.&lt;br /&gt;
* im FHEM Log kann der Ausgang des Flashvorgangs kontrolliert werden&lt;br /&gt;
* über das &amp;lt;code&amp;gt;flashCommand&amp;lt;/code&amp;gt; Attribut lässt sich das Kommando zum Flashen an besondere Anforderungen anpassen &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorsicht bei Jeelink Clones!&#039;&#039;&#039; &lt;br /&gt;
 &lt;br /&gt;
Jeelink Clones basierend auf dem Arduino Nano haben normalerweise keinen Optibootloader drauf im Gegensatz zum Original JeeLink und JeeNode. &lt;br /&gt;
&lt;br /&gt;
Konsequenz: &lt;br /&gt;
 &lt;br /&gt;
Beim &amp;quot;Nano Clone&amp;quot; und ähnliches muß man zum flashen in FHEM die Baudrate setzen mit &amp;quot;-b 57600&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Original JeeLink, original JeeNode, und alle Arduinos, die einen Optibootloader drauf haben flashen in FHEM ohne &amp;quot;-b 57600&amp;quot; &lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit FHEM == &lt;br /&gt;
Um den JeeLink (erstmalig) mit FHEM benutzen zu können, muss dieser erfolgreich geflasht worden sein.&lt;br /&gt;
* JeeLink an den FHEM-Rechner anschließen&lt;br /&gt;
* Auf Linux Systemen kann es notwendig sein, mit &amp;lt;code&amp;gt;mknod /dev/ttyUSB0 c 188 0&amp;lt;/code&amp;gt; das Device anzulegen (bitte erst überprüfen, ob der Stick nicht automatisch erkannt wird)&lt;br /&gt;
&lt;br /&gt;
=== Definition in fhem.cfg ===&lt;br /&gt;
Erforderliche Definitionen in FHEM:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myJeeLink JeeLink /dev/ttyUSBx@57600&amp;lt;/code&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;USBx&#039;&#039;&#039; ist anzupassen an die aktuell benutzte Schnittstelle, 0 wenn sonst nichts am USB-Port hängt&lt;br /&gt;
*x=0,1,2, usw.&lt;br /&gt;
&lt;br /&gt;
Die [http://fhem.de/commandref.html#autocreate autocreate-Funktion] sollte aktiv sein. Alle erkannten Devices (PCA301, LaCrosse Sensoren incl. IT+ Wetterstation WS1600, EMT7110, EC3000,  und RoomNodes) werden dann automatisch angelegt, sobald die jeweiligen Daten empfangen werden.&lt;br /&gt;
&lt;br /&gt;
Pro Geräte-Art/Protokoll muss ein eigener JeeLink mit dem passenden Sketch zum Empfang dieser Daten vorhanden sein (es kann jeweils nur ein Sketch im JeeLink aktiv sein und es gibt (zumindest derzeit (04/2014)) keinen Sketch, der mehr als eines der Protokolle abdeckt).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Der LaCrosse Sketch deckt sowohl die LaCrosse Temperatursensoren, die IT+ Wetterstation WS1600 als auch den Energieverbrauchssensor EMT7110 ab.&lt;br /&gt;
&lt;br /&gt;
=== PCA301 Sketch ===&lt;br /&gt;
Der Sketch für die Unterstützung der &#039;&#039;PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung&#039;&#039; (PCA301-pcaSerial.zip) kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ FHEM-Repository] heruntergeladen werden. Details zur Benutzung finden sich im Artikel zur [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung|PCA301]].&lt;br /&gt;
&lt;br /&gt;
Unter Umständen werden die Signale der PCA301 nicht empfangen. Insbesondere mit selbst erstellten &amp;quot;JeeLinks&amp;quot; durch wahrscheinlich hohe Bauteiltoleranzen der RF12B Sendeeinheiten. Mit dem im Sketch voreingestellten rf12_center_freq = 0xA6FE (868,9500 MHz) bekommt man in diesem Fall keine Steckdose angelernt.&lt;br /&gt;
&lt;br /&gt;
==== Frequenzanpassung über modifizierten Sketch ====&lt;br /&gt;
Durch Tests mittels &#039;&#039;set &amp;lt;myJeeLink&amp;gt; raw +&#039;&#039; bzw &#039;&#039;set &amp;lt;myJeeLink&amp;gt; raw -&#039;&#039; kann man dann ermitteln, ob die Funksignale z.B. ab A703 bis A715 empfangen werden. Das entspricht einem Frequenzbereich zwischen 868,9750 MHz und 869,0550 MHz.&lt;br /&gt;
Die Mitte ist die Lösung, die man dann im Sketch ändern muss:&lt;br /&gt;
:&amp;lt;code&amp;gt;static uint16_t rf12_center_freq = 0xA70C;&amp;lt;/code&amp;gt;&lt;br /&gt;
Anschließend auf den JeeLink neu flashen.&lt;br /&gt;
&lt;br /&gt;
==== Frequenzanpassung über Attribut initCommands ====&lt;br /&gt;
Über das &amp;lt;code&amp;gt;initCommands&amp;lt;/code&amp;gt; lässt sich die gefundene Frequenz einstellen, ohne dass die Firmware verändert werden muss. &lt;br /&gt;
:&amp;lt;code&amp;gt;attr &amp;lt;JeeLinkDevice&amp;gt; initCommands &amp;lt;hhhh&amp;gt;h&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaCrosse Sketch ===&lt;br /&gt;
Der Sketch für die Unterstützung der LaCrosse Temperatursensoren, der IT+ Wetterstation WS1600 und des Energieverbrauchssensors EMT7110 so wie auch TechnoLine Sensoren (Temperatur, Luftfeuchte,...).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Er kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino FHEM-Repository] heruntergeladen werden.&lt;br /&gt;
* Alternative ist den Sketch direkt über FHEM zu flashen &amp;lt;code&amp;gt;set &amp;lt;JeeLinkDevice&amp;gt; flash LaCrosse&amp;lt;/code&amp;gt; z.B.: &amp;lt;code&amp;gt;set myJeeLink flash LaCrosse&amp;lt;/code&amp;gt; zuvor sollte aber ein FHEM update mit &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; durchgeführt werden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sensoren anlernen:&lt;br /&gt;
Mit folgenden Befehl hat man die Möglichkeit 60 Sekunden ein Gerät anzulernen. Das Gerät erscheint dann unter der Rubrik LaCrosse. &amp;lt;code&amp;gt;set &amp;lt;JeeLinkDevice&amp;gt; LaCrossePairForSec 60&amp;lt;/code&amp;gt; zum Beispiel: &amp;lt;code&amp;gt;set myJeeLink LaCrossePairForSec 60&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In der neuesten Version unterstützt er auch den SuperJee&#039;&#039;&#039; (siehe auch diesen {{Link2Forum|Topic=14786|Message=316924|LinkText=Forenbeitrag}}) mit folgenden Optionen:  &lt;br /&gt;
&lt;br /&gt;
* Option 1 (Dual RFM): &lt;br /&gt;
:Es kann ein zweiter RFM12B oder RFM69CW angeschlossen werden. Somit können zwei data rates (z.B. 17241 für TX29DTH und 8842 für WS 1600) gleichzeitig empfangen werden. Das geht natürlich auch mit dem toggle mode, nur ist es bei der Wetterstation ärgerlich, wenn man 30 Sekunden lang nichts empfängt und dadurch die alles entscheidende Windböe verpasst.&lt;br /&gt;
* Option 2 (BMP180): &lt;br /&gt;
:Da der Luftdruck in den Basisstationen gemessen wird, steht er für FHEM nicht zur Verfügung.&lt;br /&gt;
Deshalb kann nun optional ein BMP180 oder BMP085 angeschlossen werden. Auch hier wird automatisch erkannt, ob er vorhanden ist. &lt;br /&gt;
:Der BMP180 wird mit 3,3V versorgt und SDA mit PC4 und SCL mit PC5 verbunden (siehe die in diesem {{Link2Forum|Topic=14786|Message=316924|LinkText=Forenbeitrag}} angehängte SuperJee-CL.png) &lt;br /&gt;
&lt;br /&gt;
==== Übersicht Kommandos ====&lt;br /&gt;
 &amp;lt;n&amp;gt;a     set to 0 if the blue LED bothers&lt;br /&gt;
 &amp;lt;n&amp;gt;f     initial frequency in kHz (5 kHz steps, 860480 ... 879515)  (for RFM #1)&lt;br /&gt;
 &amp;lt;n&amp;gt;F     initial frequency in kHz (5 kHz steps, 860480 ... 879515)  (for RFM #2)&lt;br /&gt;
 &amp;lt;n&amp;gt;h     altituide above sea level&lt;br /&gt;
 &amp;lt;n&amp;gt;m     bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps (for RFM #1)&lt;br /&gt;
 &amp;lt;n&amp;gt;M     bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps (for RFM #2)&lt;br /&gt;
 &amp;lt;n&amp;gt;r     use one of the possible data rates (for RFM #1)&lt;br /&gt;
 &amp;lt;n&amp;gt;R     use one of the possible data rates (for RFM #2)&lt;br /&gt;
 &amp;lt;n&amp;gt;t     0=no toggle, else interval in seconds (for RFM #1)&lt;br /&gt;
 &amp;lt;n&amp;gt;T     0=no toggle, else interval in seconds (for RFM #2)&lt;br /&gt;
    v     show version&lt;br /&gt;
 &amp;lt;n&amp;gt;y     if 1 all received packets will be retransmitted  (Relay mode)&lt;br /&gt;
&lt;br /&gt;
==== Relay-Betrieb ====&lt;br /&gt;
Der LaCrosse Sketch ermöglicht auch den Relay-Betrieb zur Reichweitenverbesserung. Er funktioniert damit ähnlich wie z.&amp;amp;nbsp;B. ein WLAN Range Extender. Wenn der Sketch für den Relay-Betrieb konfiguriert ist, wird jedes empfangene IT+ Datenpaket, das eine gültige Prüfsumme hat, direkt nach dem Empfang wieder gesendet.&lt;br /&gt;
&lt;br /&gt;
Das Prinzip ist generell recht einfach:&lt;br /&gt;
# JeeLink im Sketch als Relais konfigurieren und flashen: Um den Relay Betrieb einzuschalten, muss im Sketch der Parameter&lt;br /&gt;
:&amp;lt;code&amp;gt;bool RELAY = 1;&amp;lt;/code&amp;gt; auf den Wert 1 gesetzt werden. Falls die LED stört, kann diese im Sketch durch Setzen des Parameters&lt;br /&gt;
:&amp;lt;code&amp;gt;#define ENABLE_ACTIVITY_LED 0&amp;lt;/code&amp;gt; auf 0 gesetzt werden.&lt;br /&gt;
# Auf &amp;quot;halber Strecke&amp;quot; (d.h. irgendwo zwischen dem primären Sender und dem entfernten Empfänger) auf ein USB-Steckernetzteil stecken. Der JeeLink arbeitet in diesem Modus &amp;quot;autonom&amp;quot;, er benötigt also lediglich einen Spannungsversorgung.&lt;br /&gt;
&lt;br /&gt;
Der JeeLink empfängt und decodiert alle Protokolle, die er auch für FHEM unterstützt. Wenn er ein Paket empfangen hat (egal von welchem Sensor) und CRC OK war, dann sendet er es wieder aus. Der JeeLink am FHEM merkt keinen Unterschied. Falls ein Paket es doch bis zum FHEM direkt geschafft hat, kommt es dort zweimal an. Diese Situation muss in FHEM behandelt werden.&lt;br /&gt;
&lt;br /&gt;
Details zu diesem Betriebsmodus sind in diesen Forenbeiträgen ({{Link2Forum|Topic=14786|Message=165153|LinkText=LaCrosse}} bzw. {{Link2Forum|Topic=26494|Message=196648|LinkText=EMT7110}}) zu finden.&lt;br /&gt;
&lt;br /&gt;
==== Frequenzanpassung ====&lt;br /&gt;
Ab Version LaCrosseITPlusReader.10.1e wurde der  Sketch so erweitert, dass man von FHEM aus die Frequenz setzen kann. Dazu versteht der Sketch das neue Kommando &amp;quot;f&amp;quot;:&lt;br /&gt;
:&amp;lt;code&amp;gt;set myJeeLink raw 868295f&amp;lt;/code&amp;gt;&lt;br /&gt;
setzt die Frequenz auf 868295 kHz.&lt;br /&gt;
&lt;br /&gt;
Die Frequenz kann im Bereich von 860480 kHz bis 879515 kHz in 5kHz -Schritten eingestellt werden.&lt;br /&gt;
Details dazu in diesem {{Link2Forum|Topic=14786|Message=222541}} im Forum. Die Frequenzanpassung ist insbesondere beim 30.3155.WD häufig erforderlich, weshalb er als kritisch einzustufen und nicht zu empfehlen ist (siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}).&lt;br /&gt;
&lt;br /&gt;
==== Toggle und Datenrate ====&lt;br /&gt;
Toggle&lt;br /&gt;
 t: toggle time&lt;br /&gt;
 20t = alle 20 Sekunden die Datenrate wechseln&lt;br /&gt;
&lt;br /&gt;
Datenrate&lt;br /&gt;
 m: toggle mode&lt;br /&gt;
 bits:  1= 17.241 kbps, 2= 9.579 kbps, 4= 8.842 kbps&lt;br /&gt;
 3m ist 17.241 kbps (TX29) und 9.579 kbps (TX35)&lt;br /&gt;
&lt;br /&gt;
Beispiel initCommands&lt;br /&gt;
 6m 30t v&lt;br /&gt;
 Zwischen 8.842 kbps und 9.579 kbps wechseln (4+2=6), alle 30 Sekunden&lt;br /&gt;
&lt;br /&gt;
==== Unterstützte Sensoren und Aktoren incl. Wetterstation WS 1600 ====&lt;br /&gt;
{{Randnotiz|RNTyp=y|RNText=Die Ausführungen in diesem Abschnitt gelten ab der Version 10.1q auch für die Wetterstation WS1080.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig WS1800&#039;&#039;&#039;: die WS1080 gibt es (unter gleichem Namen) in einer &amp;quot;OOK&amp;quot;- und in einer &amp;quot;FSK&amp;quot;-Version.&lt;br /&gt;
* Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version wird  nicht unterstützt.&lt;br /&gt;
* Die FSK-Version ist zu erkennen an einem runden grünen Aufkleber im Batteriefach der Station mit dem Aufdruck &amp;quot;PASS 7&amp;quot;. Details dazu in {{Link2Forum|Topic=14786|Message=363766|LinkText=diesem Forenbeitrag}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die in der folgenden Liste (Quelle: {{Link2Forum|Topic=14786|Message=164801|LinkText=FHEM Forum}}) aufgeführten Sensoren wurden bisher erfolgreich getestet:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Bezeichnung     !! Datenrate   !! Link / Hinweise&lt;br /&gt;
|-&lt;br /&gt;
| TX21IT         || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX25-IT        || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX27-IT        || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX29-IT        || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX29DTH-IT     || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX37           || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX35TH-IT      ||  9.579 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX35DTH-IT     ||  9.579 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| 30.3143.IT     || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| 30.3144.IT     || 17.241 kbps || ({{Link2Forum|Topic=17662|LinkText=Forenthread}})&lt;br /&gt;
|-&lt;br /&gt;
| 30.3147.IT     || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| 30.3155WD      ||  9.579 kbps || kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}&lt;br /&gt;
|-&lt;br /&gt;
| 30.3156WD      ||  9.579 kbps || Batterie-kritisch. Funktioniert schlecht mit Akkus!&lt;br /&gt;
|-&lt;br /&gt;
| 30.3187.IT     || 17.241 kbps || haben alle die gleiche ID, daher nur einzeln verwendbar ({{Link2Forum|Topic=64636|LinkText=Forenthread}})&lt;br /&gt;
|-&lt;br /&gt;
| WT440XH        || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| WS 1600 (TX22) ||  8.842 kbps || ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})&lt;br /&gt;
|-&lt;br /&gt;
| WS 1080        || 17.241 kbps || Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})&lt;br /&gt;
|-&lt;br /&gt;
| [[EMT7110]]    ||  9.579 kbps || ({{Link2Forum|Topic=26494|LinkText=Forenthread}})&lt;br /&gt;
|-&lt;br /&gt;
| LevelSender    || 17.241 kbps || ({{Link2Forum|Topic=23217|LinkText=Forenthread}})&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Werden Sensoren mit unterschiedlichen Datenraten gleichzeitig betrieben, ist der Toggle Modus einzustellen, z.B. mit dem Befehl &lt;br /&gt;
:&amp;lt;code&amp;gt;initCommands 6m 30t v &amp;lt;/code&amp;gt;&lt;br /&gt;
wobei &#039;&#039;30t&#039;&#039; für &amp;quot;Toggle Modus, alle 30 Sekunden&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== Energy Count 3000 Sketch ===&lt;br /&gt;
Der Sketch für die Unterstützung der Energy Count 3000 Zwischenstecker kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ FHEM-Repository] heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
Das FHEM Modul dazu (36_EC3000.pm) ist genau wie die Module für JeeLink (36_JeeLink.pm) und PCA301 (36_PCA301.pm) mittlerweile im aktuellen FHEM enthalten.&lt;br /&gt;
&lt;br /&gt;
=== JeeLabs RoomNode ===&lt;br /&gt;
Eine Beschreibung zum Empfang der JeeLabs RoomNodes ist in {{Link2Forum|Topic=11648|Message=92037|LinkText=diesem Forenbeitrag}} enthalten.&lt;br /&gt;
&lt;br /&gt;
=== JeeLink LED deaktivieren ===&lt;br /&gt;
Ein &amp;quot;dauerhaftes&amp;quot; Deaktivieren der LED des JeeLink ist möglich mit&lt;br /&gt;
:&amp;lt;code&amp;gt;define not.global notify global:INITIALIZED set myJeeLink led off&amp;lt;/code&amp;gt;&lt;br /&gt;
damit wird, sobald FHEM komplett gestartet ist, von FHEM der Befehl zum Ausschalten der LED gesendet. Alternativ kann mit &lt;br /&gt;
:&amp;lt;code&amp;gt;attr myJeeLink initCommands 0a v&amp;lt;/code&amp;gt;&lt;br /&gt;
dem Sketch die Anweisung gegeben werden, bei der Initialisierung die LED zu deaktivieren.&lt;br /&gt;
&#039;&#039;Quelle: dieser {{Link2Forum|Topic=27161|LinkText=Forenthread}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Weitergehende Informationen ===&lt;br /&gt;
Hinweise zum Betrieb eines JeeLink mit FHEM finden sich aktuell in größerer Anzahl in verschiedenen Diskussionen im Forum:&lt;br /&gt;
* {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301}} - Analyse des Funkprotokolls; Anfänge der Entstehung der PCA301 Unterstützung in FHEM.&lt;br /&gt;
* {{Link2Forum|Topic=14786|LinkText=JeeLink / LaCrosse}} - JeeLink Modul zur Einbindung von La Crosse&lt;br /&gt;
* {{Link2Forum|Topic=11648|Message=92019|LinkText=JeeLink / EC3000}} - Anfänge der Entstehung der EC3000 Unterstützung in FHEM.&lt;br /&gt;
* Hinweise zu {{Link2Forum|Topic=11648|Message=92037|LinkText=JeeLabs RoomNode}} und anderen JeeLab Nodes&lt;br /&gt;
* {{Link2Forum|Topic=25399|Message=183910|LinkText=JeeLink mit FHEM2FHEM nutzen}}&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
* Beim Betrieb an einer [[AVM Fritz!Box|FritzBox]] wird der JeeLink unter Umständen als &#039;&#039;Für die Nutzung mit dem USB-Fernanschluss reserviert&#039;&#039; angezeigt. In diesem Fall muss die Reservierung deaktiviert/aufgehoben werden (Details dazu in diesem {{Link2Forum|Topic=16579|LinkText=Forenthread}}).&lt;br /&gt;
* Die Version &#039;&#039;v3c&#039;&#039; des JeeLink funktioniert (Stand 06/2015) nur mit dem LaCrosse Sketch. PCA301 und EC3000 Sketch sind auf den JeeLink Classic beschränkt (siehe unter anderem Diskussion im Forum, startend {{Link2Forum|Topic=11648|Message=308267|LinkText=hier}}).&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://jeelabs.com/products/jeelink JeeLabs], JeeLink Hersteller&lt;br /&gt;
* [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ PCA301 Sketch] im SVN&lt;br /&gt;
* [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ LaCrosse Sketch] im SVN&lt;br /&gt;
* [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ EC3000 Sketch] im SVN&lt;br /&gt;
* [http://blog.moneybag.de/hausautomation-fhem-mit-funksteckdose-energiemessung-elv-pca-301/ Blog] zum Thema JeeLink zur Anbindung von PCA301 und von LaCrosse Temperatursensoren an FHEM&lt;br /&gt;
* {{Link2Forum|Topic=23217|LinkText=LevelSender}} Tankfüllstand mit JeeLink empfangen&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;br /&gt;
[[Kategorie:868MHz]]&lt;br /&gt;
[[Kategorie:433MHz]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=JeeLink&amp;diff=34561</id>
		<title>JeeLink</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=JeeLink&amp;diff=34561"/>
		<updated>2021-01-09T12:13:44Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Erklärung für Relay Betrieb eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;JeeLink&#039;&#039;&#039; ist ein RF-Gerät im Formfaktor eines USB-Sticks mit externer Antenne.&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=JeeLink.jpg&lt;br /&gt;
|Bildbeschreibung=JeeLink mit Drahtantenne&lt;br /&gt;
|HWProtocol=PCA301, EC3000, RoomNode oder LaCrosse und EMT7110&lt;br /&gt;
|HWType=[[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=433/868/913 MHz&lt;br /&gt;
|HWChannels=?&lt;br /&gt;
|HWVoltage=5 V&lt;br /&gt;
|HWPowerConsumption=ca. 90 mA&lt;br /&gt;
|HWPoweredBy=USB&lt;br /&gt;
|HWSize=23*67*9mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#JeeLink 36_JeeLink.pm]&lt;br /&gt;
|ModOwner={{Link2FU|430|Andre / justme1968}}&lt;br /&gt;
|HWManufacturer=JeeLabs&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Vergleichbar mit dem [[CUL]] von Busware, ist der JeeLink ein USB-Stick, mit dem Funk-Hausautomations-Komponenten angebunden werden können. CUL und JeeLink unterscheiden sich im Funkmodul (CUL -&amp;gt; CC1101; JeeLink -&amp;gt; RF12B), die nicht miteinander kompatibel sind. Daher kann man auch keinen CUL als JeeLink-Ersatz nutzen!&lt;br /&gt;
&lt;br /&gt;
Den JeeLink gibt es in einer &lt;br /&gt;
* 433 MHz Version&lt;br /&gt;
* 868 MHz Version (Standard)&lt;br /&gt;
* 915 MHz Version (Betrieb in Europa nicht zugelassen)&lt;br /&gt;
&lt;br /&gt;
== Vorbereitung JeeLink == &lt;br /&gt;
Um mit dem JeeLink die jeweils gewünschten Signale empfangen zu können, ist er zunächst mit der passenden Firmware zu versorgen. Dies kann auf zwei Arten geschehen. Entweder durch das selber kompilieren der Software und das Flashen aus der Arduino IDE oder aus FHEM heraus mit einem aktuellen Firmwareimage das per update mit ausgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
=== Selber Kompilieren ===&lt;br /&gt;
[[Datei:JeeLink_flashen_1.jpg|mini|100px|rechts|Vorbereitung: Arduino einrichten]]&lt;br /&gt;
Um den JeeLink mit FHEM benutzen zu können, muss (mit der Arduino Software / Entwicklungsumgebung (IDE)) eine spezifische &amp;quot;Firmware&amp;quot; (ein Sketch) auf dem JeeLink installiert werden. Die generelle Vorbereitung für diese Aktion ist unabhängig vom benötigten Sketch und besteht aus den folgenden Schritten:&lt;br /&gt;
* Für Windows oder Mac OS X den passenden [http://www.ftdichip.com/Drivers/VCP.htm FTDI Treiber] installieren, unter Linux ist dieser meist schon vorhanden&lt;br /&gt;
* Installation der [http://arduino.cc/de/Guide/HomePage Arduino Software] für die benutzte Plattform (verfügbar sind Windows, Mac OS X und Linux)&lt;br /&gt;
* Je nach Sketch einbinden der [https://github.com/jcw/jeelib/archive/master.zip Jeelabs Library] in die Arduino IDE&lt;br /&gt;
* Herunterladen des benötigten Sketches (aus [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino FHEM/contrib])&lt;br /&gt;
* Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE&lt;br /&gt;
* Start der Arduino Software und JeeLink flashen&lt;br /&gt;
&lt;br /&gt;
=== JeeLink aus Arduino flashen ===&lt;br /&gt;
[[Datei:JeeLink_flashen_2.jpg|mini|100px|rechts|JeeLink Flashen]]&lt;br /&gt;
* Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE&lt;br /&gt;
* Start der Arduino Software&lt;br /&gt;
* Seriellen Port des JeeLink auswählen&lt;br /&gt;
* Einstellungen: in den Tools als Board &amp;quot;Arduino Uno&amp;quot; auswählen&lt;br /&gt;
* Sketch mit &amp;quot;Datei öffnen&amp;quot; auswählen&lt;br /&gt;
* Upload klicken&lt;br /&gt;
&lt;br /&gt;
=== JeeLink aus FHEM flashen ===&lt;br /&gt;
* Auf dem FHEM System muss &amp;quot;avrdude&amp;quot; installiert sein. Das kann z.B. über die &amp;quot;normale&amp;quot; Linux Paketverwaltung geschehen.&lt;br /&gt;
** Auf dem Paspberry (Raspbian Linux) funktioniert die Installation von &amp;quot;avrdude&amp;quot; mit &amp;lt;code&amp;gt;sudo apt-get update&amp;lt;/code&amp;gt; und dannach &amp;lt;code&amp;gt;sudo apt-get install avrdude&amp;lt;/code&amp;gt;&lt;br /&gt;
* mit &amp;lt;code&amp;gt;set &amp;lt;JeeLinkDevice&amp;gt; flash [firmware]&amp;lt;/code&amp;gt; wird das Flashen angestossen&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;firmware&amp;lt;/code&amp;gt; kann LaCrosse, PCA301 oder EC3000 sein. Wenn &amp;lt;code&amp;gt;firmware&amp;lt;/code&amp;gt; nicht angegeben wird versucht FHEM den Namen der zu flashenden Firmware aus der zur Zeit installierten Firmware abzuleiten.&lt;br /&gt;
* im FHEM Log kann der Ausgang des Flashvorgangs kontrolliert werden&lt;br /&gt;
* über das &amp;lt;code&amp;gt;flashCommand&amp;lt;/code&amp;gt; Attribut lässt sich das Kommando zum Flashen an besondere Anforderungen anpassen &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorsicht bei Jeelink Clones!&#039;&#039;&#039; &lt;br /&gt;
 &lt;br /&gt;
Jeelink Clones basierend auf dem Arduino Nano haben normalerweise keinen Optibootloader drauf im Gegensatz zum Original JeeLink und JeeNode. &lt;br /&gt;
&lt;br /&gt;
Konsequenz: &lt;br /&gt;
 &lt;br /&gt;
Beim &amp;quot;Nano Clone&amp;quot; und ähnliches muß man zum flashen in FHEM die Baudrate setzen mit &amp;quot;-b 57600&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Original JeeLink, original JeeNode, und alle Arduinos, die einen Optibootloader drauf haben flashen in FHEM ohne &amp;quot;-b 57600&amp;quot; &lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit FHEM == &lt;br /&gt;
Um den JeeLink (erstmalig) mit FHEM benutzen zu können, muss dieser erfolgreich geflasht worden sein.&lt;br /&gt;
* JeeLink an den FHEM-Rechner anschließen&lt;br /&gt;
* Auf Linux Systemen kann es notwendig sein, mit &amp;lt;code&amp;gt;mknod /dev/ttyUSB0 c 188 0&amp;lt;/code&amp;gt; das Device anzulegen (bitte erst überprüfen, ob der Stick nicht automatisch erkannt wird)&lt;br /&gt;
&lt;br /&gt;
=== Definition in fhem.cfg ===&lt;br /&gt;
Erforderliche Definitionen in FHEM:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myJeeLink JeeLink /dev/ttyUSBx@57600&amp;lt;/code&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;USBx&#039;&#039;&#039; ist anzupassen an die aktuell benutzte Schnittstelle, 0 wenn sonst nichts am USB-Port hängt&lt;br /&gt;
*x=0,1,2, usw.&lt;br /&gt;
&lt;br /&gt;
Die [http://fhem.de/commandref.html#autocreate autocreate-Funktion] sollte aktiv sein. Alle erkannten Devices (PCA301, LaCrosse Sensoren incl. IT+ Wetterstation WS1600, EMT7110, EC3000,  und RoomNodes) werden dann automatisch angelegt, sobald die jeweiligen Daten empfangen werden.&lt;br /&gt;
&lt;br /&gt;
Pro Geräte-Art/Protokoll muss ein eigener JeeLink mit dem passenden Sketch zum Empfang dieser Daten vorhanden sein (es kann jeweils nur ein Sketch im JeeLink aktiv sein und es gibt (zumindest derzeit (04/2014)) keinen Sketch, der mehr als eines der Protokolle abdeckt).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Der LaCrosse Sketch deckt sowohl die LaCrosse Temperatursensoren, die IT+ Wetterstation WS1600 als auch den Energieverbrauchssensor EMT7110 ab.&lt;br /&gt;
&lt;br /&gt;
=== PCA301 Sketch ===&lt;br /&gt;
Der Sketch für die Unterstützung der &#039;&#039;PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung&#039;&#039; (PCA301-pcaSerial.zip) kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ FHEM-Repository] heruntergeladen werden. Details zur Benutzung finden sich im Artikel zur [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung|PCA301]].&lt;br /&gt;
&lt;br /&gt;
Unter Umständen werden die Signale der PCA301 nicht empfangen. Insbesondere mit selbst erstellten &amp;quot;JeeLinks&amp;quot; durch wahrscheinlich hohe Bauteiltoleranzen der RF12B Sendeeinheiten. Mit dem im Sketch voreingestellten rf12_center_freq = 0xA6FE (868,9500 MHz) bekommt man in diesem Fall keine Steckdose angelernt.&lt;br /&gt;
&lt;br /&gt;
==== Frequenzanpassung über modifizierten Sketch ====&lt;br /&gt;
Durch Tests mittels &#039;&#039;set &amp;lt;myJeeLink&amp;gt; raw +&#039;&#039; bzw &#039;&#039;set &amp;lt;myJeeLink&amp;gt; raw -&#039;&#039; kann man dann ermitteln, ob die Funksignale z.B. ab A703 bis A715 empfangen werden. Das entspricht einem Frequenzbereich zwischen 868,9750 MHz und 869,0550 MHz.&lt;br /&gt;
Die Mitte ist die Lösung, die man dann im Sketch ändern muss:&lt;br /&gt;
:&amp;lt;code&amp;gt;static uint16_t rf12_center_freq = 0xA70C;&amp;lt;/code&amp;gt;&lt;br /&gt;
Anschließend auf den JeeLink neu flashen.&lt;br /&gt;
&lt;br /&gt;
==== Frequenzanpassung über Attribut initCommands ====&lt;br /&gt;
Über das &amp;lt;code&amp;gt;initCommands&amp;lt;/code&amp;gt; lässt sich die gefundene Frequenz einstellen, ohne dass die Firmware verändert werden muss. &lt;br /&gt;
:&amp;lt;code&amp;gt;attr &amp;lt;JeeLinkDevice&amp;gt; initCommands &amp;lt;hhhh&amp;gt;h&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaCrosse Sketch ===&lt;br /&gt;
Der Sketch für die Unterstützung der LaCrosse Temperatursensoren, der IT+ Wetterstation WS1600 und des Energieverbrauchssensors EMT7110 so wie auch TechnoLine Sensoren (Temperatur, Luftfeuchte,...).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Er kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino FHEM-Repository] heruntergeladen werden.&lt;br /&gt;
* Alternative ist den Sketch direkt über FHEM zu flashen &amp;lt;code&amp;gt;set &amp;lt;JeeLinkDevice&amp;gt; flash LaCrosse&amp;lt;/code&amp;gt; z.B.: &amp;lt;code&amp;gt;set myJeeLink flash LaCrosse&amp;lt;/code&amp;gt; zuvor sollte aber ein FHEM update mit &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; durchgeführt werden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sensoren anlernen:&lt;br /&gt;
Mit folgenden Befehl hat man die Möglichkeit 60 Sekunden ein Gerät anzulernen. Das Gerät erscheint dann unter der Rubrik LaCrosse. &amp;lt;code&amp;gt;set &amp;lt;JeeLinkDevice&amp;gt; LaCrossePairForSec 60&amp;lt;/code&amp;gt; zum Beispiel: &amp;lt;code&amp;gt;set myJeeLink LaCrossePairForSec 60&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In der neuesten Version unterstützt er auch den SuperJee&#039;&#039;&#039; (siehe auch diesen {{Link2Forum|Topic=14786|Message=316924|LinkText=Forenbeitrag}}) mit folgenden Optionen:  &lt;br /&gt;
&lt;br /&gt;
* Option 1 (Dual RFM): &lt;br /&gt;
:Es kann ein zweiter RFM12B oder RFM69CW angeschlossen werden. Somit können zwei data rates (z.B. 17241 für TX29DTH und 8842 für WS 1600) gleichzeitig empfangen werden. Das geht natürlich auch mit dem toggle mode, nur ist es bei der Wetterstation ärgerlich, wenn man 30 Sekunden lang nichts empfängt und dadurch die alles entscheidende Windböe verpasst.&lt;br /&gt;
* Option 2 (BMP180): &lt;br /&gt;
:Da der Luftdruck in den Basisstationen gemessen wird, steht er für FHEM nicht zur Verfügung.&lt;br /&gt;
Deshalb kann nun optional ein BMP180 oder BMP085 angeschlossen werden. Auch hier wird automatisch erkannt, ob er vorhanden ist. &lt;br /&gt;
:Der BMP180 wird mit 3,3V versorgt und SDA mit PC4 und SCL mit PC5 verbunden (siehe die in diesem {{Link2Forum|Topic=14786|Message=316924|LinkText=Forenbeitrag}} angehängte SuperJee-CL.png) &lt;br /&gt;
&lt;br /&gt;
==== Übersicht Kommandos ====&lt;br /&gt;
 &amp;lt;n&amp;gt;a     set to 0 if the blue LED bothers&lt;br /&gt;
 &amp;lt;n&amp;gt;f     initial frequency in kHz (5 kHz steps, 860480 ... 879515)  (for RFM #1)&lt;br /&gt;
 &amp;lt;n&amp;gt;F     initial frequency in kHz (5 kHz steps, 860480 ... 879515)  (for RFM #2)&lt;br /&gt;
 &amp;lt;n&amp;gt;h     altituide above sea level&lt;br /&gt;
 &amp;lt;n&amp;gt;m     bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps (for RFM #1)&lt;br /&gt;
 &amp;lt;n&amp;gt;M     bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps (for RFM #2)&lt;br /&gt;
 &amp;lt;n&amp;gt;r     use one of the possible data rates (for RFM #1)&lt;br /&gt;
 &amp;lt;n&amp;gt;R     use one of the possible data rates (for RFM #2)&lt;br /&gt;
 &amp;lt;n&amp;gt;t     0=no toggle, else interval in seconds (for RFM #1)&lt;br /&gt;
 &amp;lt;n&amp;gt;T     0=no toggle, else interval in seconds (for RFM #2)&lt;br /&gt;
    v     show version&lt;br /&gt;
 &amp;lt;n&amp;gt;y     if 1 all received packets will be retransmitted  (Relay mode)&lt;br /&gt;
&lt;br /&gt;
==== Relay-Betrieb ====&lt;br /&gt;
Der LaCrosse Sketch ermöglicht auch den Relay-Betrieb zur Reichweitenverbesserung. Er funktioniert damit ähnlich wie z.&amp;amp;nbsp;B. ein WLAN Range Extender. Wenn der Sketch für den Relay-Betrieb konfiguriert ist, wird jedes empfangene IT+ Datenpaket, das eine gültige Prüfsumme hat, direkt nach dem Empfang wieder gesendet.&lt;br /&gt;
&lt;br /&gt;
Das Prinzip ist generell recht einfach:&lt;br /&gt;
# JeeLink im Sketch als Relais konfigurieren und flashen.&lt;br /&gt;
# Auf &amp;quot;halber Strecke&amp;quot; (d.h. irgendwo zwischen dem primären Sender und dem entfernten Empfänger) auf ein USB-Steckernetzteil stecken. Der JeeLink arbeitet in diesem Modus &amp;quot;autonom&amp;quot;, er benötigt also lediglich einen Spannungsversorgung.&lt;br /&gt;
Um den Relay Betrieb einzuschalten, muss im Sketch der Parameter&lt;br /&gt;
:&amp;lt;code&amp;gt;bool RELAY = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
auf den Wert 1 gesetzt werden. Falls die &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der JeeLink empfängt und decodiert alle Protokolle, die er auch für FHEM unterstützt. Wenn er ein Paket empfangen hat (egal von welchem Sensor) und CRC OK war, dann sendet er es wieder aus. Der JeeLink am FHEM merkt keinen Unterschied. Falls ein Paket es doch bis zum FHEM direkt geschafft hat, kommt es dort zweimal an. Diese Situation muss in FHEM behandelt werden.&lt;br /&gt;
&lt;br /&gt;
Details zu diesem Betriebsmodus sind in diesen Forenbeiträgen ({{Link2Forum|Topic=14786|Message=165153|LinkText=LaCrosse}} bzw. {{Link2Forum|Topic=26494|Message=196648|LinkText=EMT7110}}) zu finden.&lt;br /&gt;
&lt;br /&gt;
==== Frequenzanpassung ====&lt;br /&gt;
Ab Version LaCrosseITPlusReader.10.1e wurde der  Sketch so erweitert, dass man von FHEM aus die Frequenz setzen kann. Dazu versteht der Sketch das neue Kommando &amp;quot;f&amp;quot;:&lt;br /&gt;
:&amp;lt;code&amp;gt;set myJeeLink raw 868295f&amp;lt;/code&amp;gt;&lt;br /&gt;
setzt die Frequenz auf 868295 kHz.&lt;br /&gt;
&lt;br /&gt;
Die Frequenz kann im Bereich von 860480 kHz bis 879515 kHz in 5kHz -Schritten eingestellt werden.&lt;br /&gt;
Details dazu in diesem {{Link2Forum|Topic=14786|Message=222541}} im Forum. Die Frequenzanpassung ist insbesondere beim 30.3155.WD häufig erforderlich, weshalb er als kritisch einzustufen und nicht zu empfehlen ist (siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}).&lt;br /&gt;
&lt;br /&gt;
==== Toggle und Datenrate ====&lt;br /&gt;
Toggle&lt;br /&gt;
 t: toggle time&lt;br /&gt;
 20t = alle 20 Sekunden die Datenrate wechseln&lt;br /&gt;
&lt;br /&gt;
Datenrate&lt;br /&gt;
 m: toggle mode&lt;br /&gt;
 bits:  1= 17.241 kbps, 2= 9.579 kbps, 4= 8.842 kbps&lt;br /&gt;
 3m ist 17.241 kbps (TX29) und 9.579 kbps (TX35)&lt;br /&gt;
&lt;br /&gt;
Beispiel initCommands&lt;br /&gt;
 6m 30t v&lt;br /&gt;
 Zwischen 8.842 kbps und 9.579 kbps wechseln (4+2=6), alle 30 Sekunden&lt;br /&gt;
&lt;br /&gt;
==== Unterstützte Sensoren und Aktoren incl. Wetterstation WS 1600 ====&lt;br /&gt;
{{Randnotiz|RNTyp=y|RNText=Die Ausführungen in diesem Abschnitt gelten ab der Version 10.1q auch für die Wetterstation WS1080.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig WS1800&#039;&#039;&#039;: die WS1080 gibt es (unter gleichem Namen) in einer &amp;quot;OOK&amp;quot;- und in einer &amp;quot;FSK&amp;quot;-Version.&lt;br /&gt;
* Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version wird  nicht unterstützt.&lt;br /&gt;
* Die FSK-Version ist zu erkennen an einem runden grünen Aufkleber im Batteriefach der Station mit dem Aufdruck &amp;quot;PASS 7&amp;quot;. Details dazu in {{Link2Forum|Topic=14786|Message=363766|LinkText=diesem Forenbeitrag}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die in der folgenden Liste (Quelle: {{Link2Forum|Topic=14786|Message=164801|LinkText=FHEM Forum}}) aufgeführten Sensoren wurden bisher erfolgreich getestet:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Bezeichnung     !! Datenrate   !! Link / Hinweise&lt;br /&gt;
|-&lt;br /&gt;
| TX21IT         || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX25-IT        || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX27-IT        || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX29-IT        || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX29DTH-IT     || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX37           || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX35TH-IT      ||  9.579 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| TX35DTH-IT     ||  9.579 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| 30.3143.IT     || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| 30.3144.IT     || 17.241 kbps || ({{Link2Forum|Topic=17662|LinkText=Forenthread}})&lt;br /&gt;
|-&lt;br /&gt;
| 30.3147.IT     || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| 30.3155WD      ||  9.579 kbps || kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}&lt;br /&gt;
|-&lt;br /&gt;
| 30.3156WD      ||  9.579 kbps || Batterie-kritisch. Funktioniert schlecht mit Akkus!&lt;br /&gt;
|-&lt;br /&gt;
| 30.3187.IT     || 17.241 kbps || haben alle die gleiche ID, daher nur einzeln verwendbar ({{Link2Forum|Topic=64636|LinkText=Forenthread}})&lt;br /&gt;
|-&lt;br /&gt;
| WT440XH        || 17.241 kbps ||&lt;br /&gt;
|-&lt;br /&gt;
| WS 1600 (TX22) ||  8.842 kbps || ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})&lt;br /&gt;
|-&lt;br /&gt;
| WS 1080        || 17.241 kbps || Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})&lt;br /&gt;
|-&lt;br /&gt;
| [[EMT7110]]    ||  9.579 kbps || ({{Link2Forum|Topic=26494|LinkText=Forenthread}})&lt;br /&gt;
|-&lt;br /&gt;
| LevelSender    || 17.241 kbps || ({{Link2Forum|Topic=23217|LinkText=Forenthread}})&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Werden Sensoren mit unterschiedlichen Datenraten gleichzeitig betrieben, ist der Toggle Modus einzustellen, z.B. mit dem Befehl &lt;br /&gt;
:&amp;lt;code&amp;gt;initCommands 6m 30t v &amp;lt;/code&amp;gt;&lt;br /&gt;
wobei &#039;&#039;30t&#039;&#039; für &amp;quot;Toggle Modus, alle 30 Sekunden&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== Energy Count 3000 Sketch ===&lt;br /&gt;
Der Sketch für die Unterstützung der Energy Count 3000 Zwischenstecker kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ FHEM-Repository] heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
Das FHEM Modul dazu (36_EC3000.pm) ist genau wie die Module für JeeLink (36_JeeLink.pm) und PCA301 (36_PCA301.pm) mittlerweile im aktuellen FHEM enthalten.&lt;br /&gt;
&lt;br /&gt;
=== JeeLabs RoomNode ===&lt;br /&gt;
Eine Beschreibung zum Empfang der JeeLabs RoomNodes ist in {{Link2Forum|Topic=11648|Message=92037|LinkText=diesem Forenbeitrag}} enthalten.&lt;br /&gt;
&lt;br /&gt;
=== JeeLink LED deaktivieren ===&lt;br /&gt;
Ein &amp;quot;dauerhaftes&amp;quot; Deaktivieren der LED des JeeLink ist möglich mit&lt;br /&gt;
:&amp;lt;code&amp;gt;define not.global notify global:INITIALIZED set myJeeLink led off&amp;lt;/code&amp;gt;&lt;br /&gt;
damit wird, sobald FHEM komplett gestartet ist, von FHEM der Befehl zum Ausschalten der LED gesendet. Alternativ kann mit &lt;br /&gt;
:&amp;lt;code&amp;gt;attr myJeeLink initCommands 0a v&amp;lt;/code&amp;gt;&lt;br /&gt;
dem Sketch die Anweisung gegeben werden, bei der Initialisierung die LED zu deaktivieren.&lt;br /&gt;
&#039;&#039;Quelle: dieser {{Link2Forum|Topic=27161|LinkText=Forenthread}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Weitergehende Informationen ===&lt;br /&gt;
Hinweise zum Betrieb eines JeeLink mit FHEM finden sich aktuell in größerer Anzahl in verschiedenen Diskussionen im Forum:&lt;br /&gt;
* {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301}} - Analyse des Funkprotokolls; Anfänge der Entstehung der PCA301 Unterstützung in FHEM.&lt;br /&gt;
* {{Link2Forum|Topic=14786|LinkText=JeeLink / LaCrosse}} - JeeLink Modul zur Einbindung von La Crosse&lt;br /&gt;
* {{Link2Forum|Topic=11648|Message=92019|LinkText=JeeLink / EC3000}} - Anfänge der Entstehung der EC3000 Unterstützung in FHEM.&lt;br /&gt;
* Hinweise zu {{Link2Forum|Topic=11648|Message=92037|LinkText=JeeLabs RoomNode}} und anderen JeeLab Nodes&lt;br /&gt;
* {{Link2Forum|Topic=25399|Message=183910|LinkText=JeeLink mit FHEM2FHEM nutzen}}&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
* Beim Betrieb an einer [[AVM Fritz!Box|FritzBox]] wird der JeeLink unter Umständen als &#039;&#039;Für die Nutzung mit dem USB-Fernanschluss reserviert&#039;&#039; angezeigt. In diesem Fall muss die Reservierung deaktiviert/aufgehoben werden (Details dazu in diesem {{Link2Forum|Topic=16579|LinkText=Forenthread}}).&lt;br /&gt;
* Die Version &#039;&#039;v3c&#039;&#039; des JeeLink funktioniert (Stand 06/2015) nur mit dem LaCrosse Sketch. PCA301 und EC3000 Sketch sind auf den JeeLink Classic beschränkt (siehe unter anderem Diskussion im Forum, startend {{Link2Forum|Topic=11648|Message=308267|LinkText=hier}}).&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://jeelabs.com/products/jeelink JeeLabs], JeeLink Hersteller&lt;br /&gt;
* [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ PCA301 Sketch] im SVN&lt;br /&gt;
* [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ LaCrosse Sketch] im SVN&lt;br /&gt;
* [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ EC3000 Sketch] im SVN&lt;br /&gt;
* [http://blog.moneybag.de/hausautomation-fhem-mit-funksteckdose-energiemessung-elv-pca-301/ Blog] zum Thema JeeLink zur Anbindung von PCA301 und von LaCrosse Temperatursensoren an FHEM&lt;br /&gt;
* {{Link2Forum|Topic=23217|LinkText=LevelSender}} Tankfüllstand mit JeeLink empfangen&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;br /&gt;
[[Kategorie:868MHz]]&lt;br /&gt;
[[Kategorie:433MHz]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi&amp;diff=33570</id>
		<title>Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi&amp;diff=33570"/>
		<updated>2020-07-19T15:12:08Z</updated>

		<summary type="html">&lt;p&gt;PeMue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Beim &#039;&#039;&#039;Raspberry Pi&#039;&#039;&#039; handelt es sich um einen postkartengroßen Einplatinen-Computer, der von der Raspberry Pi Foundation entwickelt wird. Die Hardware basiert auf dem BCM 283x SoC (System-on-Chip) von Broadcom, einem ARM-Prozessor. Zu Hardwaredetails und den verschiedenen Modellen sowie Produktentwicklungen siehe [http://de.wikipedia.org/wiki/Raspberry_Pi#Hardware Wikipedia].&lt;br /&gt;
Dank der kleinen Abmessungen, dem recht geringen Energieverbrauch (bis ca. 4 Watt) sowie der günstigen Anschaffungskosten (ca. 30€) ist der Raspberry Pi eine attraktive Hardware für die Heimautomatisierung mit FHEM. Er ist dank dem Linux-Betriebssystem vollständig kompatibel zur aktuell vorhandenen und von FHEM unterstützen Hardware. Das derzeit empfohlene Standard-Image zum Betrieb des Raspberry Pi ist die auf Debian basierende Raspberry Pi OS Distribution (ab Mitte 2019 &#039;&#039;Buster&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Installation / Setup ==&lt;br /&gt;
=== Betriebssystem ===&lt;br /&gt;
====Vorbemerkung====&lt;br /&gt;
Raspberry Pi OS ist direkt bei raspberrybi.org unter https://www.raspberrypi.org/downloads/raspberry-pi-os/ herunterladbar. Die folgende Anleitung gilt für die lite-Version ohne grafischen Desktop und für die Modelle für B, B+, B2, B3, B3+, Zero W. (Stand Juni 2018)&lt;br /&gt;
&lt;br /&gt;
Alle in diesem Abschnitt verwendeten Code Blöcke benötigen root Rechte. Deshalb bitte immer am Besten im Kontext &amp;lt;code&amp;gt;sudo su&amp;lt;/code&amp;gt; ausführen. Man kann auch einzelne Befehle mit sudo davor ausführen, allerdings wird die Berechtigung bei Pipe Befehlen nicht durchgereicht. &lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen im Linux-Format (nur LF als Zeilenende) erzeugt/editiert werden! Unbedingt einen geeigneten Editor verwenden und auf das Format beim Speichern achten!&lt;br /&gt;
&lt;br /&gt;
====SD-Karte vorbereiten====&lt;br /&gt;
Die heruntergeladene Datei muss entpackt und auf die Speicherkarte geschrieben werden. Es gibt dazu verschiedene Tools je nach Betriebssystem. Für Windows ist windisk32imager zu empfehlen, Projektseite [https://sourceforge.net/projects/win32diskimager/]. Für Mac OS gibt es den Pi Filler.&lt;br /&gt;
&lt;br /&gt;
Detaillierte Anleitungen zur Vorgehensweise finden sich für die Betriebssysteme Linux, Mac OS und Windows unter [https://www.raspberrypi.org/documentation/installation/installing-images/README.md Writing an image to the SD card]&lt;br /&gt;
&lt;br /&gt;
Die SD Card enthält nun zwei Partitionen/Laufwerke, wobei das erste Laufwerk unter alle Betriebssystemen lesbar ist. In diesem Laufwerk (/boot) müssen jetzt noch zwei Dateien erzeugt werden:&lt;br /&gt;
* eine leere Datei mit dem Namen ssh, um den (headless) Zugriff per ssh zu ermöglichen (Pi Filler macht dies automatisch). Hinweis: Eine spätere Aktivierung von SSH ist mit &amp;lt;code&amp;gt;sudo raspi-config&amp;lt;/code&amp;gt; (Punkt 5 &amp;quot;Interfacing Options&amp;quot;, dann Punkt 2 SSH) möglich, erfordert dann aber Tastatur und Monitor am RPi.&lt;br /&gt;
* eine Textdatei im Linux Format mit Namen wpa_supplicant.conf und folgendem Inhalt, wenn der Pi sofort mit WLAN starten soll.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;country=DE&lt;br /&gt;
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev&lt;br /&gt;
update_config=1&lt;br /&gt;
network={&lt;br /&gt;
        ssid=&amp;quot;FRITZ!Box 7490&amp;quot;&lt;br /&gt;
        psk=&amp;quot;12345678901234567890&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* SD Karte auswerfen.&lt;br /&gt;
* SD Karte in Raspberry Pi stecken und booten.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann auch Monitor und Tastatur verwendet werden.&lt;br /&gt;
&lt;br /&gt;
====Anmeldung und Grundkonfiguration====&lt;br /&gt;
Default raspberrypi-os: Host raspberrypi, User pi, Passwort raspberry &lt;br /&gt;
&lt;br /&gt;
Default ubuntu: Host ubuntu, User ubuntu, Passwort ubuntu&lt;br /&gt;
&lt;br /&gt;
Anmeldung entweder lokal oder mit dem Befehl: ssh &amp;lt;user&amp;gt;@&amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Passwort sollte geändert werden, dazu dem Sicherheitshinweis folgen und &amp;lt;code&amp;gt;passwd&amp;lt;/code&amp;gt; eingeben.&lt;br /&gt;
&lt;br /&gt;
Alle unten genannten Befehle müssen mit erhöhten Rechten ausgeführt werden (z. B. sudo)!&lt;br /&gt;
&lt;br /&gt;
Als Erstes sollte: Zeitzone, Sprache und  Hostname angepasst werden. &lt;br /&gt;
Entweder Menügeführt mit &amp;lt;code&amp;gt;sudo raspi-config&amp;lt;/code&amp;gt; &lt;br /&gt;
oder per Script / Shell Befehle:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# Zeitzone einstellen &amp;amp; Zeitsynchronisierung über das Internet aktivieren&lt;br /&gt;
timedatectl set-timezone Europe/Berlin&lt;br /&gt;
timedatectl set-ntp true&lt;br /&gt;
&lt;br /&gt;
# Konfigurieren lokale Sprache deutsch&lt;br /&gt;
sed -i -e &#039;s/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/&#039; /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
localectl set-locale LANG=de_DE.UTF-8 LANGUAGE=de_DE&lt;br /&gt;
&lt;br /&gt;
# Hostname &lt;br /&gt;
hostnamectl set-hostname mymachine&lt;br /&gt;
&lt;br /&gt;
# System aktualisieren &lt;br /&gt;
apt-get update&lt;br /&gt;
apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
#Neustart&lt;br /&gt;
reboot&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Am Anfang sollte man Befehle nicht verketten, sondern immer auf die Ausgabe warten (es sei denn, man hat Erfahrung): also kein &amp;lt;code&amp;gt;apt-get update &amp;amp;&amp;amp; apt-get upgrade &amp;lt;/code&amp;gt;. Ebenso sollte man nicht mit automatischen Bestätigungen arbeiten, also kein upgrade mit &amp;quot;-y&amp;quot;. Nach einer Installation ist ein aufräumen immer gut, also:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt-get autoremove&lt;br /&gt;
apt-get clean&lt;br /&gt;
apt-get purge $(dpkg --get-selections | grep deinstall | cut -f1 | xargs)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Verwendung UART für Zusatzmodule====&lt;br /&gt;
Einige Aufsteckmodule (z.B. HM-MOD-RPI-PCB) für den GPIO Port verwenden die serielle Schnittstelle UART. Der Zugriff auf diese serielle Schnittstelle erfordert eine modellabhängige Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Bei allen Modellen muss die Verwendung der seriellen Linux console an ttyAMA0 deaktiviert werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# seriell-getty Dienst für ttyAMA0 dauerhaft deaktivieren&lt;br /&gt;
systemctl stop serial-getty@ttyAMA0.service&lt;br /&gt;
systemctl disable serial-getty@ttyAMA0.service&lt;br /&gt;
systemctl mask serial-getty@ttyAMA0.service&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Bei den Modellen mit Bluetooth muss die UART aktiviert und umkonfiguriert werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# serielle Schnittstelle aktivieren und mit BT Schnittstelle tauschen&lt;br /&gt;
# für Raspberry Pi OS&lt;br /&gt;
config=&amp;quot;/boot/config.txt&amp;quot;&lt;br /&gt;
# für Ubuntu&lt;br /&gt;
#config=&amp;quot;/boot/firmware/usercfg.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
bash -c &amp;quot;cat &amp;lt;&amp;lt;EOF &amp;gt;&amp;gt; $config&lt;br /&gt;
enable_uart=1&lt;br /&gt;
dtoverlay=miniuart-bt&lt;br /&gt;
core_freq=250&lt;br /&gt;
EOF&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Die config Datei von ubuntu verwendet den Befehl include usercfg.txt. Mit Erscheinen des Pi 4 wurden die overlay Dateien umbenannt (Start mit Pi3- entfernt) die alten Namen funktionieren aber noch.&lt;br /&gt;
&lt;br /&gt;
Um die Konfiguration abzuschließen ist ein Neustart erforderlich&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#Neustart erforderlich &lt;br /&gt;
reboot&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
&#039;&#039;&#039;Kontrolle der seriellen Schnittstelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Befehl &amp;lt;code&amp;gt;ls -l /dev/ttyAMA0&amp;lt;/code&amp;gt; muss folgende Ausgabe liefern.&lt;br /&gt;
  crw-rw---- 1 root dialout 204, 64 Jun  7 22:56 /dev/ttyAMA0&lt;br /&gt;
Sollte dies nicht der Fall sein, muss der Dienst serial-getty@ttyAMA0.service deaktiviert werden!&lt;br /&gt;
&lt;br /&gt;
Kontrolle der Verlinkung von /dev/serial*&lt;br /&gt;
&lt;br /&gt;
Der Befehl &amp;lt;code&amp;gt;ls -l /dev/serial*&amp;lt;/code&amp;gt; muss folgende Ausgabe liefern.&lt;br /&gt;
* Bei Modellen mit BT und richtiger Konfiguration (funktioniert nur unter Raspberry Pi OS)&lt;br /&gt;
  lrwxrwxrwx 1 root root 7 Jun  7 22:55 /dev/serial0 -&amp;gt; ttyAMA0&lt;br /&gt;
  lrwxrwxrwx 1 root root 5 Jun  7 22:55 /dev/serial1 -&amp;gt; ttyS0&lt;br /&gt;
* Bei den Modellen ohne BT und richtiger Konfiguration&lt;br /&gt;
  lrwxrwxrwx 1 root root 7 Jun  8 18:30 /dev/serial0 -&amp;gt; ttyAMA0&lt;br /&gt;
Sollte das nicht der Fall sein, sind die Einträge in der /boot/config.txt fehlerhaft. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kontrolle Bluetooth&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Funktion von Bluetooth kann mit dem hcitool überprüft werden. Mit &amp;lt;code&amp;gt;hcitool dev&amp;lt;/code&amp;gt; wird das interne BT Gerät mit MAC Adresse angezeigt. Mit &amp;lt;code&amp;gt;hcitool scan&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;hcitool lescan&amp;lt;/code&amp;gt; kann nach sichtbaren Geräten gesucht werden.&lt;br /&gt;
&lt;br /&gt;
Weitergehende Informationen zur Anpassung der Konfiguration von Raspberry Pi OS sind nachzulesen auf https://www.raspberrypi.org/documentation/configuration/.&lt;br /&gt;
&lt;br /&gt;
Sollte die Bluetooth Schnittstelle nach der Installation von FHEM nicht funktionieren, hilft es den Dienst abhängig zu starten, siehe diesen Wiki Artikel [[Fhem.service (systemd unit file)]] &lt;br /&gt;
&lt;br /&gt;
=== FHEM ===&lt;br /&gt;
Die Installation von FHEM kann nach der Raspberry Pi OS Installation sehr einfach über das Debian-Repository [http://debian.fhem.de] erfolgen. &lt;br /&gt;
* Es wird unbedingt empfohlen zur Grundinstallation zunächst keine Module, USB Sticks oder ähnliche Zusatzbaugruppen an den IO Ports des Raspberry gesteckt zu haben. &lt;br /&gt;
* Dieser Abschnitt beschreibt nur die Grundinstallation von FHEM auf einem Raspberry Pi mit Raspberry Pi OS! &lt;br /&gt;
* Weitere Installationsschritte sind je nach verwendeten FHEM-Modulen notwendig. &lt;br /&gt;
** Informationen hierzu liefert üblicherweise die {{Link2CmdRef}} zum jeweiligen Modul.&lt;br /&gt;
** Den weiteren Einstieg in FHEM findet man im Artikel [[Quick-Start]]&lt;br /&gt;
&lt;br /&gt;
==== Der einfache Weg zum aktuellen System ====&lt;br /&gt;
Der folgende Befehlsblock ist die praktische Umsetzung der Beschreibung auf http://debian.fhem.de. Bitte unbedingt vor Installation rückversichern, ob es dort (insbesondere unter &#039;&#039;The easy way: use apt-get&#039;&#039;) Aktualisierungen gab. &lt;br /&gt;
* Dieser Befehlsblock erfordert erhöhte Rechte, also bitte als Erstes &amp;lt;code&amp;gt;sudo su&amp;lt;/code&amp;gt; ausführen!&lt;br /&gt;
* Beim Kopieren aufpassen! Jede Zeile muss einzeln ausgeführt werden!&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# von debian.fhem.de installieren - siehe aktuelle Anleitung dort https://debian.fhem.de/&lt;br /&gt;
wget -qO - http://debian.fhem.de/archive.key | apt-key add -&lt;br /&gt;
echo &amp;quot;deb http://debian.fhem.de/nightly/ /&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
apt-get update&lt;br /&gt;
apt-get install fhem&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Das offizielle Release ====&lt;br /&gt;
Man kann FHEM mit dem Debian-Paket von [https://fhem.de/#Installation fhem.de] installieren. Dieser Weg führt zu einem offiziellen Release, welches aber unter Umständen erheblich vom aktuellen Versions- und Diskussionsstand im Forum abweicht. &lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch den manuellen Weg von https://debian.fhem.de/ wählen.&lt;br /&gt;
&lt;br /&gt;
==== Empfohlener Patch ====&lt;br /&gt;
Da gerade auf dem Raspberry die automatische Erkennung der USB Schnittstellen zu 100% CPU Last führt (FHEM träge und reagiert nicht), wird empfohlen sofort nach der Installation noch diesen &amp;quot;Patch&amp;quot; auszuführen: FHEM starten, wenn alle USB-Geräte ausgesteckt sind. Dann &amp;lt;code&amp;gt;attr initialUsbCheck disable 1&amp;lt;/code&amp;gt; in der Kommandozeile in FHEMWEB eingeben, &amp;lt;code&amp;gt;save&amp;lt;/code&amp;gt; ausführen und FHEM anschließen wieder mit eingesteckten USB-Geräten neu starten.&lt;br /&gt;
&lt;br /&gt;
==== Deinstallation ====&lt;br /&gt;
Man kann FHEM auch wieder spurlos vom System entfernen und ganz von vorn beginnen. Allerdings sollte man sich im Klaren sein, damit ensteht kein jungfräuliches System!&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get purge fhem&lt;br /&gt;
sudo apt-get autoremove&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zusatzpakete bei FHEM-Erst- und Zweitinstallation ===&lt;br /&gt;
Nachdem der RPi eingerichtet ist, können weitere Pakete installiert werden. Keines davon ist zwingend erforderlich, um das Grundgerüst von FHEM betreiben zu können. Einige Pakete erhöhen aber den Bedienungskomfort, andere sind zur Nutzung bestimmter weiterer FHEM-Module (siehe {{Link2CmdRef}}) erforderlich. &lt;br /&gt;
&lt;br /&gt;
Hierzu wurden in letzter Zeit mehrere Hilfsmodule entwickelt, die insbesondere bei Wiederinstallation (etwa nach Absturz) wichtig sein können. So zeigt das Modul Installer die installierten Perl-Module an, siehe dazu [https://forum.fhem.de/index.php?topic=98381.15 diesen Thread]&lt;br /&gt;
&lt;br /&gt;
Wenn man eine frühere Installation auf einer anderen SD-Karte installieren möchte und nicht mehr weiß, welche Zusatzpakete man auf der alten Karte installiert hatte, hilft (diese und nachfolgende Hinweise sind aus dem Blog [https://heinz-otto.blogspot.com/2019/07/infos-zur-installation-von-modulen-und.html])&lt;br /&gt;
 zcat $(ls -tr /var/log/apt/history.log.*.gz)|grep -A1 Start-Date&lt;br /&gt;
weiter. Hier werden frühere Eingaben der Kommandozeile wiedergegeben. Es gibt einen analogen Befehl, um die mit CPAN installierten Pakete anzuzeigen. Dazu muss man das debian Paket perl-doc installiert haben und gibt dann ein&lt;br /&gt;
 for M in `perldoc -t perllocal|grep Module |sed -e &#039;s/^.*&amp;quot; //&#039;`; do V=`perldoc -t perllocal|awk &amp;quot;/$M/{y=1;next}y&amp;quot; |grep VERSION |head -n 1`; printf &amp;quot;%30s %s\n&amp;quot; &amp;quot;$M&amp;quot; &amp;quot;$V&amp;quot;; done |sort&lt;br /&gt;
Ebenso kann man herausfinden, ob und durch welches debian-Paket das Perl-Paket installiert wurde. Die zweite Version sucht nur in Paketen die -perl im Namen tragen und läuft damit wesentlich schneller:&lt;br /&gt;
 s=&#039;Device::SerialPort&#039; ## zu diesem Paket wird gesucht&lt;br /&gt;
 perl -M$s -e &#039;&#039; 2&amp;gt;/dev/null &amp;amp;&amp;amp;echo &amp;quot;Modul $s ist vorhanden&amp;quot;&#039;&#039;&lt;br /&gt;
 for i in $(dpkg -l |grep ^ii| awk &#039;{ print $2 }&#039;|tr -d &amp;quot;\r&amp;quot;|tr &amp;quot;\n&amp;quot; &amp;quot; &amp;quot;);do if dpkg -L $i|grep $s &amp;amp;&amp;gt; /dev/null;then echo $i enthält $s;fi;done&lt;br /&gt;
 for i in $(dpkg -l |grep ^ii|grep &#039;\-perl&#039;| awk &#039;{ print $2 }&#039;|tr -d &amp;quot;\r&amp;quot;|tr &amp;quot;\n&amp;quot; &amp;quot; &amp;quot;);do if dpkg -L $i|grep $s &amp;amp;&amp;gt; /dev/null;then echo $i enthält $s;fi;done&lt;br /&gt;
&lt;br /&gt;
Es gibt gute Gründe die Installation von Perl Modulen über debian-Pakete der Installation über cpan zu bevorzugen. Dazu zählt die Updatefähigkeit und die Geschwindigkeit. Man kann im Internet nach den Paketen suchen, man kann aber auch einfach die Verfügbarkeit für das lokale System testen. Dazu braucht man das Tool apt-file, welches man zuerst installieren muss. Der letzte Befehl lädt den Infocache lokal und dauert etwas:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install apt-file&lt;br /&gt;
 sudo apt-file update&lt;br /&gt;
Die folgende Suche nutzt den Umstand, dass in der im Paket enthaltenen Liste der Dateien auch die Doku in der Form &amp;quot;/usr/share/man/man3/IO::File.3perl.gz&amp;quot; enthalten ist. Der search Befehl unten akzeptiert mehrere Modulnamen durch Zeilenumbruch getrennt. In dem Beispiel sind die Modulnamen in einem String durch Leerzeichen getrennt, die Trennung wird in Zeilenumbruch geändert, jede Zeile ergänzt und über stdin an den search Befehl von apt-file übergeben. Die Option -l bewirkt das nur die gefunden Pakete gelistet werden, werden mehrere der abgefragten Modulnamen in einem Paket gefunden, wird es nur einmal gelistet:&lt;br /&gt;
 s=&amp;quot;IO::File Digest::MD5&amp;quot; ##Such-String&lt;br /&gt;
 echo $s|tr &amp;quot; &amp;quot; &amp;quot;\n&amp;quot;|sed &#039;s/$/./;s/^/\//&#039;|apt-file search -l -f -&lt;br /&gt;
&lt;br /&gt;
Zuletzt eine Übersicht diverser Zusatzpakete.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot; | Beschreibung&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot; | Paketname&lt;br /&gt;
! style=&amp;quot;width:50%&amp;quot; | Kontext&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Installieren&lt;br /&gt;
|-&lt;br /&gt;
|Zeitserver&lt;br /&gt;
|ntpdate&lt;br /&gt;
|Setzt die Systemzeit bei Start des RPi. Wird für FHEM benötigt, da es sonst nicht startet.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install ntpdate&lt;br /&gt;
sudo ntpdate -u de.pool.ntp.org&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Perl JSON&lt;br /&gt;
|JSON&lt;br /&gt;
|Wird von einigen Modulen benötigt, z.B. harmony, iTunes&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;
|Samba-Server&lt;br /&gt;
|samba&lt;br /&gt;
|Mittels Samba kann man z.B. den Ordner /opt/fhem als Share freigeben. Dieser Share kann z.B. im Windows-Explorer als Laufwerk verbunden werden, so dass die Bearbeitung von config- und Programmdateien bequem möglich ist. Hier eine hilfreiche [https://www.elektronik-kompendium.de/sites/raspberry-pi/2007071.htm Kurzanleitung] aus der (wenn man auf einen speziellen user verzichtet) nur die Einträge für smb.conf gesetzt werden müssen.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install samba cifs-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach muss der share definiert werden mittels&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo nano /etc/samba/smb.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Mailversand&lt;br /&gt;
|sendemail (alt: sendEmail)&lt;br /&gt;
|Wird benötigt, um Mails versenden zu können, bspw. für Alarm-Benachrichtigungen.&lt;br /&gt;
Nach Installation des Paketes benötigt man noch eine Routine in FHEM gemäß [[E-Mail senden#Raspberry Pi]]&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install sendemail&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;sudo apt-get install sendEmail&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Wake-on-LAN&lt;br /&gt;
|etherwake&lt;br /&gt;
|Wird z.B. für das Modul WOL benötigt.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install etherwake&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Perl Telnet&lt;br /&gt;
|telnet&lt;br /&gt;
|Wurde vor Fritz!OS 6.2x z.B. für das Modul [[FRITZBOX]] benötigt, da es eine im Netzwerk vorhandene Fritzbox über deren Telnet-Port ansprach. Mittlerweile wird TR-64 und SOAP verwendet.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install libnet-telnet-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Socat&lt;br /&gt;
|socat&lt;br /&gt;
|Kann verwendet werden, um auf anderen Rechnern im Netzwerk Linux-Befehle oder Skripts auszuführen. Auch können auf Slave-FHEM-Installationen Befehl ausgeführt werden, z.B. mit &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;system(&amp;quot;echo &#039;set lampe on&#039; | /usr/bin/socat - TCP:1.2.3.4:7072&amp;quot;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.2.3.4 muss natürlich durch die IP-Adresse des Zielrechners ersetzt werden.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install socat&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Libcrypt&lt;br /&gt;
|Libcrypt&lt;br /&gt;
|Perl libcrypt, erforderlich falls Homematic-devices mit AES verwendet werden sollen.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install libcrypt-rijndael-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|libdatetime&lt;br /&gt;
|libdatetime&lt;br /&gt;
|Perl libdatetime, erforderlich für das Weather-Modul.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install libdatetime-format-strptime-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|EnOcean XML functions&lt;br /&gt;
|libxml simple&lt;br /&gt;
|Perl XML::SIMPLE, erforderlich für die XML Funktionen des ENOCEAN Moduls.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install libxml-simple-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|EnOcean Cryptographic functions&lt;br /&gt;
|libcrypt-random-source-perl&lt;br /&gt;
|Perl Crypt::Random, erforderlich für die Cryptographic Funktionen des ENOCEAN Moduls.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo /usr/bin/perl -MCPAN -e &#039;install Crypt::Random&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
=== Netzteil ===&lt;br /&gt;
Der RPi verwendet ein USB Netzteil als Spannungsversorgung. Gemessen kann der RPi allein bereits um die 900mA Strom fordern. Das bringt kleine Netzteile, besonders wenn noch CULs oder WLAN Sticks an USB hängen schnell an die Grenze. Die Fehler die daraus resultieren sind Abstürze, Netzwerkprobleme uvm. Daher bitte ein ausreichend starkes Netzteil mit mind. 2000mA oder einen aktiven USB-HUB für die Periperie verwenden.&lt;br /&gt;
&lt;br /&gt;
=== Echtzeituhr ===&lt;br /&gt;
Der RPi hat keine [http://de.wikipedia.org/wiki/Echtzeituhr Real-Time-Clock] (RTC), das heißt, dass er nach einem Neustart keine gültige (im Sinne von aktuell) Systemzeit hat, sondern ein Datum in der Vergangenheit. Dieses Problem wird sinnvollerweise mit einer [http://de.wikipedia.org/wiki/Network_Time_Protocol NTP-Konfiguration] oder durch [[Raspberry Pi: RTC Hat|Installation einer Echtzeituhr]] umgangen.&lt;br /&gt;
&lt;br /&gt;
Dabei muss Sorge getragen werden, dass der [http://wiki.debian.org/NTP ntpd] schon einen Datums-/Zeitabgleich gemacht hat, bevor FHEM gestartet wird. Geschieht der Abgleich nicht vorher, sondern erst nachdem FHEM schon läuft, stellt FHEM die Logs zwar auf das nun aktuelle Datum um (die &amp;quot;alten&amp;quot; Logs mit dem eigentlich ungültigen Datum werden natürlich behalten), aber irgendetwas scheint FHEM dabei so zu belasten, dass es eine Last von über 0.8 bis 0.9 erzeugt. Diese Last besteht auf Dauer und verschwindet erst, wenn man das Ganze sauber durchkonfiguriert und FHEM neu gestartet hat. Die hohe Systemauslastung zeigt sich auch in einem sehr trägen Laden der FHEM-Webseiten in einem beliebigen Browser. (siehe {{Link2Forum|Topic=70741}})&lt;br /&gt;
&lt;br /&gt;
=== Last durch Backup (während update) ===&lt;br /&gt;
Bei einen [[Update]] von FHEM durch den Befehl &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; kann durch Setzen des Attributs &amp;quot;&amp;lt;code&amp;gt;attr global backup_before_update 1&amp;lt;/code&amp;gt;&amp;quot; automatisch vorab ein [[Backup]] durchgeführt werden. Die (ggf. großen) Log-Dateien werden dabei ebenfalls archiviert. Während der Archivierung ist FHEM blockiert. Durch die beschränkte Leistungsfähigkeit des Raspberry Pi kann das Backup zudem lange dauern. Durch ein &amp;quot;&amp;lt;code&amp;gt;attr global updateInBackground 1&amp;lt;/code&amp;gt;&amp;quot; wird ein Backup im Hintergrund ausgeführt (Quelle: {{Link2Forum|Topic=15729}}). &lt;br /&gt;
&lt;br /&gt;
Alternative Möglichkeiten: &lt;br /&gt;
* Backup ausschalten und manuell durchführen &lt;br /&gt;
* Backup-Befehl anpassen und so große Dateien bzw. Verzeichnisse (log/) nicht archivieren&lt;br /&gt;
&lt;br /&gt;
== Watchdog einrichten ==&lt;br /&gt;
Man kann den RPi regelmäßig prüfen lassen, ob FHEM noch läuft und gegebenenfalls einen Neustart durchführen lassen. Eine mögliche Vorgehensweise ist in diesem {{Link2Forum|Topic=20553|LinkText=Forumsthema}} beschrieben.&lt;br /&gt;
{{Hinweis|Statt des Einsatzes derartiger Methoden ist zu empfehlen, nach der eigentliche Fehlerursache zu forschen und diese abzustellen. Haben Sie dennoch einen solchen Watchdog eingerichtet, sollten Sie bei Fragen zu Ihnen seltsam erscheinenden Phänomänen im Forum darauf hinweisen, auch wenn die Symptome scheinbar nichts mit dem Watchdog zu tun haben sollten.}}&lt;br /&gt;
&lt;br /&gt;
== Interne Links ==&lt;br /&gt;
* [[CUL am Raspberry Pi flashen]]&lt;br /&gt;
* [[Raspberry Pi und 1-Wire]]&lt;br /&gt;
&lt;br /&gt;
== Externe Links ==&lt;br /&gt;
* {{Link2Forum|Topic=33460|Message=264679}} zum Umzug von Raspberry B auf Raspberry Pi 2&lt;br /&gt;
* [http://www.raspberrypi.org/ Offizielle Webseite der Raspberry Pi Foundation]&lt;br /&gt;
* [http://www.raspberrypi.org/downloads Offizielle Downloads der Raspberry Pi Foundation]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi&amp;diff=33569</id>
		<title>Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi&amp;diff=33569"/>
		<updated>2020-07-19T15:03:32Z</updated>

		<summary type="html">&lt;p&gt;PeMue: raspbian -&amp;gt; Raspberry Pi OS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Beim &#039;&#039;&#039;Raspberry Pi&#039;&#039;&#039; handelt es sich um einen postkartengroßen Einplatinen-Computer, der von der Raspberry Pi Foundation entwickelt wird. Die Hardware basiert auf dem BCM 283x SoC (System-on-Chip) von Broadcom, einem ARM-Prozessor. Zu Hardwaredetails und den verschiedenen Modellen sowie Produktentwicklungen siehe [http://de.wikipedia.org/wiki/Raspberry_Pi#Hardware Wikipedia].&lt;br /&gt;
Dank der kleinen Abmessungen, dem recht geringen Energieverbrauch (bis ca. 4 Watt) sowie der günstigen Anschaffungskosten (ca. 30€) ist der Raspberry Pi eine attraktive Hardware für die Heimautomatisierung mit FHEM. Er ist dank dem Linux-Betriebssystem vollständig kompatibel zur aktuell vorhandenen und von FHEM unterstützen Hardware. Das derzeit empfohlene Standard-Image zum Betrieb des Raspberry Pi ist die auf Debian basierende Raspberry Pi OS Distribution.&lt;br /&gt;
&lt;br /&gt;
== Installation / Setup ==&lt;br /&gt;
=== Betriebssystem ===&lt;br /&gt;
====Vorbemerkung====&lt;br /&gt;
Raspberry Pi OS ist direkt bei raspberrybi.org unter https://www.raspberrypi.org/downloads/raspberry-pi-os/ herunterladbar. Die folgende Anleitung gilt für die lite-Version ohne grafischen Desktop und für die Modelle für B, B+, B2, B3, B3+, Zero W. (Stand Juni 2018)&lt;br /&gt;
&lt;br /&gt;
Alle in diesem Abschnitt verwendeten Code Blöcke benötigen root Rechte. Deshalb bitte immer am Besten im Kontext &amp;lt;code&amp;gt;sudo su&amp;lt;/code&amp;gt; ausführen. Man kann auch einzelne Befehle mit sudo davor ausführen, allerdings wird die Berechtigung bei Pipe Befehlen nicht durchgereicht. &lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen im Linux-Format (nur LF als Zeilenende) erzeugt/editiert werden! Unbedingt einen geeigneten Editor verwenden und auf das Format beim Speichern achten!&lt;br /&gt;
&lt;br /&gt;
====SD-Karte vorbereiten====&lt;br /&gt;
Die heruntergeladene Datei muss entpackt und auf die Speicherkarte geschrieben werden. Es gibt dazu verschiedene Tools je nach Betriebssystem. Für Windows ist windisk32imager zu empfehlen, Projektseite [https://sourceforge.net/projects/win32diskimager/]. Für Mac OS gibt es den Pi Filler.&lt;br /&gt;
&lt;br /&gt;
Detaillierte Anleitungen zur Vorgehensweise finden sich für die Betriebssysteme Linux, Mac OS und Windows unter [https://www.raspberrypi.org/documentation/installation/installing-images/README.md Writing an image to the SD card]&lt;br /&gt;
&lt;br /&gt;
Die SD Card enthält nun zwei Partitionen/Laufwerke, wobei das erste Laufwerk unter alle Betriebssystemen lesbar ist. In diesem Laufwerk (/boot) müssen jetzt noch zwei Dateien erzeugt werden:&lt;br /&gt;
* eine leere Datei mit dem Namen ssh, um den (headless) Zugriff per ssh zu ermöglichen (Pi Filler macht dies automatisch). Hinweis: Eine spätere Aktivierung von SSH ist mit &amp;lt;code&amp;gt;sudo raspi-config&amp;lt;/code&amp;gt; (Punkt 5 &amp;quot;Interfacing Options&amp;quot;, dann Punkt 2 SSH) möglich, erfordert dann aber Tastatur und Monitor am RPi.&lt;br /&gt;
* eine Textdatei im Linux Format mit Namen wpa_supplicant.conf und folgendem Inhalt, wenn der Pi sofort mit WLAN starten soll.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;country=DE&lt;br /&gt;
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev&lt;br /&gt;
update_config=1&lt;br /&gt;
network={&lt;br /&gt;
        ssid=&amp;quot;FRITZ!Box 7490&amp;quot;&lt;br /&gt;
        psk=&amp;quot;12345678901234567890&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* SD Karte auswerfen.&lt;br /&gt;
* SD Karte in Raspberry Pi stecken und booten.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann auch Monitor und Tastatur verwendet werden.&lt;br /&gt;
&lt;br /&gt;
====Anmeldung und Grundkonfiguration====&lt;br /&gt;
Default raspberrypi-os: Host raspberrypi, User pi, Passwort raspberry &lt;br /&gt;
&lt;br /&gt;
Default ubuntu: Host ubuntu, User ubuntu, Passwort ubuntu&lt;br /&gt;
&lt;br /&gt;
Anmeldung entweder lokal oder mit dem Befehl: ssh &amp;lt;user&amp;gt;@&amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Passwort sollte geändert werden, dazu dem Sicherheitshinweis folgen und &amp;lt;code&amp;gt;passwd&amp;lt;/code&amp;gt; eingeben.&lt;br /&gt;
&lt;br /&gt;
Alle unten genannten Befehle müssen mit erhöhten Rechten ausgeführt werden (z. B. sudo)!&lt;br /&gt;
&lt;br /&gt;
Als Erstes sollte: Zeitzone, Sprache und  Hostname angepasst werden. &lt;br /&gt;
Entweder Menügeführt mit &amp;lt;code&amp;gt;sudo raspi-config&amp;lt;/code&amp;gt; &lt;br /&gt;
oder per Script / Shell Befehle:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# Zeitzone einstellen &amp;amp; Zeitsynchronisierung über das Internet aktivieren&lt;br /&gt;
timedatectl set-timezone Europe/Berlin&lt;br /&gt;
timedatectl set-ntp true&lt;br /&gt;
&lt;br /&gt;
# Konfigurieren lokale Sprache deutsch&lt;br /&gt;
sed -i -e &#039;s/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/&#039; /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
localectl set-locale LANG=de_DE.UTF-8 LANGUAGE=de_DE&lt;br /&gt;
&lt;br /&gt;
# Hostname &lt;br /&gt;
hostnamectl set-hostname mymachine&lt;br /&gt;
&lt;br /&gt;
# System aktualisieren &lt;br /&gt;
apt-get update&lt;br /&gt;
apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
#Neustart&lt;br /&gt;
reboot&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Am Anfang sollte man Befehle nicht verketten, sondern immer auf die Ausgabe warten (es sei denn, man hat Erfahrung): also kein &amp;lt;code&amp;gt;apt-get update &amp;amp;&amp;amp; apt-get upgrade &amp;lt;/code&amp;gt;. Ebenso sollte man nicht mit automatischen Bestätigungen arbeiten, also kein upgrade mit &amp;quot;-y&amp;quot;. Nach einer Installation ist ein aufräumen immer gut, also:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt-get autoremove&lt;br /&gt;
apt-get clean&lt;br /&gt;
apt-get purge $(dpkg --get-selections | grep deinstall | cut -f1 | xargs)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Verwendung UART für Zusatzmodule====&lt;br /&gt;
Einige Aufsteckmodule (z.B. HM-MOD-RPI-PCB) für den GPIO Port verwenden die serielle Schnittstelle UART. Der Zugriff auf diese serielle Schnittstelle erfordert eine modellabhängige Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Bei allen Modellen muss die Verwendung der seriellen Linux console an ttyAMA0 deaktiviert werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# seriell-getty Dienst für ttyAMA0 dauerhaft deaktivieren&lt;br /&gt;
systemctl stop serial-getty@ttyAMA0.service&lt;br /&gt;
systemctl disable serial-getty@ttyAMA0.service&lt;br /&gt;
systemctl mask serial-getty@ttyAMA0.service&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Bei den Modellen mit Bluetooth muss die UART aktiviert und umkonfiguriert werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# serielle Schnittstelle aktivieren und mit BT Schnittstelle tauschen&lt;br /&gt;
# für Raspberry Pi OS&lt;br /&gt;
config=&amp;quot;/boot/config.txt&amp;quot;&lt;br /&gt;
# für Ubuntu&lt;br /&gt;
#config=&amp;quot;/boot/firmware/usercfg.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
bash -c &amp;quot;cat &amp;lt;&amp;lt;EOF &amp;gt;&amp;gt; $config&lt;br /&gt;
enable_uart=1&lt;br /&gt;
dtoverlay=miniuart-bt&lt;br /&gt;
core_freq=250&lt;br /&gt;
EOF&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Die config Datei von ubuntu verwendet den Befehl include usercfg.txt. Mit Erscheinen des Pi 4 wurden die overlay Dateien umbenannt (Start mit Pi3- entfernt) die alten Namen funktionieren aber noch.&lt;br /&gt;
&lt;br /&gt;
Um die Konfiguration abzuschließen ist ein Neustart erforderlich&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#Neustart erforderlich &lt;br /&gt;
reboot&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
&#039;&#039;&#039;Kontrolle der seriellen Schnittstelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Befehl &amp;lt;code&amp;gt;ls -l /dev/ttyAMA0&amp;lt;/code&amp;gt; muss folgende Ausgabe liefern.&lt;br /&gt;
  crw-rw---- 1 root dialout 204, 64 Jun  7 22:56 /dev/ttyAMA0&lt;br /&gt;
Sollte dies nicht der Fall sein, muss der Dienst serial-getty@ttyAMA0.service deaktiviert werden!&lt;br /&gt;
&lt;br /&gt;
Kontrolle der Verlinkung von /dev/serial*&lt;br /&gt;
&lt;br /&gt;
Der Befehl &amp;lt;code&amp;gt;ls -l /dev/serial*&amp;lt;/code&amp;gt; muss folgende Ausgabe liefern.&lt;br /&gt;
* Bei Modellen mit BT und richtiger Konfiguration (funktioniert nur unter Raspberry Pi OS)&lt;br /&gt;
  lrwxrwxrwx 1 root root 7 Jun  7 22:55 /dev/serial0 -&amp;gt; ttyAMA0&lt;br /&gt;
  lrwxrwxrwx 1 root root 5 Jun  7 22:55 /dev/serial1 -&amp;gt; ttyS0&lt;br /&gt;
* Bei den Modellen ohne BT und richtiger Konfiguration&lt;br /&gt;
  lrwxrwxrwx 1 root root 7 Jun  8 18:30 /dev/serial0 -&amp;gt; ttyAMA0&lt;br /&gt;
Sollte das nicht der Fall sein, sind die Einträge in der /boot/config.txt fehlerhaft. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kontrolle Bluetooth&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Funktion von Bluetooth kann mit dem hcitool überprüft werden. Mit &amp;lt;code&amp;gt;hcitool dev&amp;lt;/code&amp;gt; wird das interne BT Gerät mit MAC Adresse angezeigt. Mit &amp;lt;code&amp;gt;hcitool scan&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;hcitool lescan&amp;lt;/code&amp;gt; kann nach sichtbaren Geräten gesucht werden.&lt;br /&gt;
&lt;br /&gt;
Weitergehende Informationen zur Anpassung der Konfiguration von Raspberry Pi OS sind nachzulesen auf https://www.raspberrypi.org/documentation/configuration/.&lt;br /&gt;
&lt;br /&gt;
Sollte die Bluetooth Schnittstelle nach der Installation von FHEM nicht funktionieren, hilft es den Dienst abhängig zu starten, siehe diesen Wiki Artikel [[Fhem.service (systemd unit file)]] &lt;br /&gt;
&lt;br /&gt;
=== FHEM ===&lt;br /&gt;
Die Installation von FHEM kann nach der Raspberry Pi OS Installation sehr einfach über das Debian-Repository [http://debian.fhem.de] erfolgen. &lt;br /&gt;
* Es wird unbedingt empfohlen zur Grundinstallation zunächst keine Module, USB Sticks oder ähnliche Zusatzbaugruppen an den IO Ports des Raspberry gesteckt zu haben. &lt;br /&gt;
* Dieser Abschnitt beschreibt nur die Grundinstallation von FHEM auf einem Raspberry Pi mit Raspberry Pi OS! &lt;br /&gt;
* Weitere Installationsschritte sind je nach verwendeten FHEM-Modulen notwendig. &lt;br /&gt;
** Informationen hierzu liefert üblicherweise die {{Link2CmdRef}} zum jeweiligen Modul.&lt;br /&gt;
** Den weiteren Einstieg in FHEM findet man im Artikel [[Quick-Start]]&lt;br /&gt;
&lt;br /&gt;
==== Der einfache Weg zum aktuellen System ====&lt;br /&gt;
Der folgende Befehlsblock ist die praktische Umsetzung der Beschreibung auf http://debian.fhem.de. Bitte unbedingt vor Installation rückversichern, ob es dort (insbesondere unter &#039;&#039;The easy way: use apt-get&#039;&#039;) Aktualisierungen gab. &lt;br /&gt;
* Dieser Befehlsblock erfordert erhöhte Rechte, also bitte als Erstes &amp;lt;code&amp;gt;sudo su&amp;lt;/code&amp;gt; ausführen!&lt;br /&gt;
* Beim Kopieren aufpassen! Jede Zeile muss einzeln ausgeführt werden!&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# von debian.fhem.de installieren - siehe aktuelle Anleitung dort https://debian.fhem.de/&lt;br /&gt;
wget -qO - http://debian.fhem.de/archive.key | apt-key add -&lt;br /&gt;
echo &amp;quot;deb http://debian.fhem.de/nightly/ /&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
apt-get update&lt;br /&gt;
apt-get install fhem&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Das offizielle Release ====&lt;br /&gt;
Man kann FHEM mit dem Debian-Paket von [https://fhem.de/#Installation fhem.de] installieren. Dieser Weg führt zu einem offiziellen Release, welches aber unter Umständen erheblich vom aktuellen Versions- und Diskussionsstand im Forum abweicht. &lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch den manuellen Weg von https://debian.fhem.de/ wählen.&lt;br /&gt;
&lt;br /&gt;
==== Empfohlener Patch ====&lt;br /&gt;
Da gerade auf dem Raspberry die automatische Erkennung der USB Schnittstellen zu 100% CPU Last führt (FHEM träge und reagiert nicht), wird empfohlen sofort nach der Installation noch diesen &amp;quot;Patch&amp;quot; auszuführen: FHEM starten, wenn alle USB-Geräte ausgesteckt sind. Dann &amp;lt;code&amp;gt;attr initialUsbCheck disable 1&amp;lt;/code&amp;gt; in der Kommandozeile in FHEMWEB eingeben, &amp;lt;code&amp;gt;save&amp;lt;/code&amp;gt; ausführen und FHEM anschließen wieder mit eingesteckten USB-Geräten neu starten.&lt;br /&gt;
&lt;br /&gt;
==== Deinstallation ====&lt;br /&gt;
Man kann FHEM auch wieder spurlos vom System entfernen und ganz von vorn beginnen. Allerdings sollte man sich im Klaren sein, damit ensteht kein jungfräuliches System!&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get purge fhem&lt;br /&gt;
sudo apt-get autoremove&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zusatzpakete bei FHEM-Erst- und Zweitinstallation ===&lt;br /&gt;
Nachdem der RPi eingerichtet ist, können weitere Pakete installiert werden. Keines davon ist zwingend erforderlich, um das Grundgerüst von FHEM betreiben zu können. Einige Pakete erhöhen aber den Bedienungskomfort, andere sind zur Nutzung bestimmter weiterer FHEM-Module (siehe {{Link2CmdRef}}) erforderlich. &lt;br /&gt;
&lt;br /&gt;
Hierzu wurden in letzter Zeit mehrere Hilfsmodule entwickelt, die insbesondere bei Wiederinstallation (etwa nach Absturz) wichtig sein können. So zeigt das Modul Installer die installierten Perl-Module an, siehe dazu [https://forum.fhem.de/index.php?topic=98381.15 diesen Thread]&lt;br /&gt;
&lt;br /&gt;
Wenn man eine frühere Installation auf einer anderen SD-Karte installieren möchte und nicht mehr weiß, welche Zusatzpakete man auf der alten Karte installiert hatte, hilft (diese und nachfolgende Hinweise sind aus dem Blog [https://heinz-otto.blogspot.com/2019/07/infos-zur-installation-von-modulen-und.html])&lt;br /&gt;
 zcat $(ls -tr /var/log/apt/history.log.*.gz)|grep -A1 Start-Date&lt;br /&gt;
weiter. Hier werden frühere Eingaben der Kommandozeile wiedergegeben. Es gibt einen analogen Befehl, um die mit CPAN installierten Pakete anzuzeigen. Dazu muss man das debian Paket perl-doc installiert haben und gibt dann ein&lt;br /&gt;
 for M in `perldoc -t perllocal|grep Module |sed -e &#039;s/^.*&amp;quot; //&#039;`; do V=`perldoc -t perllocal|awk &amp;quot;/$M/{y=1;next}y&amp;quot; |grep VERSION |head -n 1`; printf &amp;quot;%30s %s\n&amp;quot; &amp;quot;$M&amp;quot; &amp;quot;$V&amp;quot;; done |sort&lt;br /&gt;
Ebenso kann man herausfinden, ob und durch welches debian-Paket das Perl-Paket installiert wurde. Die zweite Version sucht nur in Paketen die -perl im Namen tragen und läuft damit wesentlich schneller:&lt;br /&gt;
 s=&#039;Device::SerialPort&#039; ## zu diesem Paket wird gesucht&lt;br /&gt;
 perl -M$s -e &#039;&#039; 2&amp;gt;/dev/null &amp;amp;&amp;amp;echo &amp;quot;Modul $s ist vorhanden&amp;quot;&#039;&#039;&lt;br /&gt;
 for i in $(dpkg -l |grep ^ii| awk &#039;{ print $2 }&#039;|tr -d &amp;quot;\r&amp;quot;|tr &amp;quot;\n&amp;quot; &amp;quot; &amp;quot;);do if dpkg -L $i|grep $s &amp;amp;&amp;gt; /dev/null;then echo $i enthält $s;fi;done&lt;br /&gt;
 for i in $(dpkg -l |grep ^ii|grep &#039;\-perl&#039;| awk &#039;{ print $2 }&#039;|tr -d &amp;quot;\r&amp;quot;|tr &amp;quot;\n&amp;quot; &amp;quot; &amp;quot;);do if dpkg -L $i|grep $s &amp;amp;&amp;gt; /dev/null;then echo $i enthält $s;fi;done&lt;br /&gt;
&lt;br /&gt;
Es gibt gute Gründe die Installation von Perl Modulen über debian-Pakete der Installation über cpan zu bevorzugen. Dazu zählt die Updatefähigkeit und die Geschwindigkeit. Man kann im Internet nach den Paketen suchen, man kann aber auch einfach die Verfügbarkeit für das lokale System testen. Dazu braucht man das Tool apt-file, welches man zuerst installieren muss. Der letzte Befehl lädt den Infocache lokal und dauert etwas:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install apt-file&lt;br /&gt;
 sudo apt-file update&lt;br /&gt;
Die folgende Suche nutzt den Umstand, dass in der im Paket enthaltenen Liste der Dateien auch die Doku in der Form &amp;quot;/usr/share/man/man3/IO::File.3perl.gz&amp;quot; enthalten ist. Der search Befehl unten akzeptiert mehrere Modulnamen durch Zeilenumbruch getrennt. In dem Beispiel sind die Modulnamen in einem String durch Leerzeichen getrennt, die Trennung wird in Zeilenumbruch geändert, jede Zeile ergänzt und über stdin an den search Befehl von apt-file übergeben. Die Option -l bewirkt das nur die gefunden Pakete gelistet werden, werden mehrere der abgefragten Modulnamen in einem Paket gefunden, wird es nur einmal gelistet:&lt;br /&gt;
 s=&amp;quot;IO::File Digest::MD5&amp;quot; ##Such-String&lt;br /&gt;
 echo $s|tr &amp;quot; &amp;quot; &amp;quot;\n&amp;quot;|sed &#039;s/$/./;s/^/\//&#039;|apt-file search -l -f -&lt;br /&gt;
&lt;br /&gt;
Zuletzt eine Übersicht diverser Zusatzpakete.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot; | Beschreibung&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot; | Paketname&lt;br /&gt;
! style=&amp;quot;width:50%&amp;quot; | Kontext&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Installieren&lt;br /&gt;
|-&lt;br /&gt;
|Zeitserver&lt;br /&gt;
|ntpdate&lt;br /&gt;
|Setzt die Systemzeit bei Start des RPi. Wird für FHEM benötigt, da es sonst nicht startet.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install ntpdate&lt;br /&gt;
sudo ntpdate -u de.pool.ntp.org&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Perl JSON&lt;br /&gt;
|JSON&lt;br /&gt;
|Wird von einigen Modulen benötigt, z.B. harmony, iTunes&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;
|Samba-Server&lt;br /&gt;
|samba&lt;br /&gt;
|Mittels Samba kann man z.B. den Ordner /opt/fhem als Share freigeben. Dieser Share kann z.B. im Windows-Explorer als Laufwerk verbunden werden, so dass die Bearbeitung von config- und Programmdateien bequem möglich ist. Hier eine hilfreiche [https://www.elektronik-kompendium.de/sites/raspberry-pi/2007071.htm Kurzanleitung] aus der (wenn man auf einen speziellen user verzichtet) nur die Einträge für smb.conf gesetzt werden müssen.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install samba cifs-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach muss der share definiert werden mittels&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo nano /etc/samba/smb.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Mailversand&lt;br /&gt;
|sendemail (alt: sendEmail)&lt;br /&gt;
|Wird benötigt, um Mails versenden zu können, bspw. für Alarm-Benachrichtigungen.&lt;br /&gt;
Nach Installation des Paketes benötigt man noch eine Routine in FHEM gemäß [[E-Mail senden#Raspberry Pi]]&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install sendemail&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;sudo apt-get install sendEmail&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Wake-on-LAN&lt;br /&gt;
|etherwake&lt;br /&gt;
|Wird z.B. für das Modul WOL benötigt.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install etherwake&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Perl Telnet&lt;br /&gt;
|telnet&lt;br /&gt;
|Wurde vor Fritz!OS 6.2x z.B. für das Modul [[FRITZBOX]] benötigt, da es eine im Netzwerk vorhandene Fritzbox über deren Telnet-Port ansprach. Mittlerweile wird TR-64 und SOAP verwendet.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install libnet-telnet-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Socat&lt;br /&gt;
|socat&lt;br /&gt;
|Kann verwendet werden, um auf anderen Rechnern im Netzwerk Linux-Befehle oder Skripts auszuführen. Auch können auf Slave-FHEM-Installationen Befehl ausgeführt werden, z.B. mit &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;system(&amp;quot;echo &#039;set lampe on&#039; | /usr/bin/socat - TCP:1.2.3.4:7072&amp;quot;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.2.3.4 muss natürlich durch die IP-Adresse des Zielrechners ersetzt werden.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install socat&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Libcrypt&lt;br /&gt;
|Libcrypt&lt;br /&gt;
|Perl libcrypt, erforderlich falls Homematic-devices mit AES verwendet werden sollen.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install libcrypt-rijndael-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|libdatetime&lt;br /&gt;
|libdatetime&lt;br /&gt;
|Perl libdatetime, erforderlich für das Weather-Modul.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install libdatetime-format-strptime-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|EnOcean XML functions&lt;br /&gt;
|libxml simple&lt;br /&gt;
|Perl XML::SIMPLE, erforderlich für die XML Funktionen des ENOCEAN Moduls.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install libxml-simple-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|EnOcean Cryptographic functions&lt;br /&gt;
|libcrypt-random-source-perl&lt;br /&gt;
|Perl Crypt::Random, erforderlich für die Cryptographic Funktionen des ENOCEAN Moduls.&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo /usr/bin/perl -MCPAN -e &#039;install Crypt::Random&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
=== Netzteil ===&lt;br /&gt;
Der RPi verwendet ein USB Netzteil als Spannungsversorgung. Gemessen kann der RPi allein bereits um die 900mA Strom fordern. Das bringt kleine Netzteile, besonders wenn noch CULs oder WLAN Sticks an USB hängen schnell an die Grenze. Die Fehler die daraus resultieren sind Abstürze, Netzwerkprobleme uvm. Daher bitte ein ausreichend starkes Netzteil mit mind. 2000mA oder einen aktiven USB-HUB für die Periperie verwenden.&lt;br /&gt;
&lt;br /&gt;
=== Echtzeituhr ===&lt;br /&gt;
Der RPi hat keine [http://de.wikipedia.org/wiki/Echtzeituhr Real-Time-Clock] (RTC), das heißt, dass er nach einem Neustart keine gültige (im Sinne von aktuell) Systemzeit hat, sondern ein Datum in der Vergangenheit. Dieses Problem wird sinnvollerweise mit einer [http://de.wikipedia.org/wiki/Network_Time_Protocol NTP-Konfiguration] oder durch [[Raspberry Pi: RTC Hat|Installation einer Echtzeituhr]] umgangen.&lt;br /&gt;
&lt;br /&gt;
Dabei muss Sorge getragen werden, dass der [http://wiki.debian.org/NTP ntpd] schon einen Datums-/Zeitabgleich gemacht hat, bevor FHEM gestartet wird. Geschieht der Abgleich nicht vorher, sondern erst nachdem FHEM schon läuft, stellt FHEM die Logs zwar auf das nun aktuelle Datum um (die &amp;quot;alten&amp;quot; Logs mit dem eigentlich ungültigen Datum werden natürlich behalten), aber irgendetwas scheint FHEM dabei so zu belasten, dass es eine Last von über 0.8 bis 0.9 erzeugt. Diese Last besteht auf Dauer und verschwindet erst, wenn man das Ganze sauber durchkonfiguriert und FHEM neu gestartet hat. Die hohe Systemauslastung zeigt sich auch in einem sehr trägen Laden der FHEM-Webseiten in einem beliebigen Browser. (siehe {{Link2Forum|Topic=70741}})&lt;br /&gt;
&lt;br /&gt;
=== Last durch Backup (während update) ===&lt;br /&gt;
Bei einen [[Update]] von FHEM durch den Befehl &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; kann durch Setzen des Attributs &amp;quot;&amp;lt;code&amp;gt;attr global backup_before_update 1&amp;lt;/code&amp;gt;&amp;quot; automatisch vorab ein [[Backup]] durchgeführt werden. Die (ggf. großen) Log-Dateien werden dabei ebenfalls archiviert. Während der Archivierung ist FHEM blockiert. Durch die beschränkte Leistungsfähigkeit des Raspberry Pi kann das Backup zudem lange dauern. Durch ein &amp;quot;&amp;lt;code&amp;gt;attr global updateInBackground 1&amp;lt;/code&amp;gt;&amp;quot; wird ein Backup im Hintergrund ausgeführt (Quelle: {{Link2Forum|Topic=15729}}). &lt;br /&gt;
&lt;br /&gt;
Alternative Möglichkeiten: &lt;br /&gt;
* Backup ausschalten und manuell durchführen &lt;br /&gt;
* Backup-Befehl anpassen und so große Dateien bzw. Verzeichnisse (log/) nicht archivieren&lt;br /&gt;
&lt;br /&gt;
== Watchdog einrichten ==&lt;br /&gt;
Man kann den RPi regelmäßig prüfen lassen, ob FHEM noch läuft und gegebenenfalls einen Neustart durchführen lassen. Eine mögliche Vorgehensweise ist in diesem {{Link2Forum|Topic=20553|LinkText=Forumsthema}} beschrieben.&lt;br /&gt;
{{Hinweis|Statt des Einsatzes derartiger Methoden ist zu empfehlen, nach der eigentliche Fehlerursache zu forschen und diese abzustellen. Haben Sie dennoch einen solchen Watchdog eingerichtet, sollten Sie bei Fragen zu Ihnen seltsam erscheinenden Phänomänen im Forum darauf hinweisen, auch wenn die Symptome scheinbar nichts mit dem Watchdog zu tun haben sollten.}}&lt;br /&gt;
&lt;br /&gt;
== Interne Links ==&lt;br /&gt;
* [[CUL am Raspberry Pi flashen]]&lt;br /&gt;
* [[Raspberry Pi und 1-Wire]]&lt;br /&gt;
&lt;br /&gt;
== Externe Links ==&lt;br /&gt;
* {{Link2Forum|Topic=33460|Message=264679}} zum Umzug von Raspberry B auf Raspberry Pi 2&lt;br /&gt;
* [http://www.raspberrypi.org/ Offizielle Webseite der Raspberry Pi Foundation]&lt;br /&gt;
* [http://www.raspberrypi.org/downloads Offizielle Downloads der Raspberry Pi Foundation]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=MQTT2-Module_-_Praxisbeispiele&amp;diff=33371</id>
		<title>MQTT2-Module - Praxisbeispiele</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=MQTT2-Module_-_Praxisbeispiele&amp;diff=33371"/>
		<updated>2020-06-08T06:06:41Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Hinweis auf Passwort in den Geräten bei Absicherung mit allowed.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einführung: MQTT bzw. MQTT2 in FHEM ==&lt;br /&gt;
{{Randnotiz|RNTyp=y|RNText=Sollten Sie MQTT2_CLIENT verwenden, beachten Sie bitte, dass der MQTT2_CLIENT die ursprüngliche Herkunft der über MQTT verteilten Informationen nicht kennt. Daher ergeben sich in der Anwendung kleinere Unterschiede, zu deren Verständnis die diesbezüglichen [[MQTT2_CLIENT#Anwendung|Hinweise zu MQTT2_CLIENT]] bekannt sein sollten.}}Zur Einbindung von Geräten, welche zur Nutzung des MQTT-Protokols konfiguriert werden können und darüber mit einem MQTT-Server (früher: Broker) kommunizieren, stehen unter FHEM verschiedene Optionen zur Verfügung, wobei nicht alle Module beliebig miteinander verwendet werden können. Details hierzu sind dieser [[MQTT|Übersicht]] zu entnehmen. &lt;br /&gt;
&lt;br /&gt;
Im Rahmen dieses Artikels wird für die eigentlichen Geräte [[MQTT2 DEVICE|MQTT2_DEVICE]] verwendet, damit wird als IO-Device entweder {{Link2CmdRef|Anker=MQTT2_SERVER|Lang=en|Label=MQTT2_SERVER}} oder [[MQTT2 CLIENT|MQTT2_CLIENT]] oder benötigt, mit einem IO-Device des Typs [[MQTT (Modul)|MQTT]] funktioniert die nachfolgende Darstellung dagegen nicht&amp;lt;ref&amp;gt;Allerdings können die Konfigurationen in der Regel recht einfach auf die bisherige MQTT-Implementierung übertragen werden&amp;lt;/ref&amp;gt;. MQTT2_DEVICE unterstützt u.a. auch die &#039;&#039;setExtensions&#039;&#039; direkt, also z.B. &#039;&#039;on-for-timer&amp;lt;ref&amp;gt;Beachten Sie bei mehrkanaligen Geräten, dass jeweils nur ein Hauptkanal mittels setExtensions verwaltet werden kann! U.a. aus diesen Grund ist es meist sinnvoller, die &#039;&#039;split&#039;&#039;-Varianten der attrTemplate-Einrichtung zu verwenden.&amp;lt;/ref&amp;gt;&#039;&#039; sowie &#039;&#039;[[MQTT2-Module - Praxisbeispiele#attrTemplate_2|attrTemplate]]&#039;&#039;&amp;lt;ref&amp;gt;Auch MQTT_DEVICE unterstützt SetExtensions, allerdings muß dies dort per Attribut eingeschaltet werden&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Allgemeine Einstellungen und Hinweise ===&lt;br /&gt;
{{Randnotiz|RNTyp=r|RNText=Beachten Sie, dass für autocreate in Verbindung mit MQTT2_SERVER &#039;&#039;&#039;zwingend&#039;&#039;&#039; jeder über MQTT kommunizierende Client eine ClientID angeben muß. Passen Sie daher ggf. die Einstellungen Ihres Geräts an. Manche Geräte verwenden auch &amp;quot;Wegwerf&amp;quot;-ClientID&#039;s. Für diese empfiehlt es sich, ggf. dann die durch autocreate erstellten Geräte nachzubearbeiten und die ClientID-Angabe v.a. aus den Inhalten des readingList-Attributs zu entfernen.}}Die nachfolgenden Beispiele gelingen am einfachsten mit &#039;&#039;&#039;MQTT2_SERVER als Server (&amp;quot;Broker&amp;quot;)&#039;&#039;&#039;, für diesen sollte dabei &#039;&#039;autocreate&#039;&#039; nicht deaktiviert sein, damit die erforderlichen MQTT2_DEVICES soweit möglich automatisiert erstellt werden&amp;lt;ref&amp;gt;Dabei wird vorausgesetzt, dass ein allgemeines {{Link2CmdRef|Anker=autocreate|Lang=en|Label=autocreate}}-Device (&#039;&#039;TYPE=autocreate&#039;&#039;) ebenfalls aktiv ist.&amp;lt;/ref&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
Beispiel&amp;lt;ref&amp;gt;MQTT2_SERVER verwendet als default-Einstellung für &#039;&#039;autocreate&#039;&#039; &#039;&#039;simple&#039;&#039;, ohne dass ein entsprechendes Attribut gesetzt werden müßte. Die Einstellung &#039;&#039;complex&#039;&#039; empfiehlt sich in der Regel nicht; diese ist jedoch dann zu empfehlen, wenn das Device entweder verschachtelte JSON-Array-Strukturen liefert oder bestimmte Readings nicht gefüllt werden sollen.&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 define MQTT2_FHEM_Server MQTT2_SERVER 1883 global&lt;br /&gt;
&lt;br /&gt;
Falls der MQTT Broker mit Hilfe von [[allowed]] abgesichert wurde, muss in den Geräten ebenfalls User bzw. Passwort eingetragen werden, damit eine MQTT Kommunikation möglich ist.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Die Code-Darstellung in diesem Beitrag entspricht jeweils dem RAW-Format zum [[Import von Code Snippets]]. Wer die Attribute direkt und einzeln bearbeitet, muß ggf. die &amp;quot;\&amp;quot; entfernen!}}&lt;br /&gt;
&lt;br /&gt;
=== MQTT-Einstellungen in den Geräten ===&lt;br /&gt;
Die Beispiele gehen davon aus, dass die einzubindenden Geräte &#039;&#039;&#039;&#039;&#039;mit den default-Einstellungen&#039;&#039;&#039;&#039;&#039; für MQTT betrieben werden, wenn man von den Angaben zum Server und ggf. der Gerätekennung absieht. Es sollten also insbesondere &#039;&#039;&#039;keine Veränderungen der topic-Pfade&#039;&#039;&#039; vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Einige der hier beschriebenen Einstellungen haben Änderungen der sich durch die jeweiligen Automatismen eigentlich jeweils ergebenden Standard-Werte zur Folge, insbesondere, was Reading-Namen und von den Geräten gesendete Werte angeht. Sie sollten daher zunächst die Konfiguration des jeweiligen MQTT2-DEVICE-Geräts abschließen, und erst anschließend die weitere Integration mit Event-Handlern, logging usw. vornehmen.  }}&lt;br /&gt;
&lt;br /&gt;
== zigbee2mqtt ==&lt;br /&gt;
[[Bild:MQTT2_zigbee2mqtt_Bulbs.png|400px|thumb|Darstellung in FHEMWEB]]&lt;br /&gt;
[https://github.com/Koenkk/zigbee2mqtt zigbee2mqtt] ist ein open-source Projekt, mit dem zigbee-Geräte über MQTT direkt angesprochen werden können, ohne dass hierfür eine Bridge eines Herstellers benötigt wird.&lt;br /&gt;
=== Installation von zigbee2mqtt ===&lt;br /&gt;
Die Installation des zigbee2mqtt-Diensts ist auf der Homepage des Projekts beschrieben. Ergänzend muß in der configuration.yaml eine &#039;&#039;client_id&#039;&#039; unter &#039;&#039;mqtt&#039;&#039; (z.B. zigbee_pi) vergeben werden&amp;lt;ref&amp;gt;Die Anführungszeichen sowie genau zwei Leerzeichen sind hier erforderlich!&amp;lt;/ref&amp;gt;.&lt;br /&gt;
 mqtt:&lt;br /&gt;
   client_id: &#039;zigbee_pi&#039;&lt;br /&gt;
Da der Dienst auch später in den Anlernmodus versetzt werden kann, kann man auch gleich &amp;lt;code&amp;gt;permit_join: false&amp;lt;/code&amp;gt; setzen, um das versehentliche Einbinden neuer oder fremder Geräte zu unterbinden.&lt;br /&gt;
{{Hinweis|Wird ein CC2531 auf demselben Linux-Computer verwendet, auf dem auch FHEM installiert ist, kann es vorkommen, dass FHEM diesen mit einem CUL verwechselt und durch &#039;&#039;initialUsbCheck&#039;&#039; in FHEM einbindet, wodurch er für den zigbee2mqtt-Dienst nicht mehr verfügbar ist. Dann sollte &#039;&#039;initialUsbCheck&#039;&#039; deaktiviert und das automatisch angelegte CUL-Device wieder gelöscht werden. Weiter sollte der CC2531 auch in FHEM &#039;&#039;&#039;und&#039;&#039;&#039; zigbee2mqtt &#039;&#039;[[Mehrere USB-Geräte einbinden|by-id]]&#039;&#039; eingebunden werden, um Probleme beim gleichzeitigen Einsatz anderer Geräte, die &#039;&#039;/dev/ttyACMx&#039;&#039; belegen können, zu vermeiden (betrifft z.B. CUL/MapleCUL ).}}&lt;br /&gt;
&lt;br /&gt;
=== Define eines MQTT2-Devices als &amp;quot;Bridge&amp;quot; === &lt;br /&gt;
Dann kann eine Art &amp;quot;Grund-Device&amp;quot; angelegt werden, das für die Ansteuerung des eigentlichen Server-Dienstes genutzt wird, der bereits unmittelbar nach der erfolgreichen Konfiguration von zigbee2mqtt zur Verfügung steht. In der Regel sollte dieses automatisch erstellt werden, wenn der zigbee2mqtt-Dienst (oder der betreffende Rechner) neu gestartet wird (oder FHEM oder dort ein Sensor einen Messwert sendet). Beispiel&amp;lt;ref&amp;gt;Hier waren bereits zwei Zigbee-Geräte angelernt&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 defmod MQTT2_zigbee_pi MQTT2_DEVICE zigbee_pi&lt;br /&gt;
 attr MQTT2_zigbee_pi IODev MQTT2_FHEM_Server&lt;br /&gt;
 attr MQTT2_zigbee_pi readingList zigbee_pi:zigbee2mqtt/bridge/state:.* state\&lt;br /&gt;
   zigbee_pi:zigbee2mqtt/0x90fd9ffffe65db16:.* { json2nameValue($EVENT, &#039;&#039;) }\&#039;&#039;&lt;br /&gt;
   zigbee_pi:zigbee2mqtt/0x90fd9ffffe0bcd51:.* { json2nameValue($EVENT, &#039;&#039;) }\&#039;&#039;&lt;br /&gt;
   zigbee_pi:zigbee2mqtt/bridge/log:.* { json2nameValue($EVENT, &#039;log_&#039;) }&lt;br /&gt;
 attr MQTT2_zigbee_pi room MQTT2_DEVICE&lt;br /&gt;
&lt;br /&gt;
Für die Funktion einer zigbee2mqtt-Bridge steht ein {{Link2CmdRef|Anker=set|Lang=en|Label=template}} bereit, das direkt die passenden Attribute vergibt, um dem zigbee2mqtt-Dienst passende Anweisungen geben zu können und weitere Geräte für die eigentlichen Aktoren und Sensoren anzulegen:&lt;br /&gt;
&lt;br /&gt;
 set MQTT2_zigbee_pi attrTemplate zigbee2mqtt_bridge&lt;br /&gt;
&lt;br /&gt;
Ist dieses angelegt, kann zigbee2mqtt mit &amp;lt;code&amp;gt;set MQTT2_zigbee_pi permit_join true&amp;lt;/code&amp;gt; in den Anlernmodus versetzt werden, anzulernende Geräte müssen anschließend jeweils nach Bedienungsanleitung in den Anlernmodus gebracht werden.&lt;br /&gt;
&lt;br /&gt;
=== Vereinzeln der eigentlichen Geräte ===&lt;br /&gt;
&lt;br /&gt;
Über das mit dem template vergebene bridgeRegexp-Attribut  &lt;br /&gt;
 attr MQTT2_zigbee_pi bridgeRegexp zigbee2mqtt/([A-Za-z0-9]*)[/]?.*:.* &amp;quot;zigbee_$1&amp;quot; &lt;br /&gt;
werden anschließend neue MQTT2_DEVICE-Geräte automatisch angelegt, sobald ein bisher unbekanntes Zigbee-Gerät einen neuen Status (z.B. einen Meßwert) meldet. Um zu erfragen, welche Geräte dem zigbee-Deinst bekannt sind, kann via &amp;lt;code&amp;gt;get MQTT2_zigbee_pi devicelist true&amp;lt;/code&amp;gt; eine Liste abgefragt werden, die weitere Informationen zu den bereits angelernten Geräten enthält.&lt;br /&gt;
Geräte, die nicht automatisch etwas senden, kann man mit Hilfe des MQTT2_SERVER-Geräts einmalig schalten, damit diese ihren Status bzw. das erfolgreiche Schalten zurückmelden, Beispiel&amp;lt;ref&amp;gt;Die mit 0x... beginnende Angabe entspricht dabei dem &#039;&#039;friendly_name&#039;&#039;.&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 set MQTT2_FHEM_Server publish zigbee2mqtt/0x90fd9ffffe0bcd51/set {&amp;quot;state&amp;quot;:&amp;quot;ON&amp;quot;,&amp;quot;brightness&amp;quot;:60}&lt;br /&gt;
&lt;br /&gt;
Für Gerätetypen, für die bereits templates vorhanden sind, ist es am einfachsten, diese einmalig auf die Geräte anzuwenden. Das Vorgehen entspricht dabei dem oben für die Bridge beschriebenen. Dafür wird immer vorausgesetzt, dass ein neues Device mit autocreate (ggf. über die bridgeRegexp) angelegt wurde&amp;lt;ref&amp;gt;Dieses befindet sich dann im Raum MQTT2_DEVICE. Um diesen sichtbar zu machen, muß ggf. die Browser-Seite neu geladen werden.&amp;lt;/ref&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
==== IKEA-Tradfri-Birne ====&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Wie wähle ich nun das richtige Template für mein Leuchtmittel aus?&lt;br /&gt;
-&amp;gt; Es wird nicht zwischen einer Birne/Bulb/Lampe und einem LED-Controller unterschieden sondern anhand der möglichen Lichtdarstellung des Gerätes:&lt;br /&gt;
&lt;br /&gt;
light_dimmer:&lt;br /&gt;
Das anzusteuernde Geräte besitzt ausschließlich eine feste Lichtfarbe welche gedimmt werden kann.&lt;br /&gt;
&lt;br /&gt;
light_cct:&lt;br /&gt;
Das anzusteuernde Gerät besitzt eine warmweiße sowie kaltweiße Lichtfarbe welche verändert sowie gedimmt werden kann.&lt;br /&gt;
&lt;br /&gt;
light_rgb_xxx:&lt;br /&gt;
Das anzusteuernde Gerät besitzt die Möglichlichkeit einer farbigen Lichtdarstellung (Rot, Grün, Blau) und kann gedimmt werden.&lt;br /&gt;
&lt;br /&gt;
light_rgbw_xxx:&lt;br /&gt;
Das anzusteuernde Gerät besitzt die Möglichlichkeit einer farbigen Lichtdarstellung (Rot, Grün, Blau) und besitzt eine warmweiße ODER kaltweiße Lichtfarbe welche eingestellt sowie gedimmt werden kann.&lt;br /&gt;
&lt;br /&gt;
light_rgbcct_xxx:&lt;br /&gt;
Das anzusteuernde Gerät besitzt die Möglichlichkeit einer farbigen Lichtdarstellung (Rot, Grün, Blau) und besitzt eine warmweiße UND kaltweiße Lichtfarbe welche verändert sowie gedimmt werden kann.&lt;br /&gt;
   &lt;br /&gt;
   xxx:&lt;br /&gt;
      hex:   Farbänderung mit hex&lt;br /&gt;
      rgb:   Farbänderung mit r g b&lt;br /&gt;
      xy:   Farbänderung mit x sowie y&lt;br /&gt;
      hue:   Farbänderung mit hue und saturation&lt;br /&gt;
&lt;br /&gt;
Warum diese Einteilung in &amp;quot;hex&amp;quot;, &amp;quot;rgb&amp;quot;, &amp;quot;xy&amp;quot; sowie &amp;quot;hue&amp;quot;?&lt;br /&gt;
-&amp;gt; Zigbee2MQTT unterstützt das Übermitteln aller dieser Werte, allerdings unterscheiden sich hier die Geräte. Manche &amp;quot;verstehen&amp;quot; nur z.B. Hex-Farbänderungen, andere halt nur eine Farbänderung mit rgb-Werten.&lt;br /&gt;
-&amp;gt; Aus diesem Grund muss an dieser Stelle probiert werden mit welchem der 4 Templates sich die Farbveränderung des Gerätes steuern lässt!&lt;br /&gt;
&lt;br /&gt;
HINWEIS: Templates für Farbänderungen mithilfe von XY- sowie HUE-Werten wurden bis heute nicht angelegt!&lt;br /&gt;
}}&lt;br /&gt;
Beispiel eines dimmbaren Tradfri-Leuchtmittels&lt;br /&gt;
 defmod IKEA_Bulb2 MQTT2_DEVICE&lt;br /&gt;
 attr IKEA_Bulb2 IODev MQTT2_FHEM_Server&lt;br /&gt;
 attr IKEA_Bulb2 icon light_control&lt;br /&gt;
 attr IKEA_Bulb2 devStateIcon {zigbee2mqtt_devStateIcon255($name)}&lt;br /&gt;
 attr IKEA_Bulb2 readingList zigbee_pi:zigbee2mqtt/0x90fd9ffffe0bcd51:.* { json2nameValue($EVENT) }&lt;br /&gt;
 attr IKEA_Bulb2 setList on:noArg zigbee2mqtt/0x90fd9ffffe0bcd51/set {&amp;quot;state&amp;quot;:&amp;quot;ON&amp;quot;}\&lt;br /&gt;
     off:noArg zigbee2mqtt/0x90fd9ffffe0bcd51/set {&amp;quot;state&amp;quot;:&amp;quot;OFF&amp;quot;}\&lt;br /&gt;
     brightness:colorpicker,BRI,0,15,255 zigbee2mqtt/0x90fd9ffffe0bcd51/set {&amp;quot;state&amp;quot;:&amp;quot;on&amp;quot;,&amp;quot;$EVTPART0&amp;quot;:&amp;quot;$EVTPART1&amp;quot;}&lt;br /&gt;
 attr IKEA_Bulb2 webCmd toggle:on:off:brightness&lt;br /&gt;
 attr IKEA_Bulb2 model L_02a_zigbee2mqtt_bulb&lt;br /&gt;
&lt;br /&gt;
Kann man auch die Farbtemperatur einstellen, wird die setList wie folgt erweitert oder das entsprechende template&amp;lt;ref&amp;gt;Durch die &#039;&#039;model&#039;&#039;-Angabe kann nachvollzogen werden, welches template angewendet wurde.&amp;lt;/ref&amp;gt; anwendet:&lt;br /&gt;
 ...&lt;br /&gt;
 color_temp:colorpicker,CT,250,1,454 zigbee2mqtt/0x90fd9ffffe0bcd51/set {&amp;quot;$EVTPART0&amp;quot;:&amp;quot;$EVTPART1&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
Die templates sind dabei in der Regel so gestaltet, dass eventuell mehr Optionen in FHEMWEB erscheinen, als tatsächlich vorhanden oder erwünscht sind. &lt;br /&gt;
Da sich obige einfarbige dimmbare Lampe durch Klicken auf das devStateIcon schalten läßt, ist für die vollständige Ansteuerung bereits dieses webCmd hinreichend:&lt;br /&gt;
 attr IKEA_Bulb2 webCmd brightness&lt;br /&gt;
&lt;br /&gt;
==== Temp/Hum. Sensor ====&lt;br /&gt;
tbd&lt;br /&gt;
&lt;br /&gt;
==== Motion Sensor ====&lt;br /&gt;
Als MQTT-Server wird hier &#039;&#039;mosquitto&#039;&#039; verwendet, als IO-Device wird daher ein {{Link2CmdRef|Anker=MQTT2_CLIENT|Lang=en|Label=MQTT2_CLIENT}}-Gerät definiert: &lt;br /&gt;
&lt;br /&gt;
 defmod mqtt2_client MQTT2_CLIENT 192.168.2.4:1883&lt;br /&gt;
 attr mqtt2_client autocreate 1&lt;br /&gt;
 attr mqtt2_client rawEvents zigbee2mqtt/GB_Bewegungsmelder:.*&lt;br /&gt;
 attr mqtt2_client room test&lt;br /&gt;
 attr mqtt2_client subscriptions #&lt;br /&gt;
&lt;br /&gt;
Das eigentliche Device sieht dann so aus:&lt;br /&gt;
 defmod GB_Bewegungsmelder_MQTT2 MQTT2_DEVICE zigbee_158d0001f9d030&lt;br /&gt;
 attr GB_Bewegungsmelder_MQTT2 IODev mqtt2_client&lt;br /&gt;
 attr GB_Bewegungsmelder_MQTT2 devStateIcon motion:motion_detector@red off:motion_detector@green no_motion:motion_detector@green&lt;br /&gt;
 attr GB_Bewegungsmelder_MQTT2 icon motion_detector@blue&lt;br /&gt;
 attr GB_Bewegungsmelder_MQTT2 readingList mqtt2client:zigbee2mqtt/GB_Bewegungsmelder:.* { json2nameValue($EVENT) }&lt;br /&gt;
 attr GB_Bewegungsmelder_MQTT2 room MQTT2_DEVICE&lt;br /&gt;
 attr GB_Bewegungsmelder_MQTT2 stateFormat {\&lt;br /&gt;
 if(ReadingsVal(&amp;quot;$name&amp;quot;,&amp;quot;occupancy&amp;quot;,0) eq &amp;quot;true&amp;quot;) {\&lt;br /&gt;
 	sprintf(&amp;quot;motion&amp;quot;);;\&lt;br /&gt;
 	} else {\&lt;br /&gt;
 	sprintf(&amp;quot;no_motion&amp;quot;);;	\&lt;br /&gt;
 	}\&lt;br /&gt;
 }&lt;br /&gt;
==== Anlegen von Zigbee2MQTT-Gruppen in FHEM ====&lt;br /&gt;
{{Hinweis|Die nachfolgende Darstellung ist vorläufig!}}&lt;br /&gt;
{{Hinweis|Bevor man eine Gruppe mithilfe von Zigbee2MQTT anlegen kann, sollte man sicherstellen, dass man über die aktuelleste Version von Zigbee2MQTT verfügt (min. vom 15. Februar 2019). Außerdem sollte auch der Koordinator (zumeist CC2531) die aktuellste Firmware besitzen (min. vom 15. Februar 2019). Falls ein flashen des Koordinators mit der neusten Firmware erfolgen soll, ist darauf zu achten, dass nach einem flashen alle Geräte neu angelernt werden müssen! (Hinweise zum flashen ohne erneutem anlernen sind hier zu finden: https://www.zigbee2mqtt.io/information/flashing_without_re-pairing.html)}}&lt;br /&gt;
&lt;br /&gt;
=====Erstellen einer Zigbee2MQTT-Gruppe=====&lt;br /&gt;
Bevor das Ganze in FHEM funktioniert, muss eine Gruppe in der &amp;quot;configuration.yaml&amp;quot; angelegt werden, dieser Vorgang ist auf folgender Seite beschrieben: https://www.zigbee2mqtt.io/information/groups.html&lt;br /&gt;
Wenn die Geräte anschließend über den FHEM MQTT2-Server der Gruppe hinzugefügen werden sollen, kann dies mit folgendem Befehl erfolgen:&lt;br /&gt;
 set &amp;lt;MQTT2-Server&amp;gt; publish zigbee2mqtt/bridge/group/&amp;lt;Zigbee2MQTT Friendly-Gruppenname&amp;gt;/add &amp;lt;Zigbee2MQTT Friendly-Gerätename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 set MQTT2_FHEM_Server publish zigbee2mqtt/bridge/group/Wohnzimmer/add Stehlampe&lt;br /&gt;
&lt;br /&gt;
Dieser Befehl kann so oft verwendet werden, wie man Geräte zu einer Gruppe hinzufügen möchte.&lt;br /&gt;
&lt;br /&gt;
Zum Entfernen eines Gerätes aus einer Gruppe kann folgender Befehl verwendet werden:&lt;br /&gt;
 set &amp;lt;MQTT2-Server&amp;gt; publish zigbee2mqtt/bridge/group/&amp;lt;Zigbee2MQTT Friendly-Gruppenname&amp;gt;/remove &amp;lt;Zigbee2MQTT Friendly-Gerätename&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
 set MQTT2_FHEM_Server publish zigbee2mqtt/bridge/group/Wohnzimmer/remove Kuechenlampe&lt;br /&gt;
&lt;br /&gt;
=====Anlegen der Gruppe in FHEM=====&lt;br /&gt;
Da Gruppen in Zigbee2MQTT aktuell keine Rückmeldung über ihren Status geben, wird auch beim einmaligen Schalten kein Gerät automatisch in FHEM angelegt. Aus diesem Grund muss dies mit folgendem Befehl noch manuell erfolgen:&lt;br /&gt;
 defmod &amp;lt;FHEM NAME&amp;gt; MQTT2_DEVICE&lt;br /&gt;
Beispiel&lt;br /&gt;
 defmod lichtWohnzimmer MQTT2_DEVICE&lt;br /&gt;
Anschließend wird auch für dieses Gerät wieder ein passendes template ausgewählt, wie als wäre es ein normales Zigbee2MQTT-Gerät.&lt;br /&gt;
Im anschließenden Dialog-Fenster welches sich nach dem Setzen des templates öffnet, müssen die folgenden Werte durch passendes ersetzt werden:&lt;br /&gt;
 BASE_TOPIC -&amp;gt; zigbee2mqtt&lt;br /&gt;
 DEV_ID -&amp;gt; &amp;lt;Zigbee2MQTT Friendly-Gruppenname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte sich die Gruppe wie ein normales Zigbee2MQTT Gerät steuern lassen.&lt;br /&gt;
&lt;br /&gt;
== Tasmota ==&lt;br /&gt;
{{Randnotiz|RNTyp=r|RNText=Bitte beachten Sie, dass versicherungsrechtliche Probleme entstehen können, wenn die herstellereigene Firmware ersetzt wird!}}[https://github.com/arendst/Sonoff-Tasmota Tasmota] (&#039;&#039;&#039;T&#039;&#039;&#039;heo &#039;&#039;&#039;A&#039;&#039;&#039;rends &#039;&#039;&#039;S&#039;&#039;&#039;onoff &#039;&#039;&#039;M&#039;&#039;&#039;QTT &#039;&#039;&#039;O&#039;&#039;&#039;ver &#039;&#039;&#039;T&#039;&#039;&#039;he &#039;&#039;&#039;A&#039;&#039;&#039;ir - einer offenen Firmware von [https://github.com/arendst arendst]) ist eine open-source Software für ESP8266-Geräte, die z.B. statt der originalen Firmware für Sonoff-Geräte und andere ESP8266-basierte WLAN-Steckdosen usw. verwendet werden kann. &lt;br /&gt;
{{Hinweis|[[Datei:Tasmota mqtt config.png|120px|thumb|right]]Vor allem, aber nicht nur bei Verwendung des MQTT2_CLIENT als IO, ist es empfehlenswert, in der MQTT-Konfiguration der tasmota-Geräte für den Parameter &#039;&#039;&amp;lt;nowiki&amp;gt;topic = %topic% (tasmota)&amp;lt;/nowiki&amp;gt;&#039;&#039; ebenfalls die dynamisch aus der Chip-ID erzeugte Kennung &#039;&#039;DVES_%06X&#039;&#039; zu verwenden. (Kopieren Sie einfach diese Zeichenkette aus dem  Eingabefeld für &#039;&#039;&amp;quot;client ...&amp;quot;&#039;&#039;, siehe nebenstehende Abbildung). Die eigentliche Umbenennung zu einem &amp;quot;sprechenden Namen&amp;quot; kann dann innerhalb von FHEM - mittels &#039;&#039;rename&#039;&#039; oder ggf. mit einem &#039;&#039;alias&#039;&#039; - erfolgen.}}&lt;br /&gt;
=== MQTT2_DEVICE ===&lt;br /&gt;
Dieses sollte bei aktiviertem &#039;&#039;autocreate&#039;&#039; am MQTT2_SERVER-Device automatisch angelegt werden, sobald das betreffende Gerät eingesteckt oder neu gestartet oder an einem evtl. vorhandenen Taster geschalten wird. Bislang wurden Tasmota version(en) ab 6.1.1 bis min. 8.1.0 getestet, dies auf verschiedener Hardware, zunächst mit Sonoff Touch und S20, zwischenzeitlich mit einer Vielzahl von Geräten, die per USB-Adapter oder mit der Methode aus dem [https://www.heise.de/ct/artikel/Tuya-Convert-IoT-Geraete-ohne-Loeten-vom-Cloud-Zwang-befreien-4283623.html Tuya-Convert]-Projekt des heise-Verlags auf Tasmota umgeflasht wurden.&lt;br /&gt;
&lt;br /&gt;
=== Manuelle Anpassungen ===&lt;br /&gt;
Die RAW-Definition kann dann beispielsweise wie folgt ergänzt werden:  &lt;br /&gt;
 defmod MQTT2_DVES_9B01BD MQTT2_DEVICE DVES_9B01BD&lt;br /&gt;
 attr MQTT2_DVES_9B01BD IODev m2server&lt;br /&gt;
 attr MQTT2_DVES_9B01BD readingList DVES_9B01BD:tele/DVES_9B01BD/STATE:.* { json2nameValue($EVENT) }\&lt;br /&gt;
    DVES_9B01BD:tele/DVES_9B01BD/LWT:.* LWT\&lt;br /&gt;
    DVES_9B01BD:cmnd/DVES_9B01BD/POWER:.* POWER\&lt;br /&gt;
    DVES_9B01BD:tele/DVES_9B01BD/UPTIME:.* { json2nameValue($EVENT) }\&lt;br /&gt;
    DVES_9B01BD:tele/DVES_9B01BD/SENSOR:.* { json2nameValue($EVENT) }\&lt;br /&gt;
    DVES_9B01BD:tele/DVES_9B01BD/INFO1:.* { json2nameValue($EVENT) }\&lt;br /&gt;
    DVES_9B01BD:tele/DVES_9B01BD/INFO2:.* { json2nameValue($EVENT) }\&lt;br /&gt;
    DVES_9B01BD:tele/DVES_9B01BD/INFO3:.* { json2nameValue($EVENT) }\&lt;br /&gt;
    DVES_9B01BD:stat/DVES_9B01BD/RESULT:.* { json2nameValue($EVENT) }\&lt;br /&gt;
    DVES_9B01BD:stat/DVES_9B01BD/STATE:.* { json2nameValue($EVENT) }&lt;br /&gt;
 attr MQTT2_DVES_9B01BD room MQTT2_DEVICE&lt;br /&gt;
 attr MQTT2_DVES_9B01BD setList on cmnd/DVES_9B01BD/POWER on\&lt;br /&gt;
    off cmnd/DVES_9B01BD/POWER off\&lt;br /&gt;
    reboot cmnd/DVES_9B01BD/Restart 1&lt;br /&gt;
 attr MQTT2_DVES_9B01BD webCmd on:off:reboot&lt;br /&gt;
&lt;br /&gt;
=== attrTemplate ===&lt;br /&gt;
&lt;br /&gt;
===== Allgemeines =====&lt;br /&gt;
Für gängige Tasmota-Geräte stehen &#039;&#039;templates&#039;&#039; bereit, mit denen sich diese schnell konfigurieren lassen. &lt;br /&gt;
Beachten Sie dazu den Abschnitt &#039;&#039;attrTemplate&#039;&#039; in [[MQTT2 DEVICE#attrTemplate|MQTT2_DEVICE]]. Bei Anwendung eines template mit &amp;quot;split&amp;quot; im Namen werden dabei weitere Geräte angelegt und konfiguriert.{{Hinweis|Bitte attrTemplates nicht verwechseln mit templates, die auf den Tasmota- bzw. Blackadder-Seiten angeboten werden, welche zur Konfiguration der firmware genutzt werden können! Es sollte zunächst die firmware korrekt eingerichtet werden, so dass das Gerät selbst direkt auf dessen Web-Interface korrekt bedient werden kann.}}&lt;br /&gt;
&lt;br /&gt;
===== Kein passendes attrTemplate vorhanden? =====&lt;br /&gt;
Exisitert (noch) kein passendes attrTemplate, ist zu empfehlen, zunächst das &amp;quot;&#039;&#039;tasmota_basic&#039;&#039;&amp;quot; anzuwenden. Dieses führt einige Basiskonfigurationen durch, die für FHEM hilfreich sind, z.B. wird die firmware so eingestellt, dass Schaltzustände in Kleinschreibung übermittelt werden, statt der defaults &amp;quot;ON&amp;quot; bzw. &amp;quot;OFF&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Allerdings stellt dieses das &#039;&#039;autocreate&#039;&#039; an dem MQTT2_DEVICE auf 0, was dann nicht optimal ist, wenn man weitere Readings aus dem Gerät erwartet, etwa, weil zusätzliche Sensoren vorhanden sind. In diesem Fall empfiehlt es sich, das &#039;&#039;autocreate&#039;&#039;-Attribut an dem MQTT2_DEVICE zu löschen, damit alle weiteren Informationen verarbeitet werden und ggf. im &#039;&#039;jsonMap&#039;&#039;-Attribut nur die Angabe &amp;quot;&#039;&#039;POWER1:state&#039;&#039;&amp;quot; zu belassen.&lt;br /&gt;
&lt;br /&gt;
=== on-for-timer ===&lt;br /&gt;
Um z.B. ein Relais nur für einen Zeitraum anzuschalten, kann man bei Tasmota-Geräten zwischen mehrere Varianten wählen. Ohne speziellen &#039;&#039;setter&#039;&#039; in der &#039;&#039;setList&#039;&#039; werden die &#039;&#039;&#039;SetExtensions&#039;&#039;&#039; verwendet. Timer laufen damit innerhalb FHEM. Da diese intern als temporäres [[at]] ausgeführt werden, sind diese auch noch nach einem FHEM-Neustart vorhanden, sofern FHEM ordnungsgemäß beendet und neu gestartet wird.&lt;br /&gt;
&lt;br /&gt;
Die Tasmota-firmware bietet ergänzend dazu zwei Möglichkeiten an, bei denen der Timer direkt auf dem ESP-Microcontroller verwaltet wird:&lt;br /&gt;
&lt;br /&gt;
==== delay ==== &lt;br /&gt;
Zeile zur Erweiterung der &#039;&#039;setList&#039;&#039; (Attributeingabe via FHEMWEB!):&lt;br /&gt;
 on-for-timer {my $duration = $EVTPART1*10; &#039;cmnd/DVES_575127/Backlog POWER1 1; delay &#039;.$duration.&#039;; POWER1 0&#039;}&lt;br /&gt;
&lt;br /&gt;
Ohne Auswirkungen auf alles, was danach kommt, hat aber den Nachteil, dass die möglichen Zeitspannen auf 3600 1/10 Sekunden begrenzt sind (siehe https://github.com/arendst/Tasmota/wiki/Commands#delay), also eine Stunde.&lt;br /&gt;
&lt;br /&gt;
====pulseTime ====&lt;br /&gt;
Zeile zur Erweiterung der &#039;&#039;setList&#039;&#039; (s.o.):&lt;br /&gt;
 on-for-timer {my $duration = $EVTPART1 &amp;lt; 11.2 ? $EVTPART1*10 : $EVTPART1+100; &#039;CMNDTOPIC/Backlog pulseTime1 &#039;.$duration.&#039;; POWER1 1&#039;}&lt;br /&gt;
Auch hier sind die möglichen längsten Einschaltdauern begrenzt, allerdings ist diese mit 18h deutlich länger als mit &#039;&#039;delay&#039;&#039;. Diese Implementierung hat den Nachteil, dass der ESP-Microcontroller die jeweils letzte pulseTime auch für alle weiteren &amp;quot;normalen&amp;quot; Einschaltvorgänge berücksichtigt, das Relais also ebenfalls nach Ablauf der übermittelten pulseTime abgeschaltet wird; dies gilt allerdings ohne explizites &#039;&#039;save&#039;&#039; nur bis zum nächsten reboot des Microcontrollers.&lt;br /&gt;
&lt;br /&gt;
== ESPurna ==&lt;br /&gt;
ESPurna ist eine weitere alternative firmware für ESP8266-basierte Geräte, Details sind der [https://github.com/xoseperez/espurna/wiki Projektseite] zu entnehmen.&lt;br /&gt;
&lt;br /&gt;
Das Format, in dem ESPurna Daten sendet, unterscheidet sich v.a. darin, dass bool&#039;sche Werte als 0 oder 1 gesendet werden, und nicht wie sonst üblich als &amp;quot;on&amp;quot; oder &amp;quot;off&amp;quot; oä.. Es stehen einige Mustertemplates zur Verfügung, um diese Art der Payload in FHEM-konforme Werte zu überführen.&lt;br /&gt;
&lt;br /&gt;
== Shelly ==&lt;br /&gt;
=== Vorbemerkung ===&lt;br /&gt;
Auch für Shelly-Geräte steht eine Auswahl an [[MQTT2-Module - Praxisbeispiele#attrTemplate_2|templates]] bereit.&lt;br /&gt;
Beachten Sie auch hier, dass uU. bei Anwendung eines template mit &amp;quot;split&amp;quot; im Namen weitere Geräte angelegt und konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== Shelly1 ===&lt;br /&gt;
&lt;br /&gt;
=== Shellybulb ===&lt;br /&gt;
Zunächst muss man einen Statusupdate des Shellybulb erzwingen (Aus- und Einschalten, physikalisch oder per Web-UI), damit das Gerät bei eingeschaltetem autocreate  angelegt wird. Dies sieht zunächst so aus:&lt;br /&gt;
 Internals:&lt;br /&gt;
   CFGFN     &lt;br /&gt;
   CID        shellybulb_3CC533&lt;br /&gt;
   DEF        shellybulb_3CC533&lt;br /&gt;
   DEVICETOPIC MQTT2_shellybulb_3CC533&lt;br /&gt;
   IODev      MQTT2_FHEM_Server&lt;br /&gt;
   NAME       MQTT2_shellybulb_3CC533&lt;br /&gt;
   NR         246&lt;br /&gt;
   STATE      ???&lt;br /&gt;
   TYPE       MQTT2_DEVICE&lt;br /&gt;
   READINGS:&lt;br /&gt;
     2018-12-12 19:28:08   status_blue     0&lt;br /&gt;
     2018-12-12 19:28:08   status_brightness 61&lt;br /&gt;
     2018-12-12 19:28:08   status_effect   0&lt;br /&gt;
     2018-12-12 19:28:08   status_gain     26&lt;br /&gt;
     2018-12-12 19:28:08   status_green    0&lt;br /&gt;
     2018-12-12 19:28:08   status_ison     true&lt;br /&gt;
     2018-12-12 19:28:08   status_mode     color&lt;br /&gt;
     2018-12-12 19:28:08   status_red      255&lt;br /&gt;
     2018-12-12 19:28:08   status_temp     3250&lt;br /&gt;
     2018-12-12 19:28:08   status_white    0&lt;br /&gt;
 Attributes:&lt;br /&gt;
   IODev      MQTT2_FHEM_Server&lt;br /&gt;
   readingList shellybulb_3CC533:shellies/shellybulb-3CC533/color/0/status:.* { json2nameValue($EVENT, &#039;status_&#039;) }&lt;br /&gt;
   room       MQTT2_DEVICE&lt;br /&gt;
[[Bild:MQTT2 Shellybulb.png|400px|thumb|Darstellung in FHEMWEB nach Anwendung des template]]Dann bei den set-Anweisungen das attrTemplate &amp;quot;shellybulb&amp;quot; auswählen und setzen. Es erscheint eine Abfrage, ob die vorhandenen Readings gelöscht werden sollen. Diese bitte bestätigen und die Seite neu laden. Danach einmal An- und Ausschalten, damit die Readings auch durch einen neuen Status initialisiert werden und die Seite im Browser neu laden.&lt;br /&gt;
&lt;br /&gt;
=== Shelly Plug S ===&lt;br /&gt;
Über die Leistungsmessung des Shelly Plug S lässt sich sehr einfach auch eine Erkennung des Betriebszustandes des angeschlossenen Gerätes realisieren. Dazu stellt man zuerst fest, wieviel Leistung das Gerät in jedem Betriebszustand verbraucht und kann dann z.B. für einen angeschlossenen Fernseher, der im Standby 1 Watt und im Betrieb &amp;gt; 100 Watt verbraucht, den Zustand erkennen und als on/off Status anzeigen. Dazu wird das state Reading wie folgt definiert:&lt;br /&gt;
  attr readingList shellies/shellyplug-s-123456/relay/0/power:.* { { state =&amp;gt; $EVTPART0&amp;lt;100?&amp;quot;off&amp;quot;:&amp;quot;on&amp;quot; } }&lt;br /&gt;
Der Status des MQTT2 Devices zeigt dann bei &amp;lt;100W &amp;quot;off&amp;quot; und sonst &amp;quot;on&amp;quot; an.&lt;br /&gt;
&lt;br /&gt;
=== HTTP-Commands ===&lt;br /&gt;
In diesem {{Link2Forum|Topic=102369|LinkText=Forumsbeitrag}} wird eine Lösung vorgestellt, um über [[99 myUtils anlegen|myUtils-Code]] weitere Kommandos bereitzustellen, die sonst nur direkt über das Web-Interface zu erreichen sind.&lt;br /&gt;
&lt;br /&gt;
== 8-Port-Ethernet Board ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
datei:8-relais-ethernetboard closed.jpg|mit Gehäuse&lt;br /&gt;
datei:8-Port-MQTT-Relais-Board.jpg|ohne Gehäuse&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
In diesem [https://forum.fhem.de/index.php/topic,107536.msg1016379.html#msg1016379 Forenbeitrag] bzw. dem betreffenden Thread wurde ein Relais-Board vorgestellt, mit dem 8 Relais über Ethernetkabel verbunden werden, die Kommunikation erfolgt dann über MQTT. Über die verwendete Software ist wenig bekannt, es könnte jedoch sein, dass diese Art der Einbindung auch bei weiteren Boards funktioniert, die einen bestimmten Ethernet-Chipset von TI (DP83848) und eine Cortex M3 MCU verwenden.&lt;br /&gt;
&lt;br /&gt;
== Milight-Bridge ==&lt;br /&gt;
=== Vorbemerkung ===&lt;br /&gt;
Der [https://github.com/sidoh/esp8266_milight_hub esp8266_milight_hub] ist ein open source- Projekt, mit dem auf Basis von &#039;&#039;openmili&#039;&#039; eine Vielzahl von MiLight-Geräten gesteuert werden können. Der MiLight-Hub erstetzt dabei eine beliebige Zahl von Milight-Bridges und ist auch zu verschiedenen Versionen des MiLight-Protokols kompatibel.&lt;br /&gt;
Neben MQTT kann dieser auch mit HTTPMOD oder Wifilight (bzw. den MiLight-Modulen) gesteuert werden. Die Hardware entspricht dabei im Wesentlichen einem MySensors-Wifi-Gateway&amp;lt;ref&amp;gt;Es wird lediglich ein anderer CS-PIN genutzt. Dies kann einfach in der Web-Oberfläche der Firmware umgestellt werden.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
Hier wird vorausgesetzt, dass eine funktionierende Bridge vorhanden ist.&lt;br /&gt;
Der Vorteil der MQTT-Lösung liegt darin, dass man bei kompatiblen Fernbedienungen auch direkt Informationen über Schaltvorgänge erhält, die mit der Fernbedienung ausgelöst werden.&lt;br /&gt;
&lt;br /&gt;
=== Einstellungen am MiLight-Hub ===&lt;br /&gt;
Die zum FHEM-Server bzw. dem MQTT2_SERVER passenden Vorgaben sind im Web-Interface des Hub einzustellen. Gegebenenfalls passen Sie die vom Hub zurückzugebenden Elemente im Web-Interface des Hub an.&lt;br /&gt;
Die Einstellungen für &#039;&#039;MQTT topic pattern&#039;&#039; usw. können auf den default-Werten&amp;lt;ref&amp;gt;Diese sind: &amp;lt;br&amp;gt;&#039;&#039;milight/:device_id/:device_type/:group_id&#039;&#039; für &amp;quot;topic pattern&amp;quot;&amp;lt;br&amp;gt;&#039;&#039;milight/updates/:hex_device_id/:device_type/:group_id&#039;&#039; für &amp;quot;update topic pattern&amp;quot;&amp;lt;br&amp;gt;&#039;&#039;milight/states/:hex_device_id/:device_type/:group_id&#039;&#039; für &amp;quot;state topic pattern&amp;quot;. Der Autor hat derzeit folgende Infotypen zum Senden markiert: &amp;quot;status, brightness, hue, color, mode, color_temp, bulb_mode, computed_color, hex_color&amp;quot; (enthält eventuell zu viele Angaben. Bei einem Eventhandler muß man uU. darauf achten, dass kurz hintereinander zweimal dasselbe Event kommen kann (für ON/OFF)).&amp;lt;/ref&amp;gt; belassen werden, für die seit Mitte 2019 vorhandene Option, eine LWT-Message zu senden (&#039;&#039;MQTT Client Status Topic&#039;&#039;), tragen Sie &#039;&#039;milight/LWT&#039;&#039; ein und aktivieren &#039;&#039;Detailed&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Devices ===&lt;br /&gt;
[[Bild:MQTT2 MiLight.png|400px|thumb|Milight: Darstellung in FHEMWEB]]&lt;br /&gt;
==== Bridge ====&lt;br /&gt;
Wird nun über den Hub oder eine von diesem erkannte Fernbedienung ein vorhandenes Leuchtmittel geschaltet, wird bei eingeschaltetem autocreate ein erstes Device erstellt, die zunächst erstellte Definition sieht typischerweise etwa so aus:&lt;br /&gt;
 defmod MQTT2_milight_hub_1370325 MQTT2_DEVICE milight_hub_1370325&lt;br /&gt;
 attr MQTT2_milight_hub_1370325 IODev MQTT2_FHEM_Server&lt;br /&gt;
 attr MQTT2_milight_hub_1370325 readingList milight_hub_1370325:milight/updates/0xBE59/rgbw/1:.* { json2nameValue($EVENT, &#039;1_&#039;, $JSONMAP) }&lt;br /&gt;
 attr MQTT2_milight_hub_1370325 room MQTT2_DEVICE&lt;br /&gt;
&lt;br /&gt;
Auf dieses Device wird nun das &#039;&#039;template&#039;&#039; &#039;&#039;&#039;esp_milight_hub_bridge&#039;&#039;&#039; angewandt.&lt;br /&gt;
&lt;br /&gt;
==== Einzelne Leuchtmittel ====&lt;br /&gt;
&lt;br /&gt;
Wird nun nochmals das oben verwendete Leuchtmittel geschaltet, erstellt autocreate ein weiteres Device:&lt;br /&gt;
 defmod MQTT2_milight_0xBE59_1 MQTT2_DEVICE milight_0xBE59_1&lt;br /&gt;
 attr MQTT2_milight_0xBE59_1 IODev MQTT2_FHEM_Server&lt;br /&gt;
 attr MQTT2_milight_0xBE59_1 readingList milight/states/0xBE59/rgbw/1:.* { json2nameValue($EVENT, &#039;1_&#039;, $JSONMAP) }&lt;br /&gt;
 attr MQTT2_milight_0xBE59_1 room MQTT2_DEVICE&lt;br /&gt;
&lt;br /&gt;
Auf dieses wird nun eines der Bulb-templates angewendet. Wählt man das template X_01_esp_milight_hub_rgbw_bulb, wird eine einfache Variante erstellt, die neben einem toggelnden Icon nur Regler für Helligkeit, die Farbe und zwei Schaltflächen für den Weiß- und Nachtmodus enthält. Wer mehr oder andere Steuerelemente erhalten möchte, verwendet ein anderes template. Nicht benötigte Elemente kann man dabei einfach aus der Definition löschen.&lt;br /&gt;
&lt;br /&gt;
Alle weiteren Devices werden genauso erstellt. &lt;br /&gt;
&lt;br /&gt;
Um ein Device zu erhalten, mit dem sich alle Kanäle gleichzeitig steuern lassen, kann das template &#039;&#039;X_01a_esp_milight_hub_make_rgbw_group&#039;&#039; verwendet werden. Dieses verändert nicht das aktuelle Device, sondern erstellt &#039;&#039;&#039;eine Kopie&#039;&#039;&#039;, die dann modifiziert wird. Diese Kopie ist unter dem Namen &#039;&#039;milight_&amp;lt;RemoteID&amp;gt;_0&#039;&#039; im selben Raum zu finden wie das Ausgangsgerät und kann ebenfalls an die eigenen Wünsche angepaßt werden. &lt;br /&gt;
&lt;br /&gt;
Weitere Beispiele:&lt;br /&gt;
Beispiel für ein RGB-CCT-Device:&lt;br /&gt;
 defmod Licht_Wz_all MQTT2_DEVICE&lt;br /&gt;
 attr Licht_Wz_all IODev MQTT2_Broker&lt;br /&gt;
 attr Licht_Wz_all eventMap /set_white:Weiss/night_mode:Nacht/white_mode:white/on:on/off:off/ON:on/OFF:off/next_mode:Mode/mode_speed_up:Up/mode_speed_down:Down/&lt;br /&gt;
 attr Licht_Wz_all group Licht&lt;br /&gt;
 attr Licht_Wz_all icon light_control&lt;br /&gt;
 attr Licht_Wz_all readingList milight/0x5D02/rgb_cct/0:.* { json2nameValue($EVENT) }\&lt;br /&gt;
 milight/updates/0x5D02/rgb_cct/0:.* { json2nameValue($EVENT) }\&lt;br /&gt;
 milight/states/0x5D02/rgb_cct/0:.* { json2nameValue($EVENT) }\&lt;br /&gt;
 &lt;br /&gt;
 attr Licht_Wz_all room Wohnzimmer&lt;br /&gt;
 attr Licht_Wz_all setList on milight/0x5D02/rgb_cct/0 {&amp;quot;status&amp;quot;:&amp;quot;ON&amp;quot;}\&lt;br /&gt;
 off milight/0x5D02/rgb_cct/0 {&amp;quot;status&amp;quot;:&amp;quot;OFF&amp;quot;}\&lt;br /&gt;
 level milight/0x5D02/rgb_cct/0 {&amp;quot;$EVTPART0&amp;quot;:&amp;quot;$EVTPART1&amp;quot;}\&lt;br /&gt;
 hue:colorpicker,HUE,0,1,359 milight/0x5D02/rgb_cct/0 {&amp;quot;$EVTPART0&amp;quot;:&amp;quot;$EVTPART1&amp;quot;}\&lt;br /&gt;
 command:uzsuSelectRadio,Weiss,Nacht,Mode,Up,Down milight/0x5D02/rgb_cct/0 {&amp;quot;$EVTPART0&amp;quot;:&amp;quot;$EVTPART1&amp;quot;}\&lt;br /&gt;
 brightness:colorpicker,BRI,0,1,255 milight/0x5D02/rgb_cct/0 {&amp;quot;$EVTPART0&amp;quot;:&amp;quot;$EVTPART1&amp;quot;}\&lt;br /&gt;
 next_mode milight/0x5D02/rgb_cct/0 {&amp;quot;$EVTPART0&amp;quot;:&amp;quot;$EVTPART1&amp;quot;}\&lt;br /&gt;
 mode_speed_up milight/0x5D02/rgb_cct/0 {&amp;quot;$EVTPART0&amp;quot;:&amp;quot;$EVTPART1&amp;quot;}\&lt;br /&gt;
 mode_speed_down milight/0x5D02/rgb_cct/0 {&amp;quot;$EVTPART0&amp;quot;:&amp;quot;$EVTPART1&amp;quot;}\&lt;br /&gt;
 saturation:colorpicker,BRI,0,1,100 milight/0x5D02/rgb_cct/0 {&amp;quot;$EVTPART0&amp;quot;:&amp;quot;$EVTPART1&amp;quot;}\&lt;br /&gt;
 color_temp:colorpicker,CT,153,1,370 milight/0x5D02/rgb_cct/0 {&amp;quot;$EVTPART0&amp;quot;:&amp;quot;$EVTPART1&amp;quot;}\&lt;br /&gt;
 device_id milight/0x5D02/rgb_cct/0 {&amp;quot;$EVTPART0&amp;quot;:&amp;quot;$EVTPART1&amp;quot;}\&lt;br /&gt;
 effect milight/0x5D02/rgb_cct/0 {&amp;quot;$EVTPART0&amp;quot;:&amp;quot;$EVTPART1&amp;quot;}\&lt;br /&gt;
 mode milight/0x5D02/rgb_cct/0 {&amp;quot;$EVTPART0&amp;quot;:&amp;quot;$EVTPART1&amp;quot;}\&lt;br /&gt;
 commands milight/0x5D02/rgb_cct/0 {&amp;quot;$EVTPART0&amp;quot;:&amp;quot;$EVTPART1&amp;quot;}&lt;br /&gt;
 attr Licht_Wz_all sortby 1&lt;br /&gt;
 attr Licht_Wz_all webCmd command:brightness:saturation:color_temp:hue&lt;br /&gt;
 attr Licht_Wz_all webCmdLabel command\ &lt;br /&gt;
 :brightness:saturation\&lt;br /&gt;
 :color_temp:hue&lt;br /&gt;
==== Ein Leuchtmittel, mehrere Fernbedienungen ====&lt;br /&gt;
Pairt man mehrere Fernbedienungen mit einem Leuchtmittel, sollten auch alle entsprechenden Fernbedienungscodes in das readingList-Attribut übernommen werden. Dazu übernimmt man am einfachsten die Einträge aus den zusätzlichen MQTT2_DEVICEs. Benötigt man das zusätzliche Device nicht separat, um z.B. eine getrennte Gruppenschaltung zu realisieren, kann man dieses löschen. Beispiel-readingList für ein Device, das auf zwei Fernbedienungscodes und zwei Gruppen &amp;quot;hört&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 attr Licht_Wz_all readingList milight/states/0x1234/rgbw/2:.* {json2nameValue($EVENT) }\&lt;br /&gt;
 milight/updates/0x1234/rgbw/2:.* { json2nameValue($EVENT) }\&lt;br /&gt;
 milight/states/0x1234/rgbw/0:.* { json2nameValue($EVENT) }\&lt;br /&gt;
 milight/updates/0x1234/rgbw/0:.* { json2nameValue($EVENT) }\&lt;br /&gt;
 milight/states/0xABCD/rgbw/0:.* { json2nameValue($EVENT) }\&lt;br /&gt;
 milight/updates/0xABCD/rgbw/0:.* { json2nameValue($EVENT) }\&lt;br /&gt;
 milight/states/0xABCD/rgbw/4:.* { json2nameValue($EVENT) }\&lt;br /&gt;
 milight/updates/0xABCD/rgbw/4:.* { json2nameValue($EVENT) }&lt;br /&gt;
&lt;br /&gt;
==== Fernbedienung als Input-Device nutzen ====&lt;br /&gt;
In diesem {{Link2Forum|Topic=103493|LinkText=Thread}} ist dargestellt, wie man eine Fernbedingung des Typs FUT089 dazu verwenden kann, einen [[MPD]] oder Rollladenaktoren zu steuern, oder diese Fernbedienung für [[Hue#HUE-Device|HUEDevice]]-Leuchtmittel zu nutzen.&lt;br /&gt;
Um hier nur Differenz-Meldungen zu erhalten und doppelte Events zu verhindern, sollte hier die readingList so angepaßt werden, dass nur Messages aus dem &amp;quot;updates&amp;quot;-Zweig ausgewertet werden: &lt;br /&gt;
 defmod MiLight_RC1_0 MQTT2_DEVICE milight_0xABCD_0&lt;br /&gt;
 attr MiLight_RC1_0 readingList milight/updates/0xABCD/fut089/0:.* { json2nameValue($EVENT) }\&lt;br /&gt;
 milight/states/0xABCD/fut089/0:.* {}&lt;br /&gt;
&lt;br /&gt;
== eBus ==&lt;br /&gt;
An dieser Stelle sollen lediglich die Grundzüge erläutert werden, eine ausführliche Anleitung über die Konfiguration des [[EBUS-MQTT2|eBus mit MQTT2 gibt es hier]].&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung und Definition am eBus ===&lt;br /&gt;
Vorausgesetzt wird ein laufender eBus-Dämon. Dessen Einrichtung wird im Artikel [[EBUS#Software|EBUS]] beschrieben.&lt;br /&gt;
In der Konfiguration des Dämons ( /etc/default/ebusd ) ist die Kommunikation über MQTT zu aktivieren und die Topic-Struktur festzulegen, z.B. &#039;&#039;ebusd/%circuit/%name&#039;&#039;.&lt;br /&gt;
 --accesslevel=* --mqttport=1883 --mqttjson --mqtthost=IpAdresseMQTTSERVER --mqtttopic=ebusd/%circuit/%name&lt;br /&gt;
{{Hinweis|Nachfolgend wird davon ausgegangen, dass als Vorgabe für mqtttopic &#039;&#039;ebusd&#039;&#039; verwendet wurde. Dies kann geändert werden, es wird aber dringend empfohlen, das mqtttopic in jedem Fall mit &#039;&#039;ebus...&#039;&#039; zu beginnen!}}&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung und Definition  in FHEM ===&lt;br /&gt;
Unabhängig von dem konkret genutzten IO-Modul (MQTT2_SERVER oder MQTT2_CLIENT) sollte an diesem &#039;&#039;&#039;&#039;&#039;vor&#039;&#039;&#039;&#039;&#039; den nachfolgenden Schritten zunächst das autocreate ausgeschaltet werden. Weiter sollte geprüft werden, ob es bereits MQTT2_DEVICE-Geräte gibt, die Einträge in der &#039;&#039;readingList&#039;&#039; enthalten, die vom ebus stammen. Da wir die &#039;&#039;readingList&#039;&#039; anschließend mit erweiterten JSON-Optionen erstellen wollen, müssen zumindest sämtliche &#039;&#039;readingList&#039;&#039;-Attribute entsprechend bereinigt oder gelöscht werden; in der Regel ist es einfacher, diese Geräte nach dem Deaktivieren des autocreate am IO zu löschen.&lt;br /&gt;
{{Randnotiz|RNTyp=y|RNText=Sollten Sie MQTT2_CLIENT als IO nutzen, sollte für das weitere Vorgehen eine Kopie des MQTT2-&amp;quot;Sammeldevices&amp;quot; genutzt werden, und dessen &#039;&#039;CID&#039;&#039; auf &#039;&#039;ebusd&#039;&#039; geändert werden. Nach Anwendung des ebusd-splitter-templates müssen dann alle den ebus betreffenden Einträge aus der &#039;&#039;readingList&#039;&#039; des &amp;quot;Sammeldevices&amp;quot; gelöscht werden oder diese ganz gelöscht.}}Ist der ebus-Dämon lauffähig und für MQTT konfiguriert, sendet dieser regelmäßige Messages. &lt;br /&gt;
&lt;br /&gt;
Sind die Vorbereitungen abgeschlossen, aktivieren wir &#039;&#039;autocreate&#039;&#039; wieder, allerdings wählen wir als autocreate-Methode &#039;&#039;complex&#039;&#039; aus, da der eBus-Dämon teilweise&amp;lt;ref&amp;gt;Dies betrifft vorrangig die Statusmeldungen&amp;lt;/ref&amp;gt; eine weiter verschachtelte JSON-Struktur zum Versenden der Informationen verwendet als üblich. Danach wird wie bei den anderen o.g. Geräten automatisch ein neues MQTT2_DEVICE angelegt&amp;lt;ref&amp;gt;Bei Verwendung des MQTT2_CLIENT wird dann die &#039;&#039;readingList&#039;&#039; am bereits definierten MQTT2_DEVICE aus der Kopie des &amp;quot;Sammeldevice&amp;quot; automatisch wieder erstellt bzw. gefüllt.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;quot;ebus-Bridge&amp;quot; ====&lt;br /&gt;
Auf das von &#039;&#039;autocreate&#039;&#039; erstellte MQTT2_DEVICE wird nunmehr das template &#039;&#039;eBus_daemon_splitter&#039;&#039; angewendet. Nach einiger Zeit sollte sowohl die readingList an diesem Device erweitert worden sein, wie auch ein oder mehrere neue MQTT2_DEVICE-Geräte angelegt. &lt;br /&gt;
Dieses Device liefert zukünftig Readings zum Dämon selbst, wie dessen &#039;&#039;uptime&#039;&#039;, alle weiteren am eBus angeschlossenen Teilnehmer werden dagegen zweckmäßigerweise durch ein oder mehrere weitere MQTT2_DEVICE-Geräte dargestellt. &lt;br /&gt;
&lt;br /&gt;
Das &#039;&#039;attrTemplate&#039;&#039; läd eine weitere &#039;&#039;attrTemplate&#039;&#039;-file und [[99 myUtils anlegen|99_myUtils-Code]] vom FHEM-Server nach. Beides steht dann auch unmittelbar zur Nutzung zur Verfügung. &lt;br /&gt;
==== &amp;quot;ebusd_bai&amp;quot; und weitere Geräte ====&lt;br /&gt;
{{Hinweis|Der eBus-Dämon sendet nicht alle Informationen zu allen am eBus angeschlossenen Geräte automatisch. Diese müssen teilweise erst aktiv angefragt werden. Wie das im einzelnen erfolgen kann, ist dem o.g. Detailartikel zu entnehmen.}}&lt;br /&gt;
Funktioniert die Kommunikation zwischen dem eBus-Dämon und FHEM, sollte nach einigen Minuten zumindest ein weiteres Gerät namens &#039;&#039;MQTT2_ebus_bai&#039;&#039; angelegt worden sein.&lt;br /&gt;
&lt;br /&gt;
== Allgemeine Hinweise ==&lt;br /&gt;
=== MQTT2_SERVER und MQTT2_CLIENT für Debugging nutzen ===&lt;br /&gt;
Nutzt man das rawEvents-Attribut am MQTT2-IO&amp;lt;ref&amp;gt;z.B. &amp;lt;code&amp;gt;attr MQTT2_FHEM_Server rawEvents .*&amp;lt;/code&amp;gt;, der regex-Filter kann wie üblich angepaßt werden&amp;lt;/ref&amp;gt;, kann man den Datenverkehr des Servers am Event-Monitor mitschneiden. Dies ist insbesondere für unbekannte Geräte nützlich, deren Topic- und Payload-Struktur noch nicht bekannt ist.&lt;br /&gt;
Um den kompletten MQTT Datenaustausch mitzuschneiden, kann man mit &amp;lt;code&amp;gt;attr mqtt2_server verbose 5&amp;lt;/code&amp;gt; auch alles ins FHEM-Log schreiben lassen.&lt;br /&gt;
&lt;br /&gt;
=== attrTemplate ===&lt;br /&gt;
Zur Konfiguration von MQTT2_DEVICE-Geräten kann die Funktion &#039;&#039;[[AttrTemplate|attrTemplate]]&#039;&#039; genutzt werden. &lt;br /&gt;
Die Anwendung für MQTT2_DEVICE ist [[MQTT2 DEVICE#attrTemplate|hier]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|In einigen Fällen kann es vorkommen, dass die template-Bezeichnung zwischenzeitlich geändert wurde. Seit 21.09.2019 erfolgt die Sortierung der auswählbaren templates nicht mehr nur nach den Namen, so dass die entsprechenden Namensbestandteile entfallen sind, die einer besseren Sortierung dienten.}}&lt;br /&gt;
&lt;br /&gt;
=== attrTemplate: Es werden nicht alle templates angezeigt ===&lt;br /&gt;
Siehe Beitrag [[AttrTemplate#Warum finde ich das Template xyz nicht.3F|AttrTemplate: Warum finde ich das Template xyz nicht.]]&lt;br /&gt;
&lt;br /&gt;
=== attrTemplate und Sprachsteuerung ===&lt;br /&gt;
Konfiguriert man MQTT2_DEVICE-Geräte mit attrTemplate, werden in der Regel auch direkt die für die Sprachsteuerung der Geräte erforderlichen Attribute mit gesetzt. Weiterführende Hinweise sind auch zu diesem Teilaspekt von &#039;&#039;[[AttrTemplate|attrTemplate]]&#039;&#039; dem betreffenden Hauptartikel zu entnehmen.&lt;br /&gt;
&lt;br /&gt;
=== bridgeRegexp ===&lt;br /&gt;
[[Datei:Mqtt2 server.png|300px|thumb|left|Logische Verortung der bridgeRegexp-Angaben]]{{Randnotiz|RNTyp=y|RNText=Beachten Sie, dass aufgrund des geschilderten Prinzips eine Änderung einer bridgeRegexp bei einem Gerät auch dazu führt, dass alle Readings eines Geräts und alle readingList-Einträge gelöscht werden.}}Üblicherweise werden alle Informationen, die aus einer Quelle stammen auch &#039;&#039;&#039;&#039;&#039;einem&#039;&#039;&#039;&#039;&#039; &#039;&#039;MQTT2_DEVICE&#039;&#039; zugeordnet, wobei im Falle des dort nicht aktivierten autocreate-Attributs entsprechende readingList-Einträge erzeugt werden. Das &#039;&#039;&#039;Attribut&#039;&#039;&#039; &#039;&#039;bridgeRegexp&#039;&#039; kann dazu genutzt werden, um neue, bisher unbekannte Topic-Strukturen im Rahmen des autocreate-Vorgangs anders zu strukturieren. Diese werden dabei im Ergebnis einem &#039;&#039;&#039;anderen Device&#039;&#039;&#039; (das ggf. erst erstellt wird) zugeschlagen, sollte eine zu der topic-Struktur passende regex in diesem Attribut gesetzt sein. Für dessen CID und die Bildung des Names wird die im 2. Teil jedes Eintrags als &#039;&#039;newClientId&#039;&#039; hinterlegte Angabe verwendet. &lt;br /&gt;
Dementsprechend sind in den hier aufgeführten Beispielen &#039;&#039;bridgeRegexp&#039;&#039;-Attribute immer dort zu finden, wo ein Gerät oder Dienst dazu dient, mit weiteren, ggf. auf andere Weise kommunizierende Geräte oder Baugruppen zu kommunizieren. Ein Sonderfall hierbei ist das template &#039;&#039;MQTT2_CLIENT_general_bridge&#039;&#039; zur Verwendung mit dem [[MQTT2_CLIENT#Anwendung|MQTT2_CLIENT]], denn aus dessen Sicht stammen alle Informationen aus derselben Quelle, nämlich z.B. dem &#039;&#039;mosquitto&#039;&#039;-Server und würden sonst alle einem einem MQTT2_DEVICE zugewiesen.&lt;br /&gt;
&lt;br /&gt;
=== Ständig neue Devices? ===&lt;br /&gt;
MQTT2_SERVER kann zwischen verschiedenen Geräten auch anhand der ClientID unterscheiden. Für jedes neu erkannte Gerät wird auch ein eigenes MQTT2_DEVICE angelegt. Abhilfemaßnahmen:&lt;br /&gt;
==== Vergabe einer ClientID ====&lt;br /&gt;
Die meisten MQTT-fähigen Geräte enthalten Optionen zur Vergabe einer eindeutigen ClientID (siehe das Beispiel des zigbee2mqtt-Dienstes oben). &lt;br /&gt;
Wird keine ClientID vergeben, verwenden manche Clients für jede Verbindung wieder neue ID&#039;s. Es wird empfohlen, möglichst von diesen Einstelloptionen Gebrauch zu machen.&lt;br /&gt;
&lt;br /&gt;
==== Löschen der ClientID aus der readingList usw. ====&lt;br /&gt;
Ist dies nicht möglich oder erwünscht, kann man auch die ClientID aus den readingList-, setList- und getList-Attributen entfernen. Dies ist jedenfalls solange unschädlich als nicht mehrere Geräte identische Topic-Pfade verwenden (daher die Empfehlung, insbesondere bei Tasmota-Geräten den &#039;&#039;default&#039;&#039; &amp;quot;sonoff&amp;quot; zu ändern).&lt;br /&gt;
Beispielsweise wäre &amp;lt;code&amp;gt;attr Milight_Bridge readingList milight_hub_1370325:milight/LWT:.* {json2nameValue($EVENT) }&amp;lt;/code&amp;gt; zu ändern in &amp;lt;code&amp;gt;attr Milight_Bridge readingList milight/LWT:.* {json2nameValue($EVENT) }&amp;lt;/code&amp;gt;&lt;br /&gt;
Die über &#039;&#039;attrTemplate&#039;&#039; verfügbaren Konfigurationen verwenden in der Regel keine ClientID&#039;s bzw. entfernen diese.&lt;br /&gt;
&lt;br /&gt;
=== Wildcards in readingList und setList ===&lt;br /&gt;
Auch in readingList und in setList sollten sich sog. wildcards verwenden lassen. Die Vorgehensweise ist jedoch unterschiedlich:&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;readingList&#039;&#039; werden normale regex-Ausdrücke verwendet. Ein Punkt steht daher z.B. für ein beliebiges Zeichen, alles zwischen zwei Topic-Tree-Elementen (getrennt typischerweise durch einen &amp;quot;/&amp;quot;) kann man so schreiben: &amp;quot;[^/]+&amp;quot; (entspricht: &amp;quot;Mindestens ein Zeichen, das kein Schrägstrich ist&amp;quot;). Ergänzender Hinweis: Will man z.B. Informationen aus einem beliebigen Teil des Topic-trees extrahieren und als Reading-Namen verwenden, kann dies im Rahmen eines Perl-Aufrufs geschehen. Beispiele aus der mqtt2.template-file: OpenMQTTGateway_BT_scanner und OpenMQTTGateway_BT_gtag (letzteres überführt die Information, über welches Gateway bestimmte Informationen eingegangen ist jeweils in eigene Readings pro Gateway).&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;setList&#039;&#039; gelten dagegen die wildcard-Konventionen aus der MQTT-Welt. Dort steht &amp;quot;+&amp;quot; für einen austauschbaren Teil des Topic-Trees (zwischen zwei Schrägstrichen). Anmerkung: Bitte vorher prüfen, ob es wirklich sinnvoll ist, derart unspezifische Publishes vorzunehmen. Meist gibt es &amp;quot;Gruppen-Topics&amp;quot;, auf die mehrere Geräte eines bestimmten Typs hören bzw. man kann dies dort (in der firmware bzw. auf den Konfigurationsseiten der Geräte) einstellen.&lt;br /&gt;
&lt;br /&gt;
=== Weiterführende Themen ===&lt;br /&gt;
==== Verbinden mehrerer FHEM-Instanzen über MQTT ====&lt;br /&gt;
Wie im Hauptartikel zu [[MQTT#Kommunikation zu sonstigen FHEM-Geräten über MQTT|MQTT]] erläutert, gibt es mehrere Varianten, wie man mit Hilfe von FHEM aus Events an beliebigen Geräten MQTT-Messages erzeugen kann. So kann man z.B. Messdaten eines Systems über ein &#039;&#039;notify&#039;&#039; iVm. einer einfachen &#039;&#039;publish&#039;&#039;-Anweisung an ein zweites FHEM schicken, das diese Daten dann z.B. mit Hilfe der MQTT2-Module auswerten kann.&lt;br /&gt;
Damit dabei Nachrichten unterschiedlicher Quellen auch als getrennte Readings bzw. ggf. auch gesonderten MQTT2_DEVICE-Instanzen zugeordnet werden, sollte man entsprechende Topic-Strukturen wählen, die dann auch mit Hilfe einer geeigneten &#039;&#039;bridgeRegexp&#039;&#039; automatisiert ausgewertet werden kann, siehe z.B. dieser {{Link2Forum|Topic=107145|LinkText=Forumsthread}}:&lt;br /&gt;
 attr MQTT2_myMqttServer bridgeRegexp \&lt;br /&gt;
   SmartHome/MqttGenericBridge2/([A-Za-z0-9]*)/.*:.* &amp;quot;mgb2_$1&amp;quot;&lt;br /&gt;
Dabei werden die betreffenden Informationen der entfernten FHEM-Instanz alle nach dem Schema &#039;&#039;SmartHome/MqttGenericBridge2/&amp;lt;Device-Name&amp;gt;/&amp;lt;Reading-Name&amp;gt;&#039;&#039; versendet.&lt;br /&gt;
&lt;br /&gt;
==== Umstellung von MQTT_DEVICE (und Derivaten wie XiaomiMQTTDevice) zu MQTT2_DEVICE ====&lt;br /&gt;
Wer beabsichtigt, von der Implementierung MQTT+MQTT_DEVICE zu MQTT2-IO und MQTT2_DEVICE zu wechseln, sollte einige Punkte beachten. Viele diesbezügliche Fragen sind vor allem in  {{Link2Forum|Topic=103762|LinkText=diesem Foren-Thread}}&lt;br /&gt;
&lt;br /&gt;
näher erläutert.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* {{Link2Forum|Topic=91394|LinkText=Thread, aus dem diese Anleitung ursprünglich entstanden ist}}&lt;br /&gt;
* {{Link2Forum|Topic=91807|LinkText=Thread zum Tasmota-Device}}&lt;br /&gt;
* {{Link2Forum|Topic=97989|LinkText=Thread, aus dem diese Anleitung für den eBus ursprünglich entstanden ist}}&lt;br /&gt;
* {{Link2Forum|Topic=94495|LinkText=Neue templates einreichen}}&lt;br /&gt;
* {{Link2Forum|Topic=94494|LinkText=Fragen, Wünsche und Kritik zu mqtt2.template}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:MQTT]]&lt;br /&gt;
[[Kategorie:ZigBee]]&lt;br /&gt;
[[Kategorie:IP Components|IP Komponenten]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=MQTT&amp;diff=33370</id>
		<title>MQTT</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=MQTT&amp;diff=33370"/>
		<updated>2020-06-08T06:00:30Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Hinweis auf Eintragen User/Passwort in Geräten bei Absicherung mit allowed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MQTT ist ein Protokoll (&amp;quot;Message Queue Telemetry Transport&amp;quot;), mit dem Daten und Befehle zwischen verschiedenen Geräten ausgetauscht werden. Die Kommunikation erfolgt dabei über einen zentralen MQTT-Server, in alter Nomenklatur auch &#039;&#039;Broker&#039;&#039; genannt.&lt;br /&gt;
&lt;br /&gt;
MQTT wurde entwickelt, um möglichst effizient, sicher und mit wenig Datenlast zu kommunizieren. MQTT ist nachrichtenorientiert, daher muss ein Client nicht beständig beim Server anfragen, ob neue Daten vorliegen. Heute findet sich MQTT vor allem im Bereich des &#039;&#039;Internet of Things&#039;&#039; (IoT). MQTT kann leicht mit FHEM verbunden werden, ohne dass dabei größerer CPU- oder Datenverbrauch entsteht. &lt;br /&gt;
&lt;br /&gt;
== Eine sehr kurze Einführung in MQTT ==&lt;br /&gt;
Die folgende Einführung kann eine vollwertige Einleitung wie beispielsweise [https://github.com/mqtt/mqtt.github.io/wiki diese Wikieinträge] nicht ersetzen. &lt;br /&gt;
&lt;br /&gt;
Bei MQTT findet die nachrichtenbasierte Kommunikation zwischen einzelnen Teilnehmern&amp;lt;ref&amp;gt;Teilnehmer in diesem Sinne kann ein Stück Hardware mit einer MQTT-fähigen firmware sein, ein auf einem Computer laufendes Script (einschließlich eines MQTT-Server-Dienstes wie &#039;&#039;mosquitto&#039;&#039; oder &#039;&#039;MQTT2_SERVER&#039;&#039;, kurz: alles mögliche sein. Dadurch kann auch ein einzelner Computer unter mehreren ClientID&#039;s am MQTT-Datenaustausch beteiligt sein.&amp;lt;/ref&amp;gt; in der Regel nicht direkt statt. Stattdessen werden alle Nachrichten von einem Teilnehmer an einen Serverdienst, den MQTT-Server (früher &#039;&#039;Broker&#039;&#039; genannt) übergeben, der dann dafür sorgt, dass die Nachricht an alle (berechtigten) anderen Teilnehmer verteilt wird, die sich für derartige Nachrichten &amp;quot;interessieren&amp;quot;. Wenn also ein Teilnehmer ohne Server-Funktion (Client) Daten von einem bestimmten anderen Teilnehmer (anderer Client) empfangen will, muss es vorher dem MQTT-Server (Broker) mitteilen, dass er die Nachrichten dieses anderen Teilnehmers abonniert (deshalb wird dieser Vorgang als &#039;&#039;subscribe&#039;&#039; bezeichnet). Im IoT ist besonders interessant, dass Sender und Empfänger von Nachrichten durch den MQTT-Server vollständig entkoppelt werden können - jemand, der Daten bereit stellt, muss sich also nicht darum kümmern, wer diese Daten empfängt&amp;lt;ref&amp;gt;Aufgrund dieser Funktionsweise sollte allerdings darauf geachtet werden, die Möglichkeiten des jeweiligen Servers zur Sicherung der Daten gegen unberechtigten Zugriff zu nutzen, insbesondere wenn die Art der Daten oder die sich hierdurch ergebenden Möglichkeiten, z.B. Schaltvorgänge in der realen Welt auszulösen, dies notwendig macht!&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Eine Nachricht besteht im Wesentlichen aus den folgenden Elementen:&lt;br /&gt;
*ClientID -  das ist die Kennung des Senders einer Nachricht&amp;lt;ref&amp;gt;Diese kann sich bei der Weitergabe der Nachricht ändern: Zunächst sendet ein Client eine Nachricht unter seiner ClientID, der MQTT-Server wird diese dann in der Regel durch seine Kennung ersetzten, wenn er die Nachricht an einen Abonnenten - der auch ein weiterer MQTT-Server sein kann - weitergibt.&amp;lt;/ref&amp;gt;&lt;br /&gt;
*Topic - das ist die Adresse, an die eine Nachricht gesendet wird, bzw. von wo sie abgeholt werden kann (so ähnlich wie ein Postfach in der realen Welt). Topics sind einfache Strings, die mit Schrägstrichen getrennt werden (keine Leerzeichen und nur sehr wenige Sonderzeichen erlaubt). Ein Topic könnte beispielhaft so lauten: &amp;lt;code&amp;gt;zuHause/1OG/Kueche/Licht/state&amp;lt;/code&amp;gt;. Diese Topics beinhalten also eine Hierarchie der Objekte - hier im Beispiel sind sie zuerst danach sortiert, ob sie sich zu Haus befinden, dann wird nach Stockwerken sortiert und im ersten Stock schaut man auf die Küche sowie das dort vorhandene Licht.  &lt;br /&gt;
*Payload - das ist der Inhalt der Nachricht, oft handelt es sich um Befehle oder Daten.&lt;br /&gt;
*Quality of Service - soll geprüft werden, ob die Nachricht zugestellt wurde und wenn ja, mit welcher &amp;quot;Tiefe&amp;quot;?&lt;br /&gt;
*Retained Message. &lt;br /&gt;
Details bitte in der oben genannten Einführung nachlesen.&lt;br /&gt;
&lt;br /&gt;
MQTT kommuniziert üblicherweise über Port 1883, es können aber unter derselben Netzwerkadresse an unterschiedlichen Ports auch mehrere Serverdienste bereitstehen. &lt;br /&gt;
&lt;br /&gt;
== Installation in FHEM ==&lt;br /&gt;
Um MQTT in FHEM zu nutzen, benötigt man (mindestens) einen MQTT-Server.  Es gibt zwei Möglichkeiten: Man kann FHEM-externe Server-Software (oder auch einen oder mehrere im Internet bereitstehende MQTT-Server) verwenden oder man kann die MQTT-Serverkomponente aktivieren, die mit {{Link2CmdRef|Anker=MQTT2_SERVER|Lang=en|Label=MQTT2_SERVER}} in FHEM direkt bereitsteht. Hier werden kurz beide Installationswege erläutert, zwingend ist nur einer, da eben mindestens ein MQTT-Serverdienst aktiv sein muß.&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Schaubilder zeigen schematisch die in FHEM zur Verfügung stehenden Wege der Einbindung von Hard- und/oder Softwarekomponenten, die über das MQTT-Protokoll Daten austauschen.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:Mqtt2 server.png|Datenaustausch mit MQTT-Geräten, wenn MQTT2_SERVER als internem MQTT-Serverdienst verwendet wird&lt;br /&gt;
Datei:Mqtt2 client v extern server.png|Datenaustausch mit MQTT-Geräten, wenn MQTT2_CLIENT iVm. mosquitto als externem MQTT-Serverdienst verwendet wird&lt;br /&gt;
Datei:00 mqtt pm.png|Datenaustausch mit MQTT-Geräten, wenn das Modul &#039;&#039;MQTT&#039;&#039; (00_MQTT.pm) iVm. mosquitto als externem MQTT-Serverdienst verwendet wird&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
=== FHEM als MQTT-Server ===&lt;br /&gt;
Die mit dem Modul {{Link2CmdRef|Anker=MQTT2_SERVER|Lang=en|Label=MQTT2_SERVER}} bereitstehende Serverkomponente kann z.B. wie folgt aktiviert werden:&lt;br /&gt;
 defmod myBroker MQTT2_SERVER 1883 global&lt;br /&gt;
Dieses [[Gerät]] übernimmt dann die Kommunikation mit den externen Clients (und wird von diesen behandelt, wie jeder andere MQTT-Server auch&amp;lt;ref&amp;gt;Bitte beachten Sie, dass (Stand: Juni 2019) MQTT2_SERVER nicht alle features des MQTT-Protokolls unterstützt.&amp;lt;/ref&amp;gt;) und verteilt die eingehenden Nachrichten als IO-Device&amp;lt;ref&amp;gt;im Sinne des [[DevelopmentModuleIntro#Zweistufiges Modell für Module|2-stufigen Modulkonzepts]]&amp;lt;/ref&amp;gt; für die Client-Module [[MQTT2_DEVICE]]&amp;lt;ref&amp;gt;Die Zahl 2 in den Modulnamen verweist nur darauf, dass es sich um eine neuere Modulfamilie handelt; die Kommunikation mit den externen Komponenten unterscheidet sich nicht zu den älteren Modulen, die vor dem Jahr 2018 genutzt werden konnten.&amp;lt;/ref&amp;gt; und {{Link2CmdRef|Anker=MQTT_GENERIC_BRIDGE|Lang=de|Label=MQTT_GENERIC_BRIDGE}}.&lt;br /&gt;
Ein weiterer Vorteil dieser Lösung besteht darin, dass man ein MQTT2_SERVER-Device mit Hilfe von [[allowed]] absichern kann, was auch SSL-verschlüsselte Kommunikation ermöglicht. &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; In diesem Fall muss User bzw. Passwort auch in den entsprechenden Geräten eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Wenn Sie beabsichtigen, diese Variante zu verwenden, sollten Sie als nächstes die [[MQTT2-Module - Praxisbeispiele|Praxisbeispiele zu den MQTT2-Modulen]] lesen, und ggf. später wieder hierher zurückkehren. Dort findet sich auch ein Abschnitt zu dem auf den Grafiken zu den MQTT2-IO-Modulen enthaltenen [[MQTT2-Module_-_Praxisbeispiele#bridgeRegexp|bridgeRegexp]]-Attribut.}}&lt;br /&gt;
&lt;br /&gt;
=== FHEM-externer Broker ===&lt;br /&gt;
==== Beispiel: mosquitto ====&lt;br /&gt;
Eine gern verwendete MQTT-Server-Software ist [http://mosquitto.org Mosquitto]. Sie kann ohne weiteres auf dem Raspberry Pi, der bereits eine FHEM-Installation besitzt, installiert werden und wird keine größere CPU- oder Netzwerklast verursachen. &lt;br /&gt;
&lt;br /&gt;
Eine Anleitung zur Installation findet sich beispielsweise in diesem [http://blog.wenzlaff.de/?p=6487 Blogeintrag]. Im wesentlichen beschränkt sich die Installation eines MQTT Servers aber auf wenige Arbeitsschritte. Bei &#039;&#039;stretch&#039;&#039; ist &#039;&#039;Mosquitto&#039;&#039; bereits in der Distribution enthalten und kann - zusammen mit dem client Befehl &#039;&#039;mosquito_sub&#039;&#039;, der weiter unten benötigt wird, wie folgt installiert und getestet werden&amp;lt;ref&amp;gt;Die für den Betrieb mit FHEM erforderlichen Perl-Module sind teilweise (noch) nicht in den Paketquellen verfügbar. Sie können dennoch statt mit cpan auch als Debian-Paket mit Hilfe von &#039;&#039;dh-make-perl&#039;&#039; installiert werden, wobei vorab das in den Paketquellen bereits vorhandene &#039;&#039;libmodule-pluggable-perl&#039;&#039; installiert werden sollte:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install dh-make-perl&amp;lt;br&amp;gt;&lt;br /&gt;
dh-make-perl --install --cpan Net::MQTT::simple&amp;lt;br&amp;gt;&lt;br /&gt;
dh-make-perl --install --cpan Net::MQTT::Constants&amp;lt;br&amp;gt;&lt;br /&gt;
sudo dpkg -i libnet-mqtt-simple-perl*.deb&amp;lt;br&amp;gt;&lt;br /&gt;
sudo dpkg -i libnet-mqtt-perl*.deb&amp;lt;/code&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Für ältere Distributionen (hier am Beispiel von &#039;&#039;jessie&#039;&#039;) muß ggf. aus einer zusätzlichen Paketquelle installiert werden:&lt;br /&gt;
 wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key&lt;br /&gt;
 sudo apt-key add mosquitto-repo.gpg.key&lt;br /&gt;
 cd /etc/apt/sources.list.d/&lt;br /&gt;
 sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
Danach kann die eigentliche Installation durchgeführt werden wie links für &#039;&#039;stretch&#039;&#039; beschrieben.}}&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  sudo apt-get install mosquitto mosquitto-clients&lt;br /&gt;
 &lt;br /&gt;
 # MQTT Server Test&lt;br /&gt;
 sudo service mosquitto status&lt;br /&gt;
&lt;br /&gt;
 # Start / Stop des Servers&lt;br /&gt;
 sudo service mosquitto stop&lt;br /&gt;
 sudo service mosquitto start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Danach ist der RPi mit &amp;lt;nowiki&amp;gt;shutdown restart&amp;lt;/nowiki&amp;gt; neu zu starten. &lt;br /&gt;
&lt;br /&gt;
==== IO-Module für externe MQTT-Server ====&lt;br /&gt;
Damit FHEM mit dem MQTT-Server kommuniziert, muss noch ein IO-Device angelegt werden. Dabei stehen zwei Varianten zur Wahl, das Modul [[MQTT (Modul)|MQTT]] oder seit Ende 2018 [[MQTT2_CLIENT]].&lt;br /&gt;
&lt;br /&gt;
Beide Module können auch dazu genutzt werden, um Daten zwischen zwei FHEM-Installationen auszutauschen, insbesondere kann auch 00_MQTT.pm als Client für einen MQTT2_SERVER eingesetzt werden, der &#039;&#039;&#039;auf der anderen Installation&#039;&#039;&#039; als MQTT-Serverdienst eingerichtet ist. Darüber hinaus bestehen eine Vielzahl von Kombinationsmöglichkeiten der diversen IO-Module, wenn die Installation auf mehrere Server verteilt ist.&lt;br /&gt;
Auf einer FHEM-Installation wird jedoch in der Regel nur eines der IO-Module benötigt. &lt;br /&gt;
&lt;br /&gt;
===== MQTT2_CLIENT =====&lt;br /&gt;
Ein MQTT2_CLIENT-IO-Device wird z.B. angelegt mit&lt;br /&gt;
 define myBroker MQTT2_CLIENT 10.0.0.5:1883 ## bitte EIGENE IP-Adresse eintragen&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Wenn Sie beabsichtigen, MQTT2_CLIENT zu verwenden, sollten Sie zuerst die [[MQTT2-Module - Praxisbeispiele|Praxisbeispiele zu den MQTT2-Modulen]] lesen, und dabei die Hinweise im Artikel [[MQTT2_CLIENT]] beachten.}}&lt;br /&gt;
&lt;br /&gt;
Ein MQTT2_CLIENT-Device kann ebenfals mit Hilfe von [[allowed]] abgesichert werden, um z.B. SSL-verschlüsselte Kommunikation zu ermöglichem. Client-Module zu diesem IO-Typ sind wiederum [[MQTT2_DEVICE]] und {{Link2CmdRef|Anker=MQTT_GENERIC_BRIDGE|Lang=de|Label=MQTT_GENERIC_BRIDGE}}.&lt;br /&gt;
&lt;br /&gt;
===== MQTT (Modul) ===== &lt;br /&gt;
Vorab werden für diese Variante weitere Perl-Pakete benötigt:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 # Perl Version ausgeben&lt;br /&gt;
 perl -v&lt;br /&gt;
 # Perl MQTT Module nachinstallieren (läuft ein paar Minuten)&lt;br /&gt;
 sudo cpan install Net::MQTT:Simple&lt;br /&gt;
 sudo cpan install Net::MQTT:Constants&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein IO-Device des Typs MQTT wird z.B. angelegt mit&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Sofern der Broker mit FHEM über localhost kommuniziert, kann als IP 127.0.0.1 verwendet werden.}}&lt;br /&gt;
 define myBroker MQTT 10.0.0.5:1883 ## bitte EIGENE IP-Adresse eintragen&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Außerhalb der offiziellen Quellen sind auch einige ältere Varianten des Moduls MQTT_DEVICE verfügbar, die jeweils spezielle Anforderungen (z.B. für Zigbee2mqtt) separat abbilden. Diese werden hier nicht gesondert behandelt, da solche Sonderfälle heute generischer und einfacher durch den Einsatz von MQTT2_DEVICE abzubilden sind.}}Client-Device-Module zum Modul [[MQTT (Modul)|MQTT]] sind [[MQTT_DEVICE]], {{Link2CmdRef|Anker=MQTT_BRIDGE|Lang=de|Label=MQTT_BRIDGE}} (veraltet) und {{Link2CmdRef|Anker=MQTT_GENERIC_BRIDGE|Lang=de|Label=MQTT_GENERIC_BRIDGE}}. Da &#039;&#039;MQTT_DEVICE&#039;&#039; payload im JSON-Format (im Unterschied zu MQTT2_DEVICE) nicht selbst verarbeiten kann wird hier zusätzlich das Modul {{Link2CmdRef|Anker=expandJSON|Lang=de|Label=expandJSON}} benötigt, um den {{Link2Forum|Topic=66761|LinkText=JSON String auszuwerten}}.&lt;br /&gt;
&lt;br /&gt;
=== Performancefragen... ===&lt;br /&gt;
...oder was sollte man als Lösung wählen, wenn man in die MQTT-Welt einsteigt&amp;lt;ref&amp;gt;vgl. hierzu diesen {{Link2Forum|Topic=94768|Message=875714|LinkText=Beitrag}} von Rudolf König&amp;lt;/ref&amp;gt;?&lt;br /&gt;
Grundsätzlich sollte man davon ausgehen, dass innerhalb von FHEM die Verarbeitung derselben Daten näherungsweise denselben Aufwand bedeuten, unabhängig davon, welche der Implementierungen (&#039;&#039;MQTT2_CLIENT&#039;&#039;, &#039;&#039;MQTT&#039;&#039; oder &#039;&#039;MQTT2_SERVER&#039;&#039;) man konkret wählt.&lt;br /&gt;
Ein externer Broker hat daher vor allem dann Vorteile, wenn die MQTT Daten überwiegend für was anderes (nicht FHEM) verwendet werden, oder MQTT zweckentfremdet wird (wie z.Bsp. für Musikübertragung). Nutzt man das MQTT-Protokoll dagegen vorwiegend innerhalb von FHEM, ist eher der Einsatz von MQTT2_SERVER in Betracht zu ziehen. Dieser soll Anfängern die Anbindung von MQTT Geräten in FHEM einfacher machen. Wer später merkt, dass er doch einen externen Broker benötigt, kann dann immer noch auf MQTT2_CLIENT in Verbindung mit einem anderen Broker wechseln.&lt;br /&gt;
Dagegen ist der Weg von MQTT_DEVICE zu MQTT2_DEVICE mit erheblich mehr Aufwand verbunden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Kommunikation zu sonstigen FHEM-Geräten über MQTT  ===&lt;br /&gt;
&lt;br /&gt;
Möchte man Daten von einem [[Gerät]] (im FHEM-Sinn), das &#039;&#039;&#039;nicht&#039;&#039;&#039; vom Typ &#039;&#039;MQTT2_DEVICE&#039;&#039; oder &#039;&#039;MQTT_DEVICE&#039;&#039; (je nach IO-Modul) ist, per MQTT-Protokoll versenden (z.B. für eine andere Visualisierungslösung als FHEMWEB, oder als FHEM2FHEM-Ersatzlösung), oder diese sonstigen Geräte über MQTT-Anweisungen von außen steuern können, hat man mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
==== MQTT_GENERIC_BRIDGE ====&lt;br /&gt;
Das Modul {{Link2CmdRef|Anker=MQTT_GENERIC_BRIDGE|Lang=en|Label=MQTT_GENERIC_BRIDGE}} ermöglicht es, sein jeweiliges IO-Modul-Gerät zu nutzen, um diesen Kommunikationsweg für beliebig viele andere FHEM-Geräte bereitzustellen. Dabei erfolgt am MQTT_GENERIC_BRIDGE-Gerät selbst nur eine Basiskonfiguration, im Übrigen durch Attribute an dem jeweiligen Gerät selbst. So kann z.B. ein Aktor des Typs [[CUL_HM]] an- oder ausgeschaltet werden oder auch einfach nur seinen aktuellen Schaltzustand per MQTT-Protokoll publizieren.&lt;br /&gt;
 &lt;br /&gt;
Dieses Modul kann seit November 2018 mit allen drei IO-Modul-Varianten zusammen eingesetzt werden, also sowohl mit &#039;&#039;MQTT2_SERVER&#039;&#039; bzw. &#039;&#039;MQTT2_CLIENT&#039;&#039; oder &#039;&#039;MQTT&#039;&#039; (00_MQTT.pm). &lt;br /&gt;
&lt;br /&gt;
Dabei sollte man jedoch beachten, dass zur Verwendung mit den MQTT2-IO&#039;s unbedingt die autocreate-Funktion des betreffenden IOs ausgeschaltet wird und dies auch bleibt&amp;lt;ref&amp;gt;siehe dazu diesen {{Link2Forum|Topic=95341|LinkText=Thread}} zu den technischen Hintergründen&amp;lt;/ref&amp;gt;! Weiter wird das Perl-Modul &#039;&#039;libmodule-pluggable-perl&#039;&#039; benötigt&amp;lt;ref&amp;gt;Dieses kann über &amp;lt;code&amp;gt;apt-get install libmodule-pluggable-perl&amp;lt;/code&amp;gt; installiert werden&amp;lt;/ref&amp;gt;, damit im Hintergrund auch das Modul [[MQTT (Modul)|MQTT]] geladen werden kann. Damit gelten auch für diesen Modul die Installationsvoraussetzungen für [[MQTT#MQTT_.28Modul.29|MQTT]]!&lt;br /&gt;
&lt;br /&gt;
Anwendungsfälle und -beispiele für das Modul sind diesem {{Link2Forum|Topic=91642|LinkText=Thread}} zu entnehmen.&lt;br /&gt;
&lt;br /&gt;
==== MQTT_BRIDGE ====&lt;br /&gt;
Dieses Modul kann nur zusammen mit einem IO-Gerät des Typs [[MQTT (Modul)|MQTT]] verwendet werden. Dabei wird pro weiterzuleitendem anderen FHEM-Gerät eine eigene Instanz dieses Moduls verwendet. Auf den Einsatz dieser Option sollte in neuen Installationen zugunsten von &#039;&#039;MQTT_GENERIC_BRIDGE&#039;&#039; verzichtet werden.&lt;br /&gt;
&lt;br /&gt;
==== Per publish-Befehl am IO-Gerät ====&lt;br /&gt;
Alle drei IO-Module kennen direkte &#039;&#039;publish&#039;&#039;-Anweisungen, mit deren Hilfe beliebige &#039;&#039;payloads&#039;&#039; an beliebige &#039;&#039;topics&#039;&#039; gesendet werden können. Dies kann man z.B. in einem [[notify]] oder [[at]] nutzen, um einzelne Events zu publishen oder Werteanfragen abzusetzen.&lt;br /&gt;
&lt;br /&gt;
Hier eine regelmäßige Werteabfrage auf einen [[EBUS-MQTT2|ebus]]:&lt;br /&gt;
 defmod get_ebus_updates at +*00:15:00 set ebusMQTT publish ebusd/430/Hc1HeatCurve/get;&lt;br /&gt;
 set ebusMQTT publish ebusd/430/HwcTempDesired/get;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RAW-Events am IO-Gerät (MQTT2.*) ====&lt;br /&gt;
Bei beiden MQTT2-IO-Modulen (MQTT2_SERVER und MQTT2_CLIENT) kann per [[Regulärer Ausdruck|regulärem Ausdruck]] festgelegt werden, welche Nachrichten ein Event erzeugen sollen, auf das dann wieder z.B. mit einem [[notify]] reagiert werden kann, z.B. um beliebige Schaltaktionen auszulösen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MQTT-Clients (Beispiele) ==&lt;br /&gt;
&lt;br /&gt;
===Arduino-library===&lt;br /&gt;
Zur Kommunikation mit dem Broker von Seiten eines [[Arduino|Arduinos]] mit selbst erstellten Sketches böte sich der PubSubClient an.&lt;br /&gt;
&lt;br /&gt;
===PC-Software===&lt;br /&gt;
Um die Funktionalität des Brokers zu testen kann z.B. ein Analyse-Tool wie MQTT.fx verwendet werden, oder die im Paket &#039;&#039;mosquitto-clients&#039;&#039; enthaltenen Linux-Kommandozeilen-Programme &#039;&#039;mosquitto_sub&#039;&#039; und &#039;&#039;mosquitto_pub&#039;&#039;. Letzterer könnte z.E. auch aus beliebigen &#039;&#039;shell-scripten&#039;&#039; heraus aufgerufen werden. Als Perl-Bibliothek steht alternativ z.B. [https://metacpan.org/pod/distribution/AnyEvent-MQTT/bin/anyevent-mqtt-pub anyevent-mqtt-pub] zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
=== Tasmota ===&lt;br /&gt;
Eine derzeit oft genutzte Möglichkeit für MQTT bilden die [[Sonoff]]-Geräte und weitere [[ESP8266]]-basierte Hardware, die unter vielen Handelsnamen erhältlich sind. Werden diese mit Tasmota (&#039;&#039;&#039;T&#039;&#039;&#039;heo &#039;&#039;&#039;A&#039;&#039;&#039;rends &#039;&#039;&#039;S&#039;&#039;&#039;onoff &#039;&#039;&#039;M&#039;&#039;&#039;QTT &#039;&#039;&#039;O&#039;&#039;&#039;ver &#039;&#039;&#039;T&#039;&#039;&#039;he &#039;&#039;&#039;A&#039;&#039;&#039;ir - einer offenen Firmware von [https://github.com/arendst arendst]) geflasht, so kommunizieren sie über MQTT. Um diese Geräte einzubinden, ist wie folgt vorzugehen. Zuerst ist ein Serverdienst (Broker) bereitzustellen, wie oben beschrieben.&lt;br /&gt;
&lt;br /&gt;
Unter Sonoff sind einige Topics voreingestellt. arendst stellt insbesondere drei Topic-Präfixe bereit, die seiner Meinung jedes Topic einleiten sollen (in den Eingabemasken als &amp;quot;%prefix%&amp;quot; notiert). Das sind einmal Kommandos (abgekürzt als cmnd), die dazu dienen, Befehle auszuführen. Daten werden mit tele und stat übertragen. Ein Topic besteht dann zuerst aus diesem Präfix und danach dem eigentlichen Topic. Wer also beispielsweise einem Sonoff_Switch einen Befehl senden will, sollte als Topic cmnd/Sonoff_Switch wählen. Wenn der Switch ein- und ausgeschaltet werden kann, muss der Topic noch das Wort POWER enthalten (in MQTT werden viele Kennworte komplett groß geschrieben). Der Topic lautet damit vollständig &amp;quot;cmnd/Sonoff_Switch/POWER/set&amp;quot; &lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Dabei ist darauf zu achten, dass für den Parameter &#039;&#039;topic = %topic% (sonoff)&#039;&#039; statt &#039;&#039;sonoff&#039;&#039; ein gerätespezifischer eigener Name eingetragen wird. Hierzu kann man z.B. auch die dynamisch aus der Chip-ID erzeugte Kennung &#039;&#039;DVES_%06X&#039;&#039; verwenden, indem man die unter &#039;&#039;client (DVES_8BABA9)&#039;&#039; zu findende Angabe kopiert. Die eigentliche Umbenennung zu einem &amp;quot;sprechenden Namen&amp;quot; kann dann innerhalb von FHEM - mittels &#039;&#039;rename&#039;&#039; oder ggf. mit einem &#039;&#039;alias&#039;&#039; - erfolgen.}}&lt;br /&gt;
&lt;br /&gt;
Link zum Forum: {{Link2Forum|Topic=27532|LinkText=MQTT FHEM Einrichtung}} (hier als &#039;&#039;MQTT_DEVICE&#039;&#039;!):&lt;br /&gt;
&lt;br /&gt;
 ### FHEM Device mit MQTT verbinden ###&lt;br /&gt;
 define Sonoff_Switch MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Switch IODev myBroker&lt;br /&gt;
 attr Sonoff_Switch devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON&lt;br /&gt;
 attr Sonoff_Switch icon hue_filled_br30&lt;br /&gt;
 attr Sonoff_Switch publishSet ON OFF cmnd/TestSwitch/POWER&lt;br /&gt;
 attr Sonoff_Switch room MQTT&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_Licht stat/Sonoff_Switch/POWER&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_Sensor tele/Sonoff_Switch/SENSOR&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_Status stat/Sonoff_Switch/STATUS&lt;br /&gt;
 attr Sonoff_Switch webCmd ON:OFF&lt;br /&gt;
&lt;br /&gt;
Der hier dargestellte Beispielcode realisiert die Kommunikation zwischen FHEM und dem sonoff Modul via MQTT Broker. Zu beachten ist hier, dass &#039;&#039;&#039;subscribeReading_Licht&#039;&#039;&#039; und &#039;&#039;&#039;subscribeReading_Status&#039;&#039;&#039; unterschiedliche Syntax des Topic Strings haben!&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Prinzipiell ist MQTT ebenso sicher wie eine Postkarte. Solange man es nicht extra absichert, kann jeder der, im eigenen LAN ist (und die Adresse vom Broker kennt) alle Topics mitlesen.&lt;br /&gt;
:&amp;lt;code&amp;gt;meinHaus/Flur/Haustuer:open / close&amp;lt;/code&amp;gt;&lt;br /&gt;
bietet unter diesen Umständen reichlich Raum für Verbesserungen! &lt;br /&gt;
&lt;br /&gt;
Abhilfe:&lt;br /&gt;
=== Username / Passwort ===&lt;br /&gt;
Zunächst kann man erst mal einen Username / Passwort vergeben, was alle IO-Device-Module unterstützen. Da ist zwar auch noch lange nicht sicher, aber zumindest steigert es den Aufwand schon mal. Jetzt muss man zumindest schon mal Pakete sniffen und verstehen, um unbefugt zu lesen oder gar zu publishen.&lt;br /&gt;
&lt;br /&gt;
=== TLS ===&lt;br /&gt;
Um wirklich sicher zu werden, führt kein Weg an TLS vorbei. &lt;br /&gt;
&lt;br /&gt;
Der MQTT-Client in [[#Tasmota|Tasmota]] (für ESP8266) kann mit TLS betrieben werden, vgl. [https://github.com/arendst/Tasmota/wiki/TLS Beschreibung im Tasmota-Wiki].&lt;br /&gt;
&lt;br /&gt;
Leider kann z.B. ein Arduino das schlicht nicht mehr, da die einfacheren Modelle nicht über ausreichend Speicher und die Rechenleistung verfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Hier fehlt eine Anleitung für allowed usw.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Probleme ==&lt;br /&gt;
=== Anweisung und Ergebnis weichen voneinander ab ===&lt;br /&gt;
In der Regel melden MQTT-fähige Geräte entweder den Erhalt einer Nachricht zurück oder den Status nach Durchführung der in der &#039;&#039;payload&#039;&#039; enthaltenen Anweisung. Dabei findet aber in der Regel beim Empfänger eine Verarbeitung der Nachricht statt, ggf. wird diese auch weitergesendet und nochmals verarbeitet, bevor dann ggf. eine Rückmeldung des neuen Status an den MQTT-Server erfolgt. Handelt es sich um einfache on/off-Befehle, bleibt Anweisung und Ergebnis in der Regel identisch. Bei anderen, namentlich bei Dimmer-Werten, kann es zu Rundungsdifferenzen bei nummerischen Werten kommen. So kann z.B. ein Dimm-Wert von 70% gesetzt werden, zürückgemeldet wird dann aber 72% (oder 67%). &lt;br /&gt;
Dies ist technisch bedingt, vermeiden kann das jedoch in aller Regel nur der Autor der jeweiligen software/firmware auf dem &amp;quot;rechnenden&amp;quot; Gerät.&lt;br /&gt;
&lt;br /&gt;
=== Unbeabsichtigte Schleifen ===&lt;br /&gt;
Durch Fehler in der topic-Struktur können unbeabsichtigte Schleifen entstehen, die FHEM komplett blockieren können. Es ist unbedingt darauf zu achten, dass die jeweiligen Sende- und Empfangs-topics andere sind!&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://mqtt.org Offizielle Homepage von MQTT, englisch]&lt;br /&gt;
* [http://www.hivemq.com/blog/mqtt-essentials-part-1-introducing-mqtt Sehr gute Einführung, englisch, sind 5 lesenswerte Teile]&lt;br /&gt;
* [https://www.heise.de/developer/artikel/MQTT-Protokoll-fuer-das-Internet-der-Dinge-2168152.html Ein Exkurs von Heise mit Beispielen, deutsch, sehr lesenswert]&lt;br /&gt;
* [http://www.mqttfx.org/ MQTT FX - ein sehr praktisches Analysetool]&lt;br /&gt;
* {{Link2Forum|Topic=69230|LinkText=Diskussionsthread im Forum}}&lt;br /&gt;
* {{Link2Forum|Topic=92888|LinkText=Thread, zur Entstehungsgeschichte von MQTT2_CLIENT}}&lt;br /&gt;
* {{Link2Forum|Topic=93255|LinkText=Ankündigungsthread zur MQTT2-Erweiterung der MQTT_GENERIC_BRIDGE}}&lt;br /&gt;
* [[MQTT_Einf%C3%BChrung_Teil_2|Teil 2 der MQTT Einführung]]: Detailaspekte (vorrangig zur Modulfamilie MQTT/MQTT_DEVICE)&lt;br /&gt;
* [[MQTT Einführung Teil 3|Teil 3 der MQTT Einführung]]: Arduino-Client selbst programmieren&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Glossary]]&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:MQTT|Einführung]]&lt;br /&gt;
[[Kategorie:MQTT| ]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=MQTT&amp;diff=32453</id>
		<title>MQTT</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=MQTT&amp;diff=32453"/>
		<updated>2020-01-17T14:15:17Z</updated>

		<summary type="html">&lt;p&gt;PeMue: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MQTT ist ein Protokoll (&amp;quot;Message Queue Telemetry Transport&amp;quot;), mit dem Daten und Befehle zwischen verschiedenen Geräten ausgetauscht werden. Die Kommunikation erfolgt dabei über einen zentralen MQTT-Server, in alter Nomenklatur auch &#039;&#039;Broker&#039;&#039; genannt.&lt;br /&gt;
&lt;br /&gt;
MQTT wurde entwickelt, um möglichst effizient, sicher und mit wenig Datenlast zu kommunizieren. MQTT ist nachrichtenorientiert, daher muss ein Client nicht beständig beim Server anfragen, ob neue Daten vorliegen. Heute findet sich MQTT vor allem im Bereich des &#039;&#039;Internet of Things&#039;&#039; (IoT). MQTT kann leicht mit FHEM verbunden werden, ohne dass dabei größerer CPU- oder Datenverbrauch entsteht. &lt;br /&gt;
&lt;br /&gt;
== Eine sehr kurze Einführung in MQTT ==&lt;br /&gt;
Die folgende Einführung kann eine vollwertige Einleitung wie beispielsweise [https://github.com/mqtt/mqtt.github.io/wiki diese Wikieinträge] nicht ersetzen. &lt;br /&gt;
&lt;br /&gt;
Bei MQTT findet die nachrichtenbasierte Kommunikation zwischen einzelnen Teilnehmern&amp;lt;ref&amp;gt;Teilnehmer in diesem Sinne kann ein Stück Hardware mit einer MQTT-fähigen firmware sein, ein auf einem Computer laufendes Script (einschließlich eines MQTT-Server-Dienstes wie &#039;&#039;mosquitto&#039;&#039; oder &#039;&#039;MQTT2_SERVER&#039;&#039;, kurz: alles mögliche sein. Dadurch kann auch ein einzelner Computer unter mehreren ClientID&#039;s am MQTT-Datenaustausch beteiligt sein.&amp;lt;/ref&amp;gt; in der Regel nicht direkt statt. Stattdessen werden alle Nachrichten von einem Teilnehmer an einen Serverdienst, den MQTT-Server (früher &#039;&#039;Broker&#039;&#039; genannt) übergeben, der dann dafür sorgt, dass die Nachricht an alle (berechtigten) anderen Teilnehmer verteilt wird, die sich für derartige Nachrichten &amp;quot;interessieren&amp;quot;. Wenn also ein Teilnehmer ohne Server-Funktion (Client) Daten von einem bestimmten anderen Teilnehmer (anderer Client) empfangen will, muss es vorher dem MQTT-Server (Broker) mitteilen, dass er die Nachrichten dieses anderen Teilnehmers abonniert (deshalb wird dieser Vorgang als &#039;&#039;subscribe&#039;&#039; bezeichnet). Im IoT ist besonders interessant, dass Sender und Empfänger von Nachrichten durch den MQTT-Server vollständig entkoppelt werden können - jemand, der Daten bereit stellt, muss sich also nicht darum kümmern, wer diese Daten empfängt&amp;lt;ref&amp;gt;Aufgrund dieser Funktionsweise sollte allerdings darauf geachtet werden, die Möglichkeiten des jeweiligen Servers zur Sicherung der Daten gegen unberechtigten Zugriff zu nutzen, insbesondere wenn die Art der Daten oder die sich hierdurch ergebenden Möglichkeiten, z.B. Schaltvorgänge in der realen Welt auszulösen, dies notwendig macht!&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Eine Nachricht besteht im Wesentlichen aus den folgenden Elementen:&lt;br /&gt;
*ClientID -  das ist die Kennung des Senders einer Nachricht&amp;lt;ref&amp;gt;Diese kann sich bei der Weitergabe der Nachricht ändern: Zunächst sendet ein Client eine Nachricht unter seiner ClientID, der MQTT-Server wird diese dann in der Regel durch seine Kennung ersetzten, wenn er die Nachricht an einen Abonnenten - der auch ein weiterer MQTT-Server sein kann - weitergibt.&amp;lt;/ref&amp;gt;&lt;br /&gt;
*Topic - das ist die Adresse, an die eine Nachricht gesendet wird, bzw. von wo sie abgeholt werden kann (so ähnlich wie ein Postfach in der realen Welt). Topics sind einfache Strings, die mit Schrägstrichen getrennt werden (keine Leerzeichen und nur sehr wenige Sonderzeichen erlaubt). Ein Topic könnte beispielhaft so lauten: &amp;lt;code&amp;gt;zuHause/1OG/Kueche/Licht/state&amp;lt;/code&amp;gt;. Diese Topics beinhalten also eine Hierarchie der Objekte - hier im Beispiel sind sie zuerst danach sortiert, ob sie sich zu Haus befinden, dann wird nach Stockwerken sortiert und im ersten Stock schaut man auf die Küche sowie das dort vorhandene Licht.  &lt;br /&gt;
*Payload - das ist der Inhalt der Nachricht, oft handelt es sich um Befehle oder Daten.&lt;br /&gt;
*Quality of Service - soll geprüft werden, ob die Nachricht zugestellt wurde und wenn ja, mit welcher &amp;quot;Tiefe&amp;quot;?&lt;br /&gt;
*Retained Message. &lt;br /&gt;
Details bitte in der oben genannten Einführung nachlesen.&lt;br /&gt;
&lt;br /&gt;
MQTT kommuniziert üblicherweise über Port 1883, es können aber unter derselben Netzwerkadresse an unterschiedlichen Ports auch mehrere Serverdienste bereitstehen. &lt;br /&gt;
&lt;br /&gt;
== Installation in FHEM ==&lt;br /&gt;
Um MQTT in FHEM zu nutzen, benötigt man (mindestens) einen MQTT-Server.  Es gibt zwei Möglichkeiten: Man kann FHEM-externe Server-Software (oder auch einen oder mehrere im Internet bereitstehende MQTT-Server) verwenden oder man kann die MQTT-Serverkomponente aktivieren, die mit {{Link2CmdRef|Anker=MQTT2_SERVER|Lang=en|Label=MQTT2_SERVER}} in FHEM direkt bereitsteht. Hier werden kurz beide Installationswege erläutert, zwingend ist nur einer, da eben mindestens ein MQTT-Serverdienst aktiv sein muß.&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Schaubilder zeigen schematisch die in FHEM zur Verfügung stehenden Wege der Einbindung von Hard- und/oder Softwarekomponenten, die über das MQTT-Protokoll Daten austauschen.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:Mqtt2 server.png|Datenaustausch mit MQTT-Geräten, wenn MQTT2_SERVER als internem MQTT-Serverdienst verwendet wird&lt;br /&gt;
Datei:Mqtt2 client v extern server.png|Datenaustausch mit MQTT-Geräten, wenn MQTT2_CLIENT iVm. mosquitto als externem MQTT-Serverdienst verwendet wird&lt;br /&gt;
Datei:00 mqtt pm.png|Datenaustausch mit MQTT-Geräten, wenn das Modul &#039;&#039;MQTT&#039;&#039; (00_MQTT.pm) iVm. mosquitto als externem MQTT-Serverdienst verwendet wird&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
=== FHEM als MQTT-Server ===&lt;br /&gt;
Die mit dem Modul {{Link2CmdRef|Anker=MQTT2_SERVER|Lang=en|Label=MQTT2_SERVER}} bereitstehende Serverkomponente kann z.B. wie folgt aktiviert werden:&lt;br /&gt;
 defmod myBroker MQTT2_SERVER 1883 global&lt;br /&gt;
Dieses [[Gerät]] übernimmt dann die Kommunikation mit den externen Clients (und wird von diesen behandelt, wie jeder andere MQTT-Server auch&amp;lt;ref&amp;gt;Bitte beachten Sie, dass (Stand: Juni 2019) MQTT2_SERVER nicht alle features des MQTT-Protokolls unterstützt.&amp;lt;/ref&amp;gt;) und verteilt die eingehenden Nachrichten als IO-Device&amp;lt;ref&amp;gt;im Sinne des [[DevelopmentModuleIntro#Zweistufiges Modell für Module|2-stufigen Modulkonzepts]]&amp;lt;/ref&amp;gt; für die Client-Module [[MQTT2_DEVICE]]&amp;lt;ref&amp;gt;Die Zahl 2 in den Modulnamen verweist nur darauf, dass es sich um eine neuere Modulfamilie handelt; die Kommunikation mit den externen Komponenten unterscheidet sich nicht zu den älteren Modulen, die vor dem Jahr 2018 genutzt werden konnten.&amp;lt;/ref&amp;gt; und {{Link2CmdRef|Anker=MQTT_GENERIC_BRIDGE|Lang=de|Label=MQTT_GENERIC_BRIDGE}}.&lt;br /&gt;
Ein weiterer Vorteil dieser Lösung besteht darin, dass man ein MQTT2_SERVER-Device mit Hilfe von [[allowed]] absichern kann, was auch SSL-verschlüsselte Kommunikation ermöglicht. &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Wenn Sie beabsichtigen, diese Variante zu verwenden, sollten Sie als nächstes die [[MQTT2-Module - Praxisbeispiele|Praxisbeispiele zu den MQTT2-Modulen]] lesen, und ggf. später wieder hierher zurückkehren. Dort findet sich auch ein Abschnitt zu dem auf den Grafiken zu den MQTT2-IO-Modulen enthaltenen [[MQTT2-Module_-_Praxisbeispiele#bridgeRegexp|bridgeRegexp]]-Attribut.}}&lt;br /&gt;
&lt;br /&gt;
=== FHEM-externer Broker ===&lt;br /&gt;
==== Beispiel: mosquitto ====&lt;br /&gt;
Eine gern verwendete MQTT-Server-Software ist [http://mosquitto.org Mosquitto]. Sie kann ohne weiteres auf dem Raspberry Pi, der bereits eine FHEM-Installation besitzt, installiert werden und wird keine größere CPU- oder Netzwerklast verursachen. &lt;br /&gt;
&lt;br /&gt;
Eine Anleitung zur Installation findet sich beispielsweise in diesem [http://blog.wenzlaff.de/?p=6487 Blogeintrag]. Im wesentlichen beschränkt sich die Installation eines MQTT Servers aber auf wenige Arbeitsschritte. Bei &#039;&#039;stretch&#039;&#039; ist &#039;&#039;Mosquitto&#039;&#039; bereits in der Distribution enthalten und kann - zusammen mit dem client Befehl &#039;&#039;mosquito_sub&#039;&#039;, der weiter unten benötigt wird, wie folgt installiert und getestet werden&amp;lt;ref&amp;gt;Die für den Betrieb mit FHEM erforderlichen Perl-Module sind teilweise (noch) nicht in den Paketquellen verfügbar. Sie können dennoch statt mit cpan auch als Debian-Paket mit Hilfe von &#039;&#039;dh-make-perl&#039;&#039; installiert werden, wobei vorab das in den Paketquellen bereits vorhandene &#039;&#039;libmodule-pluggable-perl&#039;&#039; installiert werden sollte:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install dh-make-perl&amp;lt;br&amp;gt;&lt;br /&gt;
dh-make-perl --install --cpan Net::MQTT::simple&amp;lt;br&amp;gt;&lt;br /&gt;
dh-make-perl --install --cpan Net::MQTT::Constants&amp;lt;br&amp;gt;&lt;br /&gt;
sudo dpkg -i libnet-mqtt-simple-perl*.deb&amp;lt;br&amp;gt;&lt;br /&gt;
sudo dpkg -i libnet-mqtt-perl*.deb&amp;lt;/code&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Für ältere Distributionen (hier am Beispiel von &#039;&#039;jessie&#039;&#039;) muß ggf. aus einer zusätzlichen Paketquelle installiert werden:&lt;br /&gt;
 wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key&lt;br /&gt;
 sudo apt-key add mosquitto-repo.gpg.key&lt;br /&gt;
 cd /etc/apt/sources.list.d/&lt;br /&gt;
 sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
Danach kann die eigentliche Installation durchgeführt werden wie links für &#039;&#039;stretch&#039;&#039; beschrieben.}}&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  sudo apt-get install mosquitto mosquitto-clients&lt;br /&gt;
 &lt;br /&gt;
 # MQTT Server Test&lt;br /&gt;
 sudo service mosquitto status&lt;br /&gt;
&lt;br /&gt;
 # Start / Stop des Servers&lt;br /&gt;
 sudo service mosquitto stop&lt;br /&gt;
 sudo service mosquitto start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Danach ist der RPi mit &amp;lt;nowiki&amp;gt;shutdown restart&amp;lt;/nowiki&amp;gt; neu zu starten. &lt;br /&gt;
&lt;br /&gt;
==== IO-Module für externe MQTT-Server ====&lt;br /&gt;
Damit FHEM mit dem MQTT-Server kommuniziert, muss noch ein IO-Device angelegt werden. Dabei stehen zwei Varianten zur Wahl, das Modul [[MQTT (Modul)|MQTT]] oder seit Ende 2018 [[MQTT2_CLIENT]].&lt;br /&gt;
&lt;br /&gt;
Beide Module können auch dazu genutzt werden, um Daten zwischen zwei FHEM-Installationen auszutauschen, insbesondere kann auch 00_MQTT.pm als Client für einen MQTT2_SERVER eingesetzt werden, der &#039;&#039;&#039;auf der anderen Installation&#039;&#039;&#039; als MQTT-Serverdienst eingerichtet ist. Darüber hinaus bestehen eine Vielzahl von Kombinationsmöglichkeiten der diversen IO-Module, wenn die Installation auf mehrere Server verteilt ist.&lt;br /&gt;
Auf einer FHEM-Installation wird jedoch in der Regel nur eines der IO-Module benötigt. &lt;br /&gt;
&lt;br /&gt;
===== MQTT2_CLIENT =====&lt;br /&gt;
Ein MQTT2_CLIENT-IO-Device wird z.B. angelegt mit&lt;br /&gt;
 define myBroker MQTT2_CLIENT 10.0.0.5:1883 ## bitte EIGENE IP-Adresse eintragen&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Wenn Sie beabsichtigen, MQTT2_CLIENT zu verwenden, sollten Sie zuerst die [[MQTT2-Module - Praxisbeispiele|Praxisbeispiele zu den MQTT2-Modulen]] lesen, und dabei die Hinweise im Artikel [[MQTT2_CLIENT]] beachten.}}&lt;br /&gt;
&lt;br /&gt;
Ein MQTT2_CLIENT-Device kann ebenfals mit Hilfe von [[allowed]] abgesichert werden, um z.B. SSL-verschlüsselte Kommunikation zu ermöglichem. Client-Module zu diesem IO-Typ sind wiederum [[MQTT2_DEVICE]] und {{Link2CmdRef|Anker=MQTT_GENERIC_BRIDGE|Lang=de|Label=MQTT_GENERIC_BRIDGE}}.&lt;br /&gt;
&lt;br /&gt;
===== MQTT (Modul) ===== &lt;br /&gt;
Vorab werden für diese Variante weitere Perl-Pakete benötigt:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 # Perl Version ausgeben&lt;br /&gt;
 perl -v&lt;br /&gt;
 # Perl MQTT Module nachinstallieren (läuft ein paar Minuten)&lt;br /&gt;
 sudo cpan install Net::MQTT:Simple&lt;br /&gt;
 sudo cpan install Net::MQTT:Constants&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein IO-Device des Typs MQTT wird z.B. angelegt mit&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Sofern der Broker mit FHEM über localhost kommuniziert, kann als IP 127.0.0.1 verwendet werden.}}&lt;br /&gt;
 define myBroker MQTT 10.0.0.5:1883 ## bitte EIGENE IP-Adresse eintragen&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Außerhalb der offiziellen Quellen sind auch einige ältere Varianten des Moduls MQTT_DEVICE verfügbar, die jeweils spezielle Anforderungen (z.B. für Zigbee2mqtt) separat abbilden. Diese werden hier nicht gesondert behandelt, da solche Sonderfälle heute generischer und einfacher durch den Einsatz von MQTT2_DEVICE abzubilden sind.}}Client-Device-Module zum Modul [[MQTT (Modul)|MQTT]] sind [[MQTT_DEVICE]], {{Link2CmdRef|Anker=MQTT_BRIDGE|Lang=de|Label=MQTT_BRIDGE}} (veraltet) und {{Link2CmdRef|Anker=MQTT_GENERIC_BRIDGE|Lang=de|Label=MQTT_GENERIC_BRIDGE}}. Da &#039;&#039;MQTT_DEVICE&#039;&#039; payload im JSON-Format (im Unterschied zu MQTT2_DEVICE) nicht selbst verarbeiten kann wird hier zusätzlich das Modul {{Link2CmdRef|Anker=expandJSON|Lang=de|Label=expandJSON}} benötigt, um den {{Link2Forum|Topic=66761|LinkText=JSON String auszuwerten}}.&lt;br /&gt;
&lt;br /&gt;
=== Performancefragen... ===&lt;br /&gt;
...oder was sollte man als Lösung wählen, wenn man in die MQTT-Welt einsteigt&amp;lt;ref&amp;gt;vgl. hierzu diesen {{Link2Forum|Topic=94768|Message=875714|LinkText=Beitrag}} von Rudolf König&amp;lt;/ref&amp;gt;?&lt;br /&gt;
Grundsätzlich sollte man davon ausgehen, dass innerhalb von FHEM die Verarbeitung derselben Daten näherungsweise denselben Aufwand bedeuten, unabhängig davon, welche der Implementierungen (&#039;&#039;MQTT2_CLIENT&#039;&#039;, &#039;&#039;MQTT&#039;&#039; oder &#039;&#039;MQTT2_SERVER&#039;&#039;) man konkret wählt.&lt;br /&gt;
Ein externer Broker hat daher vor allem dann Vorteile, wenn die MQTT Daten überwiegend für was anderes (nicht FHEM) verwendet werden, oder MQTT zweckentfremdet wird (wie z.Bsp. für Musikübertragung). Nutzt man das MQTT-Protokoll dagegen vorwiegend innerhalb von FHEM, ist eher der Einsatz von MQTT2_SERVER in Betracht zu ziehen. Dieser soll Anfängern die Anbindung von MQTT Geräten in FHEM einfacher machen. Wer später merkt, dass er doch einen externen Broker benötigt, kann dann immer noch auf MQTT2_CLIENT in Verbindung mit einem anderen Broker wechseln.&lt;br /&gt;
Dagegen ist der Weg von MQTT_DEVICE zu MQTT2_DEVICE mit erheblich mehr Aufwand verbunden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Kommunikation zu sonstigen FHEM-Geräten über MQTT  ===&lt;br /&gt;
&lt;br /&gt;
Möchte man Daten von einem [[Gerät]] (im FHEM-Sinn), das &#039;&#039;&#039;nicht&#039;&#039;&#039; vom Typ &#039;&#039;MQTT2_DEVICE&#039;&#039; oder &#039;&#039;MQTT_DEVICE&#039;&#039; (je nach IO-Modul) ist, per MQTT-Protokoll versenden (z.B. für eine andere Visualisierungslösung als FHEMWEB, oder als FHEM2FHEM-Ersatzlösung), oder diese sonstigen Geräte über MQTT-Anweisungen von außen steuern können, hat man mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
==== MQTT_GENERIC_BRIDGE ====&lt;br /&gt;
Das Modul {{Link2CmdRef|Anker=MQTT_GENERIC_BRIDGE|Lang=en|Label=MQTT_GENERIC_BRIDGE}} ermöglicht es, sein jeweiliges IO-Modul-Gerät zu nutzen, um diesen Kommunikationsweg für beliebig viele andere FHEM-Geräte bereitzustellen. Dabei erfolgt am MQTT_GENERIC_BRIDGE-Gerät selbst nur eine Basiskonfiguration, im Übrigen durch Attribute an dem jeweiligen Gerät selbst. So kann z.B. ein Aktor des Typs [[CUL_HM]] an- oder ausgeschaltet werden oder auch einfach nur seinen aktuellen Schaltzustand per MQTT-Protokoll publizieren.&lt;br /&gt;
 &lt;br /&gt;
Dieses Modul kann seit November 2018 mit allen drei IO-Modul-Varianten zusammen eingesetzt werden, also sowohl mit &#039;&#039;MQTT2_SERVER&#039;&#039; bzw. &#039;&#039;MQTT2_CLIENT&#039;&#039; oder &#039;&#039;MQTT&#039;&#039; (00_MQTT.pm). &lt;br /&gt;
&lt;br /&gt;
Dabei sollte man jedoch beachten, dass zur Verwendung mit den MQTT2-IO&#039;s unbedingt die autocreate-Funktion des betreffenden IOs ausgeschaltet wird und dies auch bleibt&amp;lt;ref&amp;gt;siehe dazu diesen {{Link2Forum|Topic=95341|LinkText=Thread}} zu den technischen Hintergründen&amp;lt;/ref&amp;gt;! Weiter wird das Perl-Modul &#039;&#039;libmodule-pluggable-perl&#039;&#039; benötigt&amp;lt;ref&amp;gt;Dieses kann über &amp;lt;code&amp;gt;apt-get install libmodule-pluggable-perl&amp;lt;/code&amp;gt; installiert werden&amp;lt;/ref&amp;gt;, damit im Hintergrund auch das Modul [[MQTT (Modul)|MQTT]] geladen werden kann. Damit gelten auch für diesen Modul die Installationsvoraussetzungen für [[MQTT#MQTT_.28Modul.29|MQTT]]!&lt;br /&gt;
&lt;br /&gt;
Anwendungsfälle und -beispiele für das Modul sind diesem {{Link2Forum|Topic=91642|LinkText=Thread}} zu entnehmen.&lt;br /&gt;
&lt;br /&gt;
==== MQTT_BRIDGE ====&lt;br /&gt;
Dieses Modul kann nur zusammen mit einem IO-Gerät des Typs [[MQTT (Modul)|MQTT]] verwendet werden. Dabei wird pro weiterzuleitendem anderen FHEM-Gerät eine eigene Instanz dieses Moduls verwendet. Auf den Einsatz dieser Option sollte in neuen Installationen zugunsten von &#039;&#039;MQTT_GENERIC_BRIDGE&#039;&#039; verzichtet werden.&lt;br /&gt;
&lt;br /&gt;
==== Per publish-Befehl am IO-Gerät ====&lt;br /&gt;
Alle drei IO-Module kennen direkte &#039;&#039;publish&#039;&#039;-Anweisungen, mit deren Hilfe beliebige &#039;&#039;payloads&#039;&#039; an beliebige &#039;&#039;topics&#039;&#039; gesendet werden können. Dies kann man z.B. in einem [[notify]] oder [[at]] nutzen, um einzelne Events zu publishen oder Werteanfragen abzusetzen.&lt;br /&gt;
&lt;br /&gt;
Hier eine regelmäßige Werteabfrage auf einen [[EBUS-MQTT2|ebus]]:&lt;br /&gt;
 defmod get_ebus_updates at +*00:15:00 set ebusMQTT publish ebusd/430/Hc1HeatCurve/get;&lt;br /&gt;
 set ebusMQTT publish ebusd/430/HwcTempDesired/get;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RAW-Events am IO-Gerät (MQTT2.*) ====&lt;br /&gt;
Bei beiden MQTT2-IO-Modulen (MQTT2_SERVER und MQTT2_CLIENT) kann per [[Regulärer Ausdruck|regulärem Ausdruck]] festgelegt werden, welche Nachrichten ein Event erzeugen sollen, auf das dann wieder z.B. mit einem [[notify]] reagiert werden kann, z.B. um beliebige Schaltaktionen auszulösen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MQTT-Clients (Beispiele) ==&lt;br /&gt;
&lt;br /&gt;
===Arduino-library===&lt;br /&gt;
Zur Kommunikation mit dem Broker von Seiten eines [[Arduino|Arduinos]] mit selbst erstellten Sketches böte sich der PubSubClient an.&lt;br /&gt;
&lt;br /&gt;
===PC-Software===&lt;br /&gt;
Um die Funktionalität des Brokers zu testen kann z.B. ein Analyse-Tool wie MQTT.fx verwendet werden, oder die im Paket &#039;&#039;mosquitto-clients&#039;&#039; enthaltenen Linux-Kommandozeilen-Programme &#039;&#039;mosquitto_sub&#039;&#039; und &#039;&#039;mosquitto_pub&#039;&#039;. Letzterer könnte z.E. auch aus beliebigen &#039;&#039;shell-scripten&#039;&#039; heraus aufgerufen werden. Als Perl-Bibliothek steht alternativ z.B. [https://metacpan.org/pod/distribution/AnyEvent-MQTT/bin/anyevent-mqtt-pub anyevent-mqtt-pub] zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
=== Tasmota ===&lt;br /&gt;
Eine derzeit oft genutzte Möglichkeit für MQTT bilden die [[Sonoff]]-Geräte und weitere [[ESP8266]]-basierte Hardware, die unter vielen Handelsnamen erhältlich sind. Werden diese mit Tasmota (&#039;&#039;&#039;T&#039;&#039;&#039;heo &#039;&#039;&#039;A&#039;&#039;&#039;rends &#039;&#039;&#039;S&#039;&#039;&#039;onoff &#039;&#039;&#039;M&#039;&#039;&#039;QTT &#039;&#039;&#039;O&#039;&#039;&#039;ver &#039;&#039;&#039;T&#039;&#039;&#039;he &#039;&#039;&#039;A&#039;&#039;&#039;ir - einer offenen Firmware von [https://github.com/arendst arendst]) geflasht, so kommunizieren sie über MQTT. Um diese Geräte einzubinden, ist wie folgt vorzugehen. Zuerst ist ein Serverdienst (Broker) bereitzustellen, wie oben beschrieben.&lt;br /&gt;
&lt;br /&gt;
Unter Sonoff sind einige Topics voreingestellt. arendst stellt insbesondere drei Topic-Präfixe bereit, die seiner Meinung jedes Topic einleiten sollen (in den Eingabemasken als &amp;quot;%prefix%&amp;quot; notiert). Das sind einmal Kommandos (abgekürzt als cmnd), die dazu dienen, Befehle auszuführen. Daten werden mit tele und stat übertragen. Ein Topic besteht dann zuerst aus diesem Präfix und danach dem eigentlichen Topic. Wer also beispielsweise einem Sonoff_Switch einen Befehl senden will, sollte als Topic cmnd/Sonoff_Switch wählen. Wenn der Switch ein- und ausgeschaltet werden kann, muss der Topic noch das Wort POWER enthalten (in MQTT werden viele Kennworte komplett groß geschrieben). Der Topic lautet damit vollständig &amp;quot;cmnd/Sonoff_Switch/POWER/set&amp;quot; &lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Dabei ist darauf zu achten, dass für den Parameter &#039;&#039;topic = %topic% (sonoff)&#039;&#039; statt &#039;&#039;sonoff&#039;&#039; ein gerätespezifischer eigener Name eingetragen wird. Hierzu kann man z.B. auch die dynamisch aus der Chip-ID erzeugte Kennung &#039;&#039;DVES_%06X&#039;&#039; verwenden, indem man die unter &#039;&#039;client (DVES_8BABA9)&#039;&#039; zu findende Angabe kopiert. Die eigentliche Umbenennung zu einem &amp;quot;sprechenden Namen&amp;quot; kann dann innerhalb von FHEM - mittels &#039;&#039;rename&#039;&#039; oder ggf. mit einem &#039;&#039;alias&#039;&#039; - erfolgen.}}&lt;br /&gt;
&lt;br /&gt;
Link zum Forum: {{Link2Forum|Topic=27532|LinkText=MQTT FHEM Einrichtung}} (hier als &#039;&#039;MQTT_DEVICE&#039;&#039;!):&lt;br /&gt;
&lt;br /&gt;
 ### FHEM Device mit MQTT verbinden ###&lt;br /&gt;
 define Sonoff_Switch MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Switch IODev myBroker&lt;br /&gt;
 attr Sonoff_Switch devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON&lt;br /&gt;
 attr Sonoff_Switch icon hue_filled_br30&lt;br /&gt;
 attr Sonoff_Switch publishSet ON OFF cmnd/TestSwitch/POWER&lt;br /&gt;
 attr Sonoff_Switch room MQTT&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_Licht stat/Sonoff_Switch/POWER&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_Sensor tele/Sonoff_Switch/SENSOR&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_Status stat/Sonoff_Switch/STATUS&lt;br /&gt;
 attr Sonoff_Switch webCmd ON:OFF&lt;br /&gt;
&lt;br /&gt;
Der hier dargestellte Beispielcode realisiert die Kommunikation zwischen FHEM und dem sonoff Modul via MQTT Broker. Zu beachten ist hier, dass &#039;&#039;&#039;subscribeReading_Licht&#039;&#039;&#039; und &#039;&#039;&#039;subscribeReading_Status&#039;&#039;&#039; unterschiedliche Syntax des Topic Strings haben!&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Prinzipiell ist MQTT ebenso sicher wie eine Postkarte. Solange man es nicht extra absichert, kann jeder der, im eigenen LAN ist (und die Adresse vom Broker kennt) alle Topics mitlesen.&lt;br /&gt;
:&amp;lt;code&amp;gt;meinHaus/Flur/Haustuer:open / close&amp;lt;/code&amp;gt;&lt;br /&gt;
bietet unter diesen Umständen reichlich Raum für Verbesserungen! &lt;br /&gt;
&lt;br /&gt;
Abhilfe:&lt;br /&gt;
=== Username / Passwort ===&lt;br /&gt;
Zunächst kann man erst mal einen Username / Passwort vergeben, was alle IO-Device-Module unterstützen. Da ist zwar auch noch lange nicht sicher, aber zumindest steigert es den Aufwand schon mal. Jetzt muss man zumindest schon mal Pakete sniffen und verstehen, um unbefugt zu lesen oder gar zu publishen.&lt;br /&gt;
&lt;br /&gt;
=== TLS ===&lt;br /&gt;
Um wirklich sicher zu werden, führt kein Weg an TLS vorbei. &lt;br /&gt;
&lt;br /&gt;
Der MQTT-Client in [[#Tasmota|Tasmota]] (für ESP8266) kann mit TLS betrieben werden, vgl. [https://github.com/arendst/Tasmota/wiki/TLS Beschreibung im Tasmota-Wiki].&lt;br /&gt;
&lt;br /&gt;
Leider kann z.B. ein Arduino das schlicht nicht mehr, da die einfacheren Modelle nicht über ausreichend Speicher und die Rechenleistung verfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Hier fehlt eine Anleitung für allowed usw.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Probleme ==&lt;br /&gt;
=== Anweisung und Ergebnis weichen voneinander ab ===&lt;br /&gt;
In der Regel melden MQTT-fähige Geräte entweder den Erhalt einer Nachricht zurück oder den Status nach Durchführung der in der &#039;&#039;payload&#039;&#039; enthaltenen Anweisung. Dabei findet aber in der Regel beim Empfänger eine Verarbeitung der Nachricht statt, ggf. wird diese auch weitergesendet und nochmals verarbeitet, bevor dann ggf. eine Rückmeldung des neuen Status an den MQTT-Server erfolgt. Handelt es sich um einfache on/off-Befehle, bleibt Anweisung und Ergebnis in der Regel identisch. Bei anderen, namentlich bei Dimmer-Werten, kann es zu Rundungsdifferenzen bei nummerischen Werten kommen. So kann z.B. ein Dimm-Wert von 70% gesetzt werden, zürückgemeldet wird dann aber 72% (oder 67%). &lt;br /&gt;
Dies ist technisch bedingt, vermeiden kann das jedoch in aller Regel nur der Autor der jeweiligen software/firmware auf dem &amp;quot;rechnenden&amp;quot; Gerät.&lt;br /&gt;
&lt;br /&gt;
=== Unbeabsichtigte Schleifen ===&lt;br /&gt;
Durch Fehler in der topic-Struktur können unbeabsichtigte Schleifen entstehen, die FHEM komplett blockieren können. Es ist unbedingt darauf zu achten, dass die jeweiligen Sende- und Empfangs-topics andere sind!&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://mqtt.org Offizielle Homepage von MQTT, englisch]&lt;br /&gt;
* [http://www.hivemq.com/blog/mqtt-essentials-part-1-introducing-mqtt Sehr gute Einführung, englisch, sind 5 lesenswerte Teile]&lt;br /&gt;
* [https://www.heise.de/developer/artikel/MQTT-Protokoll-fuer-das-Internet-der-Dinge-2168152.html Ein Exkurs von Heise mit Beispielen, deutsch, sehr lesenswert]&lt;br /&gt;
* [http://www.mqttfx.org/ MQTT FX - ein sehr praktisches Analysetool]&lt;br /&gt;
* {{Link2Forum|Topic=69230|LinkText=Diskussionsthread im Forum}}&lt;br /&gt;
* {{Link2Forum|Topic=92888|LinkText=Thread, zur Entstehungsgeschichte von MQTT2_CLIENT}}&lt;br /&gt;
* {{Link2Forum|Topic=93255|LinkText=Ankündigungsthread zur MQTT2-Erweiterung der MQTT_GENERIC_BRIDGE}}&lt;br /&gt;
* [[MQTT_Einf%C3%BChrung_Teil_2|Teil 2 der MQTT Einführung]]: Detailaspekte (vorrangig zur Modulfamilie MQTT/MQTT_DEVICE)&lt;br /&gt;
* [[MQTT Einführung Teil 3|Teil 3 der MQTT Einführung]]: Arduino-Client selbst programmieren&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Glossary]]&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:MQTT|Einführung]]&lt;br /&gt;
[[Kategorie:MQTT| ]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Universalsensor&amp;diff=31783</id>
		<title>Universalsensor</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Universalsensor&amp;diff=31783"/>
		<updated>2019-12-02T09:21:11Z</updated>

		<summary type="html">&lt;p&gt;PeMue: link 2018 Hardware angepasst&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Universalsensor-CC1101-Innen.jpg|200px|thumb|right|Universalsensor im Innengehäuse]]&lt;br /&gt;
[[Datei:Universalsensor-CC1101-Aussen.jpg|200px|thumb|right|Universalsensor im Außengehäuse]]&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
Die [[Universalsensor]]-Platine ist eine Hardwareplattform, um verschiedene Sensorwerte auch über unterschiedliche Übertragungsverfahren z.B. für die eigene Homeautomatisierung verfügbar zu machen.&lt;br /&gt;
&lt;br /&gt;
Hier werden die unterschiedliche Platinenlayouts, welche z.B. für einen Innensensor und einen Außensensor verwendet werden können, vorgestellt.&lt;br /&gt;
&lt;br /&gt;
Als Übertragungsmedien sind ein Funkmodul (CC1101) oder ein RS485 Transceiver (LT1785 oder kompatibel) vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Mit dem Funkmodul ist eine Anbindung an Funksysteme im 868&amp;amp;nbsp;MHz oder auch 433&amp;amp;nbsp;MHz-Band möglich. Hiermit kann der Sensor z.B. in ein HomeMatic Funksystem integriert werden, aber auch andere Funksysteme sind über eine entsprechende Firmware realisierbar. Mit dem RS485 Transceiver ist z.B. auch eine Integration in das HomeMatic-Wired System möglich.&lt;br /&gt;
&lt;br /&gt;
Das Platinenlayout der Sensoren enthält zwei Pinleisten, welche Arduino-Kompatibel sind. Als Mikrocontroller ist ein Atmega 328p bestückt. Über diese Erweiterungsports können zusätzlich eigene Sensoren oder auch Aktoren angeschlossen werden, diese müssen dann aber über eine Erweiterung der bestehenden Firmware oder mit einer eigenen Firmware angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
Die Spannungsversorgung erfolgt über zwei AA bzw. AAA Batterien. Damit eine möglichst gute Ausnutzung der Batteriekapazität erzielt wird und auch Sensoren mit 3,3&amp;amp;nbsp;V Spannungsversorgung benutzt werden können, kann ein MAX1724 Step-Up-Converter bestückt werden. Dieser stellt eine stabile Spannungsversorgung von 3,3&amp;amp;nbsp;V zur Verfügung. Als Mindest-Eingangsspannung sind hier dann lediglich 1,2&amp;amp;nbsp;V notwendig. Somit ist eine Versorgung auch aus nur einer Batteriezelle denkbar.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann eine Spannungsversorgung über einen Schaltregler erfolgen. Diese Versorgung kommt bei der Bestückungsversion mit RS485-Transceiver zum Einsatz, aber auch bei Benutzung mit dem Funkmodul kann diese Spannungsversorgung eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Der Schaltregler erlaubt einen recht breiten Eingangsspannungsbreich von 7&amp;amp;nbsp;V bis 24&amp;amp;nbsp;V. Außerdem steht damit intern zusätzlich zu den 3,3&amp;amp;nbsp;V eine Spannung von 5&amp;amp;nbsp;V zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
== Innensensor ==&lt;br /&gt;
[[Datei:Universalsensor-CC1101-Innen platine.jpg|200px|thumb|right|Universalsensor-Platine für das Innengehäuse. Hier noch ohne Bestückungsoption für RS485 und ohne bestückten SHT10 (Temperatur / Luftfeuchte)]]&lt;br /&gt;
&lt;br /&gt;
Das Layout des Innensensors unterstützt standardmäßig folgende Sensorbestückung:&lt;br /&gt;
* Temperatur / Feuchte (SHT10)&lt;br /&gt;
* Temperatur / Luftdruck (BMP180)&lt;br /&gt;
* Helligkeit (TSL2561)&lt;br /&gt;
Zusätzlich können über die zwei Pinleisten eigene Sensoren z.B. über eine Erweiterungsplatine angeschlossen werden. Als Beispiel ist hier eine Firmwareversion genannt, bei der mehrere 1-Wire Sensoren an den Sensor angeschlossen und abgefragt werden können. Zusätzlich zu den unterschiedlichen bestückbaren Sensoren kann der Innensensor alternativ zum Funkmodul mit einem RS485 Transceiver bestückt werden. Als Spannungsversorgung steht eine Batterieversorgung (1,2-3&amp;amp;nbsp;V) oder eine Spannungsversorgung über einen Schaltregler (7-24&amp;amp;nbsp;V) zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
== Außensensor ==&lt;br /&gt;
[[Datei:Universalsensor-CC1101-Aussen_platine.jpg|200px|thumb|right|Universalsensor-Platine für das Außengehäuse mit Beschreibung der I2C-Anschlussbelegung.]]&lt;br /&gt;
&lt;br /&gt;
Die Platine des Außensensors ist deutlich kompakter als die des Innensensors, daher ist in dieser Version derzeit nur das Funkmodul bestückbar. Andere Übertragungsverfahren wie z.B. RS485 müssten hier extern realisiert werden. Das Layout des Außensensors unterstützt standardmäßig folgende Sensorbestückung:&lt;br /&gt;
* Temperatur / Luftdruck (BMP180)&lt;br /&gt;
* Helligkeit (TSL2561)&lt;br /&gt;
Weitere Sensoren, z.B. ein SHT10 für Temperatur/Luftfeuchte, können über den nach außen geführten I2C-Bus angeschlossen werden. Natürlich existiert auch beim Außensensor die Möglichkeit, weitere Sensoren oder auch Aktoren über die beiden Pinleisten anzuschließen.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=20620|Message=182690|LinkText=Dieser Forenbeitrag}} beschreibt, wie der SHT10 auch innerhalb eines Gehäuses benutzt werden kann.&lt;br /&gt;
&lt;br /&gt;
Um die Platine im Gehäuse zu fixieren, wird auf einer Seite des Batteriehalters ein kleiner Schaumstoffblock aufgeklebt (siehe nebenstehendes Foto)&lt;br /&gt;
&lt;br /&gt;
== Helligkeitssensor ==&lt;br /&gt;
[[Datei:SHT10_breakout.jpg|200px|thumb|right|SHT10 Breakout-Board für den Außensensor.]]&lt;br /&gt;
[[Datei:CC1101-Sensor-Außen_mit_Filterfolie.JPG|200px|thumb|right|Das Außengehäuse mit Filterfolie.]]&lt;br /&gt;
[[Datei:Innensensor_Loch_für_Acrylstab_Maße.jpg|200px|thumb|right|Bohrvorlage für den Acrylstab im Innengehäuse.]]&lt;br /&gt;
Der Helligkeitssensor braucht zum sinnvollen Einsatz natürlich die Möglichkeit, vom Umgebungslicht beleuchtet zu werden. Da der Sensor im Innengehäuse in der Nähe der Lüftungsschlitze sitzt, wird er dadurch bereits beleuchtet, allerdings fällt hier nur wenig Licht auf den Sensor. Daher ist bei dieser Messmethode die erreichbare Auflösung sehr gering.&lt;br /&gt;
&lt;br /&gt;
Die bessere Lösung ist es, in die Abdeckung des Sensorgehäuses ein 5&amp;amp;nbsp;mm großes Loch zu bohren. In das Loch wird ein kurzer Stift aus Acrylglas eingesetzt (siehe Bild mit der Bohrvorlage).  Achtung, das Loch ist in horizontaler Ausrichtung nicht genau mittig. Der Acrylstab hat nicht genau 5&amp;amp;nbsp;mm Durchmesser. Es sind 5,2 mm. Man kann dennoch ein 5 mm Loch bohren. Das Einschieben des Stabes in das Loch geht dann allerdings ziemlich schwer. Vor dem Einschieben kann man den Acrylstab an der Innenseite noch leicht anfasen. Dann lässt er sich leichter in das Loch schieben. Die Länge des Acrylstabes Beträgt 17&amp;amp;nbsp;mm.&lt;br /&gt;
&lt;br /&gt;
Im Außensensor ist die ausreichende Beleuchtung bereits durch die transparente Gehäuseoberseite gewährleistet. Allerdings wird der Sensor in direkter Sonneneinstrahlung übersteuern. Daher kann hier zwischen Sensor und Deckel eine Filterfolie eingelegt werden. Die getestete Filterfolie lässt dann nur noch etwa 25% des Lichtes durch. Dadurch ist eine Lage ausreichend, damit der Sensor auch im Sommer bei voller Sonneneinstrahlung nicht mehr übersteuert. Durch den bekannten Filterwert der Folie lässt sich so auch gut ein Umrechnungsfaktor für die Heligkeitsmessung in Lux z.B. in FHEM hinterlegen.&lt;br /&gt;
&lt;br /&gt;
Eine Testreihe mit der Folie im Vergleich mit einem kommerziellen Luxmeter hat den Faktor 0,265 ergeben. Mit Folie bekommt man mit einer Division durch 0,265 auf den aktuellen Lux-Wert:&lt;br /&gt;
:&amp;lt;code&amp;gt;$lux = $lum/0.265&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um den Wert mit Folie unterhalb des Devices angezeigt zu bekommen, muss man hierfür ein userreading erstellen.&lt;br /&gt;
Die erfolgt mit folgendem Befehl:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr Outdoor.Helligkeit userReadings luminosity2 { ReadingsVal(&amp;quot;Outdoor.Helligkeit&amp;quot;,&amp;quot;luminosity&amp;quot;,0)/0.265;;  }&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Devicename (hier im Beispiel &#039;&#039;Outdoor.Helligkeit&#039;&#039;) muss gegen den eigenen Devicenamen ausgetauscht werden.&lt;br /&gt;
&lt;br /&gt;
Werden zwei Folien benutzt muss der Wert von 0.265 angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Nun ist es möglich, den richtigen Wert unter dem Reading &#039;&#039;luminosity2&#039;&#039; abzufragen.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
[[Datei:CC1101-Sensor_Firmwareupdate_mit_dem_Raspberry_Pi.jpg|200px|thumb|right|Firmwareupdate mit dem Raspberry Pi.]]&lt;br /&gt;
&lt;br /&gt;
Aktuell existieren für den Sensor drei verschiedene Firmwareversionen:&lt;br /&gt;
* [[HB-UW-Sen-THPL]] HB-UW-Sen-THPL-I, HB-UW-Sen-THPL-O (Version 0.15)&lt;br /&gt;
: HomeMatic-kompatibler Temperatur / Feuchte / Luftdruck / Helligkeitssensor für das  Innengehäuse oder Außengehäuse&lt;br /&gt;
* [https://github.com/TomMajor/SmartHome/tree/master/HB-UNI-Sensor1 HB-UNI-Sensor1]&lt;br /&gt;
: Neuauflage des Universalsensors in 2018 für Temperatur, Luftdruck, Luftfeuchte, Helligkeit mit neuer AskSinPP Bibliothek&lt;br /&gt;
* HWB-ONEWIRE (Experimentel)&lt;br /&gt;
: HomeMatic-Wired Kompatibles 1-Wire-Temperatursensor-interface&lt;br /&gt;
&lt;br /&gt;
HB-UW-Sen-THPL-I und HB-UW-Sen-THPL-O unterscheiden sich nur durch die Geräte-ID (F101 für HB-UW-Sen-THPL-I, F102 für HB-UW-Sen-THPL-O). Dadurch ist es möglich, dass die Sensoren z.B. in der CCU über ein eigenes Icon verfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configtaster&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Drückt man den Configtaster auf der Platine im Betrieb 1x, so startet man das [[HomeMatic_Devices_pairen|Pairing]]. Die LED fängt langsam an zu blinken. Drückt man den Taster nun nochmal, aber deutlich länger, blinkt die LED sehr schnell (jetzt loslassen). Jetzt kann der Sensor resettet werden. Dazu drückt man den Taster erneut, bis die LED ausgeht. Der Sensor hat sich nun zurückgesetzt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Firmwarekonfiguration&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Auf einige Einstellungen des Sensors lässt sich über die Kommandozeile Einfluss nehmen. Dazu &lt;br /&gt;
:&amp;lt;code&amp;gt;set &amp;lt;sensorname&amp;gt; regSet &amp;lt;register&amp;gt; &amp;lt;wert&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
eingeben. Die folgenden Register stehen dabei zur Verfügung:&lt;br /&gt;
;altitude&lt;br /&gt;
:Die Höhe des Sensors über NN in Metern. Ist ein Luftdrucksensor vorhanden, dann wird der ermittelte Druck automatisch in Druck auf NN umgerechnet.&lt;br /&gt;
;burstRx (noch experimentell)&lt;br /&gt;
:Hierbei bleibt der Sensor dauerhaft empfangsbereit (bei höherem Batterieverbrauch). Damit soll es möglich sein, die Sensorwerte on demand vom Sensor anzufordern.&lt;br /&gt;
;ledMode&lt;br /&gt;
:&#039;&#039;on&#039;&#039; die LED leuchtet, wenn der Sensor Daten überträgt, &#039;&#039;off&#039;&#039; die LED leuchtet beim Übertragen der Daten nicht&lt;br /&gt;
;lowBatLimitTHPL&lt;br /&gt;
:Batteriespannung, ab der die Warnung für den Batteriewechsel ausgegeben wird.&lt;br /&gt;
;pairCentral&lt;br /&gt;
:???&lt;br /&gt;
;transmDevTryMax&lt;br /&gt;
:Anzahl der Wiederholungssendungen, sofern kein ACK empfangen wurde.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Universalsensor-RS485_mit_1-Wire-Sensoren.jpg|200px|thumb|right|Universalsensor-RS485-Version. Hier mit angeschlossenen 1-Wire Temperatursensoren]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Universalsensor-RS485-Innen_Platine.jpg|200px|thumb|right|Universalsensor-RS485-Version. Hier mit optional bestückten SHT10 (Temperatur / Luftfeuchte), BMP180 (Luftdruck), TSL2561 (Helligkeit)]]&lt;br /&gt;
&lt;br /&gt;
== OTA (OverTheAir) Firmwareupdate ==&lt;br /&gt;
Die Firmware des Sensor lässt sich, sofern er den so genannten OTAU-Bootloader besitzt, einfach per Funk updaten (OTA-Update = &#039;&#039;&#039;O&#039;&#039;&#039;ver &#039;&#039;&#039;T&#039;&#039;&#039;he &#039;&#039;&#039;A&#039;&#039;&#039;ir, also Update per Funk).&lt;br /&gt;
&lt;br /&gt;
Das Firmwareupdate funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2. Ein &amp;lt;code&amp;gt;set sensorname fwUpdate dateiname&amp;lt;/code&amp;gt; in der Kommandozeile von FHEM funktioniert derzeit noch nicht.&lt;br /&gt;
&lt;br /&gt;
Für das Update mit flash-ota ist folgendes zu machen:&lt;br /&gt;
# [[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|flash-ota herunterladen und installieren]].&lt;br /&gt;
# Firmware aus dem ZIP rausholen: https://github.com/kc-GitHub/Wettersensor/archive/v0.14_beta.zip&lt;br /&gt;
# flash-ota starten. Z.B. so: &amp;lt;code&amp;gt;sudo ./flash-ota -c /dev/ttyACM0 -f &amp;lt;firmware-file.eq3&amp;gt; -s &amp;lt;seriennummer&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# eine Batterie aus dem Sensor heraus nehmen, Configtaste drücken und gedrückt halten, Batterie wieder einlegen während die Configtaste weiter gedrückt bleibt.&lt;br /&gt;
# Jetzt sollte der Updateprozess starten.&lt;br /&gt;
# Sensor mit FHEM neu pairen. Dann erscheint auch die neue Firmwareversion in FHEM.&lt;br /&gt;
&lt;br /&gt;
== Weitere Firmwareupdate-Möglichkeiten ==&lt;br /&gt;
Alternativ kann der Atmega328p auf der Platine mit einem Arduino-kompatiblen Bootloader ausgerüstet werden.&lt;br /&gt;
Damit lässt sich dann das Firmwareupdate per USB-UART-Adapter oder auch über den UART-Anschluss von einem [[Raspberry Pi]] einspielen.&lt;br /&gt;
&lt;br /&gt;
== RS485-Version mit 1-Wire Temperatursensoren ==&lt;br /&gt;
Hier ist eine experimentelle Firmware, mit der man derzeit die RS485-Version des Sensors in ein 1-Wire - HomeMatic-Wired Interface &amp;quot;verwandeln&amp;quot; kann. Weiteres ist unter [[HWB-1WIRE-TMP10]] nachzulesen.&lt;br /&gt;
&lt;br /&gt;
== Inbetriebnahme ==&lt;br /&gt;
# Das FHEM-Modul für den Sensor muss installiert werden. Dazu folgenden Befehl in das FHEM-Befehlsfeld eingeben: &amp;lt;br&amp;gt;  &amp;lt;code&amp;gt;update HMConfig_SenTHPL.pm &amp;lt;nowiki&amp;gt;https://raw.githubusercontent.com/kc-GitHub/Wettersensor/master/Contrib/control-fhem.txt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
# Anschließend muss FHEM neu gestartet werden: &amp;lt;code&amp;gt;shutdown restart&amp;lt;/code&amp;gt;&lt;br /&gt;
# Batterien in den Sensor einlegen&lt;br /&gt;
# [[HomeMatic_Devices_pairen|CUL in den Pairingmodus schalten]]&lt;br /&gt;
# Configtaster auf dem Universalsensor drücken&lt;br /&gt;
&lt;br /&gt;
== Zurücksetzen auf Werkseinstellungen ==&lt;br /&gt;
# Configtaster drücken -&amp;gt; LED blinkt&lt;br /&gt;
# Configtaster lange drücken (ca. 5-10 sek.) -&amp;gt; LED blinkt schnell&lt;br /&gt;
# Configtaster noch mal lange drücken (ca. 5-10 sek.) -&amp;gt; LED blinkt kurz und hört dann auf&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/kc-GitHub/Wettersensor Firmware der CC1101 (Funk) Version]&lt;br /&gt;
* [https://github.com/kc-GitHub/HM485-Lib/tree/thorsten Firmware der RS485 (Wired) Version]&lt;br /&gt;
* [https://github.com/kc-GitHub/Wettersensor/raw/master/Schematic/Schematic-RF.pdf Schaltplan und Platinenlayout der CC1101 (Funk) Version]&lt;br /&gt;
* [https://github.com/kc-GitHub/HM485-Lib/raw/thorsten/Schematic/Schematic-WIRED.pdf Schaltplan und Platinenlayout der RS485 (Wired) Version]&lt;br /&gt;
* [https://github.com/TomMajor/SmartHome/tree/master/HB-UNI-Sensor1 Firmware der 2018 Version]&lt;br /&gt;
* [https://github.com/TomMajor/SmartHome/tree/master/PCB/01_Sensor_PLHT_V2.01 Schaltplan und Platinenlayout der 2018 Version]&lt;br /&gt;
* {{Link2Forum|Topic=20620|LinkText=Thread im FHEM-Forum}}&lt;br /&gt;
* {{Link2Forum|Topic=22952|LinkText=Thread im FHEM-Forum zur Entwicklung der Wired-Firmware}}&lt;br /&gt;
[[Kategorie:HomeBrew]]&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:868MHz]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=31150</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=31150"/>
		<updated>2019-08-26T11:41:10Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Einfügen der Versionsinformationen für die Platinen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des BidCos-Protokolls aus den HomeMatic-Geräten.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR2032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen (zwei Platinen zur Erfassung der Fensterstellung) eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine v1.0/1.1 ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung (=v1.1)):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
In der Liste sind die Magnete und Reed-Kontakte nicht aufgeführt.&lt;br /&gt;
Folgende können verwendet werden:&lt;br /&gt;
* Reed-Kontakt 2x14mm [https://de.aliexpress.com/item/10pcs-N-O-Reed-switch-Magnetic-Switch-2-14mm-Normally-Open-Magnetic-Induction-switch/32803902404.html Aliexpress]&lt;br /&gt;
* Neodym Magnet 4x2mm [https://de.aliexpress.com/item/10-teile-los-Disk-magnet-4-2mm-N35-Starke-Disc-NdFeB-Rare-Earth-Magnet-4x2mm-Neodym/32946901529.html?spm=a2g0x.search0104.3.7.76d477adxmEm7W&amp;amp;ws_ab_test=searchweb0_0%2Csearchweb201602_2_10065_10068_10547_319_317_10548_10696_10084_453_10083_454_10618_10304_10307_10820_10821_537_10302_536_10902_10843_10059_10884_10887_321_322_10103%2Csearchweb201603_51%2CppcSwitch_0&amp;amp;algo_pvid=cfa21564-5a35-4c12-a921-71b0383402fc&amp;amp;algo_expid=cfa21564-5a35-4c12-a921-71b0383402fc-1 Aliexpress]&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine v1.0/1.1 ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
Vor dem Verlöten der Bauteile sollte kontrolliert werden, ob die Platinen in das Gehäuse passen. Falls nicht, sollte entweder das Gehäuse oder die Platine passend gefeilt werden.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 72 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA (Over The Air) Bootloaders ===&lt;br /&gt;
{{Randnotiz|RNText=Firmware für &#039;ID=0030&#039;}}&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem beliebigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu Gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Batterien und StepUp&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht.&lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
Seit 01/2018 gibt es die Firmware auch für das sog. &#039;&#039;lazy config&#039;&#039;. Hierbei können die Register einfach z.B. durch das nächste Öffnen des Fensters ausgelesen werden, ohne dass die Config-Taste gedrückt werden muss.&lt;br /&gt;
Das Update auf &#039;&#039;lazy config&#039;&#039; geht auf zwei Arten:&lt;br /&gt;
&lt;br /&gt;
Keine Änderung der &#039;ID=0030&#039; und Durchführen eines [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware] bzw. eines FHEM Updates oder &lt;br /&gt;
{{Randnotiz|RNText=Firmware für &#039;ID=00C3&#039;}}&lt;br /&gt;
Aktualisierung der Firmware auf &#039;ID=00C3&#039;. Die Dateien können hier: [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94538 makeota.html], [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94542 Firmware (hex)] bzw. [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware (eq3)] heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
Verwendet man den Sensor in Kombination mit originaler eq3 Hardware, sollte man die zweite Möglichkeit wählen.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 (Platine v1.0/1.1) ==&lt;br /&gt;
Den Magneten in den Drehring einbauen und diesen in das Gehäuse einbauen. Die Reedkontakte&lt;br /&gt;
Platzieren und mit einem Ohmmeter Messen, ob die Reedkontakte bei der entsprechenden Position&lt;br /&gt;
der Magnete schalten. Falls nicht, ggf. die Reedkontakte austauschen (Streuung!) bzw. einen stärkeren Magneten verwenden. Danach mittels Silberdraht bzw. Kupferlackdraht (an den zu&lt;br /&gt;
verlötenden Enden den Lack mittels eines Cuttermessers entfernen) die Reedkontakte gemäß&lt;br /&gt;
Bild verlöten und die Enden (GND, A0 bzw. A1) durch die vorgesehenen Öffnungen im Gehäuse führen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verlötete Reedkontakte:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic15.jpg]]&lt;br /&gt;
&lt;br /&gt;
Danach die Antenne in die dafür vorgesehene Bohrung einführen und die Platine platzieren. Darauf achten, dass die Anschlüsse der Reedkontakte durch die dafür vorgesehenen Kontakte auf der Platine geführt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Einführen der Antenne:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic17.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Platzierte Platine:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic16.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nach Verlöten der drei Kontaktpunkte ist der Fensterdrehgriff fertig aufgebaut.&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am Ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Montage ==&lt;br /&gt;
Bei der Standardeinstellung der Register gilt für die Platzierung des Magneten bei geöffnetem Fenster folgendes:&lt;br /&gt;
Bei links angeschlagenem Fenster muss der Magnet nach unten, bei rechts angeschlagenem nach oben.&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles Mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;br /&gt;
[[Kategorie:868MHz]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=29918</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=29918"/>
		<updated>2019-03-16T17:05:10Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Link Magnete angepasst&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des BidCos-Protokolls aus den HomeMatic-Geräten.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR2032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen (zwei Platinen zur Erfassung der Fensterstellung) eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
In der Liste sind die Magnete und Reed-Kontakte nicht aufgeführt.&lt;br /&gt;
Folgende können verwendet werden:&lt;br /&gt;
* Reed-Kontakt 2x14mm [https://de.aliexpress.com/item/10pcs-N-O-Reed-switch-Magnetic-Switch-2-14mm-Normally-Open-Magnetic-Induction-switch/32803902404.html Aliexpress]&lt;br /&gt;
* Neodym Magnet 4x2mm [https://de.aliexpress.com/item/10-teile-los-Disk-magnet-4-2mm-N35-Starke-Disc-NdFeB-Rare-Earth-Magnet-4x2mm-Neodym/32946901529.html?spm=a2g0x.search0104.3.7.76d477adxmEm7W&amp;amp;ws_ab_test=searchweb0_0%2Csearchweb201602_2_10065_10068_10547_319_317_10548_10696_10084_453_10083_454_10618_10304_10307_10820_10821_537_10302_536_10902_10843_10059_10884_10887_321_322_10103%2Csearchweb201603_51%2CppcSwitch_0&amp;amp;algo_pvid=cfa21564-5a35-4c12-a921-71b0383402fc&amp;amp;algo_expid=cfa21564-5a35-4c12-a921-71b0383402fc-1 Aliexpress]&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
Vor dem Verlöten der Bauteile sollte kontrolliert werden, ob die Platinen in das Gehäuse passen. Falls nicht, sollte entweder das Gehäuse oder die Platine passend gefeilt werden.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 72 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA (Over The Air) Bootloaders ===&lt;br /&gt;
{{Randnotiz|RNText=Firmware für &#039;ID=0030&#039;}}&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem beliebigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu Gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Batterien und StepUp&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht.&lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
Seit 01/2018 gibt es die Firmware auch für das sog. &#039;&#039;lazy config&#039;&#039;. Hierbei können die Register einfach z.B. durch das nächste Öffnen des Fensters ausgelesen werden, ohne dass die Config-Taste gedrückt werden muss.&lt;br /&gt;
Das Update auf &#039;&#039;lazy config&#039;&#039; geht auf zwei Arten:&lt;br /&gt;
&lt;br /&gt;
Keine Änderung der &#039;ID=0030&#039; und Durchführen eines [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware] bzw. eines FHEM Updates oder &lt;br /&gt;
{{Randnotiz|RNText=Firmware für &#039;ID=00C3&#039;}}&lt;br /&gt;
Aktualisierung der Firmware auf &#039;ID=00C3&#039;. Die Dateien können hier: [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94538 makeota.html], [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94542 Firmware (hex)] bzw. [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware (eq3)] heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
Verwendet man den Sensor in Kombination mit originaler eq3 Hardware, sollte man die zweite Möglichkeit wählen.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
Den Magneten in den Drehring einbauen und diesen in das Gehäuse einbauen. Die Reedkontakte&lt;br /&gt;
Platzieren und mit einem Ohmmeter Messen, ob die Reedkontakte bei der entsprechenden Position&lt;br /&gt;
der Magnete schalten. Falls nicht, ggf. die Reedkontakte austauschen (Streuung!) bzw. einen stärkeren Magneten verwenden. Danach mittels Silberdraht bzw. Kupferlackdraht (an den zu&lt;br /&gt;
verlötenden Enden den Lack mittels eines Cuttermessers entfernen) die Reedkontakte gemäß&lt;br /&gt;
Bild verlöten und die Enden (GND, A0 bzw. A1) durch die vorgesehenen Öffnungen im Gehäuse führen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verlötete Reedkontakte:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic15.jpg]]&lt;br /&gt;
&lt;br /&gt;
Danach die Antenne in die dafür vorgesehene Bohrung einführen und die Platine platzieren. Darauf achten, dass die Anschlüsse der Reedkontakte durch die dafür vorgesehenen Kontakte auf der Platine geführt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Einführen der Antenne:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic17.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Platzierte Platine:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic16.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nach Verlöten der drei Kontaktpunkte ist der Fensterdrehgriff fertig aufgebaut.&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am Ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Montage ==&lt;br /&gt;
Bei der Standardeinstellung der Register gilt für die Platzierung des Magneten bei geöffnetem Fenster folgendes:&lt;br /&gt;
Bei links angeschlagenem Fenster muss der Magnet nach unten, bei rechts angeschlagenem nach oben.&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles Mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;br /&gt;
[[Kategorie:868MHz]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Easy-RS485-Bus&amp;diff=29636</id>
		<title>Easy-RS485-Bus</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Easy-RS485-Bus&amp;diff=29636"/>
		<updated>2019-02-23T16:30:35Z</updated>

		<summary type="html">&lt;p&gt;PeMue: -e&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel ist im Entwurfsstadium.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Überblick =&lt;br /&gt;
&lt;br /&gt;
Ziel ist es eine standardisierte Umsetzung eines RS485 Buses z.B. für die FHEM easySensor Platinen zu beschreiben.&lt;br /&gt;
Als erste Nutzung ist die Anwendung für MySenors vorgehsehen. Andere Nutzungen sind natürlich auch möglich.&lt;br /&gt;
&lt;br /&gt;
= Termininierung =&lt;br /&gt;
Die Terminierung ist ein sehr vielschichtiges Thema. Der Vorschlag von unten mit dem Widerstandsnetzwerk ist eine guter Kompromiss bezüglich Stromverbrauch und Stabilität.&lt;br /&gt;
&lt;br /&gt;
Ohne Terminierung in der Theorie:&lt;br /&gt;
Bei 19200 Baud auf dem Bus ergibt sich ein Zeitfenster von ~50us pro Signalflanke, bei 50% maximale Anstiegzeit == 25us, Ausbreitungsgeschwindigkeit 21cm/ns. &lt;br /&gt;
Mit der angenommenen Faustregel: Einfache Laufzeit durch das Kabel maximal 1/6 der maximalen Anstiegzeit. 25us/6=4,2us, maximal mögliche Kabellänge 21cm * 1000 * 4.2 == 88200cm == 882m.&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; ergibt sichere 500 Meter...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://dcs-bios.a10c.de/rs485-resistors.html Online-Berechnung]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel zur einfachen Terminierung zwischen Pin1+2 eines RJ45 Steckers:&lt;br /&gt;
&lt;br /&gt;
[[Datei:RS485-Termination.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Achtung: Für Homematic-Wired (HMW) ist allerdings das hier zu beachten: [[HomeMatic_Wired#Der_sogenannte_Busabschluss]]&lt;br /&gt;
D.h. wenn ein &amp;quot;normaler&amp;quot; 120Ohm Busabschluss verbaut ist, dann darf man das auf keinen Fall an einen HMW-Bus hängen. Besonders problematisch würde es werden, wenn zusätzlich noch der eq3-&amp;quot;Busabschluss&amp;quot; dranhängt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besser bewährt hat sich die Terminierung mit Widerstandsnetzwerk ähnlich wie bei Homematic Wired. Die Widerstandswerte sind anzupassen:&lt;br /&gt;
Bei höherer Spannung muss R5 vergrößert werden um zwischen GND und A auf ca. 5V zu kommen.&lt;br /&gt;
&lt;br /&gt;
Problem: Die Leitung hat eine Kapazität. Diese muss bei Pegelwechseln geladen und entladen werden. &lt;br /&gt;
Bei höherer Geschwindigkeit oder schnellerer Transfer-Rate müssen die Widerstände verkleiner werden, damit steigt der Stromverbrauch am Bus, aber die Leistungen werden schneller auf den Normal-Pegel gezogen. &lt;br /&gt;
&lt;br /&gt;
[[Datei:Schematic-Termination-24V.png|200px]]&lt;br /&gt;
[[Datei:Termination-24V.png|200px]]&lt;br /&gt;
&lt;br /&gt;
 +24V --- 22K---A---5K6---GND&lt;br /&gt;
 B---4K7---GND&lt;br /&gt;
(Quelle: https://wiki.fhem.de/wiki/HomeMatic_Wired#Der_sogenannte_Busabschluss)&lt;br /&gt;
&lt;br /&gt;
Ergibt ~5V an A und B wird nach GND gezogen&lt;br /&gt;
&lt;br /&gt;
= Umsetzung =&lt;br /&gt;
&lt;br /&gt;
== RJ45 ==&lt;br /&gt;
&lt;br /&gt;
Standard: &lt;br /&gt;
&lt;br /&gt;
Paar 1: Pin 4+5: blau/weiß: Frei/auf Pinheader, alternativ: Rückführung A+B&lt;br /&gt;
&lt;br /&gt;
Paar 2: Pin 3+6: weiß/grün: Spannungsversorgung + / GND&lt;br /&gt;
&lt;br /&gt;
Paar 3: Pin 1+2: weiß/orange: A+B kommend &lt;br /&gt;
&lt;br /&gt;
Paar 4: Pin 7+8: weiß/braun: Zusätzliche Spannungsversorgung kommend, parallel zu Paar2, Alternative Nutzungen unter großer Vorsicht denkbar...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 4 Poliger Anschluss ==&lt;br /&gt;
+ A B -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A) Terminator---GW--------Node---------Node--------Node---Terrminator&lt;br /&gt;
&lt;br /&gt;
B) Terminator---GW-----Dose----Patchfeld---Patchfeld---Dose-----Node-----Node---Terminator &lt;br /&gt;
&lt;br /&gt;
C) Mit Rückkanal: Terminator---GW----Dose---Patchfeld1---A=Patchfeld2====A--Node1&lt;br /&gt;
                                                            ||                                                             Patchfeld3====A--Node2----Terminator&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:NeedsEditing]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=28097</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=28097"/>
		<updated>2018-10-15T14:16:08Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Schreibfehler&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR2032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen (zwei Platinen zur Erfassung der Fensterstellung) eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
In der Liste sind die Magnete und Reed-Kontakte nicht aufgeführt.&lt;br /&gt;
Folgende können verwendet werden:&lt;br /&gt;
* Reed-Kontakt 2x14mm [https://de.aliexpress.com/item/10pcs-N-O-Reed-switch-Magnetic-Switch-2-14mm-Normally-Open-Magnetic-Induction-switch/32803902404.html Aliexpress]&lt;br /&gt;
* Neodym Magnet 4x2mm [https://de.aliexpress.com/item/32873144013/32873144013.html Aliexpress]&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
Vor dem Verlöten der Bauteile sollte kontrolliert werden, ob die Platinen in das Gehäuse passen. Falls nicht, sollte entweder das Gehäuse oder die Platine passend gefeilt werden.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 72 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA (Over The Air) Bootloaders ===&lt;br /&gt;
{{Randnotiz|RNText=Firmware für &#039;ID=0030&#039;}}&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem beliebigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu Gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Batterien und StepUp&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht.&lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
Seit 01/2018 gibt es die Firmware auch für das sog. &#039;&#039;lazy config&#039;&#039;. Hierbei können die Register einfach z.B. durch das nächste Öffnen des Fensters ausgelesen werden, ohne dass die Config-Taste gedrückt werden muss.&lt;br /&gt;
Das Update auf &#039;&#039;lazy config&#039;&#039; geht auf zwei Arten:&lt;br /&gt;
&lt;br /&gt;
Keine Änderung der &#039;ID=0030&#039; und Durchführen eines [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware] bzw. eines FHEM Updates oder &lt;br /&gt;
{{Randnotiz|RNText=Firmware für &#039;ID=00C3&#039;}}&lt;br /&gt;
Aktualisierung der Firmware auf &#039;ID=00C3&#039;. Die Dateien können hier: [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94538 makeota.html], [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94542 Firmware (hex)] bzw. [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware (eq3)] heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
Verwendet man den Sensor in Kombination mit originaler eq3 Hardware, sollte man die zweite Möglichkeit wählen.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
Den Magneten in den Drehring einbauen und diesen in das Gehäuse einbauen. Die Reedkontakte&lt;br /&gt;
Platzieren und mit einem Ohmmeter Messen, ob die Reedkontakte bei der entsprechenden Position&lt;br /&gt;
der Magnete schalten. Falls nicht, ggf. die Reedkontakte austauschen (Streuung!) bzw. einen stärkeren Magneten verwenden. Danach mittels Silberdraht bzw. Kupferlackdraht (an den zu&lt;br /&gt;
verlötenden Enden den Lack mittels eines Cuttermessers entfernen) die Reedkontakte gemäß&lt;br /&gt;
Bild verlöten und die Enden (GND, A0 bzw. A1) durch die vorgesehenen Öffnungen im Gehäuse führen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verlötete Reedkontakte:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic15.jpg]]&lt;br /&gt;
&lt;br /&gt;
Danach die Antenne in die dafür vorgesehene Bohrung einführen und die Platine platzieren. Darauf achten, dass die Anschlüsse der Reedkontakte durch die dafür vorgesehenen Kontakte auf der Platine geführt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Einführen der Antenne:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic17.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Platzierte Platine:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic16.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nach Verlöten der drei Kontaktpunkte ist der Fensterdrehgriff fertig aufgebaut.&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am Ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Montage ==&lt;br /&gt;
Bei der Standardeinstellung der Register gilt für die Platzierung des Magneten bei geöffnetem Fenster folgendes:&lt;br /&gt;
Bei links angeschlagenem Fenster muss der Magnet nach unten, bei rechts angeschlagenem nach oben.&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles Mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;br /&gt;
[[Kategorie:868MHz]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HM-MOD-RPI-PCB_HomeMatic_Funkmodul_f%C3%BCr_Raspberry_Pi&amp;diff=27061</id>
		<title>HM-MOD-RPI-PCB HomeMatic Funkmodul für Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HM-MOD-RPI-PCB_HomeMatic_Funkmodul_f%C3%BCr_Raspberry_Pi&amp;diff=27061"/>
		<updated>2018-06-11T19:26:03Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Pinbelegung korrigiert, letzter Link korrigiert, Schreibfehler korrigiert.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Hardware&lt;br /&gt;
|Bild=HM-MOD-RPI-PCB.jpg&lt;br /&gt;
|Bildbeschreibung=HomeMatic Funkmodul für Raspberry Pi &lt;br /&gt;
|HWProtocol=HomeMatic&lt;br /&gt;
|HWType=Gateway&lt;br /&gt;
|HWCategory=HomeMatic&lt;br /&gt;
|HWComm=868,3/869,525 MHz&lt;br /&gt;
|HWChannels=n/a&lt;br /&gt;
|HWVoltage=1,8–3,6 V&amp;amp;nbsp;DC&lt;br /&gt;
|HWPowerConsumption=50 mA max.&lt;br /&gt;
|HWPoweredBy=RasPi&lt;br /&gt;
|HWSize=19x41x14mm&lt;br /&gt;
|HWDeviceFHEM=[[HMUARTLGW]]&lt;br /&gt;
|HWManufacturer=ELV / eQ-3 &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das [[HM-MOD-RPI-PCB HomeMatic Funkmodul für Raspberry Pi]] ist eine Platine, die auf die GPIO-Schnittstelle des [[Raspberry Pi]] aufgesteckt werden und damit als [[Interface]] zu [[HomeMatic]] Geräten dienen kann. &lt;br /&gt;
&lt;br /&gt;
== Aufbau, Einsatz und grundsätzliche Funktionsweise ==&lt;br /&gt;
Das Modul besteht aus zwei Teilplatinen, die von eQ-3 über den Internetshop von ELV (als Bausatz ab etwa 20€, fertig montiert ab etwa 30€) verkauft werden. &lt;br /&gt;
&lt;br /&gt;
Das eigentliche Funkmodul wird mit HM-MOD-RPI-UART bezeichnet (und trägt den Aufdruck UART, im obigen Bild hinten teilweise verdeckt und mit der umrandeten 7 versehen), sie hat fünf einpolige Buchsen mit dem Rastermaß 2mm. Die Zusatzplatine zum Anschluss an die GPIO wird mit TRX1 bezeichnet (im obigen Bild vorn sichtbar mit dem Aufdruck HM-MOD-RPI-PCB), sie hat zwei sechspolige Buchsen mit dem Rastermaß 2,54mm.  Die Zusatzplatine enthält im Wesentlichen Stützkondensatoren und erlaubt einen direkten Anschluss an die GPIO eines Raspberry Pi.&lt;br /&gt;
* Der vorgesehene Einsatz als Aufsteckmodul auf den GPIO Port des Raspberry erfordert eine Modell abhängige Konfiguration. Diese wird im Setupbereich des Wiki Artikel zum [[Raspberry_Pi]] beschrieben.&lt;br /&gt;
  &lt;br /&gt;
{{Randnotiz|RNText=Neben der hier beschriebenen Option das HM-MOD-RPI-PCB zu verwenden, besteht auch die Möglichkeit, damit auf demselben Raspberry eine virtuelle CCU zu betreiben, welche dann mit [[HMCCU]] eingebunden werden kann. Hierfür stehen mehrere Virtualisierungsvarianten zur Verfügung; eine kurze Darstellung, wie das mittels YAHM funktioniert, ist in diesem {{Link2Forum|Topic=79670|Message=718289|Forenbeitrag}} zu finden.}}Mit dieser Platine in Verbidnung mit dem FHEM-Modul [[HMUARTLGW]] ist nur der Betrieb von BidCoS-Geräten möglich. Zur Einbindung von Geräten, die HM-IP verwenden, ist derzeit (Stand Juni 2018) noch zwingend eine (ggf. virtualisierte) CCU2 oder neuer erforderlich.&lt;br /&gt;
&lt;br /&gt;
Das Funkmodul stellt auf dem 868MHz-Frequenzband eine Verbindung zu Homematic-Geräten her. Das Modul wird über die serielle Schnittstelle an ein Gerät gekoppelt, dass diese serielle Schnittstelle auswerten und die Information dann weiterverarbeiten kann. Hier kommen beispielsweise in Frage: Raspberry Pi, WeMos mini, ESP8266-Module, USB-serielle Adapter. Bereits das UART-Funkmodul erlaubt eine serielle Anbindung (die entsprechenden Schnittstellen Tx und Rx sind vorhanden, sie basieren auf 3,3V), es kann aber auch die  zusätzliche TRX1-Platine seriell verbunden werden. Des weiteren gibt es im Forum einen ([https://forum.fhem.de/index.php/topic,56606.0.html Thread]), in dem PeMue eine eigene Platinenversion (Schaltplan, Stückliste und vieles mehr) vorstellt.&lt;br /&gt;
=== Platine 1 -PCB-Modul ===&lt;br /&gt;
[[Datei:Hm-uart trx1.png|thumb|right|200px|Verkabelung beim HM-MOD-PCB]]&lt;br /&gt;
Am einfachsten ist es sicherlich, das kombinierte PCB-Modul (also beide Platinen UART und TRX1 durch eine Pfostenleiste miteinander verlötet) direkt auf die GPIO des Raspberry Pi aufzustecken. Das Bild rechts zeigt die entsprechende Verkabelung.&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
=== Platine 2 -UART-Modul ===&lt;br /&gt;
[[Datei:Verkabelung-HM-MOD-uart.png|thumb|right|200px|Verkabelung beim HM-MOD-UART]]&lt;br /&gt;
Will man das TRX1-Modul nicht verwenden, so kann man auch das UART-Modul direkt mit Rx/Tx des Raspberry Pi verbinden. Das Bild rechts zeigt die entsprechende Verkabelung. Hier sollten allerdings Stützkondensatoren an die Stromversorgung des UART angebracht werden, da Spannungsschwankungen sonst zu schwer interpretierbaren Fehlern führen können. Die Anschlüsse sind dem nachstehenden Bild zu entnehmen, allerdings ist hier nicht die UART-Platine, sondern das TRX1-Gegenstück zu sehen!&lt;br /&gt;
&lt;br /&gt;
Sowohl serielle Schnittstelle des Raspberry Pi als auch das UART-Modul arbeiten mit 3,3V arbeitet, so dass man keine Spannungsteiler benötigt. Mehr Informationen zu den GPIOs findet man unter diesem [http://www.netzmafia.de/skripten/hardware/RasPi/RasPi_GPIO.html Link].&lt;br /&gt;
&lt;br /&gt;
=== Zusammenbau und Verwendung ===&lt;br /&gt;
Man sollte die Antenne aus dem Gehäuse schauen lassen oder möglichst weit weg von jeder Elektronik positionieren. Außerdem bitte das Ende der Drahtantenne mit einem Klecks Heißkleber oder ähnlichem isolieren. Eine Berührung vor allem mit dem Innenleben des Raspberry Pi muss vermieden werden!&lt;br /&gt;
&lt;br /&gt;
Bitte auf die richtige Lage (Bilder) beim Zusammenbau und auf Lötzinnbrücken achten. Das sind häufige Fehler beim Zusammenbau! &lt;br /&gt;
&lt;br /&gt;
Beide Platinen können zusammengebaut oder auch nur das UART Modul getrennt verwendet werden. &lt;br /&gt;
[[Datei:HM-MOD-UART-Unten.jpg|thumb|left|200px|Montage des Moduls HM-MOD-UART unten]]&lt;br /&gt;
[[Datei:HM-MOD-UART-Oben.jpg|thumb|right|200px|Montage des Moduls HM-MOD-UART oben]]&lt;br /&gt;
Die originale Montage in der Anleitung von eq3 sieht den Zusammenbau PCB Modul unten und UART Modul oben vor(rechts). Damit passen die kleineren Pi Gehäuse nicht, das Gesamtmodul klemmt am Deckel.&lt;br /&gt;
&lt;br /&gt;
Man kann ohne weiteres das UART Modul unter dem PCB Modul montieren (links), damit wird die Gesamthöhe geringer und es passt problemlos in jedes Gehäuse. Es kann sein das jetzt aber Kühlkörper oder ähnliches seitens der Pi Platine stören.&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verwendung mit Raspberry Pi ==&lt;br /&gt;
&lt;br /&gt;
=== Originaler Einsatzzweck im Raspberry ===&lt;br /&gt;
Die notwendige Konfiguration der Schnittstelle ist hier beschrieben: [[Raspberry_Pi#Verwendung_UART_f.C3.BCr_Zusatzmodule|Verwendung UART für Zusatzmodule]].&lt;br /&gt;
* Der Einsatz in FHEM für CUL_HM erfolgt mit dem Modul [[HMUARTLGW]] &lt;br /&gt;
&lt;br /&gt;
=== Remoteanbindung - Pi + RPI Modul = LAN Modul ===&lt;br /&gt;
&lt;br /&gt;
Eine andere Methode der Anbindung des Modul besteht darin, einen RPi (auf dem aber nicht FHEM läuft bzw. auf dieses Modul zugreift) und dem dort vorhandenen LAN-Anschluss zu verwenden. Dieser RPi greift mit einem seriellen Anschluss auf das Modul zu und der entfernte FHEM-Server gelangt über das Netzwerk an das HM-Modul. Die Installation gelingt wie folgt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Installation auf Remote Instanz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install socat&lt;br /&gt;
&lt;br /&gt;
Auf diesem Pi, also wo das Modul steckt:&lt;br /&gt;
&lt;br /&gt;
 sudo socat TCP4-LISTEN:2000,fork,reuseaddr /dev/ttyAMA0,raw,echo=0,b115200&lt;br /&gt;
&lt;br /&gt;
Auf einen Debian Jessie mit systemd legt man am besten folgende Datei an:&lt;br /&gt;
/etc/systemd/system/hmlangw.service&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 Type=forking&lt;br /&gt;
   &lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=/usr/bin/socat TCP4-LISTEN:2000,fork,reuseaddr /dev/ttyAMA0,raw,echo=0,b115200&lt;br /&gt;
 User=root&lt;br /&gt;
 Restart=always&lt;br /&gt;
 RestartSec=10&lt;br /&gt;
&lt;br /&gt;
Dann kann mit &lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable hmlangw&lt;br /&gt;
&lt;br /&gt;
der Service zum Autostart konfiguriert werden.&lt;br /&gt;
Auf dem Modul wo FHEM läuft und das Modul Remote angeschlossen werden soll:&lt;br /&gt;
&lt;br /&gt;
 define RM_HmUART_EG HMUARTLGW uart://&amp;lt;IP-Adresse&amp;gt;:2000&lt;br /&gt;
 attr RM_HmUART hmId xxxxxx&lt;br /&gt;
&lt;br /&gt;
Es handelt sich nicht um sharing der seriellen Schnittstelle und damit &amp;quot;verfügbar machen&amp;quot; des Moduls &amp;quot;all over the World&amp;quot;! Es handelt sich um ein exklusives &amp;quot;Kabel&amp;quot; von einem Server im Netzwerk zum Pi und über dessen lokaler Schnittstelle zum RPI Modul.&lt;br /&gt;
&lt;br /&gt;
* FHEM Server: FHEM -&amp;gt; uart://IP:Port -&amp;gt; Netzwerk -&amp;gt; socat listener -&amp;gt; socat serial -&amp;gt; RPI Modul auf Remote Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Verwendung mit anderer Hardware ==&lt;br /&gt;
=== Anbindung mit USB-Adapter ===&lt;br /&gt;
{{Randnotiz|RNTyp=r|RNText=Bitte beachten: Es sind immer wieder Exemplare mit [[CP2102]] im Umlauf, die mehr als 3.3V Spannung liefern! Vor dem Verbinden mit dem HM-Modul sollte daher geprüft werden, ob der interne Spannungswandler ordnungsgemäß funktioniert und wirklich nur 3.3V liefert. Bei den blauen Micro-Modulen kann man den Fehler nach dieser Anleitung beheben: [https://www.silabs.com/community/interface/forum.topic.html/cp2102_3_3v_outputi-EaVr Beitrag von PBudmark vom 08.07.2017].}}&lt;br /&gt;
[[Datei:PL2102 Modul.png|200px|thumb|right|Mod zur Herstellung der korrekten Spannung]]&lt;br /&gt;
Das UART-Modul kann ebenfalls mit einem USB-Adapter an ein USB-fähiges Gerät angeschlossen werden. Allerdings ist hier wieder auf den Spannnungspegel zu achten, unbedingt einen USB-Adapter mit 3,3 Volt Pegel nehmen! Grundsätzlich bewährt haben sich z.B. Modelle mit einem [[CP2102]], der auch ausreichend Stromreserven zum Betrieb des Moduls bietet. Dabei ist die serielle Schnittstelle wie üblich zu kreuzen, also&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschaltung&#039;&#039;&#039;&lt;br /&gt;
  3.3V &amp;lt;-&amp;gt; 3.3V&lt;br /&gt;
  GND  &amp;lt;-&amp;gt; GND&lt;br /&gt;
  Rx   &amp;lt;-&amp;gt; Tx&lt;br /&gt;
  Tx   &amp;lt;-&amp;gt; Rx&lt;br /&gt;
&lt;br /&gt;
=== Anbindung mit ESP8266 ===&lt;br /&gt;
Es kann ein beliebiger ESP8266 verwendet werden. Beim ESP8266 gibt es zwei verschiedene Firmware-Möglichkeiten: ESPLink oder ESPEasy. Ebenso sind zwei verschiedene Schnittstellen möglich: Entweder direkt die serielle Schnittstelle (da die ESP auf 3,3V laufen, sind keine Spannungsteiler erforderlich, Verschaltung siehe oben) oder aber durch eine &#039;&#039;swapped&#039;&#039; Schnittstelle, bei der auf die digitalen Pins D7/D8 zurückgegriffen wird (siehe unten). Die letztere Verschaltung erfordert aber eine entsprechende Implementierung der Schnittstelle in der Firmware selbst (&#039;&#039;serieller Server&#039;&#039; genannt), die beispielsweise bei ESPEasy nicht gegeben ist oder selbst kompiliert werden muss.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschaltung bei einem WeMos D1 mini&#039;&#039;&#039;&lt;br /&gt;
  (UART) &amp;lt;-&amp;gt; (Wemos)&lt;br /&gt;
   3.3V  &amp;lt;-&amp;gt; 3.3V&lt;br /&gt;
   GND   &amp;lt;-&amp;gt; GND&lt;br /&gt;
   Rx    &amp;lt;-&amp;gt; D8&lt;br /&gt;
   Tx    &amp;lt;-&amp;gt; D7&lt;br /&gt;
&lt;br /&gt;
Es gibt eine ausführliche Erläuterung für die Software unter [https://forum.fhem.de/index.php?action=dlattach;topic=56606.0;attach=68630].&lt;br /&gt;
&lt;br /&gt;
Verwendet man ESP-Link, so muss neben der WLAN Konfiguration nur das Pin Assignment konfiguriert werden. Alle Pins auf disabled und UART pins auf swapped stellen.&lt;br /&gt;
 &lt;br /&gt;
Im Forum gibt es mehr Informationen zu diesen Adaptern, zum Beispiel {{Link2Forum|Topic=62651|LinkText=&amp;quot;(amunra)-Platine für HM-MOD-UART-RPI...&amp;quot;}} oder {{Link2Forum|Topic=79559|LinkText=&amp;quot;3. Sammelbestellung - Homematic WLAN Gateway&amp;quot;}}.&lt;br /&gt;
&lt;br /&gt;
=== Betrieb mit einem LAN-TTL-Wandler ===&lt;br /&gt;
[[Datei:Hm-uart und usr-tcp232-T2.png|thumb|right|400px|Anschluß an die gängige Variante USR-TCP232-T2]]Auf gängigen Marktplätzen sind für etwas weniger als 10 Euro Module erhältlich, die einen seriellen Anschluss Im LAN bereitstellen können.&lt;br /&gt;
&lt;br /&gt;
Die Module melden sich per DHCP im Netzwerk an, die Konfiguration und firmware updates können über ein Web-Interface oder ein Windows-Tool erfolgen. &lt;br /&gt;
&lt;br /&gt;
=== Betrieb mit MapleCUx ===&lt;br /&gt;
&lt;br /&gt;
Auch die seriellen Schnittstellen, die ein MapleCUL oder [[MapleCUN]] bereitstellen, können zum Anschluß des Moduls verwendet werden. Der MapleCUN stellt beide seriellen Schnittstellen je unter einem eigenen Port ins Netz.&lt;br /&gt;
&lt;br /&gt;
== Definition in FHEM ==&lt;br /&gt;
&lt;br /&gt;
Je nach physischem Anschluss erfolgt eine Anbindung in FHEM in unterschiedlicher Weise. Wurde ein USB-Adapter auf dem FHEM-Gerät selbst verwendet, definiert man das Gerät in FHEM wie folgt&lt;br /&gt;
  define USB_HmUART HMUARTLGW /dev/ttyUSB0&lt;br /&gt;
Wurde dagegen das Gerät über WLAN oder LAN durch das UART-Modul angebunden, erfolgt die Einbindung in FHEM durch&lt;br /&gt;
  define WLAN_HmUART HMUARTLGW uart://&amp;lt;IP-Adresse&amp;gt;:&amp;lt;Portnummer&amp;gt;&lt;br /&gt;
Portnummern:&lt;br /&gt;
*socat 2000 &lt;br /&gt;
*esp-link 23 &lt;br /&gt;
*MapleCUN 2324 bzw. 2325 &lt;br /&gt;
*USR-TCP232-T2 entspr. Konfiguration.&lt;br /&gt;
&lt;br /&gt;
=== Logbeispiel ===&lt;br /&gt;
Typischerweise meldet sich das Modul beim Start so:&lt;br /&gt;
   2016.10.06 17:11:16 3: Opening myHmUART device /dev/ttyAMA0&lt;br /&gt;
   2016.10.06 17:11:16 3: Setting myHmUART serial parameters to 115200,8,N,1&lt;br /&gt;
   2016.10.06 17:11:16 3: myHmUART device opened&lt;br /&gt;
   2016.10.06 17:11:17 3: HMUARTLGW myHmUART currently running Co_CPU_BL&lt;br /&gt;
   2016.10.06 17:11:17 3: HMUARTLGW myHmUART currently running Co_CPU_App&lt;br /&gt;
&lt;br /&gt;
=== Verwendung AES in FHEM===&lt;br /&gt;
Das Modul beherrscht AES.&lt;br /&gt;
Für weitere Informationen gibt es einen separaten Wiki Eintrag [[AES Encryption]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firmware Update des UART-Moduls mit FHEM ===&lt;br /&gt;
&lt;br /&gt;
Die Module werden mit einer Firmware 1.2.1 ausgeliefert. Dies Firmware ist nicht für einen stabilen Betrieb geeignet,&lt;br /&gt;
die Firmware 1.4.1 ist die minimal lauffähige Version.&lt;br /&gt;
&lt;br /&gt;
Die ersten zwei Schritte werden in der Kommandozeile auf Betriebssystemebene ausgeführt, also im &amp;quot;Terminal&amp;quot;. Punkt 3 ist bis auf die Pfadeingabe in der FHEM Web Oberfläche auswählbar.&lt;br /&gt;
&lt;br /&gt;
1. Firmware herunterladen&lt;br /&gt;
 # Version 1.4.1&lt;br /&gt;
 wget https://raw.githubusercontent.com/eq-3/occu/28045df83480122f90ab92f7c6e625f9bf3b61aa/firmware/HM-MOD-UART/coprocessor_update.eq3&lt;br /&gt;
 # Alternativ die aktuellste&lt;br /&gt;
 wget https://raw.githubusercontent.com/eq-3/occu/HEAD/firmware/HM-MOD-UART/coprocessor_update.eq3&lt;br /&gt;
&lt;br /&gt;
2. Kopieren an einen Ort wo FHEM Zugriff hat, am Besten nach /opt/fhem/FHEM/firmware&lt;br /&gt;
 sudo cp coprocessor_update.eq3 /opt/fhem/FHEM/firmware/&lt;br /&gt;
&lt;br /&gt;
3. Flashen der neuen Firmware aus FHEM&lt;br /&gt;
 set myHmUART updateCoPro /opt/fhem/FHEM/firmware/coprocessor_update.eq3&lt;br /&gt;
&lt;br /&gt;
=== Firmware Update des UART-Moduls ohne FHEM ===&lt;br /&gt;
&lt;br /&gt;
Sollte das Update über FHEM nicht funktionieren oder FHEM nicht verfügbar sein, kann die Firmware auch wie folgt eingespielt werden (Quelle: [http://heinz-otto.blogspot.com/2016/07/raspberry-pi-homematic-modul.html Ottos Technik Blog])&lt;br /&gt;
&lt;br /&gt;
  sudo su&lt;br /&gt;
  apt-get update &amp;amp;&amp;amp; apt-get -y install libusb-1.0-0-dev build-essential git&lt;br /&gt;
  systemctl stop fhem&lt;br /&gt;
  git clone git://git.zerfleddert.de/hmcfgusb&lt;br /&gt;
  cd hmcfgusb/&lt;br /&gt;
  make&lt;br /&gt;
  # Firmware runterladen&lt;br /&gt;
  wget https://raw.githubusercontent.com/eq-3/occu/ee68faf77e42ed5e3641790b43a710a3301cea7e/firmware/HM-MOD-UART/coprocessor_update.eq3&lt;br /&gt;
  # eigentliches flashen:&lt;br /&gt;
  ./flash-hmmoduart -U /dev/ttyAMA0 coprocessor_update.eq3&lt;br /&gt;
&lt;br /&gt;
=== Bekannte Probleme ===&lt;br /&gt;
Sollten beim Flashen der Firmware hartnäckige Probleme auftreten (kein Erfolg aber auch gar keine Fehlermeldungen) ist das Modul vom Strom zu trennen, ein Neustart des Pi reicht nicht!&lt;br /&gt;
&lt;br /&gt;
Ein {{Link2Forum|Topic=41203|Message=340320|LinkText=Beitrag}} aus dem genannten Forenthread: &#039;&#039;Das Ding ist anscheinend wirklich einfach das Funkmodul aus der CCU2 (wird zumindest in der eQ-3 SW als CCU2 angesprochen) und spricht ein für FHEM vollkommen neues Protokoll.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* {{Link2Forum|Topic=41203|LinkText=Forenthread}} mit Nachfrage zur Unterstützung dieses Geräts in FHEM&lt;br /&gt;
* {{Link2Forum|Topic=54511|LinkText=Modul für HomeMatic UART-Modul (RPi) und HomeMatic LAN Gateway}}&lt;br /&gt;
* [http://www.elv.de/homematic-funkmodul-fuer-raspberry-pi-bausatz.html Produktseite] bei ELV&lt;br /&gt;
* {{DocLink|elv|/Assets/Produkte/10/1040/104029/Downloads/104029_lan_gateway_um.pdf Bedienungsanleitung}}&lt;br /&gt;
* {{Link2Forum|Topic=56606|LinkText=Forenthread}} Hardware Thread mit vielen Varianten der Anbindung. In Post #26 gibt es die Detailbeschreibung in der angehängten PDF.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;br /&gt;
[[Kategorie:868MHz]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=25267</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=25267"/>
		<updated>2018-02-12T14:16:20Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Formatierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR2032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen (zwei Platinen zur Erfassung der Fensterstellung) eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
In der Liste sind die Magnete und Reed-Kontakte nicht aufgeführt.&lt;br /&gt;
Folgende können verwendet werden:&lt;br /&gt;
* Reed-Kontakt 2x14mm [https://de.aliexpress.com/item/10pcs-N-O-Reed-switch-Magnetic-Switch-2-14mm-Normally-Open-Magnetic-Induction-switch/32803902404.html Aliexpress]&lt;br /&gt;
* Neodym Magnet 2x2mm [https://de.aliexpress.com/item/100pcs-2x2mm-magnet-2x2-Super-strong-neo-neodymium-magnet-N35-D2x2-D2x2mm-permanent-magnet-D2-2mm/32693530575.html Aliexpress]&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
Vor dem Verlöten der Bauteile sollte kontrolliert werden, ob die Platinen in das Gehäuse passen. Falls nicht, sollte entweder das Gehäuse oder die Platine passend gefeilt werden.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 72 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA (Over The Air) Bootloaders ===&lt;br /&gt;
{{Randnotiz|RNText=Firmware für &#039;ID=0030&#039;}}&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem belibigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu Gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Batterien und StepUp&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht.&lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
Seit 01/2018 gibt es die Firmware auch für das sog. &#039;&#039;lazy config&#039;&#039;. Hierbei können die Register einfach z.B. durch das nächste Öffnen des Fensters ausgelesen werden, ohne dass die Config-Taste gedrückt werden muss.&lt;br /&gt;
Das Update auf &#039;&#039;lazy config&#039;&#039; geht auf zwei Arten:&lt;br /&gt;
&lt;br /&gt;
Keine Änderung der &#039;ID=0030&#039; und Durchführen eines [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware] bzw. eines FHEM Updates oder &lt;br /&gt;
{{Randnotiz|RNText=Firmware für &#039;ID=00C3&#039;}}&lt;br /&gt;
Aktualisierung der Firmware auf &#039;ID=00C3&#039;. Die Dateien können hier: [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94538 makeota.html], [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94542 Firmware (hex)] bzw. [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware (eq3)] heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
Verwendet man den Sensor in Kombination mit originaler eq3 Hardware, sollte man die zweite Möglichkeit wählen.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
Den Magneten in den Drehring einbauen und diesen in das Gehäuse einbauen. Die Reedkontakte&lt;br /&gt;
Platzieren und mit einem Ohmmeter Messen, ob die Reedkontakte bei der entsprechenden Position&lt;br /&gt;
der Magnete schalten. Falls nicht, ggf. die Reedkontakte austauschen (Streuung!) bzw. einen stärkeren Magneten verwenden. Danach mittels Silberdraht bzw. Kupferlackdraht (an den zu&lt;br /&gt;
verlötenden Enden den Lack mittels eines Cuttermessers entfernen) die Reedkontakte gemäß&lt;br /&gt;
Bild verlöten und die Enden (GND, A0 bzw. A1) durch die vorgesehenen Öffnungen im Gehäuse führen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verlötete Reedkontakte:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic15.jpg]]&lt;br /&gt;
&lt;br /&gt;
Danach die Antenne in die dafür vorgesehene Bohrung einführen und die Platine platzieren. Darauf achten, dass die Anschlüsse der Reedkontakte durch die dafür vorgesehenen Kontakte auf der Platine geführt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Einführen der Antenne:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic17.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Platzierte Platine:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic16.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nach Verlöten der drei Kontaktpunkte ist der Fensterdrehgriff fertig aufgebaut.&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am Ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles Mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=25266</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=25266"/>
		<updated>2018-02-12T14:12:23Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Firmware Update für lazy config&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR2032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen (zwei Platinen zur Erfassung der Fensterstellung) eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
In der Liste sind die Magnete und Reed-Kontakte nicht aufgeführt.&lt;br /&gt;
Folgende können verwendet werden:&lt;br /&gt;
* Reed-Kontakt 2x14mm [https://de.aliexpress.com/item/10pcs-N-O-Reed-switch-Magnetic-Switch-2-14mm-Normally-Open-Magnetic-Induction-switch/32803902404.html Aliexpress]&lt;br /&gt;
* Neodym Magnet 2x2mm [https://de.aliexpress.com/item/100pcs-2x2mm-magnet-2x2-Super-strong-neo-neodymium-magnet-N35-D2x2-D2x2mm-permanent-magnet-D2-2mm/32693530575.html Aliexpress]&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
Vor dem Verlöten der Bauteile sollte kontrolliert werden, ob die Platinen in das Gehäuse passen. Falls nicht, sollte entweder das Gehäuse oder die Platine passend gefeilt werden.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 72 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA (Over The Air) Bootloaders ===&lt;br /&gt;
{{Randnotiz|RNText=Firmware für &#039;ID=0030&#039;}}&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem belibigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu Gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Batterien und StepUp&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht.&lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNText=Firmware für &#039;ID=00C3&#039;}}&lt;br /&gt;
Seit 01/2018 gibt es die Firmware auch für das sog. &#039;&#039;lazy config&#039;&#039;. Hierbei können die Register einfach z.B. durch das nächste Öffnen des Fensters ausgelesen werden, ohne dass die Config-Taste gedrückt werden muss.&lt;br /&gt;
Das Update auf &#039;&#039;lazy config&#039;&#039; geht auf zwei Arten: Keine Änderung der &#039;ID=0030&#039; und Durchführen [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware] bzw. eines FHEM Updates oder Aktualisierung der Firmware auf &#039;ID=00C3&#039;. Die Dateien können hier [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94538 makeota.html], [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94542 Firmware (hex)] bzw. [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware (eq3)] heruntergeladen werden. Verwendet man den Sensor in Kombination mit originaler eq3 Hardware, sollte man die zweite Möglichkeit wählen.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
Den Magneten in den Drehring einbauen und diesen in das Gehäuse einbauen. Die Reedkontakte&lt;br /&gt;
Platzieren und mit einem Ohmmeter Messen, ob die Reedkontakte bei der entsprechenden Position&lt;br /&gt;
der Magnete schalten. Falls nicht, ggf. die Reedkontakte austauschen (Streuung!) bzw. einen stärkeren Magneten verwenden. Danach mittels Silberdraht bzw. Kupferlackdraht (an den zu&lt;br /&gt;
verlötenden Enden den Lack mittels eines Cuttermessers entfernen) die Reedkontakte gemäß&lt;br /&gt;
Bild verlöten und die Enden (GND, A0 bzw. A1) durch die vorgesehenen Öffnungen im Gehäuse führen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verlötete Reedkontakte:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic15.jpg]]&lt;br /&gt;
&lt;br /&gt;
Danach die Antenne in die dafür vorgesehene Bohrung einführen und die Platine platzieren. Darauf achten, dass die Anschlüsse der Reedkontakte durch die dafür vorgesehenen Kontakte auf der Platine geführt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Einführen der Antenne:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic17.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Platzierte Platine:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic16.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nach Verlöten der drei Kontaktpunkte ist der Fensterdrehgriff fertig aufgebaut.&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am Ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles Mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=25183</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=25183"/>
		<updated>2018-02-09T14:39:43Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Anpassung auf die verschiedenen HM-IDs.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR2032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen (zwei Platinen zur Erfassung der Fensterstellung) eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
In der Liste sind die Magnete und Reed-Kontakte nicht aufgeführt.&lt;br /&gt;
Folgende können verwendet werden:&lt;br /&gt;
* Reed-Kontakt 2x14mm [https://de.aliexpress.com/item/10pcs-N-O-Reed-switch-Magnetic-Switch-2-14mm-Normally-Open-Magnetic-Induction-switch/32803902404.html Aliexpress]&lt;br /&gt;
* Neodym Magnet 2x2mm [https://de.aliexpress.com/item/100pcs-2x2mm-magnet-2x2-Super-strong-neo-neodymium-magnet-N35-D2x2-D2x2mm-permanent-magnet-D2-2mm/32693530575.html Aliexpress]&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
Vor dem Verlöten der Bauteile sollte kontrolliert werden, ob die Platinen in das Gehäuse passen. Falls nicht, sollte entweder das Gehäuse oder die Platine passend gefeilt werden.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 72 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA (Over The Air) Bootloaders ===&lt;br /&gt;
{{Randnotiz|RNText=Firmware für &#039;ID=0030&#039;}}&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem belibigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu Gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Batterien und StepUp&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht.&lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNText=Firmware für &#039;ID=00C3&#039;}}&lt;br /&gt;
Seit 01/2018 gibt es die Firmware auch für das sog. &#039;&#039;lazy config&#039;&#039;. Hierbei können die Register einfach z.B. durch das nächste Öffnen des Fensters ausgelesen werden, ohne dass die Config-Taste gedrückt werden muss.&lt;br /&gt;
Das Update auf &#039;&#039;lazy config&#039;&#039; geht auf zwei Arten: Belassen der Firmware für &#039;ID=0030&#039; und Durchführen eines FHEM Updates oder Aktualisierung der Firmware auf &#039;ID=00C3&#039;. Die Dateien können hier [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94538 makeota.html], [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94542 Firmware (hex)] bzw. [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware (eq3)] heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
Den Magneten in den Drehring einbauen und diesen in das Gehäuse einbauen. Die Reedkontakte&lt;br /&gt;
Platzieren und mit einem Ohmmeter Messen, ob die Reedkontakte bei der entsprechenden Position&lt;br /&gt;
der Magnete schalten. Falls nicht, ggf. die Reedkontakte austauschen (Streuung!) bzw. einen stärkeren Magneten verwenden. Danach mittels Silberdraht bzw. Kupferlackdraht (an den zu&lt;br /&gt;
verlötenden Enden den Lack mittels eines Cuttermessers entfernen) die Reedkontakte gemäß&lt;br /&gt;
Bild verlöten und die Enden (GND, A0 bzw. A1) durch die vorgesehenen Öffnungen im Gehäuse führen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verlötete Reedkontakte:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic15.jpg]]&lt;br /&gt;
&lt;br /&gt;
Danach die Antenne in die dafür vorgesehene Bohrung einführen und die Platine platzieren. Darauf achten, dass die Anschlüsse der Reedkontakte durch die dafür vorgesehenen Kontakte auf der Platine geführt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Einführen der Antenne:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic17.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Platzierte Platine:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic16.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nach Verlöten der drei Kontaktpunkte ist der Fensterdrehgriff fertig aufgebaut.&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am Ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles Mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=25164</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=25164"/>
		<updated>2018-02-08T21:09:09Z</updated>

		<summary type="html">&lt;p&gt;PeMue: makeota.html aus den Links gelöscht, da in github eine alte Version liegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR2032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen (zwei Platinen zur Erfassung der Fensterstellung) eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
In der Liste sind die Magnete und Reed-Kontakte nicht aufgeführt.&lt;br /&gt;
Folgende können verwendet werden:&lt;br /&gt;
* Reed-Kontakt 2x14mm [https://de.aliexpress.com/item/10pcs-N-O-Reed-switch-Magnetic-Switch-2-14mm-Normally-Open-Magnetic-Induction-switch/32803902404.html Aliexpress]&lt;br /&gt;
* Neodym Magnet 2x2mm [https://de.aliexpress.com/item/100pcs-2x2mm-magnet-2x2-Super-strong-neo-neodymium-magnet-N35-D2x2-D2x2mm-permanent-magnet-D2-2mm/32693530575.html Aliexpress]&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
Vor dem Verlöten der Bauteile sollte kontrolliert werden, ob die Platinen in das Gehäuse passen. Falls nicht, sollte entweder das Gehäuse oder die Platine passend gefeilt werden.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 72 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA (Over The Air) Bootloaders ===&lt;br /&gt;
&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem belibigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu Gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Batterien und StepUp&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht.&lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNText=Firmware für &#039;&#039;lazy config&#039;&#039;}}&lt;br /&gt;
Seit 01/2018 gibt es die Firmware auch für das sog. &#039;&#039;lazy config&#039;&#039;. Hierbei können die Register einfach z.B. durch das nächste Öffnen des Fensters ausgelesen werden, ohne dass die Config-Taste gedrückt werden muss.&lt;br /&gt;
Die Dateien können hier [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94538 makeota.html], [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94542 Firmware (hex)] bzw. [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware (eq3)] heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
Den Magneten in den Drehring einbauen und diesen in das Gehäuse einbauen. Die Reedkontakte&lt;br /&gt;
Platzieren und mit einem Ohmmeter Messen, ob die Reedkontakte bei der entsprechenden Position&lt;br /&gt;
der Magnete schalten. Falls nicht, ggf. die Reedkontakte austauschen (Streuung!) bzw. einen stärkeren Magneten verwenden. Danach mittels Silberdraht bzw. Kupferlackdraht (an den zu&lt;br /&gt;
verlötenden Enden den Lack mittels eines Cuttermessers entfernen) die Reedkontakte gemäß&lt;br /&gt;
Bild verlöten und die Enden (GND, A0 bzw. A1) durch die vorgesehenen Öffnungen im Gehäuse führen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verlötete Reedkontakte:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic15.jpg]]&lt;br /&gt;
&lt;br /&gt;
Danach die Antenne in die dafür vorgesehene Bohrung einführen und die Platine platzieren. Darauf achten, dass die Anschlüsse der Reedkontakte durch die dafür vorgesehenen Kontakte auf der Platine geführt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Einführen der Antenne:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic17.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Platzierte Platine:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic16.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nach Verlöten der drei Kontaktpunkte ist der Fensterdrehgriff fertig aufgebaut.&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am Ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles Mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=25163</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=25163"/>
		<updated>2018-02-08T21:00:48Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Randnotiz eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR2032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen (zwei Platinen zur Erfassung der Fensterstellung) eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
In der Liste sind die Magnete und Reed-Kontakte nicht aufgeführt.&lt;br /&gt;
Folgende können verwendet werden:&lt;br /&gt;
* Reed-Kontakt 2x14mm [https://de.aliexpress.com/item/10pcs-N-O-Reed-switch-Magnetic-Switch-2-14mm-Normally-Open-Magnetic-Induction-switch/32803902404.html Aliexpress]&lt;br /&gt;
* Neodym Magnet 2x2mm [https://de.aliexpress.com/item/100pcs-2x2mm-magnet-2x2-Super-strong-neo-neodymium-magnet-N35-D2x2-D2x2mm-permanent-magnet-D2-2mm/32693530575.html Aliexpress]&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
Vor dem Verlöten der Bauteile sollte kontrolliert werden, ob die Platinen in das Gehäuse passen. Falls nicht, sollte entweder das Gehäuse oder die Platine passend gefeilt werden.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 72 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA (Over The Air) Bootloaders ===&lt;br /&gt;
&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem belibigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu Gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Batterien und StepUp&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht.&lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNText=Firmware für &#039;&#039;lazy config&#039;&#039;}}&lt;br /&gt;
Seit 01/2018 gibt es die Firmware auch für das sog. &#039;&#039;lazy config&#039;&#039;. Hierbei können die Register einfach z.B. durch das nächste Öffnen des Fensters ausgelesen werden, ohne dass die Config-Taste gedrückt werden muss.&lt;br /&gt;
Die Dateien können hier [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94538 makeota.html], [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94542 Firmware (hex)] bzw. [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware (eq3)] heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
Den Magneten in den Drehring einbauen und diesen in das Gehäuse einbauen. Die Reedkontakte&lt;br /&gt;
Platzieren und mit einem Ohmmeter Messen, ob die Reedkontakte bei der entsprechenden Position&lt;br /&gt;
der Magnete schalten. Falls nicht, ggf. die Reedkontakte austauschen (Streuung!) bzw. einen stärkeren Magneten verwenden. Danach mittels Silberdraht bzw. Kupferlackdraht (an den zu&lt;br /&gt;
verlötenden Enden den Lack mittels eines Cuttermessers entfernen) die Reedkontakte gemäß&lt;br /&gt;
Bild verlöten und die Enden (GND, A0 bzw. A1) durch die vorgesehenen Öffnungen im Gehäuse führen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verlötete Reedkontakte:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic15.jpg]]&lt;br /&gt;
&lt;br /&gt;
Danach die Antenne in die dafür vorgesehene Bohrung einführen und die Platine platzieren. Darauf achten, dass die Anschlüsse der Reedkontakte durch die dafür vorgesehenen Kontakte auf der Platine geführt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Einführen der Antenne:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic17.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Platzierte Platine:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic16.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nach Verlöten der drei Kontaktpunkte ist der Fensterdrehgriff fertig aufgebaut.&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am Ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=25162</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=25162"/>
		<updated>2018-02-08T20:52:30Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Korrektur&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR2032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen (zwei Platinen zur Erfassung der Fensterstellung) eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
In der Liste sind die Magnete und Reed-Kontakte nicht aufgeführt.&lt;br /&gt;
Folgende können verwendet werden:&lt;br /&gt;
* Reed-Kontakt 2x14mm [https://de.aliexpress.com/item/10pcs-N-O-Reed-switch-Magnetic-Switch-2-14mm-Normally-Open-Magnetic-Induction-switch/32803902404.html Aliexpress]&lt;br /&gt;
* Neodym Magnet 2x2mm [https://de.aliexpress.com/item/100pcs-2x2mm-magnet-2x2-Super-strong-neo-neodymium-magnet-N35-D2x2-D2x2mm-permanent-magnet-D2-2mm/32693530575.html Aliexpress]&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
Vor dem Verlöten der Bauteile sollte kontrolliert werden, ob die Platinen in das Gehäuse passen. Falls nicht, sollte entweder das Gehäuse oder die Platine passend gefeilt werden.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 72 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA (Over The Air) Bootloaders ===&lt;br /&gt;
&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem belibigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu Gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Batterien und StepUp&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht.&lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
Seit 01/2018 gibt es die Firmware auch für das sog. &#039;&#039;lazy config&#039;&#039;. Hierbei können die Register einfach z.B. durch das nächste Öffnen des Fensters ausgelesen werden, ohne dass die Config-Taste gedrückt werden muss.&lt;br /&gt;
Die Dateien können hier [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94538 makeota.html], [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94542 Firmware (hex)] bzw. [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware (eq3)] heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
Den Magneten in den Drehring einbauen und diesen in das Gehäuse einbauen. Die Reedkontakte&lt;br /&gt;
Platzieren und mit einem Ohmmeter Messen, ob die Reedkontakte bei der entsprechenden Position&lt;br /&gt;
der Magnete schalten. Falls nicht, ggf. die Reedkontakte austauschen (Streuung!) bzw. einen stärkeren Magneten verwenden. Danach mittels Silberdraht bzw. Kupferlackdraht (an den zu&lt;br /&gt;
verlötenden Enden den Lack mittels eines Cuttermessers entfernen) die Reedkontakte gemäß&lt;br /&gt;
Bild verlöten und die Enden (GND, A0 bzw. A1) durch die vorgesehenen Öffnungen im Gehäuse führen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verlötete Reedkontakte:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic15.jpg]]&lt;br /&gt;
&lt;br /&gt;
Danach die Antenne in die dafür vorgesehene Bohrung einführen und die Platine platzieren. Darauf achten, dass die Anschlüsse der Reedkontakte durch die dafür vorgesehenen Kontakte auf der Platine geführt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Einführen der Antenne:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic17.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Platzierte Platine:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic16.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nach Verlöten der drei Kontaktpunkte ist der Fensterdrehgriff fertig aufgebaut.&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am Ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=25161</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=25161"/>
		<updated>2018-02-08T20:49:34Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Firmware für lazy config aktualisiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR2032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen (zwei Platinen zur Erfassung der Fensterstellung) eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
In der Liste sind die Magnete und Reed-Kontakte nicht aufgeführt.&lt;br /&gt;
Folgende können verwendet werden:&lt;br /&gt;
* Reed-Kontakt 2x14mm [https://de.aliexpress.com/item/10pcs-N-O-Reed-switch-Magnetic-Switch-2-14mm-Normally-Open-Magnetic-Induction-switch/32803902404.html Aliexpress]&lt;br /&gt;
* Neodym Magnet 2x2mm [https://de.aliexpress.com/item/100pcs-2x2mm-magnet-2x2-Super-strong-neo-neodymium-magnet-N35-D2x2-D2x2mm-permanent-magnet-D2-2mm/32693530575.html Aliexpress]&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
Vor dem Verlöten der Bauteile sollte kontrolliert werden, ob die Platinen in das Gehäuse passen. Falls nicht, sollte entweder das Gehäuse oder die Platine passend gefeilt werden.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 72 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA (Over The Air) Bootloaders ===&lt;br /&gt;
&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem belibigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu Gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Batterien und StepUp&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht.&lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
Seit 01/2018 gibt es die Firmware auch für das sog. &#039;&#039;lazy config&#039;&#039;. Hierbei können Register mit Hilfe des nächsten z.B. Öffnen des Fensters ausgelesen werden, ohne dass die Config-Taste gedrückt werden muss.&lt;br /&gt;
Die Dateien sind hier: [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94538 makeota.html], [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94542 Firmware (hex)] bzw. [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware (eq3)].&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
Den Magneten in den Drehring einbauen und diesen in das Gehäuse einbauen. Die Reedkontakte&lt;br /&gt;
Platzieren und mit einem Ohmmeter Messen, ob die Reedkontakte bei der entsprechenden Position&lt;br /&gt;
der Magnete schalten. Falls nicht, ggf. die Reedkontakte austauschen (Streuung!) bzw. einen stärkeren Magneten verwenden. Danach mittels Silberdraht bzw. Kupferlackdraht (an den zu&lt;br /&gt;
verlötenden Enden den Lack mittels eines Cuttermessers entfernen) die Reedkontakte gemäß&lt;br /&gt;
Bild verlöten und die Enden (GND, A0 bzw. A1) durch die vorgesehenen Öffnungen im Gehäuse führen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verlötete Reedkontakte:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic15.jpg]]&lt;br /&gt;
&lt;br /&gt;
Danach die Antenne in die dafür vorgesehene Bohrung einführen und die Platine platzieren. Darauf achten, dass die Anschlüsse der Reedkontakte durch die dafür vorgesehenen Kontakte auf der Platine geführt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Einführen der Antenne:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic17.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Platzierte Platine:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic16.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nach Verlöten der drei Kontaktpunkte ist der Fensterdrehgriff fertig aufgebaut.&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am Ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=MapleCUx_und_1-wire&amp;diff=24628</id>
		<title>MapleCUx und 1-wire</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=MapleCUx_und_1-wire&amp;diff=24628"/>
		<updated>2018-01-20T10:30:02Z</updated>

		<summary type="html">&lt;p&gt;PeMue: korrigierten Schaltplan verlinkt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Der [https://wiki.fhem.de/wiki/MapleCUN mapleCUx] (mapleCUL für USB- bzw. mapleCUN für Netzwerkbetrieb) bietet die Möglichkeit, ähnlich wie der CUNO, über einen 1-wire Busmaster (DS2482) 1-wire Sensoren oder Aktoren zu betreiben.&lt;br /&gt;
&lt;br /&gt;
Hierzu muss statt dem Radio CC2 eine entsprechende 1-wire Schaltung vorgesehen sein.&lt;br /&gt;
&lt;br /&gt;
Wie beim CUNO gibt es hierfür zwei Möglichkeiten:&lt;br /&gt;
* In der Firmware des mapleCUx ist eine Möglichkeit enthalten, die 1-wire Temperatursensoren DS18S20 in das slowRF-Protokoll zu &#039;&#039;mappen&#039;&#039;. 1-wire Temperatursensoren am mapleCUx werden in diesem Fall von FHEM automatisch als HMS-T eingebunden. Andere 1-wire Sensoren oder Aktoren werden von der Firmware hierbei nicht ausgewertet.&lt;br /&gt;
* Das Modul 00_OWX.pm kann mit dem mapleCUx kommunizieren und ermöglicht dadurch die Verwendung von allen 1-wire Sensoren bzw. Aktoren am mapleCUx.&lt;br /&gt;
&lt;br /&gt;
In der Standardversion der CUNO-Firmware ist die Einschränkung enthalten, welche die Erkennung von 1-wire Devices durch die Firmware auf 10 beschränkt, s. unten.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Manche [https://forum.fhem.de/index.php/topic,60458.msg671078.html#msg671078 Selbstbau Platinen] sehen den entsprechenden 1-wire Busmaster mit Pegelwandler schon auf dem Layout vor.&lt;br /&gt;
&lt;br /&gt;
Ist dies nicht der Fall, muss eine Schaltung wie hier gezeigt&lt;br /&gt;
&lt;br /&gt;
[[File:MapleCUx_1-wire_sch_korr.png|600px]]&lt;br /&gt;
&lt;br /&gt;
statt dem Radio CC2 vorgesehen werden.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
Der 1-wire Bus wird durch die von der Firmware vorgesehenen Kommandos gesteuert. Diese sind in der Beschreibung der CUNO-Firmware nachzulesen, siehe [http://culfw.de/commandref.html#cmd_O [1]]&lt;br /&gt;
&lt;br /&gt;
In dieser Firmware ist sowohl der 1-wire Suchalgorithmus implementiert, als auch das Lesen und Schreiben von einzelnen Bits und Bytes auf den 1-wire Bus. Mit diesen Low-Level Kommunikationsfunktionen lassen sich bei Verwendung des Modul 00_OWX.pm alle 1-wire Komponenten ansteuern.&lt;br /&gt;
&lt;br /&gt;
In der Standardversion der CUNO bzw. mapleCUx-Firmware ist die Einschränkung enthalten, welche die Erkennung von 1-wire Devices auf 10 beschränkt. Will man dies erhöhen, muss in der Datei board.h die folgende Zeile mit einem Wert &amp;amp;gt; 10 geändert und die Firmware für den mapleCux neu übersetzt und geflasht werden. &lt;br /&gt;
&lt;br /&gt;
  #define HAS_ONEWIRE 10 // OneWire Device Buffer, RAM: 10 * 8 Byte&lt;br /&gt;
&lt;br /&gt;
== FHEM ==&lt;br /&gt;
Definition in FHEM:&lt;br /&gt;
&lt;br /&gt;
Wenn der mapleCUx in FHEM so definiert ist&lt;br /&gt;
&lt;br /&gt;
  define mapleCUL CUL 192.168.69.145:2323 1536&lt;br /&gt;
&lt;br /&gt;
kann der 1-wire Bus wie folgt definiert werden&lt;br /&gt;
  define MapleOWire OWX mapleCUL&lt;br /&gt;
&lt;br /&gt;
Wenn autocreate angeschaltet ist, werden die angeschlossenen 1-wire Devices nach einem Suchen per&lt;br /&gt;
  get MapleOWire devices&lt;br /&gt;
automatisch angelegt und können danach nach eigenen Wünschen umbenannt werden.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*[1] CULFW Commandref http://culfw.de/commandref.html#cmd_O&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CUL]]&lt;br /&gt;
[[Kategorie:1-Wire]]&lt;br /&gt;
[[Kategorie:Hardware Mods]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:MapleCUx_1-wire_sch_korr.png&amp;diff=24627</id>
		<title>Datei:MapleCUx 1-wire sch korr.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:MapleCUx_1-wire_sch_korr.png&amp;diff=24627"/>
		<updated>2018-01-20T10:29:06Z</updated>

		<summary type="html">&lt;p&gt;PeMue: korrigierter Schaltplan 1-wire für mapleCUx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;korrigierter Schaltplan 1-wire für mapleCUx&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=MapleCUx_und_1-wire&amp;diff=24626</id>
		<title>MapleCUx und 1-wire</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=MapleCUx_und_1-wire&amp;diff=24626"/>
		<updated>2018-01-20T06:11:24Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Link auf mapleCUN Wiki Artikel eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Der [https://wiki.fhem.de/wiki/MapleCUN mapleCUx] (mapleCUL für USB- bzw. mapleCUN für Netzwerkbetrieb) bietet die Möglichkeit, ähnlich wie der CUNO, über einen 1-wire Busmaster (DS2482) 1-wire Sensoren oder Aktoren zu betreiben.&lt;br /&gt;
&lt;br /&gt;
Hierzu muss statt dem Radio CC2 eine entsprechende 1-wire Schaltung vorgesehen sein.&lt;br /&gt;
&lt;br /&gt;
Wie beim CUNO gibt es hierfür zwei Möglichkeiten:&lt;br /&gt;
* In der Firmware des mapleCUx ist eine Möglichkeit enthalten, die 1-wire Temperatursensoren DS18S20 in das slowRF-Protokoll zu &#039;&#039;mappen&#039;&#039;. 1-wire Temperatursensoren am mapleCUx werden in diesem Fall von FHEM automatisch als HMS-T eingebunden. Andere 1-wire Sensoren oder Aktoren werden von der Firmware hierbei nicht ausgewertet.&lt;br /&gt;
* Das Modul 00_OWX.pm kann mit dem mapleCUx kommunizieren und ermöglicht dadurch die Verwendung von allen 1-wire Sensoren bzw. Aktoren am mapleCUx.&lt;br /&gt;
&lt;br /&gt;
In der Standardversion der CUNO-Firmware ist die Einschränkung enthalten, welche die Erkennung von 1-wire Devices durch die Firmware auf 10 beschränkt, s. unten.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Manche [https://forum.fhem.de/index.php/topic,60458.msg671078.html#msg671078 Selbstbau Platinen] sehen den entsprechenden 1-wire Busmaster mit Pegelwandler schon auf dem Layout vor.&lt;br /&gt;
&lt;br /&gt;
Ist dies nicht der Fall, muss eine Schaltung wie hier gezeigt&lt;br /&gt;
&lt;br /&gt;
[[File:MapleCUx_1-wire_sch.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
statt dem Radio CC2 vorgesehen werden.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
Der 1-wire Bus wird durch die von der Firmware vorgesehenen Kommandos gesteuert. Diese sind in der Beschreibung der CUNO-Firmware nachzulesen, siehe [http://culfw.de/commandref.html#cmd_O [1]]&lt;br /&gt;
&lt;br /&gt;
In dieser Firmware ist sowohl der 1-wire Suchalgorithmus implementiert, als auch das Lesen und Schreiben von einzelnen Bits und Bytes auf den 1-wire Bus. Mit diesen Low-Level Kommunikationsfunktionen lassen sich bei Verwendung des Modul 00_OWX.pm alle 1-wire Komponenten ansteuern.&lt;br /&gt;
&lt;br /&gt;
In der Standardversion der CUNO bzw. mapleCUx-Firmware ist die Einschränkung enthalten, welche die Erkennung von 1-wire Devices auf 10 beschränkt. Will man dies erhöhen, muss in der Datei board.h die folgende Zeile mit einem Wert &amp;amp;gt; 10 geändert und die Firmware für den mapleCux neu übersetzt und geflasht werden. &lt;br /&gt;
&lt;br /&gt;
  #define HAS_ONEWIRE 10 // OneWire Device Buffer, RAM: 10 * 8 Byte&lt;br /&gt;
&lt;br /&gt;
== FHEM ==&lt;br /&gt;
Definition in FHEM:&lt;br /&gt;
&lt;br /&gt;
Wenn der mapleCUx in FHEM so definiert ist&lt;br /&gt;
&lt;br /&gt;
  define mapleCUL CUL 192.168.69.145:2323 1536&lt;br /&gt;
&lt;br /&gt;
kann der 1-wire Bus wie folgt definiert werden&lt;br /&gt;
  define MapleOWire OWX mapleCUL&lt;br /&gt;
&lt;br /&gt;
Wenn autocreate angeschaltet ist, werden die angeschlossenen 1-wire Devices nach einem Suchen per&lt;br /&gt;
  get MapleOWire devices&lt;br /&gt;
automatisch angelegt und können danach nach eigenen Wünschen umbenannt werden.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*[1] CULFW Commandref http://culfw.de/commandref.html#cmd_O&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CUL]]&lt;br /&gt;
[[Kategorie:1-Wire]]&lt;br /&gt;
[[Kategorie:Hardware Mods]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=MapleCUx_und_1-wire&amp;diff=24625</id>
		<title>MapleCUx und 1-wire</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=MapleCUx_und_1-wire&amp;diff=24625"/>
		<updated>2018-01-20T06:08:33Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Korrektur&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Der mapleCUx (mapleCUL für USB- bzw. mapleCUN für Netzwerkbetrieb) bietet die Möglichkeit, ähnlich wie der CUNO, über einen 1-wire Busmaster (DS2482) 1-wire Sensoren oder Aktoren zu betreiben.&lt;br /&gt;
&lt;br /&gt;
Hierzu muss statt dem Radio CC2 eine entsprechende 1-wire Schaltung vorgesehen sein.&lt;br /&gt;
&lt;br /&gt;
Wie beim CUNO gibt es hierfür zwei Möglichkeiten:&lt;br /&gt;
* In der Firmware des mapleCUx ist eine Möglichkeit enthalten, die 1-wire Temperatursensoren DS18S20 in das slowRF-Protokoll zu &#039;&#039;mappen&#039;&#039;. 1-wire Temperatursensoren am mapleCUx werden in diesem Fall von FHEM automatisch als HMS-T eingebunden. Andere 1-wire Sensoren oder Aktoren werden von der Firmware hierbei nicht ausgewertet.&lt;br /&gt;
* Das Modul 00_OWX.pm kann mit dem mapleCUx kommunizieren und ermöglicht dadurch die Verwendung von allen 1-wire Sensoren bzw. Aktoren am mapleCUx.&lt;br /&gt;
&lt;br /&gt;
In der Standardversion der CUNO-Firmware ist die Einschränkung enthalten, welche die Erkennung von 1-wire Devices durch die Firmware auf 10 beschränkt, s. unten.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Manche [https://forum.fhem.de/index.php/topic,60458.msg671078.html#msg671078 Selbstbau Platinen] sehen den entsprechenden 1-wire Busmaster mit Pegelwandler schon auf dem Layout vor.&lt;br /&gt;
&lt;br /&gt;
Ist dies nicht der Fall, muss eine Schaltung wie hier gezeigt&lt;br /&gt;
&lt;br /&gt;
[[File:MapleCUx_1-wire_sch.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
statt dem Radio CC2 vorgesehen werden.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
Der 1-wire Bus wird durch die von der Firmware vorgesehenen Kommandos gesteuert. Diese sind in der Beschreibung der CUNO-Firmware nachzulesen, siehe [http://culfw.de/commandref.html#cmd_O [1]]&lt;br /&gt;
&lt;br /&gt;
In dieser Firmware ist sowohl der 1-wire Suchalgorithmus implementiert, als auch das Lesen und Schreiben von einzelnen Bits und Bytes auf den 1-wire Bus. Mit diesen Low-Level Kommunikationsfunktionen lassen sich bei Verwendung des Modul 00_OWX.pm alle 1-wire Komponenten ansteuern.&lt;br /&gt;
&lt;br /&gt;
In der Standardversion der CUNO bzw. mapleCUx-Firmware ist die Einschränkung enthalten, welche die Erkennung von 1-wire Devices auf 10 beschränkt. Will man dies erhöhen, muss in der Datei board.h die folgende Zeile mit einem Wert &amp;amp;gt; 10 geändert und die Firmware für den mapleCux neu übersetzt und geflasht werden. &lt;br /&gt;
&lt;br /&gt;
  #define HAS_ONEWIRE 10 // OneWire Device Buffer, RAM: 10 * 8 Byte&lt;br /&gt;
&lt;br /&gt;
== FHEM ==&lt;br /&gt;
Definition in FHEM:&lt;br /&gt;
&lt;br /&gt;
Wenn der mapleCUx in FHEM so definiert ist&lt;br /&gt;
&lt;br /&gt;
  define mapleCUL CUL 192.168.69.145:2323 1536&lt;br /&gt;
&lt;br /&gt;
kann der 1-wire Bus wie folgt definiert werden&lt;br /&gt;
  define MapleOWire OWX mapleCUL&lt;br /&gt;
&lt;br /&gt;
Wenn autocreate angeschaltet ist, werden die angeschlossenen 1-wire Devices nach einem Suchen per&lt;br /&gt;
  get MapleOWire devices&lt;br /&gt;
automatisch angelegt und können danach nach eigenen Wünschen umbenannt werden.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*[1] CULFW Commandref http://culfw.de/commandref.html#cmd_O&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CUL]]&lt;br /&gt;
[[Kategorie:1-Wire]]&lt;br /&gt;
[[Kategorie:Hardware Mods]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=MapleCUx_und_1-wire&amp;diff=24624</id>
		<title>MapleCUx und 1-wire</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=MapleCUx_und_1-wire&amp;diff=24624"/>
		<updated>2018-01-20T06:03:53Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Schaltplan eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Der mapleCUx (mapleCUL für USB- bzw. mapleCUN für Netzwerkbetrieb) bietet die Möglichkeit, ähnlich wie der CUNO, über einen 1-wire Busmaster (DS2482) 1-wire Sensoren oder Aktoren zu betreiben.&lt;br /&gt;
&lt;br /&gt;
Hierzu muss das Radio CC2 durch eine entsprechende Schaltung ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Wie beim CUNO gibt es hierfür zwei Möglichkeiten:&lt;br /&gt;
* In der Firmware des mapleCUx ist eine Möglichkeit enthalten, die 1-wire Temperatursensoren DS18S20 in das slowRF-Protokoll zu &#039;&#039;mappen&#039;&#039;. 1-wire Temperatursensoren am mapleCUx werden in diesem Fall von FHEM automatisch als HMS-T eingebunden. Andere 1-wire Sensoren oder Aktoren werden von der Firmware hierbei nicht ausgewertet.&lt;br /&gt;
* Das Modul 00_OWX.pm kann mit dem mapleCUx kommunizieren und ermöglicht dadurch die Verwendung von allen 1-wire Sensoren bzw. Aktoren am mapleCUx.&lt;br /&gt;
&lt;br /&gt;
In der Standardversion der CUNO-Firmware ist die Einschränkung enthalten, welche die Erkennung von 1-wire Devices durch die Firmware auf 10 beschränkt, s. unten.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Manche [https://forum.fhem.de/index.php/topic,60458.msg671078.html#msg671078 Selbstbau Platinen] sehen den entsprechenden 1-wire Busmaster mit Pegelwandler schon auf dem Layout vor.&lt;br /&gt;
&lt;br /&gt;
Ist dies nicht der Fall, muss eine Schaltung wie hier gezeigt&lt;br /&gt;
&lt;br /&gt;
[[File:MapleCUx_1-wire_sch.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
statt dem Radio CC2 vorgesehen werden.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
Der 1-wire Bus wird durch die von der Firmware vorgesehenen Kommandos gesteuert. Diese sind in der Beschreibung der CUNO-Firmware nachzulesen, siehe [http://culfw.de/commandref.html#cmd_O [1]]&lt;br /&gt;
&lt;br /&gt;
In dieser Firmware ist sowohl der 1-wire Suchalgorithmus implementiert, als auch das Lesen und Schreiben von einzelnen Bits und Bytes auf den 1-wire Bus. Mit diesen Low-Level Kommunikationsfunktionen lassen sich bei Verwendung des Modul 00_OWX.pm alle 1-wire Komponenten ansteuern.&lt;br /&gt;
&lt;br /&gt;
In der Standardversion der CUNO bzw. mapleCUx-Firmware ist die Einschränkung enthalten, welche die Erkennung von 1-wire Devices auf 10 beschränkt. Will man dies erhöhen, muss in der Datei board.h die folgende Zeile mit einem Wert &amp;amp;gt; 10 geändert und die Firmware für den mapleCux neu übersetzt und geflasht werden. &lt;br /&gt;
&lt;br /&gt;
  #define HAS_ONEWIRE 10 // OneWire Device Buffer, RAM: 10 * 8 Byte&lt;br /&gt;
&lt;br /&gt;
== FHEM ==&lt;br /&gt;
Definition in FHEM:&lt;br /&gt;
&lt;br /&gt;
Wenn der mapleCUx in FHEM so definiert ist&lt;br /&gt;
&lt;br /&gt;
  define mapleCUL CUL 192.168.69.145:2323 1536&lt;br /&gt;
&lt;br /&gt;
kann der 1-wire Bus wie folgt definiert werden&lt;br /&gt;
  define MapleOWire OWX mapleCUL&lt;br /&gt;
&lt;br /&gt;
Wenn autocreate angeschaltet ist, werden die angeschlossenen 1-wire Devices nach einem Suchen per&lt;br /&gt;
  get MapleOWire devices&lt;br /&gt;
automatisch angelegt und können danach nach eigenen Wünschen umbenannt werden.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*[1] CULFW Commandref http://culfw.de/commandref.html#cmd_O&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CUL]]&lt;br /&gt;
[[Kategorie:1-Wire]]&lt;br /&gt;
[[Kategorie:Hardware Mods]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:MapleCUx_1-wire_sch.jpg&amp;diff=24623</id>
		<title>Datei:MapleCUx 1-wire sch.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:MapleCUx_1-wire_sch.jpg&amp;diff=24623"/>
		<updated>2018-01-20T06:02:26Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Telekatz&amp;#039; Schaltplan für 1-wire am mapleCUx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Telekatz&#039; Schaltplan für 1-wire am mapleCUx&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=MapleCUx_und_1-wire&amp;diff=24622</id>
		<title>MapleCUx und 1-wire</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=MapleCUx_und_1-wire&amp;diff=24622"/>
		<updated>2018-01-20T06:01:17Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Neuerstellung basierend auf pah&amp;#039;s Artikel über CUNO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Der mapleCUx (mapleCUL für USB- bzw. mapleCUN für Netzwerkbetrieb) bietet die Möglichkeit, ähnlich wie der CUNO, über einen 1-wire Busmaster (DS2482) 1-wire Sensoren oder Aktoren zu betreiben.&lt;br /&gt;
&lt;br /&gt;
Hierzu muss das Radio CC2 durch eine entsprechende Schaltung ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Wie beim CUNO gibt es hierfür zwei Möglichkeiten:&lt;br /&gt;
* In der Firmware des mapleCUx ist eine Möglichkeit enthalten, die 1-wire Temperatursensoren DS18S20 in das slowRF-Protokoll zu &#039;&#039;mappen&#039;&#039;. 1-wire Temperatursensoren am mapleCUx werden in diesem Fall von FHEM automatisch als HMS-T eingebunden. Andere 1-wire Sensoren oder Aktoren werden von der Firmware hierbei nicht ausgewertet.&lt;br /&gt;
* Das Modul 00_OWX.pm kann mit dem mapleCUx kommunizieren und ermöglicht dadurch die Verwendung von allen 1-wire Sensoren bzw. Aktoren am mapleCUx.&lt;br /&gt;
&lt;br /&gt;
In der Standardversion der CUNO-Firmware ist die Einschränkung enthalten, welche die Erkennung von 1-wire Devices durch die Firmware auf 10 beschränkt, s. unten.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Manche [https://forum.fhem.de/index.php/topic,60458.msg671078.html#msg671078 Selbstbau Platinen] sehen den entsprechenden 1-wire Busmaster mit Pegelwandler schon auf dem Layout vor.&lt;br /&gt;
&lt;br /&gt;
Ist dies nicht der Fall, muss eine Schaltung wie hier gezeigt&lt;br /&gt;
&lt;br /&gt;
[[File:CUNO_Mod.jpg|400px]] tbd. noch ändern&lt;br /&gt;
&lt;br /&gt;
statt dem Radio CC2 vorgesehen werden.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
Der 1-wire Bus wird durch die von der Firmware vorgesehenen Kommandos gesteuert. Diese sind in der Beschreibung der CUNO-Firmware nachzulesen, siehe [http://culfw.de/commandref.html#cmd_O [1]]&lt;br /&gt;
&lt;br /&gt;
In dieser Firmware ist sowohl der 1-wire Suchalgorithmus implementiert, als auch das Lesen und Schreiben von einzelnen Bits und Bytes auf den 1-wire Bus. Mit diesen Low-Level Kommunikationsfunktionen lassen sich bei Verwendung des Modul 00_OWX.pm alle 1-wire Komponenten ansteuern.&lt;br /&gt;
&lt;br /&gt;
In der Standardversion der CUNO bzw. mapleCUx-Firmware ist die Einschränkung enthalten, welche die Erkennung von 1-wire Devices auf 10 beschränkt. Will man dies erhöhen, muss in der Datei board.h die folgende Zeile mit einem Wert &amp;amp;gt; 10 geändert und die Firmware für den mapleCux neu übersetzt und geflasht werden. &lt;br /&gt;
&lt;br /&gt;
  #define HAS_ONEWIRE 10 // OneWire Device Buffer, RAM: 10 * 8 Byte&lt;br /&gt;
&lt;br /&gt;
== FHEM ==&lt;br /&gt;
Definition in FHEM:&lt;br /&gt;
&lt;br /&gt;
Wenn der mapleCUx in FHEM so definiert ist&lt;br /&gt;
&lt;br /&gt;
  define mapleCUL CUL 192.168.69.145:2323 1536&lt;br /&gt;
&lt;br /&gt;
kann der 1-wire Bus wie folgt definiert werden&lt;br /&gt;
  define MapleOWire OWX mapleCUL&lt;br /&gt;
&lt;br /&gt;
Wenn autocreate angeschaltet ist, werden die angeschlossenen 1-wire Devices nach einem Suchen per&lt;br /&gt;
  get MapleOWire devices&lt;br /&gt;
automatisch angelegt und können danach nach eigenen Wünschen umbenannt werden.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*[1] CULFW Commandref http://culfw.de/commandref.html#cmd_O&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CUL]]&lt;br /&gt;
[[Kategorie:1-Wire]]&lt;br /&gt;
[[Kategorie:Hardware Mods]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=CUNO_und_1-wire&amp;diff=24621</id>
		<title>CUNO und 1-wire</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=CUNO_und_1-wire&amp;diff=24621"/>
		<updated>2018-01-19T21:24:00Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Nummern des Literaturverzeichnisses angepasst&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Der CUNO ist der Nachfolger des CUN von busware.de. Zusätzlich zu den Eigenschaften des CUN ist beim CUNO der Anschluss von [[1-Wire]]-Komponenten möglich (CUN-O, O für Onewire). Im CUNO ist ein DS2482 Busmaster-Chip verbaut, der über den internen I2C-Bus des CUNO angesteuert wird.&lt;br /&gt;
&lt;br /&gt;
Dafür gibt es zwei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
* In der Firmware des CUNO ist eine Möglichkeit enthalten, die 1-Wire-Temperatursensoren DS18S20 in das Homematic-Protokoll zu &#039;&#039;mappen&#039;&#039;. 1-Wire Temperatursensoren am CUNO werden dann von FHEM automatisch als HMS-T eingebunden. Andere 1-Wire Sensoren oder Aktoren werden von der Firmware nicht ausgewertet.&lt;br /&gt;
* Das Modul 00_OWX.pm (unter contrib/1-Wire) kann mit dem CUNO kommunizieren und ermöglicht dadurch die Verwendung von allen anderen 1-Wire Devices am CUNO. &#039;&#039;&#039;Achtung:&#039;&#039;&#039; Derzeit (November 2012) erzeugt die Abfrage des CUNO durch das Modul 00_OWX.pm so viel Overhead, dass bei mehr als vier gleichzeitig betriebenen 1-Wire Devices Instabilitäten auftreten können.&lt;br /&gt;
&lt;br /&gt;
In der Standardversion der CUNO-Firmware ist außerdem eine Einschränkung enthalten, die die Erkennung von 1-Wire-Devices durch die Firmware auf 10 beschränkt, s. unten.&lt;br /&gt;
&lt;br /&gt;
Der CUNO ist lt. Hersteller busware &amp;quot;end-of-life&amp;quot; und ist/wird ersetzt durch den weitgehend kompatiblen [http://www.busware.de/tiki-index.php?page=CUNX CUNX], einem CUNO ohne direkt verbaute Onewire-Schnittstelle, dafür mit einem Pigator-Slot, für den es wiederum (u. a.) einen Onewire-Modul gibt.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Der CUNO wird leider mit einer 4-poligen RJ10-Anschlussbuchse ausgeliefert (sog. Western-Stecker), die mit keinem sonstigen 1-Wire-System kompatibel ist. Darüber hinaus sind darin die beiden mittleren Adern zusammengelegt, im Anschlussbild aber unterschiedlich benannt (1-Wire bzw. 1-Wire Return). Deshalb muss man entweder &lt;br /&gt;
&lt;br /&gt;
* einen entsprechenden RJ10-Stecker mitbestellen und selbst an ein Kabel ancrimpen,&lt;br /&gt;
* ein RJ10-Kabelende z.B. aus einem ausgeschlachteten Telefon verwenden oder&lt;br /&gt;
* die RJ10-Anschlussbuchse im CUNO selbst ersetzen. Das ist glücklicherweise leicht möglich, und bei CUNO vor Version 2.4 noch aus einem anderen Grund sinnvoll, siehe unten.&lt;br /&gt;
&lt;br /&gt;
In der nebenstehenden Fotografie ist zu sehen, dass die RJ10-Buchse durch eine 3.5 mm Klinkenbuchse ersetzt wurde, das schwarze und das rote Kabel liefern die Pegel GND und 5 V, sowie das blaue Kabel die 1-Wire-Signale.&lt;br /&gt;
&lt;br /&gt;
[[File:CUNO.JPG|400px|alt=CUNO modifiziert]]&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch Molex-Winkelstecker verwenden. Links wurde die RJ45 Buchse abgelötet und durch einen 4-poligen Molex Winkelstecker ersetzt. Vorteil dieser Lösung ist, das (von oben nach unten) 5V, 3,3V, 1-Wire Data und GND sauber heraus geführt sind. &lt;br /&gt;
Auf der rechten Seite wurde ein 5 Pol Molex Stecker an die vorhandenen Kontaktpunkte angelötet, um eine 5V Spannungsversorgung mit einem handelsüblichen 5V Netzteil zu ermöglichen. Mit &amp;quot;PWR&amp;quot; ist auf der Platine der 5V Anschluss bezeichnet (Pin 5 des Molex Steckers). An Pin 3 ist GND angeschlossen.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die beiden Stecker noch mit Heisskleber (o.ä.) im Gehäuse zu fixieren, um zu hohe mechanische Kräfte beim Ein- und Ausstecken von den empfindlichen Kontakten auf der Platine fern zu halten.&lt;br /&gt;
&lt;br /&gt;
[[File:CUNO_Mod.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Ganze sieht dann am Ende so aus:&lt;br /&gt;
&lt;br /&gt;
[[File:CUNO_Mod2.jpg|400px]]&lt;br /&gt;
[[File:CUNO_Mod3.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Level-Shifter vor Version 2.4 ===&lt;br /&gt;
Im CUNO vor Version 2.4 (ausgeliefert bis ca. Anfang Oktober 2012) wird der 1-Wire-Bus durch den CUNO nur mit einer Spannung von 3.3 V versorgt - diese Spannung liegt auch an der RJ10-Buchse an. Ein Signalpegel von 3.3 V auf der Datenleitung des 1-Wire Bus ist aber zu gering, um die angeschlossenen Sensoren parasitär mit Energie zu versorgen - sie müssen deshalb an den unmodifzierten CUNO tatsächlich mit drei Adern (3.3 V, GND und 1-Wire) angeschlossen werden. Im CUNO selbst stehen aber auch 5V zur Verfügung, wenn er durch ein USB-Kabel mit Spannung versorgt wird. Diese lassen sich sehr leicht &amp;quot;abgreifen&amp;quot; und an die (evtl. ersetzte) 1-Wire Anschlussbuchse führen.&lt;br /&gt;
&lt;br /&gt;
Das ist allerdings nur eine &amp;quot;halbe&amp;quot; Lösung, weil der interne Busmaster Chip DS2482 immer noch mit 3,3 V betrieben wird. Dagegen kann ein einfacher [[1-Wire_Pegelwandler|Levelshifter]] helfen (insbesondere beim gleichzeitigen Umbau der Anschlussbuchse&amp;amp;#160;!), der auch die Datensignale auf dem Bus nach 5V umsetzt.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Der 1-Wire-Bus wird durch eine Anzahl von Kommandos gesteuert, die in der Beschreibung der CUNO-Firmware nachzulesen sind, siehe [http://culfw.de/commandref.html#cmd_O [1]]&lt;br /&gt;
&lt;br /&gt;
In dieser Firmware ist sowohl der 1-Wire Suchalgorithmus implementiert, als auch das Lesen und Schreiben von einzelnen Bits und Bytes auf den 1-Wire Bus. Mit diesen Low-Level Kommunikationsfunktionen lassen sich bei Verwendung des Modul 00_OWX.pm (siehe contrib/1-Wire) alle 1-Wire Komponenten ansteuern.&lt;br /&gt;
&lt;br /&gt;
In der Firmware ist auch noch eine High-Level Komponente eingebaut, die die Signale von Temperatursensoren (und nur diese&amp;amp;#160;!) auf das HomeMatic - System abbildet.&lt;br /&gt;
&lt;br /&gt;
In der Standardversion der CUNO-Firmware ist eine Einschränkung enthalten, die die Erkennung von 1-Wire-Devices auf 10 beschränkt. Will man dies erhöhen, muss in der Datei board.h die folgende Zeile mit einem Wert &amp;amp;gt; 10 geändert und die Firmware neu übersetzt und geflasht werden. &lt;br /&gt;
&lt;br /&gt;
  #define HAS_ONEWIRE 10 // OneWire Device Buffer, RAM: 10 * 8 Byte&lt;br /&gt;
&lt;br /&gt;
Allerdings ist eine beliebige Erhöhung nicht möglich, das der CUNO relativ wenig Speicherplatz hat. Berichtet wurde, dass schon ab einem Wert von 30 Schwierigkeiten auftreten, indem die 1-Wire Devices nicht alle erkannt werden.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*[1] CULFW Commandref http://culfw.de/commandref.html#cmd_O&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CUL]]&lt;br /&gt;
[[Kategorie:1-Wire]]&lt;br /&gt;
[[Kategorie:Hardware Mods]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=24005</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=24005"/>
		<updated>2018-01-01T13:09:56Z</updated>

		<summary type="html">&lt;p&gt;PeMue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR2032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen (zwei Platinen zur Erfassung der Fensterstellung) eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
Vor dem Verlöten der Bauteile sollte kontrolliert werden, ob die Platinen in das Gehäuse passen. Falls nicht, sollte entweder das Gehäuse oder die Platine passend gefeilt werden.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 72 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA (Over The Air) Bootloaders ===&lt;br /&gt;
&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem belibigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu Gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Batterien und StepUp&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht. &lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
Den Magneten in den Drehring einbauen und diesen in das Gehäuse einbauen. Die Reedkontakte&lt;br /&gt;
Platzieren und mit einem Ohmmeter Messen, ob die Reedkontakte bei der entsprechenden Position&lt;br /&gt;
der Magnete schalten. Falls nicht, ggf. die Reedkontakte austauschen (Streuung!) bzw. einen stärkeren Magneten verwenden. Danach mittels Silberdraht bzw. Kupferlackdraht (an den zu&lt;br /&gt;
verlötenden Enden den Lack mittels eines Cuttermessers entfernen) die Reedkontakte gemäß&lt;br /&gt;
Bild verlöten und die Enden (GND, A0 bzw. A1) durch die vorgesehenen Öffnungen im Gehäuse führen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verlötete Reedkontakte:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic15.jpg]]&lt;br /&gt;
&lt;br /&gt;
Danach die Antenne in die dafür vorgesehene Bohrung einführen und die Platine platzieren. Darauf achten, dass die Anschlüsse der Reedkontakte durch die dafür vorgesehenen Kontakte auf der Platine geführt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Einführen der Antenne:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic17.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Platzierte Platine:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic16.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nach Verlöten der drei Kontaktpunkte ist der Fensterdrehgriff fertig aufgebaut.&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am Ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=24003</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=24003"/>
		<updated>2018-01-01T13:08:47Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Verlöten der Reedkontakte hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR2032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen (zwei Platinen zur Erfassung der Fensterstellung) eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
Vor dem Verlöten der Bauteile sollte kontrolliert werden, ob die Platinen in das Gehäuse passen. Falls nicht, sollte entweder das Gehäuse oder die Platine passend gefeilt werden.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 72 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA (Over The Air) Bootloaders ===&lt;br /&gt;
&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem belibigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu Gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Batterien und StepUp&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht. &lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
Den Magneten in den Drehring einbauen und diesen in das Gehäuse einbauen. Die Reedkontakte&lt;br /&gt;
Platzieren und mit einem Ohmmeter Messen, ob die Reedkontakte bei der entsprechenden Position&lt;br /&gt;
der Magnete schalten. Falls nicht, ggf. die Reedkontakte austauschen (Streuung!) bzw. einen stärkeren Magneten verwenden. Danach mittels Silberdraht bzw. Kupferlackdraht (an den zu&lt;br /&gt;
verlötenden Enden den Lack mittels eines Cuttermessers entfernen) die Reedkontakte gemäß&lt;br /&gt;
Bild verlöten und die Enden (GND, A0 bzw. A1) durch die vorgesehenen Öffnungen im Gehäuse führen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verlötete Reedkontakte:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic15.jpg]]&lt;br /&gt;
&lt;br /&gt;
Danach die Antenne in die dafür vorgesehene Bohrung einführen und die Platine platzieren. Darauf achten, dass die Anschlüsse der Reedkontakte durch die dafür vorgesehenen Kontakte auf der Platine geführt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Einführen der Antenne:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic17.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nach Verlöten der drei Kontaktpunkte ist der Fensterdrehgriff fertig aufgebaut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Platzierte Platine:&#039;&#039;&lt;br /&gt;
[[Datei:HM_Fenstersensor-pic16.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am Ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:HM_Fenstersensor-pic17.jpg&amp;diff=24001</id>
		<title>Datei:HM Fenstersensor-pic17.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:HM_Fenstersensor-pic17.jpg&amp;diff=24001"/>
		<updated>2018-01-01T12:58:01Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Bild Einführen der Antenne&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bild Einführen der Antenne&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:HM_Fenstersensor-pic16.jpg&amp;diff=24000</id>
		<title>Datei:HM Fenstersensor-pic16.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:HM_Fenstersensor-pic16.jpg&amp;diff=24000"/>
		<updated>2018-01-01T12:57:35Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Bild Einbauen der Platine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bild Einbauen der Platine&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:HM_Fenstersensor-pic15.jpg&amp;diff=23999</id>
		<title>Datei:HM Fenstersensor-pic15.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:HM_Fenstersensor-pic15.jpg&amp;diff=23999"/>
		<updated>2018-01-01T12:56:57Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Bild Verlöten der Reed Kontakte&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bild Verlöten der Reed Kontakte&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23998</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23998"/>
		<updated>2018-01-01T12:55:53Z</updated>

		<summary type="html">&lt;p&gt;PeMue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR2032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen (zwei Platinen zur Erfassung der Fensterstellung) eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
Vor dem Verlöten der Bauteile sollte kontrolliert werden, ob die Platinen in das Gehäuse passen. Falls nicht, sollte entweder das Gehäuse oder die Platine passend gefeilt werden.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 86 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA (Over The Air) Bootloaders ===&lt;br /&gt;
&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem belibigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu Gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Batterien und StepUp&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht. &lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
...TEXT...&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am Ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HM-Sec-RHS_Funk-Fenster-Drehgriffkontakt&amp;diff=23997</id>
		<title>HM-Sec-RHS Funk-Fenster-Drehgriffkontakt</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HM-Sec-RHS_Funk-Fenster-Drehgriffkontakt&amp;diff=23997"/>
		<updated>2018-01-01T12:40:17Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Bild eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Hardware&lt;br /&gt;
|Bild=HM-Sec-RHS.jpg&lt;br /&gt;
|Bildbeschreibung=Fenster Drehgriffkontakt&lt;br /&gt;
|HWProtocol=HomeMatic&lt;br /&gt;
|HWType=[[HomeMatic Type threeStateSensor|threeStateSensor]]&lt;br /&gt;
|HWCategory=HomeMatic&lt;br /&gt;
|HWComm=868MHz&lt;br /&gt;
|HWChannels=1&lt;br /&gt;
|HWVoltage=3V&lt;br /&gt;
|HWPowerConsumption=ca. 2 Jahre&lt;br /&gt;
|HWPoweredBy=2x1,5V LR44&lt;br /&gt;
|HWSize=120*32*16&amp;amp;nbsp;mm&lt;br /&gt;
|HWDeviceFHEM=[[CUL_HM]]&lt;br /&gt;
|HWManufacturer=ELV / eQ-3 &lt;br /&gt;
}}&lt;br /&gt;
Der [[HM-Sec-RHS Funk-Fenster-Drehgriffkontakt]] ist ein [[HomeMatic Type threeStateSensor|threeStateSensor]] zur Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
Überwachung des Verriegelungszustandes einer Terrassentür oder eines Fensters anhand der Stellung des Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
== Batterien ==&lt;br /&gt;
Es werden zwei Stück Knopfzellen vom Typ LR44 (je nach Hersteller auch L1154, AG13, V13GA, A76 oder GPA76 genannt) benötigt. Diese sind Bestandteil der Lieferung, jedoch sollte man vor Installation / Inbetriebnahme die Spannung der Knopfzellen überprüfen. Diese sollte über 1,5&amp;amp;nbsp;V liegen. Da Batterien eine begrenzte Lagerfähigkeit haben, kann es durchaus vorkommen, dass diese schon überlagert sind, also nicht mehr die für einen längeren Betrieb erforderliche Spannung haben bzw. halten können oder bereits nach ein paar Tagen leer (low) sind. &lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit FHEM ==&lt;br /&gt;
Es gelten die generell für den [[HomeMatic Type threeStateSensor|Typ threeStateSensor]] zusammengestellten Informationen.&lt;br /&gt;
&lt;br /&gt;
=== Sendeverhalten anpassen ===&lt;br /&gt;
Leider sind die Drehgriffkontakte im Auslieferungszustand so eingestellt, dass bei Änderung des Fenstergriffes sofort(!) der Zustand übermittelt wird. Probleme bereitet es meist dann, wenn man recht zügig vom geschlossenen Zustand über &amp;quot;offen&amp;quot; in den angeklappten Zustand wechselt. Dann wird sowohl der &amp;quot;offen&amp;quot; als auch sofort danach der &amp;quot;Klapp&amp;quot; Zustand gesendet. Im Zusammenhang mit der unglücklichen Antennenlage im Gehäuse entstehen hier meist Kommunikationsprobleme. Um dies abzuändern, kann man dem Sensor &amp;quot;beibringen&amp;quot;, nach einer Zustandsänderung mit einer Verzögerung zu senden. Dies erfolgt im folgenden Beispiel mit drei Sekunden:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; set &amp;lt;device&amp;gt; regSet eventDlyTime 3 &amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt; set &amp;lt;device&amp;gt; getConfig &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es ist jeweils nach einem abgesetzten Befehl die Anlerntaste am Sensor zu drücken, um jeden Befehl einzeln zu übermitteln.&lt;br /&gt;
&lt;br /&gt;
== Probleme beim Anbau ==&lt;br /&gt;
&lt;br /&gt;
Der Sensor passt unter &amp;quot;Standard&amp;quot; Fensterdrehgriffe, Bei stärkerem Vierkant oder größeren Befestigungen (Sicherheitsdrehgriffe) kann man vorsichtig modifizieren. Aber Vorsicht! Der Detektor ist rein mechanisch.&lt;br /&gt;
&lt;br /&gt;
[[Datei:HM-SEC-RHS-Detektor.JPG|200px|thumb|left|Sensor offen und schlecht modifiziert]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.techwriter.de/beispiel/funkeig1.htm Sendeeigenschaften verbessern] (ohne Gewähr, aber dringend empfohlen!)&lt;br /&gt;
* Montage- und Bedienungsanleitung {{DocLink|elv|/service/manuals/75643_HM_Sec_RHS_GE_V1_0.pdf Anleitung (PDF)}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Zustandssensoren]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:HM-Sec-RHS.jpg&amp;diff=23996</id>
		<title>Datei:HM-Sec-RHS.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:HM-Sec-RHS.jpg&amp;diff=23996"/>
		<updated>2018-01-01T12:39:17Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Bild vom originalen HM-Sec-RHS Fensterdrehgriffkontakt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bild vom originalen HM-Sec-RHS Fensterdrehgriffkontakt.&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23943</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23943"/>
		<updated>2017-12-30T13:51:37Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Zweiplatinenlösung rausgeworfen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen (zwei Platinen zur erfassung der Fensterstellung) eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
Vor dem Verlöten der Bauteile sollte kontrolliert werden, ob die Platinen in das Gehäuse passen. Falls nicht, sollte entweder das Gehäuse oder die Platine passend gefeilt werden.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 86 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA (Over The Air) Bootloaders ===&lt;br /&gt;
&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem belibigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu Gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Batterien und StepUp&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht. &lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
...TEXT...&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23726</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23726"/>
		<updated>2017-12-21T20:37:30Z</updated>

		<summary type="html">&lt;p&gt;PeMue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
Das Platinenlayout des Sensors teilt sich auf zwei Platinen auf. Der eigentliche Sender, welcher&lt;br /&gt;
Arduino-Kompatibel ist, sowie der Sensorplatine zur Erfassung der Fenstergriffstellung.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 86 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA (Over The Air) Bootloaders ===&lt;br /&gt;
&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem belibigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Baterien und StepUP&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht. &lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
...TEXT...&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23725</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23725"/>
		<updated>2017-12-21T20:36:50Z</updated>

		<summary type="html">&lt;p&gt;PeMue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
Das Platinenlayout des Sensors teilt sich auf zwei Platinen auf. Der eigentliche Sender, welcher&lt;br /&gt;
Arduino-Kompatibel ist, sowie der Sensorplatine zur Erfassung der Fenstergriffstellung.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 86 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des OTA Bootloaders ===&lt;br /&gt;
&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem belibigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Baterien und StepUP&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht. &lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA (Over The Air) Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
...TEXT...&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23721</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23721"/>
		<updated>2017-12-21T19:47:36Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Korrekturen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
Das Platinenlayout des Sensors teilt sich auf zwei Platinen auf. Der eigentliche Sender, welcher&lt;br /&gt;
Arduino-Kompatibel ist, sowie der Sensorplatine zur Erfassung der Fenstergriffstellung.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 86 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des Bootloaders ===&lt;br /&gt;
&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem belibigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Baterien und StepUP&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur es wird nur eine aktualisierte Firmware per OTA (Over The Air) geflasht. &lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA (Over The Air) Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
...TEXT...&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23714</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23714"/>
		<updated>2017-12-21T18:59:14Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Aktualisierung des Erzeugen des Bootloaders&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
Das Platinenlayout des Sensors teilt sich auf zwei Platinen auf. Der eigentliche Sender, welcher&lt;br /&gt;
Arduino-Kompatibel ist, sowie der Sensorplatine zur Erfassung der Fenstergriffstellung.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 86 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des Bootloaders ===&lt;br /&gt;
&lt;br /&gt;
Dafür wird, mit Hilfe der [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91780 makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html wird dazu in einem belibigen Browser aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder müssen sich von Gerät zu gerät unterscheiden. Aus diesem Grund ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste &amp;quot;Power Presets&amp;quot; ausgewählt:&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Baterien und StepUP&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber individuell angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben!&lt;br /&gt;
&lt;br /&gt;
Seit 12/2017 kann optional die [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=91779 aktuelle Firmware] mit angegeben werden, so dass die Firmware gleichzeitig mit dem Bootloader geflasht werden kann. In diesem Fall kann der FDGK sofort in Betrieb genommen werden und nur eine aktualisierte Firmware per OTA (Over The Air) geflasht. &lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA (Over The Air) Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
...TEXT...&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23704</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23704"/>
		<updated>2017-12-21T10:45:50Z</updated>

		<summary type="html">&lt;p&gt;PeMue: Bestückung aktualisiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
Das Platinenlayout des Sensors teilt sich auf zwei Platinen auf. Der eigentliche Sender, welcher&lt;br /&gt;
Arduino-Kompatibel ist, sowie der Sensorplatine zur Erfassung der Fenstergriffstellung.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten. Kurzschlüsse zwischen einzelnen Pins müssen unbedingt vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 86 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des Bootloaders ===&lt;br /&gt;
&lt;br /&gt;
Dafür wird, mit Hilfe der [https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html muss dazu in einem Browser deiner Wahl aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder sollten auf keinen Fall anschließend auf zwei Geräten identisch sein. Somit ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu machen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien du mit deinem FDGK nutzt. Dies wählst du über die dropdown Liste &amp;quot;Power Presets&amp;quot; aus.&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Baterien und StepUP&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber noch angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben! &lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflashed.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die erwähnte makeota.html benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun, bei gestecktem ISP Programmer, über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die bootloaderdatei ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA (Over The Air) Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
...TEXT...&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23703</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23703"/>
		<updated>2017-12-21T10:18:23Z</updated>

		<summary type="html">&lt;p&gt;PeMue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
Das Platinenlayout des Sensors teilt sich auf zwei Platinen auf. Der eigentliche Sender, welcher&lt;br /&gt;
Arduino-Kompatibel ist, sowie der Sensorplatine zur Erfassung der Fenstergriffstellung.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze bzw. feinem Lötzinn verlöten.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 86 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des Bootloaders ===&lt;br /&gt;
&lt;br /&gt;
Dafür wird, mit Hilfe der [https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html muss dazu in einem Browser deiner Wahl aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder sollten auf keinen Fall anschließend auf zwei Geräten identisch sein. Somit ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu machen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien du mit deinem FDGK nutzt. Dies wählst du über die dropdown Liste &amp;quot;Power Presets&amp;quot; aus.&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Baterien und StepUP&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber noch angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben! &lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflashed.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die erwähnte makeota.html benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun, bei gestecktem ISP Programmer, über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die bootloaderdatei ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA (Over The Air) Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
...TEXT...&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23702</id>
		<title>HomeMatic Fenster-Drehgriffkontakt Community-Nachbau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau&amp;diff=23702"/>
		<updated>2017-12-21T10:16:15Z</updated>

		<summary type="html">&lt;p&gt;PeMue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur&lt;br /&gt;
Überwachung eines Fenster-Drehgriffs.&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dementsprechend auch gleich.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
&lt;br /&gt;
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.&lt;br /&gt;
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie&lt;br /&gt;
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.&lt;br /&gt;
Das Platinenlayout des Sensors teilt sich auf zwei Platinen auf. Der eigentliche Sender, welcher&lt;br /&gt;
Arduino-Kompatibel ist, sowie der Sensorplatine zur Erfassung der Fenstergriffstellung.&lt;br /&gt;
&lt;br /&gt;
Anfangs gab es zwei Ideen wie der Sensor aussehen sollte. Inzwischen hat sich die HomeMatic Variante mit CR032 Batteriehalterung auf der Platine durchgesetzt. Somit wird hier nicht näher auf andere Versionen eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Platine ==&lt;br /&gt;
&#039;&#039;&#039;Schaltplan:&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_sch.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Oberseite mit korrigierter Pinbelegung):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Platine v1.0 (Unterseite, ohne bestücktes Radio):&#039;&#039;&#039;&lt;br /&gt;
[[Datei:FDGK_v1.0_bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bauteilliste ==&lt;br /&gt;
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].&lt;br /&gt;
&lt;br /&gt;
== Zusammenlöten der SMD Bauteile ==&lt;br /&gt;
Die Bestückung der Platine ist im [https://forum.fhem.de/index.php/topic,71413.msg640858.html#msg640858 diesem Post] kurz beschrieben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bemerkung:&#039;&#039;&#039;&lt;br /&gt;
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
Zuerst auf der Unterseite IC1 bestücken:&lt;br /&gt;
Hierzu einen beliebigen Pin verzinnen, den Prozessor platzieren und den Pin verlöten.&lt;br /&gt;
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen&lt;br /&gt;
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.&lt;br /&gt;
Mit einem Flussmittelstift auf allen vier Seiten die Pins bestreichen und auf jeder Seite die Pins einzeln mit einer feinen Lötspitze und feinem Lötzinn verlöten.&lt;br /&gt;
&lt;br /&gt;
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.&lt;br /&gt;
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.&lt;br /&gt;
&lt;br /&gt;
Nach dem [https://wiki.fhem.de/wiki/HomeMatic_Fenster-Drehgriffkontakt_Community-Nachbau#Firmware Flashen der Firmware] das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken.&lt;br /&gt;
Als Antenne (ANT) wird ein Draht mit 86 mm Länge eingelötet.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Bootloader ===&lt;br /&gt;
&lt;br /&gt;
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Erstellen des Bootloaders ===&lt;br /&gt;
&lt;br /&gt;
Dafür wird, mit Hilfe der [https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html] der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.&lt;br /&gt;
&lt;br /&gt;
Die makeota.html muss dazu in einem Browser deiner Wahl aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
Die Felder &#039;&#039;HM ID&#039;&#039; und &#039;&#039;HM-Serial&#039;&#039; innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. &#039;&#039;HM ID&#039;&#039;: 6 hexadezimale Zeichen). Das Feld &#039;&#039;Device Type&#039;&#039; muss folgende Nummer beinhalten: &amp;quot;0030&amp;quot;. Das Feld &#039;&#039;Config String&#039;&#039; wird aus den eingegebenen Daten automatisch generiert.&lt;br /&gt;
&lt;br /&gt;
Die zwei o.g. Felder sollten auf keinen Fall anschließend auf zwei Geräten identisch sein. Somit ist es sinnvoll, sich die eingegebenen Daten aufzuschreiben oder Screenshots zu machen.&lt;br /&gt;
&lt;br /&gt;
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien du mit deinem FDGK nutzt. Dies wählst du über die dropdown Liste &amp;quot;Power Presets&amp;quot; aus.&lt;br /&gt;
&lt;br /&gt;
Dabei bedeutet:&lt;br /&gt;
&lt;br /&gt;
*No StepUp = CR2032 Batterie&lt;br /&gt;
*StepUp single AA = eine AA Batterie und StepUp&lt;br /&gt;
*StepUp two AAA = zwei AAA Baterien und StepUP&lt;br /&gt;
&lt;br /&gt;
Die Parameter „Step-Up Present“, „Low-Voltage“ und „Critical Voltage” ergeben sich aus der Wahl in der DropDown Liste, können aber noch angepasst werden. Für den fehlerfreien Betrieb sollten diese aber unverändert bleiben! &lt;br /&gt;
&lt;br /&gt;
Nach drücken der Taste &amp;quot;Create&amp;quot; erscheint eine Schaltfläche &amp;quot;Save Bootloader&amp;quot;, mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.&lt;br /&gt;
&lt;br /&gt;
=== Flashen des OTA Bootloaders ===&lt;br /&gt;
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflashed.&lt;br /&gt;
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die erwähnte makeota.html benötigt.&lt;br /&gt;
&lt;br /&gt;
Der Bootloader lässt sich nun, bei gestecktem ISP Programmer, über folgende Befehle flashen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Fuses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex&amp;lt;/pre&amp;gt;&lt;br /&gt;
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass &amp;quot;bootloader.hex&amp;quot; die bootloaderdatei ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die Platine mit Spannung versorgt wird, sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Firmware übertragen wird.&lt;br /&gt;
&lt;br /&gt;
=== OTA (Over The Air) Update === &lt;br /&gt;
Hierzu wird flash-ota benötigt.&lt;br /&gt;
&lt;br /&gt;
Flash-ota funktioniert aktuell nur mit [[CUL]]/[[COC]] oder [[HM-CFG-USB USB Konfigurations-Adapter|HM-CFG-USB]] unter Linux ([[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|Update mit CUL oder HM-CFG-USB unter Linux]]), mit dem &amp;quot;HomeMatic Firmware Update Tool&amp;quot; unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.&lt;br /&gt;
&lt;br /&gt;
Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000 -c /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.&lt;br /&gt;
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.&lt;br /&gt;
&lt;br /&gt;
== Einlöten der Reedkontakte und Anschluss an A0 &amp;amp; A1 ==&lt;br /&gt;
...TEXT...&lt;br /&gt;
&lt;br /&gt;
== Sensor spezifische Einstellungen ==&lt;br /&gt;
Der Sensor meldet die Position entsprechend welcher Zustand an A0 &amp;amp; A1 an liegt. Derzeit ist folgende Logik implementiert:&lt;br /&gt;
&lt;br /&gt;
A0 &amp;amp; A1 offen - PosA -&amp;gt; CLOSED&lt;br /&gt;
&lt;br /&gt;
A0 geschlossen - PosB -&amp;gt; OPEN&lt;br /&gt;
&lt;br /&gt;
A1 geschlossen - PosC -&amp;gt; TILTED&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls kann die CyclicInfoMsg aktiviert werden (zum aktivieren siehe Link am ende des Artikels). Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Register zum ändern der Position von A0 &amp;amp; A1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosA &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosB &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;Device_Name&amp;gt; regSet msgRhsPosC &amp;lt;closed|open|noMsg|tilted&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).&lt;br /&gt;
&lt;br /&gt;
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Wer keinen 3D-Drucker besitzt kann sich im Forum nach einem 3D-Druckservice um schauen. Einige User bieten gegen kleines Geld einen netten und preiswerten {{Link2Forum|Topic=70413|LinkText=Service}} an.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]&lt;br /&gt;
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]&lt;br /&gt;
*[https://github.com/pa-pa/HMSensor Alles mögliche zu dem Projekt auf Github]&lt;br /&gt;
*[https://raw.githubusercontent.com/pa-pa/AskSinPP/master/examples/HM-SEC-RHS/makeota.html makeota.html]&lt;br /&gt;
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]&lt;br /&gt;
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}&lt;br /&gt;
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components‏‎]]&lt;br /&gt;
[[Kategorie:HomeBrew‏‎]]&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:FDGK_v1.0_top.jpg&amp;diff=23693</id>
		<title>Datei:FDGK v1.0 top.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:FDGK_v1.0_top.jpg&amp;diff=23693"/>
		<updated>2017-12-20T21:00:35Z</updated>

		<summary type="html">&lt;p&gt;PeMue: PeMue lud eine neue Version von Datei:FDGK v1.0 top.jpg hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bild Fensterdrehgriffkontakt v1.0, Oberseite, Bild PeMue&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:FDGK_v1.0_top.jpg&amp;diff=23691</id>
		<title>Datei:FDGK v1.0 top.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:FDGK_v1.0_top.jpg&amp;diff=23691"/>
		<updated>2017-12-20T20:52:39Z</updated>

		<summary type="html">&lt;p&gt;PeMue: PeMue lud eine neue Version von Datei:FDGK v1.0 top.jpg hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bild Fensterdrehgriffkontakt v1.0, Oberseite, Bild PeMue&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:FDGK_v1.0_bot.jpg&amp;diff=23690</id>
		<title>Datei:FDGK v1.0 bot.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:FDGK_v1.0_bot.jpg&amp;diff=23690"/>
		<updated>2017-12-20T20:51:24Z</updated>

		<summary type="html">&lt;p&gt;PeMue: PeMue lud eine neue Version von Datei:FDGK v1.0 bot.jpg hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bild Fensterdrehgriffkontakt v1.0, Unterseite, Bild PeMue&lt;/div&gt;</summary>
		<author><name>PeMue</name></author>
	</entry>
</feed>