HomeMatic Wired - HMW-LAN-Gateway

Begonnen von Dirk, 02 September 2013, 21:38:44

Vorheriges Thema - Nächstes Thema

matzefisi

Hi Dirk,

ZitatNach dem Discovery sollte der 12-7er als Gerät angelegt worden sein. Incl. seiner 12+7 Kanäle. Die Kanäle 13-19 sollten ein on / off haben und entsprechend reagieren. Incl. Lampe im WebUI und Rükmeldung..

Stimmt. Jetzt nach einem FHEM Neustart sind die On/Off Buttons da!?!?

Perfekt! Danke!

MfG
Matthias

ManfredC

#106
Hi Dirk,

Zitat von: Dirk am 27 Oktober 2013, 12:15:08
Hi Manfred und Matthias,
Die Comm-LED's sind von der Software unabhängig und müssen bei Datenverkehr auf dem Bus auch blinken wenn der hm485d nix macht.

Das ist zumindest bei dem Teil hier nicht richtig:

kmtronic.com usb-to-rs485-ftdi-interface

Es gibt LEDs für TX und RX. TX blinkt wenn vom PC aus was gesendet wird, auch bei nicht angeschlossenem RS485 Bus.

Bei mir funktioniert es ja prinzipiell. Ich sehe Traffic vom/zum HM585d, aber der Status in FHEM ändert sich nicht, und ich kann keine Ausgänge schalten. Habe noch einen HM RS485HS12-7, für den sollte das Device-File ja passen.

Wenn ich den Homematic Lan Adapter verwende, habe ich das gleiche Ergebnis wie mit dem KMtronic USB <=> USB Adapter. Drum denke ich nicht dass es am nicht angeklemmten GND liegt.

Grüße,

Manfred

ManfredC

Zitat von: Dirk am 27 Oktober 2013, 13:01:58
Achso,

Einen Busabschluss habt ihr aber angeschlossen?

klar, ich habe den Überspannungsschutz mit schaltbarem Busabschluss.

Grüße,

Manfred


Dirk

Hallo Manfred,

Zitat von: ManfredC am 27 Oktober 2013, 18:32:13
Es gibt LEDs für TX und RX. TX blinkt wenn vom PC aus was gesendet wird, auch bei nicht angeschlossenem RS485 Bus.
Bei getrennten TX und RX-LED's Stimmt das.

ZitatBei mir funktioniert es ja prinzipiell. Ich sehe Traffic vom/zum HM585d
Die RX-LED sollte aber unabhängig von der Software den Traffic auf dem Bus anzeigen.
Wenn RX Beim Schalten am Device nix Tut, tippe ich auf ein Problem mit der Verkabelung.
Dann klappt auch kein Senden. Auch wenn TX entsprechend blinkt.

ZitatHabe noch einen HM RS485HS12-7, für den sollte das Device-File ja passen.
Ja, der sollte schalten, den Status richtig interpretieren und auch Tastendrücke am Device sollten Events in FHEM auslösen.

ZitatWenn ich den Homematic Lan Adapter verwende, habe ich das gleiche Ergebnis wie mit dem KMtronic USB <=> USB Adapter. Drum denke ich nicht dass es am nicht angeklemmten GND liegt.
Ich hatte schon jede Menge Probleme die sich am Ende als Fehler in der Verkabelung herausgestellt hatten wo ich mich in der Software vorher "Dumm und Dämlich" gesucht hatte.

Teste mal FHEM/lib/HM485/test/hs485_dump.pl. (Funktioniert derzeit nur mit RS485-RS232/USB Adapter)
Hier musst du ggf. in Zeile 6
my $DEV = '/dev/ttyUSB1';
deine Interface-Schnittstelle anpassen.

Hier sollte alles was auf dem Bus kommt als RAW-HEX angezeigt werden. Ohne Protokollinterpretation.

Gruß
Dirk

ManfredC

#109
Zitat von: Dirk am 27 Oktober 2013, 18:54:02

Ja, der sollte schalten, den Status richtig interpretieren und auch Tastendrücke am Device sollten Events in FHEM auslösen.
Ich hatte schon jede Menge Probleme die sich am Ende als Fehler in der Verkabelung herausgestellt hatten wo ich mich in der Software vorher "Dumm und Dämlich" gesucht hatte.

