HomeMatic Asksin Library: Unterschied zwischen den Versionen
Rohan (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Rohan (Diskussion | Beiträge) K (→Software: Einige Ergänzungen) |
||
Zeile 20: | Zeile 20: | ||
In dem unter ''Links'' angegebenen Foren-Thread finden Sie die jeweils neueste Version der Library in den jeweils letzten Beiträgen. Ob dies auf Dauer so bleibt, wird sich zeigen. Die Verwendung der Library erfolgt unter der [http://creativecommons.org/licenses/by-nc-sa/3.0/de/ CC-BY-NC-SA-Lizenz]. | In dem unter ''Links'' angegebenen Foren-Thread finden Sie die jeweils neueste Version der Library in den jeweils letzten Beiträgen. Ob dies auf Dauer so bleibt, wird sich zeigen. Die Verwendung der Library erfolgt unter 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. | |||
Es gibt ein Config-Tool in Perl. Die Gerätedefinition wird in dem Tool gemacht, der Output in die ''register.h'' kopiert und gut. | |||
''asksin.cpp'' und ''asksin.h'', das ist der HM-Kommunikationsbereich. Jegliches HM-Handling soll hier statt finden und keinen Usereingriff benötigen. | |||
Weiteres, auch zur Funktionsweise, siehe [http://forum.fhem.de/index.php/topic,14140.msg102672.html#msg102672 hier] und [http://forum.fhem.de/index.php/topic,14140.msg104644.html#msg104644 hier] (Forenbeiträge). | |||
'''Beispiel der Ausgaben:''' | |||
Folgende Ausgabe erscheint nach dem Übertragen des Sketches ("arduinisch" für Programm) auf den Arduino im Terminalfenster 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 | |||
== Hardware == | == Hardware == |
Version vom 13. November 2013, 12:32 Uhr
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, Mac und Windows.
Library
In dem unter Links angegebenen Foren-Thread finden Sie die jeweils neueste Version der Library in den jeweils letzten Beiträgen. Ob dies auf Dauer so bleibt, wird sich zeigen. Die Verwendung der Library erfolgt unter 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. Es gibt ein Config-Tool in Perl. Die Gerätedefinition wird in dem Tool gemacht, der Output in die register.h kopiert und gut.
asksin.cpp und asksin.h, das ist der HM-Kommunikationsbereich. Jegliches HM-Handling soll hier statt finden und keinen Usereingriff benötigen.
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 Terminalfenster 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
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
- 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 werde.
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 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
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