HM-CFG-LAN LAN Konfigurations-Adapter: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung |
|||
Zeile 25: | Zeile 25: | ||
==== KeepAlive ==== | ==== KeepAlive ==== | ||
Das HMLAN baut eine Verbindung zur Zentrale über das LAN Interface auf. HMLAN erwartet alle 30sec eine keep-alive Nachricht von der Zentrale. Sollte diese ausbleiben baut HMLAN die LAN-Verbindung ab. Das führt zu einem Disconnect, | Das HMLAN baut eine Verbindung zur Zentrale über das LAN Interface auf. HMLAN erwartet alle 30sec eine keep-alive Nachricht von der Zentrale. Sollte diese ausbleiben baut HMLAN die LAN-Verbindung ab. Das führt zu einem Disconnect, der in State gemeldet wird. Die Verbindung wird automatisch wieder aufgebaut. | ||
FHEM sendet den keep-alive alle 25 sec, was einen 5sec Puffer einräumt. In Internals '''msgKeepAlive''' kann man sehen, wie hoch die maximale Verzögerung der Zentrale beim Senden war und wie viel Puffer (in sec) noch war. | FHEM sendet den keep-alive alle 25 sec, was einen 5sec Puffer einräumt. In Internals '''msgKeepAlive''' kann man sehen, wie hoch die maximale Verzögerung der Zentrale beim Senden war und wie viel Puffer (in sec) noch war. | ||
Die Wiederholrate von 25 sec des keep-alive kann man mit dem Attribut '''wdTimer''' reduzieren werden, was den Puffer erhöhen. Es wird jedoch dringend geraten, im Problemfall die Ursache der Verzögerung zu finden und zu eliminieren. | Die Wiederholrate von 25 sec des keep-alive kann man mit dem Attribut '''wdTimer''' reduzieren werden, was den Puffer erhöhen. Es wird jedoch dringend geraten, im Problemfall die Ursache der Verzögerung zu finden und zu eliminieren. | ||
Zeile 31: | Zeile 31: | ||
==== Nachrichtenübertragung - Performance ==== | ==== Nachrichtenübertragung - Performance ==== | ||
* Mit Internal '''msgParseDly''' kann man ablesen, wie viel Verzögerung eine Nachricht von Empfangen im HMLAN bis zur Verarbeitung in der Zentrale hat. | * Mit Internal '''msgParseDly''' kann man ablesen, wie viel Verzögerung eine Nachricht von Empfangen im HMLAN bis zur Verarbeitung in der Zentrale hat. | ||
* HMLAN hält sich an den Funkstandard, | * HMLAN hält sich an den Funkstandard, der einem Sender eine maximale Sendezeit je Stunde erlaubt. Wird dieser Wert überschritten stellt HMLAN das Senden ein. Empfangen wird weiter. Ist eine Kapazität von 90% erreicht wird im Reading '''cond''' '''Warning-HighLoad''' gemeldet. Bei cond '''ERROR-Overload''' wird das Senden eingestellt ist. | ||
==== Loggen/Mitschneiden ==== | ==== Loggen/Mitschneiden ==== | ||
Zeile 71: | Zeile 71: | ||
==== Senden ==== | ==== Senden ==== | ||
An ein Gerät wird nur über das IO gesendet | An ein Gerät wird nur über das IO gesendet, das in Internals->IODev angezeigt wird. Nutzt man mehrere IOs sollte im HM Device das Attribut IODev auf das gewünschte IO setzen. Ansonsten sucht FHEM zufällig ein IO aus. | ||
==== hmId bei mehreren IOs ==== | ==== hmId bei mehreren IOs ==== | ||
Man kann allen IOs die gleiche HMId setzen. Das erlaubt die wahlfreie Umschaltung des Sende-IOs für das Device. | Man kann allen IOs die gleiche HMId setzen. Das erlaubt die wahlfreie Umschaltung des Sende-IOs für das Device. | ||
Sollte man unterschiedliche hmIds wählen simuliert dies mehrere Zentralen. Das Device an | Sollte man unterschiedliche hmIds wählen simuliert dies mehrere Zentralen. Das Device, an das man sendet, muss über ein IO angesprochen werden, mit einer hmId auf die das Device gepairt ist. | ||
=== Attribute === | === Attribute === | ||
* '''hmId''': Adresse, die das IO auf der funkstrecke nutzt. Es ist ein 3-byte hexwert (6 Zeichen) in Großbuchstaben. | * '''hmId''': Adresse, die das IO auf der funkstrecke nutzt. Es ist ein 3-byte hexwert (6 Zeichen) in Großbuchstaben. | ||
* '''hmkey, hmkey2..5''': bis zu 5 AES keys, | * '''hmkey, hmkey2..5''': bis zu 5 AES keys, die auf der Funkstrecke genutzt werden. Siehe [[AES Encryption]] | ||
* '''hmLanQlen''' legt fest, wie viele Nachrichten parallel gesendet werden dürfen, also auf wie viele Antworten die Zentrale parallel warten darf. Ein Wert von 1 ist max defensiv, erzeugt aber eine höhere Verzögerung. Wählt man einen höheren Wert kann es zu Nachrichten-Wiederholern kommen. | * '''hmLanQlen''' legt fest, wie viele Nachrichten parallel gesendet werden dürfen, also auf wie viele Antworten die Zentrale parallel warten darf. Ein Wert von 1 ist max defensiv, erzeugt aber eine höhere Verzögerung. Wählt man einen höheren Wert kann es zu Nachrichten-Wiederholern kommen. | ||
* '''hmProtocolEvents''': alle Nachrichten werden dekodiert ausgegeben. Diese Einstellung benötigt einige Performance insbesondere bei höheren Level. Man sollte es vorsichtig nutzen. | * '''hmProtocolEvents''': alle Nachrichten werden dekodiert ausgegeben. Diese Einstellung benötigt einige Performance insbesondere bei höheren Level. Man sollte es vorsichtig nutzen. | ||
Zeile 112: | Zeile 112: | ||
== Pairen von Geräten == | == Pairen von Geräten == | ||
Jedes HM Geräte muss vor Verwendung mit der HM-Zentrale gepairt werden. Dabei wird die hmId des gewählten IOs in das Device programmiert. Ändert man die hmId des IO, mit | Jedes HM Geräte muss vor Verwendung mit der HM-Zentrale gepairt werden. Dabei wird die hmId des gewählten IOs in das Device programmiert. Ändert man die hmId des IO, mit dem an das Device anspricht, muss man das Device neu pairen. | ||
Alle Geräte haben eine eigene hmId, | Alle Geräte haben eine eigene hmId, das nicht änderbar ist. Details zum Pairen auf der Seite [[HomeMatic Devices pairen]]. | ||
== Bekannte Probleme == | == Bekannte Probleme == |
Version vom 12. August 2014, 20:13 Uhr
Vorbemerkungen
Der HomeMatic Konfigurations-Adapter LAN (HM-CFG-LAN), kurz HMLAN, ist ein Schnittstellengerät (IO) ohne wesentliche Intelligenz. Die Aufgabe ist, ein Interface von der Zentrale zu den Geräten bereitzustellen. Ein HMLAN selbst steuert keine Geräte, es überträgt nur Nachrichten in beide Richtungen.
Alternativen
Alternativen zu einem HMLAN sind HM-CFG-USB USB Konfigurations-Adapter, CUN, CUNO und CUL.
HMUSB
Ein HMUSB hat nahezu identische Eigenschaften wie ein HMLAN. Der wesentliche Unterschied ist die Anbindung über USB anstatt Ethernet. Es hat sich erwiesen, dass USB eine bessere Latenz hat als LAN - also eine kürzere Verzögerung. Damit hat ein HMUSB leichte Vorteile zu HMLAN, was aber in den bei Weitem meisten Fällen durch die interne Timing Kalkulation abgefangen wird. Dafür bietet der HMLAN mit seinem Netzwerkanschluss Vorteile bei der Platzierung.
CUL/CUN(O)
- Die Devices liefern keine eigenen Zeitstempel, wodurch eine Timingkorrektur durch FHEM nicht möglich ist. Je nach Systemgeschwindigkeit kann dies zu Problemen, Nachrichten wiederholen und ggf. auch Nachrichtenverlust führen
- Da USB kurze Reaktionszeiten und geringe Timingschwankungen hat ist der Einsatz von CUL und CUNO mit HM möglich.
Die Timingschwankungen der Ethernet-schnittstelle hingegen können in FHEM nicht ausgeglichen werden. Daher kann der Einsatz der CUNO über Ethernet nicht empfohlen werden. - AES Encryption wird nicht unterstützt
- lacyConfig (ein Übertragungsmode) wird nicht unterstützt
Funktionen
AES
siehe AES Encryption.
Übertragungsmode
Es werden alle HM-Modi unterstützt. Diese sind Always, Burst, Wakeup und Config. Weiter gibt es lacyConfig und conditionalBurst. Siehe HomeMatic für Details.
KeepAlive
Das HMLAN baut eine Verbindung zur Zentrale über das LAN Interface auf. HMLAN erwartet alle 30sec eine keep-alive Nachricht von der Zentrale. Sollte diese ausbleiben baut HMLAN die LAN-Verbindung ab. Das führt zu einem Disconnect, der in State gemeldet wird. Die Verbindung wird automatisch wieder aufgebaut. FHEM sendet den keep-alive alle 25 sec, was einen 5sec Puffer einräumt. In Internals msgKeepAlive kann man sehen, wie hoch die maximale Verzögerung der Zentrale beim Senden war und wie viel Puffer (in sec) noch war. Die Wiederholrate von 25 sec des keep-alive kann man mit dem Attribut wdTimer reduzieren werden, was den Puffer erhöhen. Es wird jedoch dringend geraten, im Problemfall die Ursache der Verzögerung zu finden und zu eliminieren.
Nachrichtenübertragung - Performance
- Mit Internal msgParseDly kann man ablesen, wie viel Verzögerung eine Nachricht von Empfangen im HMLAN bis zur Verarbeitung in der Zentrale hat.
- HMLAN hält sich an den Funkstandard, der einem Sender eine maximale Sendezeit je Stunde erlaubt. Wird dieser Wert überschritten stellt HMLAN das Senden ein. Empfangen wird weiter. Ist eine Kapazität von 90% erreicht wird im Reading cond Warning-HighLoad gemeldet. Bei cond ERROR-Overload wird das Senden eingestellt ist.
Loggen/Mitschneiden
Es stehen die üblichen Funktionen des Attribute verbose zu Verfügung. Darüber hinaus gibt es die Attribute hmProtocolEvents und logIDs. Siehe auch Homematic Nachrichten sniffen.
Vorbereitung
Bevor man den HMLAN mit Fhem nutzen kann, müssen noch Einstellungen vorgenommen werden. Dazu braucht man Software die bei HomeMatic in der Version 1.512 (Stand 19. Dezember 2013) herunter zu laden ist und nach der Installation mit der Verknüpfung "HomeMatic-Lan-Interface konfigurieren" oder "HomeMatic-Komponenten konfigurieren" gestartet wird und unter Windows läuft. Für andere Betriebssystem (Anleitung für OS X) braucht man eine Windows-Emulation. Dem HMLAN liegen zwei Konfigurationsprogramme bei, bitte darauf achten, das richtige zu verwenden. Wenn das Konfigurationsprogramm den HMLAN-Konfigurator nicht findet, sollten alle nicht benutzten Netzwerkinterfaces vorübergehend deaktiviert werden, siehe Beitrag im Fhem Forum und bekannte Probleme
Firmware
Die aktuelle Firmware Version des HMLAN ist 0.961 (Stand September 2013). Ein Update ist unter "Update Firmware" mit der "HomeMatic Lan-Interface Configurator" Software möglich.
IP Adresse
Der HMLAN Konfigurator ist ähnlich wie der CUN(O) ein Netzwerkgerät. Er beherrscht DHCP und bezieht bei einem im Netzwerk erreichbaren DHCP Servers von diesem eine IP-Adresse. Da Fhem zwecks Kommunikation die IP-Adresse wissen muss, ist es sinnvoll, dem HMLAN eine statische Adresse zuzuweisen.
- mit der auf der CD mitgelieferten "HomeMatic Lan-Interface Configurator" Software unter "Change IP Settings" oder
- im DHCP-Server eine feste IP-Adresse zuzuweisen (sofern dies vom gegeben DHCP Server als Konfigurationsoption unterstützt wird).
AES Encryptet LAN Communication
Wichtig ist, dass vor Verwendung die "AES Encryptet LAN Communication" abgeschaltet wird, da diese FHEM nicht unterstützt. Dies ist unter "Change IP Settings" der "HomeMatic Lan-Interface Configurator" Software möglich. AES auf dem LAN ist zu unterscheiden von HMLAN auf der Funktschnittstelle. siehe AES Encryption.
Einbindung in FHEM
Der HMLAN-Konfigurator muss in FHEM definiert werden. Dazu in die fhem.cfg eintragen:
define HMLAN1 HMLAN <IP Adresse>:1000 attr HMLAN1 hmId 123ABC
Der Name HMLAN1 kann frei vergeben werden. Standard IP-Port des HMLAN-Konfigurators ist 1000.
HMLAN kennt mehrere Attribute (commandref). Wichtig ist die hmId zu vergeben. Diese ist ein 3-Byte hexadezimal-Wert, somit ein 6-steliger String in Großbuchstaben. 000000 und FFFFFF sind ungültig. Wenn HM-Geräte mit der Zentrale gepairt werden wir ihnen diese hmId eingetragen. Wechselt man die hmId müssen aller damit gepairten Geräte neu gepairt werden.
Die Adresse wird in Grossbuchstaben eingegeben, siehe "Bekannte Probleme".
Ein gleichzeitiger Zugriff von Fhem und der HomeMatic-Software auf den HMLAN-Konfigurator ist nicht möglich, da letzterer nur eine Verbindung zulässt. Wollen Sie temporär z.B. mit der Windows-Software von HomeMatic zugreifen, ist Fhem zu deaktivieren. Sinnvoll ist es, die hmId mit der der PC-Software gleichzusetzen. Dann kann man von beiden Zentralen alternativ zugreifen ohne pairen zu müssen.
Nutzung mehrere IOs
Empfangen
Man kann an einem FHEM mehrere IOs (HMLAN/USB, CUL/CUNO) betreiben. Generell empfangen alle IOs von allen Geräten in ihrem Empfangsbereich - unabhängig von der hmId.
Senden
An ein Gerät wird nur über das IO gesendet, das in Internals->IODev angezeigt wird. Nutzt man mehrere IOs sollte im HM Device das Attribut IODev auf das gewünschte IO setzen. Ansonsten sucht FHEM zufällig ein IO aus.
hmId bei mehreren IOs
Man kann allen IOs die gleiche HMId setzen. Das erlaubt die wahlfreie Umschaltung des Sende-IOs für das Device. Sollte man unterschiedliche hmIds wählen simuliert dies mehrere Zentralen. Das Device, an das man sendet, muss über ein IO angesprochen werden, mit einer hmId auf die das Device gepairt ist.
Attribute
- hmId: Adresse, die das IO auf der funkstrecke nutzt. Es ist ein 3-byte hexwert (6 Zeichen) in Großbuchstaben.
- hmkey, hmkey2..5: bis zu 5 AES keys, die auf der Funkstrecke genutzt werden. Siehe AES Encryption
- hmLanQlen legt fest, wie viele Nachrichten parallel gesendet werden dürfen, also auf wie viele Antworten die Zentrale parallel warten darf. Ein Wert von 1 ist max defensiv, erzeugt aber eine höhere Verzögerung. Wählt man einen höheren Wert kann es zu Nachrichten-Wiederholern kommen.
- hmProtocolEvents: alle Nachrichten werden dekodiert ausgegeben. Diese Einstellung benötigt einige Performance insbesondere bei höheren Level. Man sollte es vorsichtig nutzen.
- logIDs: zeichnet Rohmessages auf und bietet die genaueste Methode bei der Fehlersuche. Da Nachrichten undekodiert ausgegeben werden ist es im Wesentlichen für Spezialisten von Bedeutung. Man gibt eine Komma getrennte Liste von IDs an, die geloggt werden sollen. Mit all werden alle IDs aufgezeichnet. sys zeichnet zusätzlich Systemmessages auf. sys,all somit alles.
- respTime: Antwortzeit des HMLAN auf ein keep-alive kann hier eingestellt werden. Normal sollte das HMLAN in 1 sec der Zentrale antworten. Sollte dies nicht passieren, wird die Message wiederholt. Der Wert sollte nur in Ausnahmefällen verändert werden.
Readings
- Xmit-Events: Anzahl der Ereignisse
- cond: aktueller Zustand des IO.
- ok
- Warning-HighLoad: 90% der 1h sendekapazität sind erreicht
- ERROR-Overload: 100% der sendekapazität sind erreicht, das IO sendet nicht mehr
- timeout
- disconnected: die Verbindung FHEM /IO ist unterbrochen
- Overload-released: das IO ist aus ERROR-Overload zurück im Sendebetrieb
- init: Das IO wurde neu initialisiert.
- prot_ERROR-Overload: Anzahl des Events, Zeitstempel des letzten Auftretens
- prot_Warning-HighLoad: Anzahl des Events, Zeitstempel des letzten Auftretens
- prot_disconnected: Anzahl des Events, Zeitstempel des letzten Auftretens
- prot_init: Anzahl des Events, Zeitstempel des letzten Auftretens
- prot_ok: Anzahl des Events, Zeitstempel des letzten Auftretens
- prot_timeout: Anzahl des Events, Zeitstempel des letzten Auftretens
Internals
- XmitOpen: 1 = HMLAN ist sende bereit
- assignedIDs: HMIDs der HM Devices, die über dieses IO bedient werden
- assignedIDsCnt: Anzahl der zugewiesenen HMIds von FHEM
- assignedIDsReport: Anzahl der HMIds, die das HMLAN angibt zu bedienen. Die Zahl sollte identisch sein mit assignedIDsCnt
- msgKeepAlive: dlyMax: maximale Verzögerung, die ein keep-alive hatte. bufferMin: der minimale Zeitpuffer, der übrig blieb, bis das keep-alive zu spät gekommen wäre. Der Puffer sollte 2 oder größer sein, sonst könnte man gelegentlich disconnects bekommen.
- msgLoadEst: Funkbelastung des HMLAN. Der Wert wird über 1 Stunde akkumuliert. Sollten 100% erreicht sein, wird das HMLAN den Sendebetrieb einstellen. Der Wert ist eine Hochrechnung in FHEM. Es ist möglich, dass das HMLAN mehr belastet ist. Die 10 min werte zeigen die Belastung in den letzten 10min Perioden an.
- msgParseDly: Verzögerung der Message Verarbeitung vom Empfang im IO bis zur Verarbeitung in FHEM. Eine Verzögerung kann durch Prozesse an LAN, durch FHEM Prozesse oder sonstige Prozesse/Applikationen der CPU hervorgerufen werden.
Pairen von Geräten
Jedes HM Geräte muss vor Verwendung mit der HM-Zentrale gepairt werden. Dabei wird die hmId des gewählten IOs in das Device programmiert. Ändert man die hmId des IO, mit dem an das Device anspricht, muss man das Device neu pairen. Alle Geräte haben eine eigene hmId, das nicht änderbar ist. Details zum Pairen auf der Seite HomeMatic Devices pairen.
Bekannte Probleme
Selten lehnt der HMLAN-Konfigurator ohne erkennbaren Grund nach monatelangem störungsfreiem Betrieb die Verbindung ab:
Opening HMLAN1 device 192.168.168.60:1000 192.168.168.60:1000 connection refused
Der HMLAN-Konfigurator kann aber über die mitgelieferte Konfigurationssoftware problemlos erreicht werden. Der Zustand lässt sich auch durch einen Reboot des HMLAN-Konfigurators (oder Fhem) nicht beheben, wohl aber durch eine Aktualisierung der Firmware des HMLAN-Konfigurators, selbst wenn die installierte Version aktuell ist.
Wenn das Konfigurationsprogramm den HM-CFG-LAN LAN Konfigurations-Adapter zu finden, sollten alle nicht benutzten Netzwerkinterfaces vorübergehend deaktiviert werden. Vereinzelt gibt es Hinweise darauf, dass es unter Windows 7 eventuell nicht reicht, die Netzwerkverbindungen im "Netzwerk- und Freigabecenter" zu deaktivieren, sondern ein Deaktivierung der Netzwerkadapter im Gerätemanager erforderlich ist.
Wechsel von CUL zu HMLAN
Sollten Sie ein CUL als IO für Homematic-Geräte eingesetzt haben und jetzt einen Wechsel auf den HMLAN Konfigurator planen, hält sich der Aufwand in Grenzen:
- deaktivieren Sie das CUL in der fhem.cfg.
- konfigurieren Sie den HMLAN Konfigurator von Hand
- Ändern sie das Attribut IODev aller HM-Devices vom Namen der CUL auf den Namen des HMLAN
- sollte sie das Attribut IODev nicht nutzen (nicht empfohlen) achten sie darauf, dass im fhem.cfg das IO vor allen HM-devices definiert wird. Eine automatischen Zuweisung des IO zu den Devices ist sonst nicht möglich.
- der HMLAN muss die gleiche hmId wie das bisherige CUL erhalten. Ansonsten müssen alle Geräte neu gepairt / angelernt werden.
- AES muss im HMLAN abgeschaltet werden.
- verbinden Sie den HMLAN Konfigurator mit ihrem Netzwerk und ziehen das CUL aus der USB-Buchse.
- geben Sie in der FHEM-Befehlszeile shutdown restart gefolgt von <Enter> (nicht "save") ein (evtl. reicht auch ein rereadcfg).
- kontrollieren Sie im Event-Monitor und in den HM-Device-Logs von Fhem die Kommunikation.
Bitte beachten: Falls dem CUL keine explizite hmId per Attribut zugewiesen wurde, wird diese ID aus "F1<FHT-ID>" zusammengebaut. Die hmId muss auf dem HMLAN explizit gesetzt werden.
Links
- Software für den Konfigurationsadapter von der eQ-3 Site