Homematic wired

Begonnen von Henne1977, 26 Januar 2013, 22:46:00

Vorheriges Thema - Nächstes Thema

Dirk

Hb5,01,eQ3-HMW-LGW,1.0.4,KEQ0360763
Sb6
Das sieht doch schon ganz gut aus.
Jetzt sollte da auch was angezeigt werden wenn "Verkehr" auf dem Bus ist.

Poste das mal.

Gruß
Dirk

crazystone

habs kapiert, in meinem Beispiel war bei "Hb5,..." 'b5' die Sequenznummer. 'H' steht für Empfang, 'S' für Senden. Bei jedem neuen telnet Aufruf wird jedenfalls die Sequenznummer bei beiden fortgezählt.

Ok, aber wie kann ich jetzt etwas eingeben? Meine 'telnet' session (ich mache das mit putty) ist nicht wirklich interaktiv. Das Fenster geht immer wieder zu. Ich kann zwar etwas eingeben, sehe aber kein Echo...

Auch wenn ich es mit der normalen Kommandozeile von Windows mache, steht nach etwa 60s steht da "Verbindung zum Host verloren". Ich hab versucht schnell in den Keller zu laufen, ein paar Schaltaktionen, wieder hoch, um noch was zu sehen, aber das Fenster ist jedes Mal schon zu. Mir scheint da was faul...

Gibt es eine Möglichkeit über FHEM den Datenstream als raw anzuzeigen?

Dirk

ZitatAuch wenn ich es mit der normalen Kommandozeile von Windows mache, steht nach etwa 60s steht da "Verbindung zum Host verloren"
Die Gateways hätten gern ein Keepalive. Nach kurzer Zeit machen die die Verbindung zu. Zumindest der HMLAN macht das.
Kannst du mal Posten was für Nachrichten kommen wenn du die Eingänge eines Modules betätigst.

Gruß
Dirk

crazystone

Ich habe momentan nur zwei HMW-LC-Bl1-DR Rolladenaktoren da. Die haben zwei Druckschalter, die man wechselseitig betätigen kann. Das erzeugt den an dem Datenterminator sichtbaren Datenverkehr.

Egal was ich aber mit den Schaltern tue (hab schon meine Frau eingespannt um Knöpfchen zu drücken...WAF in Gefahr...), ich sehe nach der Erstausgabe im telnet-Fenster keinen weiteren Datenverkehr, bevor das Fenster wieder zugeht.

Ich denke ich sollte wohl versuchen das keep alive zu senden. Ist das der Grund, warum im FHEM Log oben die Verbindung immer wieder getrennt wird? Ist denn im HMLAN so ein Keep Alive implemntiert?
 

Dirk

Hm, sieht so aus, als ob das noch etwas initialisiert werden müsste.
Ich glaube das wird langsam schwierig ohne Zugriff auf das Teil da was weiter zu sagen.

Noch ein Versuch.
Das Teil mal als HM-LAN definieren. FHEM anwerfen initialisieren lassen, FHEM beenden und nochmal per Putty da drauf gehen.
Im Putty unter Session -> "Close window on exit" auf "Never" oder so einstellen.
Dann kann man nach dem Disconnect auch noch was erkennen.

mgernoth

Hallo,

Zitat von: crazystone schrieb am So, 25 August 2013 21:38Ich habe momentan nur zwei HMW-LC-Bl1-DR Rolladenaktoren da. Die haben zwei Druckschalter, die man wechselseitig betätigen kann. Das erzeugt den an dem Datenterminator sichtbaren Datenverkehr.

Egal was ich aber mit den Schaltern tue (hab schon meine Frau eingespannt um Knöpfchen zu drücken...WAF in Gefahr...), ich sehe nach der Erstausgabe im telnet-Fenster keinen weiteren Datenverkehr, bevor das Fenster wieder zugeht.

Du hast dann schon noch das >XX,0000 gesendet? Ansonsten kommt da auch bei Busverkehr nix.
Also wenn sich das Gateway mit Sb6 meldet, dann '>b7,0000' senden. H steht wahrscheinlich für Hello, S evtl. für Start...

Das Keep-Alive ist im Pcap in Paket 48 zu finden, das kann man aber nicht per Hand tippen... (fd 02 0e 4b)

Ich hab die Hardware nicht mehr da, sonst hätte ich jetzt auch nochmal getestet. Hab nur den Dump noch auf der Platte gehabt...

