Homematic Wired - Homebrew Devices

Begonnen von Thorsten Pferdekaemper, 27 April 2014, 00:13:17

Vorheriges Thema - Nächstes Thema

Mr. P

Hej folks,

nachdem Anfang der Woche meine 03er-Sensoren von Dirk eingetroffen sind und alle brav ihren Dienst verrichten, wollte ich an einen von diesen jetzt meine geplante 1-Wire Erweiterung anhängen.
Hilf- und planlos hab ich mir jetzt einen der Sensoren angesehen, ein wenig im Git und hier im Forum rumgesucht, aber so ganz schlüssig, wie ich es gerne wäre, bin ich leider noch nicht. :-/
Was will ich machen: An den einen Sensor würde ich gerne eine Klinkenbuchse anlöten, um daran die entsprechenden Sensoren anzuschließen.
Meine ersten beiden Fragen lauten daher:
1) Wo muss ich die drei nötigen Pins anlöten und
2) Welche Firmware muss ich nutzen (diese hier?) um sowohl die bereits vorhandenen als auch 1-wire nutzen zu können?

Vielen Dank für die Infos! :-)
Greetz,
   Mr. P

Dirk

Im Prinzip brauchst du nur noch die 1-Wire-Lib
Das Handling der 1-Wire Sensoren muss man noch bauen. Weil da jeder Sensor ja eine eigene ID hat. Die muss man dann intern auf verschiedene Kanäle mappen.

ZitatWo muss ich die drei nötigen Pins anlöten und
Den Pin kann man sich bei der Initialisierung der Lib aussuchen. Ist ja nur einer. In der Beispiel-Firmware ist das A3 (PC3 vom Atmega328).
Zusätzlich kommt dann noch GND und VCC an den Sensor.
Schau mal im Wiki, da ist auch der Schaltplan und der Bestückungsplan vom Sensor.

ZitatWelche Firmware muss ich nutzen (diese hier?) um sowohl die bereits vorhandenen als auch 1-wire nutzen zu können?
Ja. Das ist die Firmware für HM-Wired.

MarkusO

