Hallo zusammen,
ich beschäftige mich auch seit einigen Tagen mit dem Thema "Homebrew HMW-device mit Arduino" und war deshalb total begeistert, als ich diesen Thread gefunden habe.
Ich verwende einen Arduino Uno, den ich direkt per USB mit FHEM verbinde (erstmal zum Testen, RS485 kommt später). Das Device im FHEM ist dementsprechend /dev/ttyACM0.
Was bisher funktioniert: mit "define client HM485 000000AB" und "get client info" wird der Client angelegt und Infos zu HW-Typ, Version und Seriennummer abgefragt. Der Arduino-Client liefert diese Infos zurück (gibt sich als HMW_IO_12_Sw7_DR aus), so dass im FHEM 12 keys und 7 switches angelegt werden. Soweit so gut. Jetzt zu den Problemen.
Schalten der Ausgänge:
Beim Schalten der Ausgänge (z.B. client_14 auf ON) schickt FHEM zunächst 3x eine Botschaft raus, deren Bedeutung mir nicht ganz klar ist. Bei der anschließenden Botschaft wird der Befehl "x" verwendet, laut Protokoll-Doku hätte ich hier "s" erwartet. Ist das eine "normale" Kommunikation oder läuft hier irgend etwas schief, weil der Client noch nicht vollständig gepairt ist?
2014.05.11 13:06:09 3: HM485_LAN: TX: (93) I[0](0,F,B)(18) 00000001 -> 000000AB [2] FF(?)
2014.05.11 13:06:09 3: HM485_LAN: ACK: (93)
2014.05.11 13:06:09 3: HM485_LAN: Response: (93)
2014.05.11 13:06:09 3: HM485_LAN: TX: (94) I[1](0,F,B)(1A) 00000001 -> 000000AB [2] FF(?)
2014.05.11 13:06:09 3: HM485_LAN: ACK: (94)
2014.05.11 13:06:09 3: HM485_LAN: Response: (94)
2014.05.11 13:06:09 3: HM485_LAN: TX: (95) I[2](0,F,B)(1C) 00000001 -> 000000AB [2] FF(?)
2014.05.11 13:06:09 3: HM485_LAN: ACK: (95)
2014.05.11 13:06:09 3: HM485_LAN: Response: (95)
2014.05.11 13:06:09 3: HM485_LAN: TX: (96) I[3](0,F,B)(1E) 00000001 -> 000000AB [5] 78(x) 0DC8
2014.05.11 13:06:09 3: HM485_LAN: ACK: (96)
2014.05.11 13:06:09 3: HM485_LAN: Response: (96) 780DC8
Lesen der Eingänge:
Wird am Arduino eine angeschlossene Taste gedrückt, verschickt der Client die folgende Botschaft:
2014.05.11 13:16:34-681 3: HM485d: Rx: I[2](0,Y,F,B)(9C) 000000AB -> FFFFFFFF [6] 4B(K) 01000A {8DFA}
In der FHEM-Zentrale passiert allerdings nichts (die Zeile steht auch nicht im allgemeinen Logfile, sondern nur in dem Logfile für das HM485-Gateway). Auch hier wieder die Frage, ob sich der Client "normal" verhält und es an den Einstellungen im FHEM liegt, oder ob die Botschaften von Original-HMW-Clients anders aussehen.
Zusammengefasst habe ich folgende Fragen:
1. Hat jemand Interesse an dem Arduino-Code? Dann würde ich das ganze nochmal etwas aufräumen, den Code mehr kommentieren und posten. Ist allerdings nichts was wirklich ausgereift ist, sondern nur schnell zusammen geschrieben, um die Kommunikation testen zu können.
2. Hat vielleicht jemand die Rohdaten von einer Kommunikation zwischen FHEM und Aktor bzw. FHEM und Sensor?
3. Sind die Quellen für das HMW-Gateway, die im Wiki angegeben sind (
https://github.com/kc-GitHub/FHEM-HM485), noch aktuell, oder gibt es mittlerweile irgendwo Arbeitsstände mit weiteren Funktionen?
4. Irgendwo im Netz habe ich die Protokolldoku von Dirk gefunden. Besten Dank dafür - großartige Hilfe! Ist die Version 14 vom 04.04.2012 die aktuellste die es gibt? Besonders interessieren mich etwas mehr Details zum Discovery-Mode, aber dazu stelle ich später vielleicht noch ein paar Fragen. Eins nach dem Anderen.
Besten Dank & schöne Grüße
Markus
PS: Sorry, dass meine Fragen so protokolllastig sind - hab gesehen, dass es dazu auch einen eigenen Thread gibt. Aber wegen dem Arduino/Homebrew-Thema passt es hier vielleicht auch rein.