HomeMatic Fenster-Drehgriffkontakt Community-Nachbau: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
K (Einfügen der Versionsinformationen für die Platinen)
 
(65 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein selbstbau threeStateSensor zur
Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur
Überwachung eines Fenster-Drehgriffs.
Überwachung eines Fenster-Drehgriffs.


Die Firmware ist identisch mit dem [https://www.elv.de/homematic-funk-fenster-drehgriffkontakt-1.html Originalen Sensor von ELV] und verhält sich dem entsprechend auch gleich.
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.


== Übersicht ==
== Übersicht ==


Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.
Die Grundidee zu diesem Sensor wurde durch {{Link2Forum|Topic=71413.0|LinkText=Kawaci im Forum}} geliefert.
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie
Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des Homematik Protokolls.
einer auf der [https://github.com/pa-pa/AskSinPP AskSin++] Portierung des BidCos-Protokolls aus den HomeMatic-Geräten.
Das Platinenlayout des Sensors teilt sich auf zwei Platinen auf. Der eigentliche Sender, welcher
Arduino-Kompatibel ist, sowie der Sensorplatine zur Erfassung der Fenstergriffstellung.


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.
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.


== Platine v1.0/1.1 ==
'''Schaltplan:'''
[[Datei:FDGK_v1.0_sch.jpg]]




== Platine ==
'''Platine v1.0 (Oberseite mit korrigierter Pinbelegung (=v1.1)):'''
[[Datei:FDGK_v1.0_top.jpg]]


...TEXT...


... Bilder von Schaltplan und Platine...
'''Platine v1.0 (Unterseite, ohne bestücktes Radio):'''
[[Datei:FDGK_v1.0_bot.jpg]]
 


== Bauteilliste ==
== Bauteilliste ==
Die Bauteilliste gibt es auf [https://github.com/pa-pa/HMSensor/blob/master/HMSensor-CR2032/Parts.xls GitHub].
In der Liste sind die Magnete und Reed-Kontakte nicht aufgeführt.
Folgende können verwendet werden:
* 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]
* 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&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&algo_pvid=cfa21564-5a35-4c12-a921-71b0383402fc&algo_expid=cfa21564-5a35-4c12-a921-71b0383402fc-1 Aliexpress]
== Zusammenlöten der SMD Bauteile ==
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.
'''Bemerkung:'''
Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich.
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.
Zuerst auf der Unterseite IC1 bestücken:
Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten.
Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen
und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist.
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.


...Tabelle mit Bauteilen und bestmöglich direkten Links...
Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken.
Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.


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.
Als Antenne (ANT) wird ein Draht mit 72 mm Länge eingelötet.


== Firmware ==
== Firmware ==
Zeile 33: Zeile 58:
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.
Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.


=== Erstellen des Bootloaders ===
=== Erstellen des OTA (Over The Air) Bootloaders ===
 
{{Randnotiz|RNText=Firmware für 'ID=0030'}}
Dafür wird, mit Hilfe der makeota.html der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.
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.
 
Die makeota.html muss dazu in einem Browser deiner Wahl aufgerufen werden.


Die Felder HM ID, HM-Serial und der config String innerhalb der makeota.html können sich jeweils frei ausgedacht werden (dabei die vorgaben beachten, Bsp. HM ID: 6 hex zeichen). Das Feld Device Type muss folgende Nummer beinhalten: "0030"
Die makeota.html wird dazu in einem beliebigen Browser aufgerufen.


Die drei o.g. Felder sollten keinen Falls anschließend auf zwei Geräten identisch sein. Somit ist es sinnvoll sich die eingegebenen Daten auf zu schreiben oder Screenshots zu machen.
Die Felder ''HM ID'' und ''HM-Serial'' innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. ''HM ID'': 6 hexadezimale Zeichen). Das Feld ''Device Type'' muss folgende Nummer beinhalten: "0030". Das Feld ''Config String'' wird aus den eingegebenen Daten automatisch generiert.


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.


Nun muss noch dem Bootloader noch bekannt gemacht werden, welche Batterien du mit deinem FDGK nutzt. Dies wählst du über die dropdown Liste "Power Presets" aus.
Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste "Power Presets" ausgewählt:


Dabei bedeutet:
Dabei bedeutet:
Zeile 50: Zeile 74:
*No StepUp = CR2032 Batterie
*No StepUp = CR2032 Batterie
*StepUp single AA = eine AA Batterie und StepUp
*StepUp single AA = eine AA Batterie und StepUp
*StepUp two AAA = zwei AAA Baterien und StepUP
*StepUp two AAA = zwei AAA Batterien und StepUp


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!


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!
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.


Nach drücken der Taste "Create" erscheint eine Schaltfläche "Save Bootloader", mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.
Nach drücken der Taste "Create" erscheint eine Schaltfläche "Save Bootloader", mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.
Seit 01/2018 gibt es die Firmware auch für das sog. ''lazy config''. 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.
Das Update auf ''lazy config'' geht auf zwei Arten:
Keine Änderung der 'ID=0030' und Durchführen eines [https://forum.fhem.de/index.php?action=dlattach;topic=71413.0;attach=94541 Firmware] bzw. eines FHEM Updates oder
{{Randnotiz|RNText=Firmware für 'ID=00C3'}}
Aktualisierung der Firmware auf 'ID=00C3'. 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.


=== Flashen des OTA Bootloaders ===
=== Flashen des OTA Bootloaders ===
Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht.
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.


Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflashed.
Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:
Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die erwähnte makeota.html benötigt.
 
Der Bootloader lässt sich nun, bei gestecktem ISP Programmer, über folgende Befehle flashen:


<pre>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</pre>
<pre>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</pre>
Setzt die Fuses.
setzt die Fuses.


<pre>avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex</pre>
<pre>avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex</pre>
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass "bootloader.hex" die bootloaderdatei ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.
lädt den eigentlichen Bootloader. Dabei ist zu achten, dass "bootloader.hex" die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.


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.
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.


== OTA (Over The Air) Update ==  
=== OTA Update ===  
Hierzu wird flash-ota benötigt.
Hierzu wird flash-ota benötigt.


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 "HomeMatic Firmware Update Tool" unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.
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 "HomeMatic Firmware Update Tool" unter Windows ([[HomeMatic_Firmware_Update#Firmware_Update_mit_HM-CFG-USB_unter_Windows|Update mit HM-CFG-USB unter Windows]]) oder mit einer CCU2.


Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:


Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:
<pre>./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000</pre>
 
Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:


<pre>flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000</pre>
<pre>./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</pre>


Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.
Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden.
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.
== Einlöten der Reedkontakte und Anschluss an A0 & A1 (Platine v1.0/1.1) ==
Den Magneten in den Drehring einbauen und diesen in das Gehäuse einbauen. Die Reedkontakte
Platzieren und mit einem Ohmmeter Messen, ob die Reedkontakte bei der entsprechenden Position
der Magnete schalten. Falls nicht, ggf. die Reedkontakte austauschen (Streuung!) bzw. einen stärkeren Magneten verwenden. Danach mittels Silberdraht bzw. Kupferlackdraht (an den zu
verlötenden Enden den Lack mittels eines Cuttermessers entfernen) die Reedkontakte gemäß
Bild verlöten und die Enden (GND, A0 bzw. A1) durch die vorgesehenen Öffnungen im Gehäuse führen.
''Verlötete Reedkontakte:''
[[Datei:HM_Fenstersensor-pic15.jpg]]
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.
''Einführen der Antenne:''
[[Datei:HM_Fenstersensor-pic17.jpg]]
''Platzierte Platine:''
[[Datei:HM_Fenstersensor-pic16.jpg]]
Nach Verlöten der drei Kontaktpunkte ist der Fensterdrehgriff fertig aufgebaut.


== Sensor spezifische Einstellungen ==
== Sensor spezifische Einstellungen ==
Der Sensor meldet die Position entsprechend welcher Zustand an A0 & A1 an liegt. Derzeit ist folgende Logik implementiert:
Der Sensor meldet die Position entsprechend welcher Zustand an A0 & A1 an liegt. Derzeit ist folgende Logik implementiert:


A0 & A1 offen - PosA -> OPEN


A0 & A1 offen - PosA -> CLOSED
A0 geschlossen - PosB -> CLOSED
 
A0 geschlossen - PosB -> OPEN


A1 geschlossen - PosC -> TILTED
A1 geschlossen - PosC -> TILTED


Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.
Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.


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.
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.
 




Zeile 108: Zeile 161:
<pre>set <Device_Name> regSet msgRhsPosC <closed|open|noMsg|tilted></pre>
<pre>set <Device_Name> regSet msgRhsPosC <closed|open|noMsg|tilted></pre>


== Einlöten der Reedkontakte und Anschluss an A0 & A1 ==
== Montage ==
 
Bei der Standardeinstellung der Register gilt für die Platzierung des Magneten bei geöffnetem Fenster folgendes:
...TEXT...
Bei links angeschlagenem Fenster muss der Magnet nach unten, bei rechts angeschlagenem nach oben.


== Gehäuse ==
== Gehäuse ==
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).
Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).


Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.
Die Standard Version ist [https://www.thingiverse.com/thing:2354704 hier] zu finden.


Wer keinen 3D-Drucker besitzt kann sich im Forum nach Druck Hilfen um schauen. Einige User bieten gegen kleines Geld einen 3D-Druck Service an.
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.
 
== Verfügbare Readings ==
 
Der FDGK kann folgende drei Status an Fhem übermitteln:
 
*open
*closed
*tilted


== Links ==
== Links ==
*[https://forum.fhem.de/index.php/topic,71413.0.0.html Link zum Foren-Thread]
*[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]
*[https://github.com/pa-pa/HMSensor Alles Mögliche zu dem Projekt auf Github]
*[[HomeMatic_Type_threeStateSensor|CyclicInfoMsg aktivieren]]
*{{Link2Forum|Topic=70413|LinkText=3D-Druck service}}
*[[HomeMatic_Firmware_Update#Firmware_Update_mit_CUL.2FHM-CFG-USB_unter_FHEM|update-ota]]


[https://github.com/pa-pa/AskSinPP AskSinPP  Libary]
[https://github.com/pa-pa/HMSensor Alles mögliche zu dem Projekt auf Github]


[[HomeMatic_Type_threeStateSensor]] CyclicInfoMsg aktivieren
[[Kategorie:HomeMatic Components‏‎]]
[[Kategorie:HomeBrew‏‎]]
[[Kategorie:868MHz]]

Aktuelle Version vom 26. August 2019, 13:41 Uhr

Der HB-Sec-RHS Funk-Fenster-Drehgriffkontakt ist ein Selbstbau threeStateSensor zur Überwachung eines Fenster-Drehgriffs.

Die Firmware ist identisch mit dem Originalen Sensor von ELV und verhält sich dementsprechend auch gleich.

Übersicht

Die Grundidee zu diesem Sensor wurde durch Kawaci im Forum geliefert. Die Umsetzung besteht aus einer Atmega328p Platine mit CC1101 Funkmodul (868 MHz) sowie einer auf der AskSin++ Portierung des BidCos-Protokolls aus den HomeMatic-Geräten.

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.

Platine v1.0/1.1

Schaltplan: FDGK v1.0 sch.jpg


Platine v1.0 (Oberseite mit korrigierter Pinbelegung (=v1.1)): FDGK v1.0 top.jpg


Platine v1.0 (Unterseite, ohne bestücktes Radio): FDGK v1.0 bot.jpg


Bauteilliste

Die Bauteilliste gibt es auf GitHub.

In der Liste sind die Magnete und Reed-Kontakte nicht aufgeführt. Folgende können verwendet werden:

Zusammenlöten der SMD Bauteile

Die Bestückung der Platine v1.0/1.1 ist im diesem Post kurz beschrieben.

Bemerkung: Y1 (32 kHz Quarz), C4 und C5 sind nicht erforderlich. 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.

Zuerst auf der Unterseite IC1 bestücken: Hierzu einen beliebigen äußeren Pin verzinnen, den Prozessor mit der richtigen Orientierung von Pin 1 (runder Punkt) platzieren und den Pin verlöten. Darauf achten, dass der Prozessor mittig auf den Pads aufliegt, ggf. den Pin wieder erhitzen und den IC drehen oder verschieben. Auf der gegenüberliegenden Seite ebenfalls einen Pin verlöten, damit der IC fixiert ist. 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.

Danach auf der Unterseite C1, C2, C3 sowie R1 bestücken. Auf der Oberseite R2, D1 (rot), R3, D2 (gelb), C6 und die beiden Taster bestücken.

Nach dem Flashen der Firmware das Radio (IC2) bzw. den Batteriehalter (BT1) bestücken. Als Antenne (ANT) wird ein Draht mit 72 mm Länge eingelötet.

Firmware

Bootloader

Die Sensorfirmware kann OTA (Over The Air) oder über den Arduino Bootloader geladen werden.

Erstellen des OTA (Over The Air) Bootloaders

Info green.pngFirmware für 'ID=0030'

Dafür wird, mit Hilfe der makeota.html der Bootloader mit den benötigten Daten gefüllt und anschließend generiert.

Die makeota.html wird dazu in einem beliebigen Browser aufgerufen.

Die Felder HM ID und HM-Serial innerhalb der makeota.html können jeweils frei gewählt werden (dabei die Vorgaben beachten, so z.B. HM ID: 6 hexadezimale Zeichen). Das Feld Device Type muss folgende Nummer beinhalten: "0030". Das Feld Config String wird aus den eingegebenen Daten automatisch generiert.

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.

Nun muss noch dem Bootloader bekannt gemacht werden, welche Batterien mit dem FDGK verwendet werden. Dies wird über die dropdown Liste "Power Presets" ausgewählt:

Dabei bedeutet:

  • No StepUp = CR2032 Batterie
  • StepUp single AA = eine AA Batterie und StepUp
  • StepUp two AAA = zwei AAA Batterien und StepUp

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!

Seit 12/2017 kann optional die 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.

Nach drücken der Taste "Create" erscheint eine Schaltfläche "Save Bootloader", mit welcher der angepasste Boorloader gespeichert werden kann. Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.

Seit 01/2018 gibt es die Firmware auch für das sog. lazy config. 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. Das Update auf lazy config geht auf zwei Arten:

Keine Änderung der 'ID=0030' und Durchführen eines Firmware bzw. eines FHEM Updates oder

Info green.pngFirmware für 'ID=00C3'

Aktualisierung der Firmware auf 'ID=00C3'. Die Dateien können hier: makeota.html, Firmware (hex) bzw. Firmware (eq3) heruntergeladen werden.

Verwendet man den Sensor in Kombination mit originaler eq3 Hardware, sollte man die zweite Möglichkeit wählen.

Flashen des OTA Bootloaders

Anschließend wird per ISP (USBasp oder vergleichbares) der Bootloader geflasht. Zum Laden des Bootloaders, sowie der Software werden die Arduino SDK bzw. avrdude und die von makeota.html generierte Datei benötigt.

Der Bootloader lässt sich nun bei gestecktem ISP Programmer über folgende Befehle flashen:

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

setzt die Fuses.

avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex

lädt den eigentlichen Bootloader. Dabei ist zu achten, dass "bootloader.hex" die Datei mit dem Bootloader (bzw. der Firmware) ist und dementsprechend auch im Verzeichnis sein muss, wo die Datei zu finden ist.

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.

OTA Update

Hierzu wird flash-ota benötigt.

Flash-ota funktioniert aktuell nur mit CUL/COC oder HM-CFG-USB unter Linux (Update mit CUL oder HM-CFG-USB unter Linux), mit dem "HomeMatic Firmware Update Tool" unter Windows (Update mit HM-CFG-USB unter Windows) oder mit einer CCU2.

Für einen HM-CFG-USB oder den HM-UART sieht der Aufruf wie folgt aus:

./flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000

Für einen CUL muss noch die USB Schnittstelle oder der Pfad des USB Geräts mit gegeben werden:

./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

Falls Fehler während der Übertragung auftreten, muss die Übertragung nochmals wiederholt werden. Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden.

Einlöten der Reedkontakte und Anschluss an A0 & A1 (Platine v1.0/1.1)

Den Magneten in den Drehring einbauen und diesen in das Gehäuse einbauen. Die Reedkontakte Platzieren und mit einem Ohmmeter Messen, ob die Reedkontakte bei der entsprechenden Position der Magnete schalten. Falls nicht, ggf. die Reedkontakte austauschen (Streuung!) bzw. einen stärkeren Magneten verwenden. Danach mittels Silberdraht bzw. Kupferlackdraht (an den zu verlötenden Enden den Lack mittels eines Cuttermessers entfernen) die Reedkontakte gemäß Bild verlöten und die Enden (GND, A0 bzw. A1) durch die vorgesehenen Öffnungen im Gehäuse führen.

Verlötete Reedkontakte: HM Fenstersensor-pic15.jpg

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.

Einführen der Antenne: HM Fenstersensor-pic17.jpg

Platzierte Platine: HM Fenstersensor-pic16.jpg

Nach Verlöten der drei Kontaktpunkte ist der Fensterdrehgriff fertig aufgebaut.

Sensor spezifische Einstellungen

Der Sensor meldet die Position entsprechend welcher Zustand an A0 & A1 an liegt. Derzeit ist folgende Logik implementiert:

A0 & A1 offen - PosA -> OPEN

A0 geschlossen - PosB -> CLOSED

A1 geschlossen - PosC -> TILTED

Die Bedeutung der Positionen kann mittels der entsprechenden Register eingestellt werden.

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.


Register zum ändern der Position von A0 & A1:

set <Device_Name> regSet msgRhsPosA <closed|open|noMsg|tilted>
set <Device_Name> regSet msgRhsPosB <closed|open|noMsg|tilted>
set <Device_Name> regSet msgRhsPosC <closed|open|noMsg|tilted>

Montage

Bei der Standardeinstellung der Register gilt für die Platzierung des Magneten bei geöffnetem Fenster folgendes: Bei links angeschlagenem Fenster muss der Magnet nach unten, bei rechts angeschlagenem nach oben.

Gehäuse

Für das Gehäuse wurde auf eine 3D-Drucklösung gesetzt. Es gibt inzwischen mehrere Versionen (abgerundete obere Kante, eckige Kante uvm.).

Die Standard Version ist hier zu finden.

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 Service an.

Links