Serial/Netzwerk-RS485-Adapter: Unterschied zwischen den Versionen
(Sertronics-Adapter hinzugefügt) |
(Ersetzung von Forum-Links mit Vorlage Link2Forum) |
||
Zeile 7: | Zeile 7: | ||
=== Liste der aktuell getesteten Adapter / Schnittstellen (bitte ggf. ergänzen) === | === Liste der aktuell getesteten Adapter / Schnittstellen (bitte ggf. ergänzen) === | ||
* DIGITUS DA-70157: USB-Serial Adapter mit RS485 Schnittstelle. Dieser Adapter wird derzeit wahrscheinlich am häufigsten und erfolgreichsten zusammen mit FHEM eingesetzt. [http://www.reichelt.de/USB-Konverter/DIGITUS-DA-70157/3//index.html?ARTICLE=122187] | * DIGITUS DA-70157: USB-Serial Adapter mit RS485 Schnittstelle. Dieser Adapter wird derzeit wahrscheinlich am häufigsten und erfolgreichsten zusammen mit FHEM eingesetzt. [http://www.reichelt.de/USB-Konverter/DIGITUS-DA-70157/3//index.html?ARTICLE=122187] | ||
* Eigenbau basierend auf FT232RL und Max485 | * Eigenbau basierend auf FT232RL und Max485 {{Link2Forum|Topic=64947|Message=562328}} | ||
* Wiznet - WIZ108SR Compact RS422/RS485-to-Ethernet module [http://www.wiznet.io/product-item/wiz108sr/] | * Wiznet - WIZ108SR Compact RS422/RS485-to-Ethernet module [http://www.wiznet.io/product-item/wiz108sr/] | ||
* Wiznet - {{Link2Forum|Topic=14096|LinkText=WIZ108SR im Hutschienengehäuse}} | * Wiznet - {{Link2Forum|Topic=14096|LinkText=WIZ108SR im Hutschienengehäuse}} | ||
* USB - RS485 Konverter von Sertronics [https://www.sertronics-shop.de/Raspberry-PiCo/Raspberry-Pi/KabelAdapter/USB-KabelAdapter/USB-RS485-Konverter/] Dieser Adapter wurde zwar erfolgreich getestet, ist aber trotzdem nicht zu empfehlen. Der Adapter beruht auf einem CH340 oder CH341 Chip und funktioniert im Gegensatz zur Beschreibung auf der Herstellerseite mit Raspbian nur nach der Installation eines neuen Treibers. Außerdem fehlen den CH34x-Chips die Seriennummer, was Probleme bereiten kann, wenn man mehrere serielle Schnittstellen hat (das schließt auch verschiedene Billig-Arduino-Clones ein). Des Weiteren gibt es keinen GND-Anschluss, weswegen der Busabschlusswiderstand nicht korrekt angeschlossen werden kann. Details dazu wurden hier diskutiert: | * USB - RS485 Konverter von Sertronics [https://www.sertronics-shop.de/Raspberry-PiCo/Raspberry-Pi/KabelAdapter/USB-KabelAdapter/USB-RS485-Konverter/] Dieser Adapter wurde zwar erfolgreich getestet, ist aber trotzdem nicht zu empfehlen. Der Adapter beruht auf einem CH340 oder CH341 Chip und funktioniert im Gegensatz zur Beschreibung auf der Herstellerseite mit Raspbian nur nach der Installation eines neuen Treibers. Außerdem fehlen den CH34x-Chips die Seriennummer, was Probleme bereiten kann, wenn man mehrere serielle Schnittstellen hat (das schließt auch verschiedene Billig-Arduino-Clones ein). Des Weiteren gibt es keinen GND-Anschluss, weswegen der Busabschlusswiderstand nicht korrekt angeschlossen werden kann. Details dazu wurden hier diskutiert: {{Link2Forum|Topic=68681|Message=601863}} | ||
== Einbindung in FHEM == | == Einbindung in FHEM == |
Version vom 19. März 2017, 20:50 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 Transceiver weitergeleitet.
Da diese hier beschriebenen Interfaces keine "Intelligenz" besitzen, also die Daten lediglich auf den RS485-Bus umsetzen, wird zur Ansteuerung noch der hm485d.pl-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. Dieser Adapter wird derzeit wahrscheinlich am häufigsten und erfolgreichsten zusammen mit FHEM eingesetzt. [1]
- Eigenbau basierend auf FT232RL und Max485 Beitrag
- Wiznet - WIZ108SR Compact RS422/RS485-to-Ethernet module [2]
- Wiznet - WIZ108SR im Hutschienengehäuse
- USB - RS485 Konverter von Sertronics [3] Dieser Adapter wurde zwar erfolgreich getestet, ist aber trotzdem nicht zu empfehlen. Der Adapter beruht auf einem CH340 oder CH341 Chip und funktioniert im Gegensatz zur Beschreibung auf der Herstellerseite mit Raspbian nur nach der Installation eines neuen Treibers. Außerdem fehlen den CH34x-Chips die Seriennummer, was Probleme bereiten kann, wenn man mehrere serielle Schnittstellen hat (das schließt auch verschiedene Billig-Arduino-Clones ein). Des Weiteren gibt es keinen GND-Anschluss, weswegen der Busabschlusswiderstand nicht korrekt angeschlossen werden kann. Details dazu wurden hier diskutiert: Beitrag
Einbindung in FHEM
Zum Einbinden des Gateways braucht man ein HM485_LAN-Device mit folgender Definition:
define hm485 HM485_LAN localhost:2000 attr hm485 hmwId 00000001 attr hm485 HM485d_device <SerialDevice> attr hm485 HM485d_bind 1
Der Name "hm485" 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, die 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. Dieser Befehl funktioniert allerdings NICHT mit dem Original eq3-Lan-Gateway!
set HM485_LAN discovery start
Nachdem neue Geräte gefunden wurden, 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, die 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 erfordert kein neues Pairing. Ggf. müssen einige interfacespezifische Attribute in der Konfiguration hinzugefügt bzw. gelöscht werden.
Bekannte Probleme
Disconnects mit WIZ108SR
Bei Verwendung eines auf WIZ108SR (oder ähnlich) basierenden Adapters kann es zu regelmäßigen disconnects kommen. Im Log erscheint dann in etwa Folgendes:
2015.09.13 20:17:11.809 2: HM485d: DISCONNECTED 2015.09.13 20:17:11.812 2: HM485d: SERIAL connected to device 192.168.nnn.nnn:pppp 2015.09.13 20:17:11.813 2: HM485d: RECONNECTED
Das Problem lässt sich in der Regel lösen, indem man in der Konfiguration des WIZ108SR den "Inactivity Timer" auf 0 setzt. Siehe auch diesen Thread im Forum.