den habe ich aber noch nicht.
Zitat
Teste mal FHEM/lib/HM485/test/hs485_dump.pl. (Funktioniert derzeit nur mit RS485-RS232/USB Adapter)
Hier musst du ggf. in Zeile 6
my $DEV = '/dev/ttyUSB1';
deine Interface-Schnittstelle anpassen.

Hier sollte alles was auf dem Bus kommt als RAW-HEX angezeigt werden. Ohne Protokollinterpretation.

es geht ja prinzipiell. Nur das kein Ausgang schaltet und auch kein Status angezeigt wird. Ich habe ein Netzteil, den Überspannungsschutz mit Abschlusswiderstand, einen HMW_IO_12_Sw14_DR, ein HMW_IO_4_FM und wahlweide das HMW-Lan Interface oder den USB <=> RS485 Adapter. Das ganze an einem Pi. Da ist die Verdrahtung recht übersichtlich.


Ich kann aber keine Relais schalten und sehe auch nur Fragezeichen bei den Eingängen. Ein get Info am HMW_IO_4_FM sieht z.B. so aus:

2013.10.27 19:28:54.596 4: HM485d: Rx: FD0D4B53C8000033371E0000000168
2013.10.27 19:28:54.616 3: HM485d: Tx: (75:1) I[3](0,F,B)(1E) 00000001 -> 00003337 [3] 68(h)  {A6EC}
2013.10.27 19:28:54.640 3: HM485d: Rx: Response: (75) I[2](3,F,B)(7C) 00003337 -> 00000001 [4] 10() 00 {E834}
2013.10.27 19:28:54.665 3: HM485d: Tx: ACK(2,B)(59) 00000001 -> 00003337 [2] {8938}
2013.10.27 19:28:54.669 4: HM485d: Tx: FD054B727C1000
2013.10.27 19:28:54.681 3: HM485d: Rx: ACK(2,B)(59) 00000001 -> 00003337 [2] {8938}
2013.10.27 19:28:54.785 4: HM485d: Rx: FD0D4C53C80000333718000000016E
2013.10.27 19:28:54.799 3: HM485d: Tx: (76:1) I[0](0,F,B)(18) 00000001 -> 00003337 [3] 6E(n)  {2266}
2013.10.27 19:28:54.825 3: HM485d: Rx: Response: (76) I[3](0,F,B)(1E) 00003337 -> 00000001 [12] 46(F) 455130303732353836 {14F6}
2013.10.27 19:28:54.836 3: HM485d: Tx: ACK(3,B)(79) 00000001 -> 00003337 [2] {FC7E}
2013.10.27 19:28:54.840 4: HM485d: Tx: FD0D4C721E46455130303732353836
2013.10.27 19:28:54.910 4: HM485d: Rx: FD0D4D53C8000033371A0000000176
2013.10.27 19:28:54.931 3: HM485d: Tx: (77:1) I[1](0,F,B)(1A) 00000001 -> 00003337 [3] 76(v)  {1E28}
2013.10.27 19:28:54.957 3: HM485d: Rx: Response: (77) I[0](1,F,B)(38) 00003337 -> 00000001 [4] 03() 06 {2F62}
2013.10.27 19:28:54.968 3: HM485d: Tx: ACK(0,B)(19) 00000001 -> 00003337 [2] {50B6}
2013.10.27 19:28:54.971 4: HM485d: Tx: FD054D72380306
2013.10.27 19:28:54.993 3: HM485d: Rx: ACK(0,B)(19) 00000001 -> 00003337 [2] {50B6}


Ein Get Config bringt eine Bildschirmausgabe von über einer Seite, ein Get State auf das Device oder einen einzelnen Ausgang lässt weder eine LED auf dem Adapter blinken, nocht gibts eine Ausgabe vom HM485d.

Grüße,

Manfred


ManfredC

Hallo Dirk,

setzen von HMW_IO_12_Sw14_DR_KEQ0182158_21 als digital Input:

