Seite 1 von 1

CCU2 + CUxD + Uartbefehle senden

Verfasst: 23.12.2017, 15:01
von tts0815
Hallo Zusammen,

ich bin gerade neu in das Thema Hausautomation mit Homematic eingestiegen.
Habe CCU2 + CUxD installiert und habe mir selbst ein eigenes Board mit Funkmodule gebaut.
Dieses möchte ich nun mittels serieller Kommunikation UART over USB in das CCU2 einbinden.
Die Kommunikation mit dem Modul basiert auf ASCII Zeichen. Z.Bsp bewirkt ein Senden der Zeichenfolge "Z05B1" das Einschalten einer Steckdose mit HausCode 5, Kanal B.
Wie auch immer gibt es noch weitere Befehle.....

Bisher habe ich mittels CuxD ein Signalgeber (28) System erstellt, welches mittels Exec den Befehl echo Z05B1 > /dev/ttyUSB0 ausführen soll.
Die Baudrate wird generell bei Systemstart mittels sgtty -F /dev/ttyUSB0 57600 auf entsprechende Baudrate 57600 gestellt.
im Log steht folgende simple debug info:

Code: Alles auswählen

Dec 22 21:27:51 homematic-raspi daemon.debug cuxd[7998]: CUX2801001:1 echo Z05B1 > /dev/ttyUSB0
Dec 22 21:27:53 homematic-raspi daemon.debug cuxd[8000]: CUX2801001:2 echo Z05B0 > /dev/ttyUSB0
Jedoch passiert nicht. Auf der Uart bzw. dem Device ttyUSB0 kommt nicht raus.
Wenn ich hingeben den über das Terminal der CuxD Oberfläche die Zeichenkette Z05B1 sende klappt es.

Ich bin schon einige Stunden dabei zu probieren und in Foren zu lesen, jedoch hatte bisher, so mein Eindruck, noch keiner direkt spezielle Daten über Uart senden wollen.

Daher hoffe ich hier auf konstruktive Anregungen und Hilfe.

GRüße
Thomas

Re: CCU2 + CUxD + Uartbefehle senden

Verfasst: 24.12.2017, 01:16
von anli
Hallo und herzlich willkommen!

Kannst Du bitte einmal Dein Programm und / oder Skript hier reinstellen, welches Du zum Triggern des CUxD Geräts verwendest?

Re: CCU2 + CUxD + Uartbefehle senden

Verfasst: 24.12.2017, 13:40
von uwe111
Hallo Thomas,
tts0815 hat geschrieben:Bisher habe ich mittels CuxD ein Signalgeber (28) System erstellt, welches mittels Exec den Befehl echo Z05B1 > /dev/ttyUSB0 ausführen soll.
Dieser Ansatz ist m.E. viel zu kompliziert.

Lege einfach eine CUxD (40) 16 Kanal Universalsteuerung an. Damit hast Du direkten Zugriff auf alle verbundenen TTYs. Entweder dynamisch mittels SEND_CMD Datenpunkt oder fest in der Gerätekonfiguration mittels CMD_SHORT/CMD_LONG gespeichert. In Kapitel 5.10.2 der CUxD-Doku ist das Gerät ausführlich und mit Beispielen beschrieben.

Frohe Weihnachten

Uwe

Re: CCU2 + CUxD + Uartbefehle senden

Verfasst: 25.12.2017, 09:27
von tts0815
Hallo,

ich habe nochmal einen anderen Ansatz gewählt:

wieder als (28) system.exec. jedoch mit "printf 'Z05B0\r\n' > /dev/ttyUSB0"
dann kommt auch was aus der Uart raus...., komisch...


@anli:

unter Geräte->"Lampe1"->Einstellung habe ich folgendes eingetragen:
SWITCH|CMD_SHORT : echo Z05B0 > /dev/ttyUSB0
SWITCH|CMD_LONG : echo Z05B1 > /dev/ttyUSB0
Das Gerät "Lampe1" ist als (28) System, Exec und Schalter unter CuxD angelegt worden


@uwe11:
Danke für den Hinweis.
Das ist ein interessanter Ansatz. Darüber habe ich noch nicht nachgedacht.
Werde ich auf jeden Fall nochmal ausprobieren....

Re: CCU2 + CUxD + Uartbefehle senden

Verfasst: 25.12.2017, 19:47
von uwe111
Hallo Thomas,
tts0815 hat geschrieben:ich habe nochmal einen anderen Ansatz gewählt:
vielleicht hatte ich mich nicht deutlich genug ausgedrückt...
Das für die direkte serielle Kommunikation vorgesehene universelle CUxD Gerät ist die (40) 16 Kanal Universalsteuerung.
:roll: (28) System.Exec ist dafür nicht das richtige Gerät, wenn Du es nicht komplizierter machen möchtest, als es ist.

Viele Grüße

Uwe