Serial/Netzwerk-RS485-Adapter: Unterschied zwischen den Versionen
Dirk (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Vorbemerkungen == Alternativ zum HomeMatic_Wired_RS485_LAN_Gateway, können einfache Serial/Netzwerk-RS485-Adaptern für die Kommunikation von FHEM zu H…“) |
Rohan (Diskussion | Beiträge) K (Typos) |
||
Zeile 1: | Zeile 1: | ||
== Vorbemerkungen == | == Vorbemerkungen == | ||
Alternativ zum [[HomeMatic_Wired_RS485_LAN_Gateway]], können einfache Serial/Netzwerk-RS485-Adaptern für die Kommunikation von FHEM zu HomeMatic Wired Geräten eingesetzt werden. | Alternativ zum [[HomeMatic_Wired_RS485_LAN_Gateway]], können einfache Serial/Netzwerk-RS485-Adaptern für die Kommunikation von FHEM zu HomeMatic-Wired-Geräten eingesetzt werden. | ||
In diesem Artikel werden sowohl RS232-RS485-Adapter, USB-RS485-Adapter als auch Netzwerk-RS485-Adapter als Serial-RS485-Adaptern bezeichnet | In diesem Artikel werden sowohl RS232-RS485-Adapter, USB-RS485-Adapter als auch Netzwerk-RS485-Adapter als Serial-RS485-Adaptern bezeichnet, denn in jedem Fall wird ein serieller Datenstrom an den RS485 Tranceiver weitergeleitet. | ||
Da diese hier beschriebenen Interfaces keine "Intelligenz" besitzen, also die Daten lediglich auf den RS485-Bus umsetzen wird zur Ansteuerung noch der hm485d.pm Daemon benötigt. Dieser Prozess setzt die RAW-Befehle in das HomeMatic-Wired-Protokoll um. | Da diese hier beschriebenen Interfaces keine "Intelligenz" besitzen, also die Daten lediglich auf den RS485-Bus umsetzen, wird zur Ansteuerung noch der ''hm485d.pm''-Daemon benötigt. Dieser Prozess setzt die RAW-Befehle in das HomeMatic-Wired-Protokoll um. Der hm485d kann dabei transparent im Hintergrund arbeiten. | ||
Der hm485d kann dabei transparent im Hintergrund arbeiten. | |||
=== Liste der aktuell getesteten Adapter / Schnittstellen (bitte ggf. ergänzen) === | === Liste der aktuell getesteten Adapter / Schnittstellen (bitte ggf. ergänzen) === | ||
Zeile 11: | Zeile 9: | ||
* DIGITUS DA-70157: USB-Serial Adapter mit RS485 Schnittstelle, funktioniert auch an der FritzBox [http://www.reichelt.de/USB-Konverter/DIGITUS-DA-70157/3//index.html?ARTICLE=122187] | * DIGITUS DA-70157: USB-Serial Adapter mit RS485 Schnittstelle, funktioniert auch an der FritzBox [http://www.reichelt.de/USB-Konverter/DIGITUS-DA-70157/3//index.html?ARTICLE=122187] | ||
* Wiznet - WIZ108SR Compact RS422/RS485-to-Ethernet module [http://tigal.at/product/2276] | * Wiznet - WIZ108SR Compact RS422/RS485-to-Ethernet module [http://tigal.at/product/2276] | ||
* Wiznet - WIZ108SR im | * Wiznet - WIZ108SR im Hutschienengehäuse [http://forum.fhem.de/index.php/topic,14096.msg88557.html#msg88557] | ||
== Einbindung in FHEM == | == Einbindung in FHEM == | ||
Zum Einbinden des HMW-LAN-GW müssen folgend Zeilen | Zum Einbinden des HMW-LAN-GW müssen folgend Zeilen in die fhem.cfg eintragen werde: | ||
define HM485_LAN HM485_LAN localhost:2000 | define HM485_LAN HM485_LAN localhost:2000 | ||
Zeile 24: | Zeile 22: | ||
Der Name HM485_LAN kann frei vergeben werden. | Der Name HM485_LAN kann frei vergeben werden. | ||
Bei <SerialDevice> muss der Gerätename angegeben werden unter dem das | Bei <SerialDevice> muss der Gerätename angegeben werden unter dem das serielle Device anzusprechen ist. | ||
'''Beispiele:''' | '''Beispiele:''' | ||
Zeile 33: | Zeile 31: | ||
attr HM485_LAN HM485d_device 192.168.1.15:5000 | attr HM485_LAN HM485d_device 192.168.1.15:5000 | ||
HM485d_bind 1 sorgt dafür dass der hm485d beim FHEM | HM485d_bind 1 sorgt dafür, dass der hm485d beim FHEM-Start automatisch mit gestartet wird und durch FHEM auch gesteuert, also auch beendet werden kann. | ||
HM485_LAN kennt weitere Attribute welche zur Kontrolle des hm485d dienen. | HM485_LAN kennt weitere Attribute, welche zur Kontrolle des hm485d dienen. | ||
Wichtig ist vor allem, für HM485_LAN eine Adresse festzulegen. Die HMW-ID muss eine 8-stellige Hexadezimalzahl sein. | Wichtig ist vor allem, für HM485_LAN eine Adresse festzulegen. Die HMW-ID muss eine 8-stellige Hexadezimalzahl sein. | ||
Theoretisch könnten die bis zu 256 HMW-LAN-GW angelegt werden. Diese Annahme ist aktuell aber nur Theorie und noch nicht getestet und ggf mit einigen Problemen verbunden. Die HMW-ID's für die HMW-Interfaces könnten dafür im Bereich von 00000001 - 000000FF gewählt werden. | Theoretisch könnten die bis zu 256 HMW-LAN-GW angelegt werden. Diese Annahme ist aktuell aber nur Theorie und noch nicht getestet und ggf. mit einigen Problemen verbunden. Die HMW-ID's für die HMW-Interfaces könnten dafür im Bereich von 00000001 - 000000FF gewählt werden. | ||
Da in den HMW-Geräten die HMW-ID der Zentrale aber mit 00000001 vordefiniert, sollte hier aktuell nur diese ID | Da in den HMW-Geräten die HMW-ID der Zentrale aber mit 00000001 vordefiniert ist, sollte hier aktuell nur diese ID verwendet werden. | ||
Zu beachten ist auch, dass | Zu beachten ist auch, dass der hm485d '''gleichzeitig''' nur eine Netzwerkverbindung erlaubt. Somit ist ein Gateway auch nur mit einer Zentrale / FHEM-Instanz zur gleichen Zeit nutzbar. | ||
=== HM485_LAN Attribute === | === HM485_LAN Attribute === | ||
* '''hmwId''' Hier muss die HMW-ID angegeben werden. | * '''hmwId''' Hier muss die HMW-ID angegeben werden. Standardmäßig wird die 00000001 benutzt. | ||
* '''do_not_notify''' FileLog/notify/inform Benachrichtigung für das Gerät ist abgeschaltet. | * '''do_not_notify''' FileLog/notify/inform Benachrichtigung für das Gerät ist abgeschaltet. | ||
* '''HM485d_bind''' Startet den hm485d automatisch beim Start von FHEM und | * '''HM485d_bind''' Startet den hm485d automatisch beim Start von FHEM und ermöglicht FHEM zudem die Prozesskontrolle | ||
* '''HM485d_startTimeout''' Manchmal, z.B. auf langsameren Geräten wie der FritzBox oder dem Raspberry Pi ist es erforderlich den hm485d verzögert zu starten. Hier kann die Verzögerung in Sekunden angegeben werden. | * '''HM485d_startTimeout''' Manchmal, z.B. auf langsameren Geräten wie der FritzBox oder dem Raspberry Pi, ist es erforderlich den hm485d verzögert zu starten. Hier kann die Verzögerung in Sekunden angegeben werden. | ||
* '''HM485d_device''' Das serielle Gerät zum Interface (siehe Beispiel oben) | * '''HM485d_device''' Das serielle Gerät zum Interface (siehe Beispiel oben). | ||
* '''HM485d_serialNumber''' Die Seriennummer | * '''HM485d_serialNumber''' Die Seriennummer die der hm485d an die Zentrale (FHEM) melden soll. | ||
* '''HM485d_logfile''' Der hm485d kann ein eigenes Logfile schreiben. Hier kann dafür ein Dateiname angegeben werden. | * '''HM485d_logfile''' Der hm485d kann ein eigenes Logfile schreiben. Hier kann dafür ein Dateiname angegeben werden. | ||
* '''HM485d_detatch''' Wenn der hm485d mit FHEM zusammen gestartet wird (siehe HM485d_bind) so kann der Prozess hier von FHEM entkoppelt werden. Der Prozess wird dann auch nicht zusammen mit FHEM beendet | * '''HM485d_detatch''' Wenn der hm485d mit FHEM zusammen gestartet wird (siehe HM485d_bind) so kann der Prozess hier von FHEM entkoppelt werden. Der Prozess wird dann auch nicht zusammen mit FHEM beendet. | ||
* '''HM485d_logVerbose''' Der Loglevel vom hm485d | * '''HM485d_logVerbose''' Der Loglevel vom hm485d. | ||
Die | Die folgenden drei Attribute können verwendet werden, wenn der hm485d über einen einfachen UART ohne Flusskontrolle z.B. über den UART des Raspberry Pi, an einen RS485 Tranceiver angeschlossen wird. Dafür müssen ggf. GPIO-Pins zur Steuerung des RS485 Tranceivers (Senden/Empfangen) definiert werden: | ||
* '''HM485d_gpioTxenInit''' Shell-Befehl zum initialisieren des benutzten GPIO-Pins für die Sendekontrolle | * '''HM485d_gpioTxenInit''' Shell-Befehl zum initialisieren des benutzten GPIO-Pins für die Sendekontrolle | ||
* '''HM485d_gpioTxenCmd0''' Shell-Befehl um den Sende-GPIO-Pin zurück zu setzen | * '''HM485d_gpioTxenCmd0''' Shell-Befehl um den Sende-GPIO-Pin zurück zu setzen | ||
Zeile 60: | Zeile 58: | ||
'''Hinweis''' | '''Hinweis''' | ||
Da auch der hm485d sich noch in Entwicklung befindet ist es | Da auch der hm485d sich noch in Entwicklung befindet, ist es möglich dass es in einigen Fällen noch zu Fehlverhalten kommen kann. | ||
== Pairen von Geräten == | == Pairen von Geräten == | ||
Jedes HM Geräte muss vor Verwendung mit der Zentrale, hier also FHEM gepairt werden. Anders als bei den HomeMatic-Funk-Geräten erfolgt das Pairing | Jedes HM Geräte muss vor Verwendung mit der Zentrale, hier also FHEM, gepairt werden. Anders als bei den HomeMatic-Funk-Geräten erfolgt das Pairing bei HMW automatisch, sobald ein Gerät das erste Mal eine Nachricht über den Bus versendet. Alternativ kann das Pairing auch durch das Absetzen eines Discovery-Befehls ausgelöst werden. | ||
Beim Pairen werden die Geräteadressen FHEM bekannt gemacht. Die Adresse der HMW Geräte ist nicht frei wählbar, sondern fest in den Geräten eingestellt. Alle HMW-Geräte haben | Beim Pairen werden die Geräteadressen FHEM bekannt gemacht. Die Adresse der HMW Geräte ist nicht frei wählbar, sondern fest in den Geräten eingestellt. Alle HMW-Geräte haben standardmäßig die Adresse 00000001 als Zentralen-Adresse gespeichert. | ||
=== Discovery === | === Discovery === | ||
Mit dem | Mit dem discovery-Befehl wird der gesamte RS485-Bus nach unbekannten HMW Geräten durchsucht. | ||
set HM485_LAN discovery start | set HM485_LAN discovery start | ||
Zeile 75: | Zeile 73: | ||
== RAW-Befehle == | == RAW-Befehle == | ||
Über den HM485_LAN können so | Über den HM485_LAN können so genannte RAW-Befehle an die am Bus angeschlossenen Geräte gesendet werden. Mit diesen RAW-Befehlen können z.B. Funktionen ausgelöst werden, welche aktuell für ein Gerät noch nicht in FHEM implementiert sind. | ||
'''Beispiel:''' | '''Beispiel:''' | ||
set HM485_LAN RAW 01234567 98 00000001 DDDDDD | set HM485_LAN RAW 01234567 98 00000001 DDDDDD | ||
* 01234567 entspricht hier der Adresse des Gerätes an das der Befehl gesendet werden soll | * 01234567 - entspricht hier der Adresse des Gerätes an das der Befehl gesendet werden soll | ||
* 98 das so genannte Steuerzeichen (Siehe HMW-Protokoll-Dokumentation) | * 98 - das so genannte Steuerzeichen (Siehe HMW-Protokoll-Dokumentation) | ||
* 00000001 | * 00000001 - die HMW-ID der Zentrale (FHEM) | ||
* DDDDDD | * DDDDDD - das sind die zu sendenden Daten. | ||
Da zum Senden von RAW-Befehlen | Da zum Senden von RAW-Befehlen Kenntnisse über das HMW-Protokoll vorhanden sein sollten, lohnt sich ein Blick in die [http://forum.fhem.de/index.php?action=dlattach;topic=10027.0;attach=2441 HMW-Protokoll-Doku] | ||
'''Funktionale Beispiele:''' | '''Funktionale Beispiele:''' | ||
# | # Rollladenaktor öffnen | ||
set HM485_LAN RAW 01234567 98 00000001 7802C8 | set HM485_LAN RAW 01234567 98 00000001 7802C8 | ||
# | # Rollladenaktor stoppen | ||
set HM485_LAN RAW 01234567 98 00000001 7802C9 | set HM485_LAN RAW 01234567 98 00000001 7802C9 | ||
# | # Rollladenaktor schließen | ||
set HM485_LAN RAW 01234567 98 00000001 780200 | set HM485_LAN RAW 01234567 98 00000001 780200 | ||
Zeile 107: | Zeile 105: | ||
== Wechsel von Serial/Netzwerk-RS485-Adaptern zu HMW-LAN-GW == | == Wechsel von Serial/Netzwerk-RS485-Adaptern zu HMW-LAN-GW == | ||
Der Wechsel zwischen den verschiedenen Interface-Typen geht einfach und bedarf kein neues Pairing. | Der Wechsel zwischen den verschiedenen Interface-Typen geht einfach und bedarf kein neues Pairing. | ||
Ggf. müssen einige | Ggf. müssen einige interfacespezifische Attribute in der fhem.cfg hinzugefügt bzw. gelöscht werden. | ||
== Links == | == Links == | ||
Zeile 113: | Zeile 111: | ||
* [http://www.reichelt.de/USB-Konverter/DIGITUS-DA-70157/3//index.html?ARTICLE=122187 DIGITUS DA-70157: USB-Serial Adapter] | * [http://www.reichelt.de/USB-Konverter/DIGITUS-DA-70157/3//index.html?ARTICLE=122187 DIGITUS DA-70157: USB-Serial Adapter] | ||
* [http://tigal.at/product/2276 Wiznet - WIZ108SR Compact RS422/RS485-to-Ethernet module] | * [http://tigal.at/product/2276 Wiznet - WIZ108SR Compact RS422/RS485-to-Ethernet module] | ||
* [http://forum.fhem.de/index.php/topic,14096.msg88557.html#msg88557 Wiznet - WIZ108SR im | * [http://forum.fhem.de/index.php/topic,14096.msg88557.html#msg88557 Wiznet - WIZ108SR im Hutschienengehäuse] | ||
* [http://forum.fhem.de/index.php?action=dlattach;topic=10027.0;attach=2441 HMW-Protokoll-Doku] | * [http://forum.fhem.de/index.php?action=dlattach;topic=10027.0;attach=2441 HMW-Protokoll-Doku] | ||
[[Kategorie:HomeMatic Components]] | [[Kategorie:HomeMatic Components]] | ||
[[Kategorie:Interface]] | [[Kategorie:Interface]] |
Version vom 25. November 2013, 14:01 Uhr
Vorbemerkungen
Alternativ zum HomeMatic_Wired_RS485_LAN_Gateway, können einfache Serial/Netzwerk-RS485-Adaptern für die Kommunikation von FHEM zu HomeMatic-Wired-Geräten eingesetzt werden. In diesem Artikel werden sowohl RS232-RS485-Adapter, USB-RS485-Adapter als auch Netzwerk-RS485-Adapter als Serial-RS485-Adaptern bezeichnet, denn in jedem Fall wird ein serieller Datenstrom an den RS485 Tranceiver weitergeleitet.
Da diese hier beschriebenen Interfaces keine "Intelligenz" besitzen, also die Daten lediglich auf den RS485-Bus umsetzen, wird zur Ansteuerung noch der hm485d.pm-Daemon benötigt. Dieser Prozess setzt die RAW-Befehle in das HomeMatic-Wired-Protokoll um. Der hm485d kann dabei transparent im Hintergrund arbeiten.
Liste der aktuell getesteten Adapter / Schnittstellen (bitte ggf. ergänzen)
- DIGITUS DA-70157: USB-Serial Adapter mit RS485 Schnittstelle, funktioniert auch an der FritzBox [1]
- Wiznet - WIZ108SR Compact RS422/RS485-to-Ethernet module [2]
- Wiznet - WIZ108SR im Hutschienengehäuse [3]
Einbindung in FHEM
Zum Einbinden des HMW-LAN-GW müssen folgend Zeilen in die fhem.cfg eintragen werde:
define HM485_LAN HM485_LAN localhost:2000 attr HM485_LAN hmwId 00000001 attr HM485_LAN HM485d_device <SerialDevice> attr HM485_LAN HM485d_bind 1 attr HM485_LAN room HM485
Der Name HM485_LAN kann frei vergeben werden. Bei <SerialDevice> muss der Gerätename angegeben werden unter dem das serielle Device anzusprechen ist.
Beispiele:
# Serieller USB-RS485-Adapter attr HM485_LAN HM485d_device /dev/ttyUSB0
# Netzwerk-RS485-Adapter attr HM485_LAN HM485d_device 192.168.1.15:5000
HM485d_bind 1 sorgt dafür, dass der hm485d beim FHEM-Start automatisch mit gestartet wird und durch FHEM auch gesteuert, also auch beendet werden kann.
HM485_LAN kennt weitere Attribute, welche zur Kontrolle des hm485d dienen. Wichtig ist vor allem, für HM485_LAN eine Adresse festzulegen. Die HMW-ID muss eine 8-stellige Hexadezimalzahl sein. Theoretisch könnten die bis zu 256 HMW-LAN-GW angelegt werden. Diese Annahme ist aktuell aber nur Theorie und noch nicht getestet und ggf. mit einigen Problemen verbunden. Die HMW-ID's für die HMW-Interfaces könnten dafür im Bereich von 00000001 - 000000FF gewählt werden. Da in den HMW-Geräten die HMW-ID der Zentrale aber mit 00000001 vordefiniert ist, sollte hier aktuell nur diese ID verwendet werden.
Zu beachten ist auch, dass der hm485d gleichzeitig nur eine Netzwerkverbindung erlaubt. Somit ist ein Gateway auch nur mit einer Zentrale / FHEM-Instanz zur gleichen Zeit nutzbar.
HM485_LAN Attribute
- hmwId Hier muss die HMW-ID angegeben werden. Standardmäßig wird die 00000001 benutzt.
- do_not_notify FileLog/notify/inform Benachrichtigung für das Gerät ist abgeschaltet.
- HM485d_bind Startet den hm485d automatisch beim Start von FHEM und ermöglicht FHEM zudem die Prozesskontrolle
- HM485d_startTimeout Manchmal, z.B. auf langsameren Geräten wie der FritzBox oder dem Raspberry Pi, ist es erforderlich den hm485d verzögert zu starten. Hier kann die Verzögerung in Sekunden angegeben werden.
- HM485d_device Das serielle Gerät zum Interface (siehe Beispiel oben).
- HM485d_serialNumber Die Seriennummer die der hm485d an die Zentrale (FHEM) melden soll.
- HM485d_logfile Der hm485d kann ein eigenes Logfile schreiben. Hier kann dafür ein Dateiname angegeben werden.
- HM485d_detatch Wenn der hm485d mit FHEM zusammen gestartet wird (siehe HM485d_bind) so kann der Prozess hier von FHEM entkoppelt werden. Der Prozess wird dann auch nicht zusammen mit FHEM beendet.
- HM485d_logVerbose Der Loglevel vom hm485d.
Die folgenden drei Attribute können verwendet werden, wenn der hm485d über einen einfachen UART ohne Flusskontrolle z.B. über den UART des Raspberry Pi, an einen RS485 Tranceiver angeschlossen wird. Dafür müssen ggf. GPIO-Pins zur Steuerung des RS485 Tranceivers (Senden/Empfangen) definiert werden:
- HM485d_gpioTxenInit Shell-Befehl zum initialisieren des benutzten GPIO-Pins für die Sendekontrolle
- HM485d_gpioTxenCmd0 Shell-Befehl um den Sende-GPIO-Pin zurück zu setzen
- HM485d_gpioTxenCmd1 Shell-Befehl um den Sende-GPIO-Pin zu setzen
Hinweis
Da auch der hm485d sich noch in Entwicklung befindet, ist es möglich dass es in einigen Fällen noch zu Fehlverhalten kommen kann.
Pairen von Geräten
Jedes HM Geräte muss vor Verwendung mit der Zentrale, hier also FHEM, gepairt werden. Anders als bei den HomeMatic-Funk-Geräten erfolgt das Pairing bei HMW automatisch, sobald ein Gerät das erste Mal eine Nachricht über den Bus versendet. Alternativ kann das Pairing auch durch das Absetzen eines Discovery-Befehls ausgelöst werden. Beim Pairen werden die Geräteadressen FHEM bekannt gemacht. Die Adresse der HMW Geräte ist nicht frei wählbar, sondern fest in den Geräten eingestellt. Alle HMW-Geräte haben standardmäßig die Adresse 00000001 als Zentralen-Adresse gespeichert.
Discovery
Mit dem discovery-Befehl wird der gesamte RS485-Bus nach unbekannten HMW Geräten durchsucht.
set HM485_LAN discovery start
Nachdem neue Geräte gefunden worden, werden diese automatisch mit FHEM gepairt.
RAW-Befehle
Über den HM485_LAN können so genannte RAW-Befehle an die am Bus angeschlossenen Geräte gesendet werden. Mit diesen RAW-Befehlen können z.B. Funktionen ausgelöst werden, welche aktuell für ein Gerät noch nicht in FHEM implementiert sind.
Beispiel:
set HM485_LAN RAW 01234567 98 00000001 DDDDDD
- 01234567 - entspricht hier der Adresse des Gerätes an das der Befehl gesendet werden soll
- 98 - das so genannte Steuerzeichen (Siehe HMW-Protokoll-Dokumentation)
- 00000001 - die HMW-ID der Zentrale (FHEM)
- DDDDDD - das sind die zu sendenden Daten.
Da zum Senden von RAW-Befehlen Kenntnisse über das HMW-Protokoll vorhanden sein sollten, lohnt sich ein Blick in die HMW-Protokoll-Doku
Funktionale Beispiele:
# Rollladenaktor öffnen set HM485_LAN RAW 01234567 98 00000001 7802C8 # Rollladenaktor stoppen set HM485_LAN RAW 01234567 98 00000001 7802C9 # Rollladenaktor schließen set HM485_LAN RAW 01234567 98 00000001 780200 # erster Ausgang (Relais) eines HMW-IO-12-Sw14-DR ein set HM485_LAN RAW 01234567 98 00000001 730003FF # erster Ausgang (Relais) eines HMW-IO-12-Sw14-DR aus set HM485_LAN RAW 01234567 98 00000001 73000000
Wechsel von Serial/Netzwerk-RS485-Adaptern zu HMW-LAN-GW
Der Wechsel zwischen den verschiedenen Interface-Typen geht einfach und bedarf kein neues Pairing. Ggf. müssen einige interfacespezifische Attribute in der fhem.cfg hinzugefügt bzw. gelöscht werden.