HomeMatic Asksin Library: Unterschied zwischen den Versionen

Aus FHEMWiki
K (→‎Library: Baud-Ratenanpassung ergänzt.)
K (Darstellungsfehler Code/Bilder behoben)
Zeile 122: Zeile 122:
[[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 (metallisches Abschirmblech - im Schema gelb - sichtbar, Antenne oben)
  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 (!)
          2 mm Raster (!)
   
   
           Arduino         
           Arduino         
Zeile 146: Zeile 148:
[[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]]
[[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)
  TRX868 - Pins von links nach rechts (metallisches  
Abschirmblech - im Schema gelb - sichtbar, Antenne oben)
 
   1  3  5  7
   1  3  5  7
   2  4  6  8
   2  4  6  8
2,54 mm Raster
  2,54 mm Raster


           Arduino         
           Arduino         

Version vom 18. November 2013, 16:17 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

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:

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

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