Gruß
  Michael

crazystone

Also ich glaube so komme ich jetzt hier nicht weiter, ich denke ich brauche jetzt etwas Perl-Code.

Man muss doch testweise das HMLAN Modul mal so patchen können, dass es das keepalive (fd 02 0e 4b alle 30s senden) für den LGW macht, oder?

Wenn das steht und auch FHEM den Socket offen hält, dann sollte ich ja bequem den Befehl '0000' mit vorangestellter nächster Sequenznummer senden können?

Wenn das steht, erwarten wir, dass man den Busverkehr transparent sieht?!

Wie wäre der discovery Befehl, stimmt die FE 04 01 AE D0?

Viele Grüße und Gute Nacht für heute! Danke für's weiterhelfen!

holle75

Hallo Dirk, ich baue gerade mein klitzekleines Feriendomizil mit Homematic aus. Spieltrieb. Dabei werde ich primär anfänglich wired Komponenten verwenden.

http://www.elv.de/homematic-wired-rs485-ueberspannungsschutz.html (könnte dieses durch das Netzteil plus Widerstand ersetzt werden? Sinnvoll?)
http://www.elv.de/mean-well-hutschienennetzteil-dr-60-24-24v.html
http://www.elv.de/mini-einlass-magnetkontakt.html (zum überprüfen, ob alle Fenster geschlossen)
http://www.elv.de/homematic-wired-rs485-schliesserkontakt-12-eingaenge-hutschienenmontage.html (Ist für die Fenstermagnetkontakte gedacht)
http://www.elv.de/homematic-wired-rs485-i-o-modul-12-eingaenge-7-schaltausgaenge-1.html (soll Taster/Schalter "auslesen" und dementsprechend Lampen/Steckdosen ein/ausschalten)

sind die anvisierten Produkte. Fhem wird auf einer fritzbox 7330 laufen (also tut es schon).

Habe den Thread aufmerksam gelesen und deinen Adapter unter Link bewundert.

Jetzt hätte ich noch die ein oder andere Frage. Wenn du oder ein freundliches Forumsmitglied Zeit finden würde/st diese zu beantworten wäre das sehr nett.

Wäre dein fhem-Modul Status Quo einsetzbar um die oben genannten Hutschienenmodule anzusteuern/zu programmieren?
Fällt dir ein (Denk-)Fehler in der Zusammenstellung der o.g. Komponenten auf?
Da ich nicht der versierte Elektronikbastler bin, wie kann ich deinen o.g. Adapter bekommen?
Könntest du mir dein fhem-Modul zukommen lassen?
Würdest du die Bussteuerung über USB (im Thread genannte Produkte) oder Lan (z.B. dein Adapter) empfehlen?

Als HM/fhem Neuanfänger ist das alles schon ein Haufen Info, die schwer zu kanalisieren ist. Dankbar für jede Hilfe.

Liebe Grüße

Holle

crazystone

Hi,

martinp, der owner des HMLAN hat mir noch einiges weitergeholfen, hier sein Input:

ZitatIch habe gerade einmal einenpcap aus dem post zerlegt. wenn ich dies recht sehe ist das messageformat
0xfd <length> <seq> data....

die keepAlive senden auf hier ein 'k'. Dein string ist
startFlag,Length=2, SeqNo=14, 'k'

Für HMLAN wird mit \r\n terminiert. Das sehe ich in deinem Log nicht. Kommentieren Zeile 499 einmal aus.
Du solltest auf das 'k' ein 'a'0x00 erhalten - kommt das?
Ausserdem muss die Antwort immer mit der gleichen Sequenz-nummer kommen, mir der die nachricht (oder die letzte Nachricht einer Sequenz) gesendet wurde.

das FD ist evtl ein format der message. Es wird wahrscheinlich fast immer genutzt, die ersten beiden Messages divergieren
Hast du vor, HMLAN zu nutzen? Müssen wir wired hier "einbauen"?


Hier der Zerlegte PCAP in hex