Use of uninitialized value $adressStep in multiplication (*) at FHEM/lib/HM485/ConfigurationManager.pm line 136.
Use of uninitialized value $adressStart in addition (+) at FHEM/lib/HM485/ConfigurationManager.pm line 136.
Use of uninitialized value $addressId in int at FHEM/lib/HM485/ConfigurationManager.pm line 142.
2013.10.27 19:50:15.096 4: HM485d: Rx: FD119753C80000A96E1C000000015700000100
2013.10.27 19:50:15.111 3: HM485d: Tx: (151:1) I[2](0,F,B)(1C) 00000001 -> 0000A96E [7] 57(W) 00000100 {F4AC}
2013.10.27 19:50:15.149 3: HM485d: Rx: ACK(2,B)(59) 0000A96E -> 00000001 [2] {233A}
2013.10.27 19:50:15.152 4: HM485d: Tx: FD03977259
2013.10.27 19:50:35.267 4: HM485d: Rx: FD02984B


Grüße,

Manfred

Dirk

Zitates geht ja prinzipiell.
Ah, ok. Irgendwie hatte ich das bisher falsch verstanden.
Dein Log sieht auch gut aus.
"get info" fragt die Grundsätzlichen Geräteeigenschaften ab. Also Typ, Seriennummer, Firmware-Version.

ZitatEin Get Config bringt eine Bildschirmausgabe
bei "get config" wird der gesammte benutzte EEprom ausgelesen. Zu je 16 Byte blöcken.
Da kommt dann etwas mehr :)

So sollte aber Discovery auch was finden.

Zitatden habe ich aber noch nicht.
Dann hatte ich das hier falsch verstanden
Zitat von: ManfredC am 27 Oktober 2013, 18:32:13
Habe noch einen HM RS485HS12-7, für den sollte das Device-File ja passen.

Die IO-Leitungen des HMW_IO_4_FM sind Standartmässig auf Eingang geschaltet.
Hier sollte es eine Aktion geben wenn du eine der Leitungen mit GND brückst.
Schalten geht dann nur, wenn diese Auf Ausgang konfiguriert werden.
Da bin ich noch an der Umsetzung.

Welche Geräte hast du alles?

Gruß
Dirk

Dirk

Zitat von: ManfredC am 27 Oktober 2013, 19:51:45
setzen von HMW_IO_12_Sw14_DR_KEQ0182158_21 als digital Input:
Das setzen der Config ist noch nicht fehlerfrei.
Vor allem die I/O Geräte sind hier noch nicht fertig.

ManfredC

Hi Dirk,

sorry, bei dem HM RS485HS12-7 hatte ich das Wörtchen "bestellt" vergessen ;-)

Zitat von: Dirk am 27 Oktober 2013, 19:56:25

So sollte aber Discovery auch was finden.
Dann hatte ich das hier falsch verstanden
Die IO-Leitungen des HMW_IO_4_FM sind Standartmässig auf Eingang geschaltet.
Hier sollte es eine Aktion geben wenn du eine der Leitungen mit GND brückst.

Ich sehe eine Aktion im Terminalfenster, aber die Stausseite in FHEM zeigt weiter ????

ZitatSchalten geht dann nur, wenn diese Auf Ausgang konfiguriert werden.
Da bin ich noch an der Umsetzung.

Wäre ja schon froh wenn ich es als Input nutzen könnte. Mein Junior baut ein Haus. Die HMW_10_4 sollen als Tasterschnittstelle dienen.

ZitatWelche Geräte hast du alles?

HMW_IO_4_FM
HMW_IO_12_Sw14_DR
HMW_IO_12_FM

Beim triggern eines Eingangs am HMW_IO_12_Sw14_DR sehe ich Daten, aber keine Statusänderung in FHEM, nur ????
Relais schalten nicht
Eingang am HMW_IO_4_FM =>Daten auf der Konsole, aber nur ???? in Fhem.

Bei "Get State" am HMW_IO_12_Sw14_DR_KEQ0182158_15 sollte doch auch Daten zum Gerät gehen und auch zurück? Ich sehe nix auf der Konsole, und auch keine LED-Aktion.

Grüße,

Manfred

Dirk

Hi Manfred,

