Neues HomeMatic Device: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „In diesem Artikel wird beschrieben, wie man ein vollständig neues HomeMatic-Device erzeugt und in das HomeMatic System einbindet. Dazu wird als grundlegende S…“) |
Keine Bearbeitungszusammenfassung |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
In diesem Artikel wird beschrieben, wie man ein vollständig neues HomeMatic-Device erzeugt und in das HomeMatic System einbindet. Dazu wird als grundlegende Software die [[ | In diesem Artikel wird beschrieben, wie man ein vollständig neues HomeMatic-Device erzeugt und in das HomeMatic System einbindet. Dazu wird als grundlegende Software die [[HomeMatic_Asksin_Library | AskSin Library]] verwendet, die das Protokoll '''BidCos''' der HomeMatic-Devices implementiert. Zur Abgrenzung von HomeMatic und zur Vermeidung von Urheberrechtsprobleme wird für ein solches Gerät die Kategoriebezeichnung ''HomeBrew'' verwendet | ||
=Device= | |||
Ein Device ist ein physikalisches Gerät mit folgenden Attributen | |||
* einer Model Id, dies ist ein 2-Byte Code, der den Gerätetyp eindeutig kennzeichnet. Da die originalen HomeMatic-Devices niedrige Werte für die Model ID besitzen, sind für eigene Devices der Serie HomeBrew andere Werte zu verwenden, siehe dazu die Kategorieseite [[Kategorie:HomeBrew]]. | |||
* einer HomeMatic Id (HM Id), dies ist ein 3-Byte Code, der das Gerät im Netzwerk eindeutig identifiziert. | |||
* einer Seriennummer (Serial Id), dies ist ein 10-Byte Code | |||
** Zu klären: Zusammenhang zwischen SM Id ?? | |||
Diese Daten werden in der folgenden Datenstruktur in der Datei '''Register.h''' deklariert: | |||
#include <AskSinMain.h> | |||
//-- settings of HM device for HM class ----------------------------------------------------------------------------------- | |||
const uint8_t devParam[] PROGMEM = { | |||
/* Firmware version 1 byte */ 0x15, // don't know for what it is good for | |||
/* Model ID 2 byte */ 0xF2, 0x01, // model ID, describes HM hardware. we should use high values due to HM starts from 0 | |||
/* Serial ID 10 byte */ 'P','A','H','0','0','0','2','0','1','4', // serial ID, needed for pairing | |||
/* Sub Type ID 1 byte */ 0x10, // not needed for FHEM, it's something like a group ID | |||
/* Device Info 3 byte */ 0x01, 0x01, 0x00 // describes device, not completely clear yet. includes amount of channels | |||
}; | |||
HM::s_devParm dParm = { | |||
/* device HM ID 3 byte */ {0xFE, 0xED, 0x04}, // very important, must be unique. identifier for the device in the network | |||
/* send retries 1 byte */ 3, // how often a string should be send out until we get an answer | |||
/* send timeout 2 byte */ 700, // time out for ACK handling | |||
/* pointer to serial */ devParam, | |||
}; | |||
'''Warum hier die komplexe Struktur mit pointer ? | |||
[[Kategorie:HomeBrew]] | |||
[[Kategorie:HomeMatic Components]] |
Aktuelle Version vom 20. September 2014, 19:58 Uhr
In diesem Artikel wird beschrieben, wie man ein vollständig neues HomeMatic-Device erzeugt und in das HomeMatic System einbindet. Dazu wird als grundlegende Software die AskSin Library verwendet, die das Protokoll BidCos der HomeMatic-Devices implementiert. Zur Abgrenzung von HomeMatic und zur Vermeidung von Urheberrechtsprobleme wird für ein solches Gerät die Kategoriebezeichnung HomeBrew verwendet
Device
Ein Device ist ein physikalisches Gerät mit folgenden Attributen
- einer Model Id, dies ist ein 2-Byte Code, der den Gerätetyp eindeutig kennzeichnet. Da die originalen HomeMatic-Devices niedrige Werte für die Model ID besitzen, sind für eigene Devices der Serie HomeBrew andere Werte zu verwenden, siehe dazu die Kategorieseite.
- einer HomeMatic Id (HM Id), dies ist ein 3-Byte Code, der das Gerät im Netzwerk eindeutig identifiziert.
- einer Seriennummer (Serial Id), dies ist ein 10-Byte Code
- Zu klären: Zusammenhang zwischen SM Id ??
Diese Daten werden in der folgenden Datenstruktur in der Datei Register.h deklariert:
#include <AskSinMain.h> //-- settings of HM device for HM class ----------------------------------------------------------------------------------- const uint8_t devParam[] PROGMEM = { /* Firmware version 1 byte */ 0x15, // don't know for what it is good for /* Model ID 2 byte */ 0xF2, 0x01, // model ID, describes HM hardware. we should use high values due to HM starts from 0 /* Serial ID 10 byte */ 'P','A','H','0','0','0','2','0','1','4', // serial ID, needed for pairing /* Sub Type ID 1 byte */ 0x10, // not needed for FHEM, it's something like a group ID /* Device Info 3 byte */ 0x01, 0x01, 0x00 // describes device, not completely clear yet. includes amount of channels }; HM::s_devParm dParm = { /* device HM ID 3 byte */ {0xFE, 0xED, 0x04}, // very important, must be unique. identifier for the device in the network /* send retries 1 byte */ 3, // how often a string should be send out until we get an answer /* send timeout 2 byte */ 700, // time out for ACK handling /* pointer to serial */ devParam, };
Warum hier die komplexe Struktur mit pointer ?