HomeMatic Asksin Library
Asksin Library für HomeMatic
Bitte beachten: 1. Entwurf und noch ausbaubedürftig. Es fehlen noch einige Inhalte, Anmerkungen usw. usf.
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 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.
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 >
Links
Foren-Thread
MAX! Fensterkontakt Bausatz]
HomeMatic Schaltaktor Bausatz