HomeMatic Asksin Library: Unterschied zwischen den Versionen
Rohan (Diskussion | Beiträge) K (Einige kleinere Ergänzungen) |
K (Hinweis auf verschiedene Funkchips hinzugefügt) |
||
(17 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Todo|Bitte beachten: 1. Entwurf und noch ausbaubedürftig. Es fehlen noch einige Inhalte, Anmerkungen usw. usf.}} | |||
'''Asksin Library für HomeMatic''' | '''Asksin Library für HomeMatic''' | ||
== Sinn bzw. Ziel == | == Sinn bzw. Ziel == | ||
Ziel ist es, eine Arduino-Library (lib) zu entwickeln mit der es möglich ist, eigene Hardware auf Basis eines Arduino in ein HomeMatic-Netzwerk einzubinden. Es soll mit dieser lib auch möglich sein, vorhandene HM-Aktoren mit eigener Hardware zu peeren, so dass eine Interaktion zwischen den Geräten auch ohne laufendem | Ziel ist es, eine Arduino-Library (lib) zu entwickeln mit der es möglich ist, eigene Hardware auf Basis eines Arduino in ein HomeMatic-Netzwerk einzubinden. Es soll mit dieser lib auch möglich sein, vorhandene HM-Aktoren mit eigener Hardware zu peeren, so dass eine Interaktion zwischen den Geräten auch ohne laufendem FHEM-Server möglich ist. | ||
Später soll sie <ins>vielleicht</ins> auch die Grundlage sein um vorhandene HomeMatic-Hardware neu zu programmieren. | Später soll sie <ins>vielleicht</ins> auch die Grundlage sein um vorhandene HomeMatic-Hardware neu zu programmieren. | ||
Stand 12. November 2013 wird ein HomeMatic-Dimmer abgebildet. Das wird aber nicht der einzige | Stand 12. November 2013 wird ein HomeMatic-Dimmer abgebildet. Das wird aber nicht der einzige {{Link2Forum|Topic=14140|Message=106875|LinkText=Einsatzzweck}} bleiben. | ||
== Software == | == Software == | ||
Zeile 15: | Zeile 15: | ||
=== Arduino === | === Arduino === | ||
Da es sich um eine Arduino-Library handelt, müssen Sie sich für deren Nutzung eine entsprechende [http://arduino.cc/de/Guide/Environment Entwicklungsumgebung] einrichten. Diese gibt es für [http://arduino.cc/en/Main/Software Linux, | Da es sich um eine Arduino-Library handelt, müssen Sie sich für deren Nutzung eine entsprechende [http://arduino.cc/de/Guide/Environment Entwicklungsumgebung] einrichten. Diese gibt es für [http://arduino.cc/en/Main/Software Linux, OS X und Windows]. | ||
=== Library === | === Library === | ||
Die Library ist seit dem 16. November 2013 in der jeweils aktuellsten Fassung im {{Link2Forum|Topic=14140|Message=88923|LinkText=ersten Threadbeitrag}} zu finden. Die Verwendung der Library unterliegt der [http://creativecommons.org/licenses/by-nc-sa/3.0/de/ CC-BY-NC-SA-Lizenz]. | |||
== | Die Library besteht aus 4 Dateien: | ||
* ''sketch_aug05a.ino'' ist der Userbereich. Hier kann man die gerätespezifischen Funktionen programmieren. | |||
* ''register.h'' ist der Config-Bereich. Im oberen Teil sind die Variablen für Seriennummer usw. Im unteren Teil kommen die Registerdefinitionen rein. Also die Config für List0, List1 usw. | |||
* ''asksin.h'' (die Kopfzeilen des eigentlichen Programms) und | |||
* ''asksin.cpp'', das ist der HM-Kommunikationsbereich. Jegliches HM-Handling soll hier statt finden und keinen Benutzereingriff benötigen. | |||
Für die ''register.h'' gibt es ein Config-Tool in Perl (noch nicht verfügbar). Die Gerätedefinition wird in diesem Tool vorgenommen, der Output in die ''register.h'' kopiert und gut. | |||
Da der eigentliche Sketch den Namen ''sketch_aug05a.ino'' trägt, das Verzeichnis, in dem die ''gezippten'' Dateien entpackt werden, aber nach dem Schema ''TTMMJJ-sketch_aug05a'' (TT = Tag, MM = Monat und JJ = Jahr der Veröffentlichung der Lib) benannt ist, sollten Sie den Verzeichnisnamen auf ''sketch_aug05a'' umbenennen. Ansonsten können Sie den Sketch nach dem Öffnen der Arduino-IDE nicht öffnen. Der Name des Haupt-Sketches und des Verzeichnisses müssen also gleich sein. | |||
Weiteres, auch zur Funktionsweise, siehe {{Link2Forum|Topic=14140|Message=102672|LinkText=hier}} und {{Link2Forum|Topic=14140|Message=104644|LinkText=hier}} (Forenbeiträge). | |||
'''Beispiel der Ausgaben:''' | |||
Folgende Ausgabe erscheint nach dem Übertragen des Sketches ("arduinisch" für Programm) auf den Arduino im seriellen Terminal der Arduino-IDE: | |||
Port open | |||
CC1101_init: 12..............................................3 - ready | |||
Available commands: | |||
p - start pairing with master | |||
b[0] b[n] s - send a string, b[0] is length (50 bytes max) | |||
i[0]. i[1]. e - show eeprom content, i[0]. start address, i[1]. length | |||
i[0]. b[1] f - write content to eeprom, i[0]. address, i[1] byte | |||
c - clear eeprom complete, write 0 from start to end | |||
t - gives an overview of the device configuration | |||
$nn for HEX input (e.g. $AB,$AC ); b[] = byte, i[]. = integer | |||
Serial: PS00000001, Model ID: 00 57 , HMID: 2F B7 4A | |||
Paired: F1 47 12 | |||
FreeMem: 1232 byte's | |||
Und so sieht das ganze auf Ihrem Bildschirm aus: [[Datei:2013-11-12 - Asksin-Screenshot - CutUSM1200x802_85P.jpeg|500px|mini|right|Ansicht der Arduino IDE und des Seriellen-Ausgabefensters mit den Ausgaben der Asksin Library]] | |||
'''Achtung:''' Um in der seriellen Konsole (Aufruf per Klick auf das Lupensymbol rechts oben im Fenster der IDE) die Ausgaben zu sehen, müssen Sie noch die Baud-Rate rechts unten im Fenster von 9.600 auf 57.600 ändern (dies ist die im Asksin-Sketch eingestellte Datenübertragungsrate). Bei einer verkehrten Baud-Rate erscheinen maximal irgendwelche Sonderzeichen. | |||
== | == Hardware == | ||
Als Ersatz für die HomeMatic Sensoren und Aktoren kommen panStamps [http://www.panstamp.com/ (Hersteller Webseite] / [[panStamp|Wiki Artikel)]] oder [http://arduino.cc/de/Main/ArduinoBoardProMini Arduino Pro Mini] (mit 3,3 V, dazu gleich mehr) zusammen mit Transceivern aus dem Frequenzbereich 868 MHz zum Einsatz. | |||
=== panStamp === | |||
Vorteile: | Vorteile: | ||
* Transceiver on-board | * Transceiver on-board | ||
* klein | |||
* preiswert | * preiswert | ||
Zeile 42: | Zeile 85: | ||
Nachteile: | Nachteile: | ||
* teurer als | * teurer als panStamps | ||
* Volumen größer als | * Volumen größer als panStamps | ||
==== Transceiver-Module ==== | ==== Transceiver-Module ==== | ||
Beim [[panStamp]] ist das Modul bereits on-board. Am preiswertesten fährt man bei den Arduinos mit den Bausätzen vom HomeMatic [[HM-LC-Sw1-Ba-PCB]] oder [[MAX#Fensterkontakte|vom MAX! Fensterkontakt]]. | |||
Module aus dem FS20-Bereich funktionieren <ins>nicht</ins>, da diese eine andere Signalmodulation haben. RFM12-Module können ebenfalls <ins>nicht</ins> verwendet werden. Auch die "CC1101 w/ co-processor shield for Arduino" von Busware werden <ins>nicht</ins> unterstützt. | |||
Module aus dem FS20-Bereich funktionieren nicht, da diese eine andere Signalmodulation haben. | |||
[[Datei:Tranceiver_CutGradScaleUSM800x600_85P_IMGP8367.JPG|200px|thumb|right|Transceiver - links kurz und breit, rechts lang und schmal]] | [[Datei:Tranceiver_CutGradScaleUSM800x600_85P_IMGP8367.JPG|200px|thumb|right|Transceiver - links kurz und breit, rechts lang und schmal]] | ||
===== HomeMatic HM-LC-Sw1- | ===== HomeMatic HM-LC-Sw1-Ba-PCB ===== | ||
Kurzes, aber breites Transceiver-Modul. Die '''1'''-reihigen Löt-Kontakte haben allerdings einen Abstand von 2 mm, was bei der Anbringung von Pfostenleisten berücksichtigt werden muss (üblicher sind 2,54 mm). | Kurzes, aber breites Transceiver-Modul. Die '''1'''-reihigen Löt-Kontakte haben allerdings einen Abstand von 2 mm, was bei der Anbringung von Pfostenleisten berücksichtigt werden muss (üblicher sind 2,54 mm). | ||
Zeile 60: | Zeile 101: | ||
===== MAX! Fensterkontakt ===== | ===== MAX! Fensterkontakt ===== | ||
Längeres aber schmaleres Transceiver-Modul. Die '''2'''-reihigen Kontakte haben das üblichere Raster von 2,54 mm, jedoch sind schon einige Löterfahrungen erforderlich um das Modul sauber zu entlöten. | Längeres aber schmaleres Transceiver-Modul. Die '''2'''-reihigen Kontakte haben das üblichere Raster von 2,54 mm, jedoch sind schon einige Löterfahrungen erforderlich um das Modul sauber zu entlöten. | ||
Zeile 67: | Zeile 107: | ||
===== CC1101 ===== | ===== CC1101 ===== | ||
Die CC1101-Module sind regulär für den 433MHz Bereich gedacht, können aber auf 868 MHz umgestellt werden. Dies geht allerdings zu Lasten der Sende- und Empfangsleistung. | |||
===== Achtung, verschiedene Funkchips ===== | |||
Es gibt beide Modulausführungen (breit und schmal) mit Funkchip CC1101 von Texas Instruments (-TI) und SiliconLabs (-SL). | |||
'''Nur''' die '''-TI''' Variante ist mit Stand 10/2020 für AskSinPP geeignet, die -SL Variante wird nicht unterstützt! | |||
siehe auch: | |||
[https://github.com/pa-pa/AskSinPP/issues/210 How is it possible to use the AskSinPP libary with the original trx-868 RF module] | |||
==== Verbindung Transceiver mit Arduino Pro Mini ==== | ==== Verbindung Transceiver mit Arduino Pro Mini ==== | ||
Zeile 77: | Zeile 126: | ||
[[Datei:2013-11-13 - Fritzing-Screenshot - breit - CutUSM_800x600_85P.jpeg|200px|thumb|right|Verkabelung des breiten Transceiver-Moduls mit einem Arduino Pro Mini 3,3 V]] | [[Datei:2013-11-13 - Fritzing-Screenshot - breit - CutUSM_800x600_85P.jpeg|200px|thumb|right|Verkabelung des breiten Transceiver-Moduls mit einem Arduino Pro Mini 3,3 V]] | ||
TRX868 - Pins von links nach rechts | TRX868 - Pins von links nach rechts (metallisches | ||
Abschirmblech - im Schema gelb - sichtbar, Antenne oben) | |||
1 2 3 4 5 6 7 8 | 1 2 3 4 5 6 7 8 | ||
2 mm Raster (!) | |||
Arduino | Arduino | ||
Zeile 98: | Zeile 149: | ||
===== Schmales Modul ===== | ===== Schmales Modul ===== | ||
[[Datei:2013-11-13 - Fritzing-Screenshot - schmal -CutUSM_800x601_85P.jpeg|200px|thumb|right|Verkabelung des schmalen Transceiver-Moduls mit einem Arduino Pro Mini 3,3 V]] | |||
TRX868 - Pins von links nach rechts (metallisches | |||
Abschirmblech - im Schema gelb - sichtbar, Antenne oben) | |||
1 3 5 7 | |||
2 4 6 8 | |||
2,54 mm Raster | |||
Arduino | Arduino | ||
TRX868 ProMini 3.3V! Beschreibung Farbe | TRX868 ProMini 3.3V! Beschreibung Farbe | ||
Zeile 115: | Zeile 174: | ||
< Schema folgt > | < Schema folgt > | ||
== Links == | == Links == | ||
* {{Link2Forum|Topic=14140|LinkText=Foren-Thread}} | |||
* [http://www.elv.de/max-fensterkontakt-arr.html MAX! Fensterkontakt Bausatz]] | |||
[http://www.elv.de/max-fensterkontakt-arr.html MAX! Fensterkontakt Bausatz]] | * [http://www.elv.de/homematic-schaltaktor-fuer-batteriebetrieb-komplettbausatz.html HomeMatic Schaltaktor Bausatz] | ||
[http://www.elv.de/homematic-schaltaktor-fuer-batteriebetrieb-komplettbausatz.html HomeMatic Schaltaktor Bausatz] | |||
[[Kategorie:HomeMatic_Components]] | [[Kategorie:HomeMatic_Components]] |
Aktuelle Version vom 19. Oktober 2020, 13:01 Uhr
Todo: Bitte beachten: 1. Entwurf und noch ausbaubedürftig. Es fehlen noch einige Inhalte, Anmerkungen usw. usf. |
Asksin Library für HomeMatic
Sinn bzw. Ziel
Ziel ist es, eine Arduino-Library (lib) zu entwickeln mit der es möglich ist, eigene Hardware auf Basis eines Arduino in ein HomeMatic-Netzwerk einzubinden. Es soll mit dieser lib auch möglich sein, vorhandene HM-Aktoren mit eigener Hardware zu peeren, so dass eine Interaktion zwischen den Geräten auch ohne laufendem FHEM-Server möglich ist.
Später soll sie vielleicht auch die Grundlage sein um vorhandene HomeMatic-Hardware neu zu programmieren.
Stand 12. November 2013 wird ein HomeMatic-Dimmer abgebildet. Das wird aber nicht der einzige Einsatzzweck bleiben.
Software
Arduino
Da es sich um eine Arduino-Library handelt, müssen Sie sich für deren Nutzung eine entsprechende Entwicklungsumgebung einrichten. Diese gibt es für Linux, OS X und Windows.
Library
Die Library ist seit dem 16. November 2013 in der jeweils aktuellsten Fassung im ersten Threadbeitrag zu finden. Die Verwendung der Library unterliegt der CC-BY-NC-SA-Lizenz.
Die Library besteht aus 4 Dateien:
- sketch_aug05a.ino ist der Userbereich. Hier kann man die gerätespezifischen Funktionen programmieren.
- register.h ist der Config-Bereich. Im oberen Teil sind die Variablen für Seriennummer usw. Im unteren Teil kommen die Registerdefinitionen rein. Also die Config für List0, List1 usw.
- asksin.h (die Kopfzeilen des eigentlichen Programms) und
- asksin.cpp, das ist der HM-Kommunikationsbereich. Jegliches HM-Handling soll hier statt finden und keinen Benutzereingriff benötigen.
Für die register.h gibt es ein Config-Tool in Perl (noch nicht verfügbar). Die Gerätedefinition wird in diesem Tool vorgenommen, der Output in die register.h kopiert und gut.
Da der eigentliche Sketch den Namen sketch_aug05a.ino trägt, das Verzeichnis, in dem die gezippten Dateien entpackt werden, aber nach dem Schema TTMMJJ-sketch_aug05a (TT = Tag, MM = Monat und JJ = Jahr der Veröffentlichung der Lib) benannt ist, sollten Sie den Verzeichnisnamen auf sketch_aug05a umbenennen. Ansonsten können Sie den Sketch nach dem Öffnen der Arduino-IDE nicht öffnen. Der Name des Haupt-Sketches und des Verzeichnisses müssen also gleich sein.
Weiteres, auch zur Funktionsweise, siehe hier und hier (Forenbeiträge).
Beispiel der Ausgaben:
Folgende Ausgabe erscheint nach dem Übertragen des Sketches ("arduinisch" für Programm) auf den Arduino im seriellen Terminal der Arduino-IDE:
Port open CC1101_init: 12..............................................3 - ready Available commands: p - start pairing with master b[0] b[n] s - send a string, b[0] is length (50 bytes max) i[0]. i[1]. e - show eeprom content, i[0]. start address, i[1]. length i[0]. b[1] f - write content to eeprom, i[0]. address, i[1] byte c - clear eeprom complete, write 0 from start to end t - gives an overview of the device configuration $nn for HEX input (e.g. $AB,$AC ); b[] = byte, i[]. = integer Serial: PS00000001, Model ID: 00 57 , HMID: 2F B7 4A Paired: F1 47 12 FreeMem: 1232 byte's
Und so sieht das ganze auf Ihrem Bildschirm aus:
Achtung: Um in der seriellen Konsole (Aufruf per Klick auf das Lupensymbol rechts oben im Fenster der IDE) die Ausgaben zu sehen, müssen Sie noch die Baud-Rate rechts unten im Fenster von 9.600 auf 57.600 ändern (dies ist die im Asksin-Sketch eingestellte Datenübertragungsrate). Bei einer verkehrten Baud-Rate erscheinen maximal irgendwelche Sonderzeichen.
Hardware
Als Ersatz für die HomeMatic Sensoren und Aktoren kommen panStamps (Hersteller Webseite / Wiki Artikel) oder Arduino Pro Mini (mit 3,3 V, dazu gleich mehr) zusammen mit Transceivern aus dem Frequenzbereich 868 MHz zum Einsatz.
panStamp
Vorteile:
- Transceiver on-board
- klein
- preiswert
Nachteile:
- nicht immer/überall verfügbar
Arduino Pro Mini 3,3 V mit separatem Transceiver
Bitte achten Sie darauf, nur Arduino Pro Minis mit 3,3 V zu verwenden, da die Transceiver-Module auch nur mit dieser Spannung arbeiten. Es gehen zwar notfalls auch Arduino-Boards mit 5 Volt, aber die Spannungsversorgung und Signal-/Datenleitungen der Transceiver-Module müssen dann per "Level-Converter" angepasst werden.
Vorteile:
- verfügbar
Nachteile:
- teurer als panStamps
- Volumen größer als panStamps
Transceiver-Module
Beim panStamp ist das Modul bereits on-board. Am preiswertesten fährt man bei den Arduinos mit den Bausätzen vom HomeMatic HM-LC-Sw1-Ba-PCB oder vom MAX! Fensterkontakt.
Module aus dem FS20-Bereich funktionieren nicht, da diese eine andere Signalmodulation haben. RFM12-Module können ebenfalls nicht verwendet werden. Auch die "CC1101 w/ co-processor shield for Arduino" von Busware werden nicht unterstützt.
HomeMatic HM-LC-Sw1-Ba-PCB
Kurzes, aber breites Transceiver-Modul. Die 1-reihigen Löt-Kontakte haben allerdings einen Abstand von 2 mm, was bei der Anbringung von Pfostenleisten berücksichtigt werden muss (üblicher sind 2,54 mm).
Siehe nebenstehendes Foto links.
MAX! Fensterkontakt
Längeres aber schmaleres Transceiver-Modul. Die 2-reihigen Kontakte haben das üblichere Raster von 2,54 mm, jedoch sind schon einige Löterfahrungen erforderlich um das Modul sauber zu entlöten.
Siehe nebenstehendes Foto rechts.
CC1101
Die CC1101-Module sind regulär für den 433MHz Bereich gedacht, können aber auf 868 MHz umgestellt werden. Dies geht allerdings zu Lasten der Sende- und Empfangsleistung.
Achtung, verschiedene Funkchips
Es gibt beide Modulausführungen (breit und schmal) mit Funkchip CC1101 von Texas Instruments (-TI) und SiliconLabs (-SL).
Nur die -TI Variante ist mit Stand 10/2020 für AskSinPP geeignet, die -SL Variante wird nicht unterstützt!
siehe auch: How is it possible to use the AskSinPP libary with the original trx-868 RF module
Verbindung Transceiver mit Arduino Pro Mini
Zur Zeit (November 2013) gelten folgende Pin-Belegungen:
Breites Modul
TRX868 - Pins von links nach rechts (metallisches Abschirmblech - im Schema gelb - sichtbar, Antenne oben) 1 2 3 4 5 6 7 8 2 mm Raster (!) Arduino TRX868 ProMini 3.3V! Beschreibung Farbe ================================================= 1 11 SPI Mosi weiß 2 13 SPI SCK violett 3 12 SPI MISO grün 4 (n.c.) (3) PWM -LED-GND --- 5 2 GDO0 gelb 6 10 SPI chip select blau 7 GND GND schwarz 8 VCC 3.3V rot =================================================
TRX868-Pin 4 ist GDO2 und war anfangs mit Pin 3 des Arduino verbunden. GDO2 wird nicht mehr verwendet und Pin 3 (PWM) kann nun anderweitig genutzt werden.
Schmales Modul
TRX868 - Pins von links nach rechts (metallisches Abschirmblech - im Schema gelb - sichtbar, Antenne oben) 1 3 5 7 2 4 6 8 2,54 mm Raster Arduino TRX868 ProMini 3.3V! Beschreibung Farbe ================================================= 1 VCC 3.3V 2 GND GND 3 11 SPI Mosi 4 13 SPI SCK 5 12 SPI MISO 6 (n.c.) (3) -- frei -- 7 2 GD00 8 10 SPI chip select =================================================
Der Arduino-Pin 3 (PWM) ist nun frei für die eigene Verwendung und kann z.B. als GND für eine zu dimmende LED eingesetzt werden
< Schema folgt >