>> : h:48 30 35 2c 30 31 2c 65 51 33 2d 48 4d 57 2d 4c 47 57 2c 31 2e 30 2e 35 2c 4b 45 51 30 31 31 32 34 36 35 0d 0a 53 30 36 0d 0a
<<: h:3e 30 36 2c 30 30 30 30 0d 0a
<<: h:fd len:02 seq:01 Data:4b #keepAlive 'k'
>> : h:fd len:03 seq:01 Data:61 00 #Answer 'a'
<<: h:fd len:0d seq:02 Data:53 00 ff ff ff ff 98 00 00 00 01 7a
<<: h:fd len:0d seq:03 Data:53 00 ff ff ff ff 9c 00 00 00 01 7a
<<: h:fd len:04 seq:04 Data:44 00 ff
>> : h:fd len:06 seq:00 Data:64 00 00 a8 53
>> : h:fd len:05 seq:01 Data:63 00 00 01
<<: h:fd len:02 seq:05 Data:4b #keepAlive 'k'
>> : h:fd len:03 seq:05 Data:61 00 #Answer 'a'
<<: h:fd len:0d seq:06 Data:53 00 ff ff ff ff 9e 00 00 00 01 5a
<<: h:fd len:0d seq:07 Data:53 00 ff ff ff ff 98 00 00 00 01 5a
<<: h:fd len:0d seq:08 Data:53 c8 00 00 a8 53 98 00 00 00 01 68
>> : h:fd len:05 seq:08 Data:72 98 10 00
<<: h:fd len:0d seq:09 Data:53 c8 00 00 a8 53 1c 00 00 00 01 76
>> : h:fd len:05 seq:09 Data:72 5a 03 06
<<: h:fd len:0d seq:0a Data:53 c8 00 00 a8 53 1e 00 00 00 01 6e
>> : h:fd len:0d seq:0a Data:72 7c 4a 45 51 30 37 31 33 39 39 33
<<: h:fd len:10 seq:0b Data:53 c8 00 00 a8 53 18 00 00 00 01 52 00 00 10
>> : h:fd len:13 seq:0b Data:72 1e ff 14 ff ff ff ff fe 00 ff ff ff ff ff ff ff ff
<<: h:fd len:20 seq:0c Data:53 c8 00 00 a8 53 1a 00 00 00 01 57 00 00 10 ff 14 00 00 00 01 ff 00 ff ff ff ff ff ff ff ff
>> : h:fd len:03 seq:0c Data:72 39
<<: h:fd len:11 seq:0d Data:53 c8 00 00 a8 53 1c 00 00 00 01 45 00 00 10 40
>> : h:fd len:0f seq:0d Data:72 58 65 00 00 10 01 00 00 00 00 00 00 00
<<: h:fd len:02 seq:0e Data:4b #keepAlive 'k'
>> : h:fd len:03 seq:0e Data:61 00 #Answer 'a'

Gruss Martin


Ich habe ihm auch schon geantwortet und hoffe ihn hier im Thread begrüßen zu können.

Anbei für andere zum Download auch noch die Protokoll-Kurzinfo. Von Dirk gibt es noch ein deutlich umfänglicheres Dokument. Ich versuche jetzt mal weiter, das HMLAN zu manipulieren und zum "keepAlive" für das wired Gateway zu überreden.

Viele Grüße
Thorsten

Dirk

Die HS485 Dokumentation ist nur die "halbe Miete". Hier ist das "richtige" Dokument:
Link

Sieht fast so aus, dass ich mir auch mal das HMW-GW besorgen muss.
Oder kannst du deines mal für ein paar Wochen entbehren?

Dann baue ich die Unterstützung in die aktuelle Version von der HM485-Module ein.

Die bisher unterstützen Adapter sind alle "dumm". Daher habe ich die Protokollunterstützung hier softwareseitig im FHEM imlementiert.
Das HMW-GW hat die Protokollunterstützung intern eingebaut. Allerdings ist die Ansteuerung von außen nicht dokumentiert und der Hersteller möchte das wohl auch nicht. Daher muss man hier ein Bisschen "probieren".

Gruß
Dirk

crazystone

Hallo Dirk,

ich bin jeden Tag einen kleinen Schritt weiter, ich denke wir schaffen das "remote"...

Dank eines Tipps, den ich jetzt auch in

http://forum.fhem.de/index.php?t=msg&goto=92178&rid=2104#msg_92178

gepostet habe, kann ich auf der FB mitsniffen, was FHEM und HMW_LGW miteinander reden. Und was soll ich sagen, das sieht schon ziemlich gut aus (siehe gefilterete .pcap).

Ich habe (nur zum Testen) im Modul 00_HMLAN das keepAlive in Zeile 534 gepatcht (in einer Spielversion), so dass HMLAN das richtige keepAlive für den HMW-LGW (hex FD 02 0E 4B) sendet.