Hallo,
ich hab in den letzten Tagen Thorstens 1-Wire-Client nachgebaut. Scheint soweit auch zu laufen, das Modul sendet die Daten korrekt auf dem Bus. Allerdings habe ich Probleme, das Modul im FHEM anzulegen. Ich verwende FHEM auf einem RPi zusammen mit einem einfachen USB-RS485-Wandler, d.h. ich kann nicht direkt das xml-File aus dem Github verwenden, sondern muss daraus erst ein pm-File erstellen. Zum Konvertieren habe ich Dirks xmlHelper.pl verwendet. Das pm-File sieht allerdings fehlerhaft aus (z.B. werden nicht alle " durch ' ersetzt), so als wäre das Skript nicht komplett durchgelaufen. Jetzt weiß ich nicht, ob der Fehler beim Skript oder im xml-File liegt.

Hat jemand schon mal das 1-Wire-Device über das pm-File in FHEM eingebunden und könnte die Datei zur Verfügung stellen? Oder hat jemand einen Tipp zur Fehlersuche - meine Perl-Kenntnisse gehen leider gegen null... Die konvertierte Datei ist angehangen.

Grüße
Markus

Dirk

Hallo Markus,
Zitat von: MarkusO am 30 August 2014, 00:18:57
Allerdings habe ich Probleme, das Modul im FHEM anzulegen.
Dafür gibts bei HM-Wired noch keine Unterstützung für FHEM. Da müsstest du aktuell selber die Module Patchen.
Am besten du benutzt dafür die Module aus der DEV-Branch.
Hier kann ich die auch ein entsprechendes Device-PM für den Sensor schicken. Das sollte man dann etwas einfacher zum laufen bekommen.

ZitatZum Konvertieren habe ich Dirks xmlHelper.pl verwendet. Das pm-File sieht allerdings fehlerhaft aus (z.B. werden nicht alle " durch ' ersetzt), so als wäre das Skript nicht komplett durchgelaufen. Jetzt weiß ich nicht, ob der Fehler beim Skript oder im xml-File liegt.
Ah, ok, das benutz du schon. Ich kann mir das heute Abend mal anschauen.

Gruß
Dirk

MarkusO

Hi Dirk,
wär großartig, wenn du mir dazu ein pm-File zuschicken könntest. Vielen Dank vorab.

Weil ich mit dem Temperatursensor nicht so richtig weiter komme, habe ich angefangen, das HMW-LC-Bl1 nachzubauen. Leider habe ich kein Original-Modul und kann das Verhalten deshalb nicht testen. Vielleicht kann jemand, der ein Original-Modul hat, die folgenden Fragen beantworten:

1. In Dirks Protokollbeschreibung habe ich folgendes für die Rollo-Aktoren gefunden (gelb hinterlegt, also noch nicht verifiziert): Runter - 0x20, Hoch - 0x10, Aus - 0xFE, Auf Schlitz fahren - 0xFF.
Die FHEM-Zentrale verschickt jedoch die folgenden Werte: 0x00 bis 0xC8 - Sollposition.
Hat jemand Erfahrung mit dem Gerät und kann irgend etwas davon bestätigen? Besonders würde mich interessieren, ob es tatsächlich einen Befehl für "auf Schlitz fahren", Togge und Stop gibt.

2. Wenn eine Taste lang gedrückt und dann losgelassen wird, kommt dann ein bestimmtes Event, dass sich von den "Wiederholungs-Events" unterscheidet? Konkret wäre das hilfreich, wenn man bei lang gedrückter Taste das Rollo nur so lange verfährt, bis die Taste wieder losgelassen wird. Mir ist klar, dass das im Device intern gelöst werden könnte, aber schicker wäre es, wenn das HMW-Protokoll so etwas schon vorsieht und ich nicht vom Standard abweichen müsste.

Grüße
Markus

Thorsten Pferdekaemper

Zitat von: MarkusO am 01 September 2014, 23:51:08
2. Wenn eine Taste lang gedrückt und dann losgelassen wird, kommt dann ein bestimmtes Event, dass sich von den "Wiederholungs-Events" unterscheidet? Konkret wäre das hilfreich, wenn man bei lang gedrückter Taste das Rollo nur so lange verfährt, bis die Taste wieder losgelassen wird. Mir ist klar, dass das im Device intern gelöst werden könnte, aber schicker wäre es, wenn das HMW-Protokoll so etwas schon vorsieht und ich nicht vom Standard abweichen müsste.
Hi,
soweit ich das sehe (und gerade bei meinem Original-HMW-LC-Sw2-DR ausprobiert habe) kommt beim Loslassen nach einem langen Tastendruck nicht nochmal ein Extra-Event. Nach der Zeit, die für einen langen Tastendruck eingestellt ist, kommt der erste "4B-lang", der dann alle etwa 300ms wiederholt wird. Beim Loslassen kommt nichts mehr.
Im Prinzip muss man das wahrscheinlich so machen: Fahre bei einem "4B-lang" immer 300ms weiter (oder vielleicht ein bisschen mehr um Ruckler zu vermeiden). Wenn danach keine Wiederholung kommt, dann aufhören.
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Hi,
ich habe gerade mal wieder angefangen, mich mit der Kollisionsvermeidung zu befassen. Ich bin bisher davon ausgegangen, dass die Wired-Devices immer "mitlauschen" und nur dann eine Kommunikation initiieren, wenn auf dem Bus seit mindestens 200ms (+Zufallsanteil) Ruhe herrscht.
Jetzt habe ich mir zum Test ein Device gebaut, welches auf Knopfdruck den Bus belegt. Damit habe ich fest gestellt, dass ein Original HMW-LC-Sw2-DR nur so ungefähr 10 bis 20 auf "Bus frei" wartet (wenn überhaupt, das ist schwer definitiv festzustellen). Erst wenn ich die Pausen zwischen den Messages auf etwa 5ms herabsetze hält das Teil die Klappe.
Ich konnte allerdings nie feststellen, dass es zwischen einer Message an die Zentrale und das zugehörige ACK gefunkt hat.
Hat vielleicht sonst noch jemand ähnliche Versuche gemacht und kann dazu was sagen?
Dirk?
Gruß,
   Thorsten
FUIP

MarkusO

Hi,
danke für die Info zu den langen Tastendrücken. Ich werd das jetzt erstmal weglassen und nur auf normale Tastendrücke reagieren. Eine erste Version vom HMW-LC-Bl1-DR (Rollo-Steuerung) habe ich eben online gestellt.
Zur Kollisionsvermeidung kann ich leider nichts beitragen - hab noch immer kein Original-Device...

Grüße,
Markus

MarkusO

Hallo,
hab gerade eine erste Version von einem 4-fach Rolladenaktors online gestellt: https://github.com/kc-GitHub/HM485-Lib/tree/markus/HBW-LC-Bl4
Weitere Infos dazu stehen in der Readme. Falls das jemand gebrauchen kann, freue ich mich über Feedback.

Viele Grüße
Markus

Dirk

Hi Markus,

Sehr cool. Das werde ich mir die Tage auf alle Fälle ansehen.
Und die Arbeit an dem HM485-Module wird die Tage auch wieder weiter gehen.
Ziel ist es dass für HB-Devices dann der Code auch nicht mehr geändert werden muss.
Es muss dann nur ein XML-File erstellt werden.

Gruß
Dirk

holzwurm83

Hallo Dirk, kann man auch die Raffstore Steuerung von Markus für das HMW-LC-BL1-DR Modul übernehmen? Oder dort sowas implementieren?
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

MarkusO

Hallo Holzwurm,
falls Du auf der Suche nach einem HMW-LC-Bl1-DR auf Arduino-Basis bist: das Modul hatte ich auch schon mal implementiert:
https://github.com/kc-GitHub/HM485-Lib/tree/markus/HMW-LC-Bl1-DR (ftp://github.com/kc-GitHub/HM485-Lib/tree/markus/HMW-LC-Bl1-DR)
Dafür werden dann auch keine extra pm-Files benötigt, da FHEM ein "Original-Device" erkennt.

Für Thorstens 1-wire Temperatursensor habe ich jetzt übrigens ein passendes pm-File gebaut, mit dem das Modul in FHEM erkannt wird (das Skript zur Umwandlung von xml in pm lief bei mir leider nicht):
https://github.com/kc-GitHub/HM485-Lib/tree/markus/HBW-1W-T10

Viele Grüße
Markus

holzwurm83

Hallo Dirk,

irgendwas scheint mit dem ersten Link nicht zu stimmen?
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

Dirk


holzwurm83

Tut mir leid Dirk! Ich hatte es überlesen und dachte, dass der letzte Beitrag von Markus von dir wäre.

@Markus: Das kommt für mich leider zu spät  :(. Ich habe bereits alle Module im Original.
Aktuell lassen ich die Raffstore mit einem HMW-LC-Bl1-DR außer rauf und runter nicht wirklich steuern und daher wollte ich wissen ob Dirk deine Steuerung (Lamellenstellung,....) einbauen kann?
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN