HomeMatic Asksin Library: Unterschied zwischen den Versionen

Aus FHEMWiki
KKeine Bearbeitungszusammenfassung
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.

Transceiver - links kurz und breit, rechts lang und schmal
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
Verkabelung des breiten Transceiver-Moduls mit einem Arduino Pro Mini 3,3 V
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