############################# THO, 26.08.2013
#HMLAN_SimpleWrite($hash, "K");
# keepalive for HMW-LGW
my $msg = sprintf('%c%c%c%c',0xfd,0x02,0x0e,0x4b);
HMLAN_SimpleWrite($hash,$msg);
############################# THO, 26.08.2013


Das macht HMLAN dann auch brav, siehe .pcap. Der HMW-LGW, und das war die Überraschung, antwortet auch brav jedes Mal mit einem ACK. Allerdings versteht HMLAN das ACK nicht, so dass es nach drei Versuchen die Verbindung schließt. In kleinen Schritten nähern wir uns...


Viele Grüße
Thorsten

crazystone

Ok, martinp876, da brauche ich Hilfe.

Das 00_HMLAN Modul, die Funktion HMLAN_Parse analysiert ja die Antwort. Jetzt habe ich das Problem, dass der HMW-LGW zwar ein ACK schickt, aber soweit ich sehen kann ohne Data Inhalt. Wie bringe ich ihm das bei?

Wie kann ich mir den Log-Inhalt anschauen, da müsste jetzt eigentlich einiges drinstehen...

Vielen Dank
Thorsten

Dirk

Zitatich bin jeden Tag einen kleinen Schritt weiter, ich denke wir schaffen das "remote"...
Kein Problem.

Wenn du genügend Erkenntnisse zusammengetragen hast, kann ich das ja in ein entsprechendes Modul einbauen (oder du machst das), welches dann die Kommunikation zum HMW-LAN für das HM485-Modul übernimmt. Das ist wird dann eine Alternative zum HM485_SERIAL - Modul.

Gruß
Dirk

martinp876

Hallo Thorsten,

hast du schon einmal loglevel =1 für HMLAN gesetzt? Was kommt den?

Gruss Martin

Dirk

#119
Hallo holle75,

sorry, deinen Beitrag habe ich fast übersehen.

Zitat von: holle75 schrieb am Di, 27 August 2013 15:46http://www.elv.de/homematic-wired-rs485-ueberspannungsschutz.html (könnte dieses durch das Netzteil plus Widerstand ersetzt werden? Sinnvoll?)
Das Netzteil ist hierbei egal. Den Widerstand kann man aber auch selber "Bauen" http://commons.wikimedia.org/wiki/File:Rs485-bias-termination.svg
Einen Überspannungsschutz finde ich grundsätzlich aber nicht schlecht. Das wird aber auch ohne funktionieren.

Update:
Als Widerstände sollten dann welche mit diesen Werte genommen werden
VCC - A = 22K
A - B = 5,6K
B - GND = 4,7K

Zitathttp://www.elv.de/homematic-wired-rs485-i-o-modul-12-eingaenge-7-schaltausgaenge-1.html (soll Taster/Schalter "auslesen" und dementsprechend Lampen/Steckdosen ein/ausschalten)
Hier musst du beachten, dass das Modul nur einen gemeinsamen Rückleiter hat. Also alles was du hier rüber schalten möchtest läuft über die selbe Sicherung und darf in Summe auch nur max. mit 16A belastet werden.
Für Licht ist das sicher ausreichend, für schaltbare Steckdosen währ ein HMW-LC-SW2-DR ggf. besser geeignet.

ZitatWäre dein fhem-Modul Status Quo einsetzbar um die oben genannten Hutschienenmodule anzusteuern/zu programmieren?
Ja, die Programmierung und auch die Einrichtung von Direktverknupfungen, also das Peering wird wohl derzeit noch etwas Aufwendiger, da man die zu setzenden Register und deren Werte derzeit selber ermitteln muss.

ZitatDa ich nicht der versierte Elektronikbastler bin, wie kann ich deinen o.g. Adapter bekommen?
Schick mir dazu mal eine PM.

ZitatKönntest du mir dein fhem-Modul zukommen lassen?
Schick ich dir heute abend.

ZitatWürdest du die Bussteuerung über USB (im Thread genannte Produkte) oder Lan (z.B. dein Adapter) empfehlen?
Das kommt vermurlich auf deine Vorlieben an. Die Anbindung über USB muss halt in der Nähe des FHEM-Servers erfolgen. Beim Netzwerkmodul ist man hier räumlich unabhängiger.

Gruß
Dirk