ZitatBeim triggern eines Eingangs am HMW_IO_12_Sw14_DR sehe ich Daten, aber keine Statusänderung in FHEM, nur
Ah, jetzt lüftet soich der Nebel :)

Also das einzigste was derzeit ohne RAW-Befehle funktioniert ist der HMW-IO-12-Sw7-DR und der HMW-LC-Sw2-DR.

Die Lösung ist also recht einfach.
Noch ein bisschen gedulden :)

Ich schau mal, ob ich die ein Paar RAW-Befehle für den HMW-IO-12-Sw14-DR zusammenstellen kann.
Dann kannst du das schon mal schalten.

Gruß
Dirk

Dirk

Hallo Manfred,

hier die RAW-Befehle um die Ausgänge des HMW_IO_12_Sw14_DR zu schalten:

set HM485_LAN RAW TTTTTTTT 98 00000001 73AAVVVV

TTTTTTTT: Target Adresse
AA:       Nummer des Ausgangs (00 - 0C) wobei die Zähliung bei 0 beginnt und ein HEX-Wert ist
VVVV:     Value ans HEX-Zahl


Die Ausgänge 00 bis 05 sind die Relais-Ausgänge
Value: 03FF = Ein, Value: 0000 = aus

Die Ausgänge 06 bis 0C sind die Digitalausgänge. Hier gilt das gleiche wie oben.

Wenn diese Ausgänge allerdings als Frequenzausgang konfiguriert sind, dann gilt:
Value entspricht hier dann der Frequenz in Milliherz:
1000, also 03E8 Hex entspricht z.B. 1 Herz
50000 also C350 Hex entspricht 50 Herz

Hier also das erste Relais eines Aktors mit der Adresse 01234567 erst ein, dann aus
set HM485_LAN RAW 01234567 98 00000001 730003FF
set HM485_LAN RAW 01234567 98 00000001 73000000


Gruß
Dirk

jkrogma

Hallo Dirk,

nur mal interessehalber: woher nimmst Du dieses Wissen über die Homematic Protokolle? Gibt es dazu Dokumente? Benutzt Homematic einen Standard?

Grüße
Jan

Dirk

Hi Jan,

das Homematic-Wired Protokoll setzt auf dem HS485 Protokoll auf, welches vor einigen Jahren von ELV veröffentlicht wurde.
Die Erweiterungen galt es also "nur" durch mithören auf dem Bus heraus zu finden.
Die Daten der einzelnen Frames sind wiederum in den Device-XML-Dateien beschrieben welche der Firmware der CCU beiliegen.

Gruß
Dirk

ManfredC

Hallo Dirk,

Zitat von: Dirk am 28 Oktober 2013, 00:11:39
Hallo Manfred,

hier die RAW-Befehle um die Ausgänge des HMW_IO_12_Sw14_DR zu schalten:


Danke, ich bin bis Mittwoch oder Donnerstag auf Dienstreise. Werde es gleich testen wenn ich zu Hause bin. Bis dahin sollte auch der HM RS485HS12-7 geliefert worden sein.

Danke für Deine Arbeit!

Grüße,

Manfred

matzefisi

Hi Dirk,

mir ist noch ne Kleinigkeit aufgefallen. Wenn ich über das Mobile Webinterface (übers Iphone) einen Aktorkanal setze dauert es ziemlich, bis der Status (also das Lampenicon) geändert wird. Das führt dann ab- und zu dazu, dass die Lampen mehrfach ein und ausgeschaltet wird  ;). Ich denke mal das hängt damit zusammen, dass auf die Rückmeldung vom Aktor gewartet wird, ob der Befehl umgesetzt wurde. Richtig?

Ansonsten läuft das HMW-IO-12-Sw7-DR was die Aktorkanäle angeht schon sehr gut bei mir im Produktiveinsatz. Die Sensorkanäle werde ich dann jetzt am Wochenende mal angehen. Ich werde mal ein paar Taster auflegen und versuche damit schon mal einen Zuhausestatus umzusetzten. Und falls ich es noch schaffe, werde ich auch schon mal eine Jalousie auf den Jalousienaktor auflegen.

MfG
Matthias.