Aktions-Trigger des Harmony-Hub auf Linux-PC

Da momentan ein Aussenden von simplen HTTP-Requests über den Harmnoy-Hub nicht möglich sind, muss man wohl etwas basteln, um seine selbstgebastelte Heimautomation auch über seine Harmony-Fernbedienung schalten zu können. Ich habe noch ein Fernbedienung für den PC mit USB-Infrarotempfänger liegen gehabt.

zusätzlich Hardware:

– USB-Infrarotempfänger und dazugehörige Fernbedienung

Software:

Inputlirc mit dem Programm irexec

Fernbedienung unter Linux einrichten (bei mir Debian):

Pakete installieren:

# apt-get install lirc inputlirc liblircclient0

Input herausfinden:

# evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: Sleep Button
/dev/input/event1: Power Button
/dev/input/event2: PC Speaker
/dev/input/event3: HDA Intel Front Mic
/dev/input/event4: HDA Intel Rear Mic
/dev/input/event5: HDA Intel Line
/dev/input/event6: HDA Intel Line Out
/dev/input/event7: HDA Intel Front Headphone
/dev/input/event8: USB IR Receiver USB IR Receiver
Select the device event number [0-8]: 8
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x147a product 0xe02d version 0x110
Input device name: „USB IR Receiver USB IR Receiver“

Testing … (interrupt to exit)
Event: time 1433998650.974264, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70010
Event: time 1433998650.974264, type 1 (EV_KEY), code 50 (KEY_M), value 1
Event: time 1433998650.974264, ————– EV_SYN ————
Event: time 1433998650.982241, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70010
Event: time 1433998650.982241, type 1 (EV_KEY), code 50 (KEY_M), value 0
Event: time 1433998650.982241, ————– EV_SYN ————

Inputlirc anpassen:

– da nicht gewährleistet ist, dass das USB-Gerät immer den gleichen Eventinput bekommt, sage ich inputlirc, dass es das Gerät per „by-id“ binden soll.

# vi /etc/default/inputlirc


# Options to be passed to inputlirc.
EVENTS=“/dev/input/by-id/usb-USB_IR_Receiver_USB_IR_Receiver-event-ir
OPTIONS=“-g -m 0


Inputlirc testen:

# irw

32 0 KEY_M /dev/input/by-id/usb-USB_IR_Receiver_USB_IR_Receiver-event-ir
2f 0 KEY_V /dev/input/by-id/usb-USB_IR_Receiver_USB_IR_Receiver-event-ir

eine lircrc für irexec basteln (/etc/lircrc):

grün ist der Output von inputlirc

rot ist die Aktion die irexec ausführen soll

# vi /etc/lircrc


begin
prog = irexec
button = KEY_M
repeat = 0
config = echo A01_an
end
begin
prog = irexec
button = KEY_V
repeat = 0
config = echo A01_aus
end
begin
prog = irexec
button = KEY_S
repeat = 0
config = echo A02_an
end
begin
prog = irexec
button = KEY_1
repeat = 0
config = echo A02_aus
end


irexec automatisch starten lassen:

– ich hab es einfach ins Startscript von inputlirc mit reingepackt.

# vi /etc/init.d/inputlirc

case „$1“ in
start)
mkdir -p /var/run/lirc
echo „Starting $DESC“
start-stop-daemon –exec $DAEMON –start — $OPTIONS $EVENTS
# retain compatibility with old clients
[ -S /var/run/lirc/lircd ] && ln -sf /var/run/lirc/lircd /dev/lircd
/usr/bin/irexec -d /etc/lircrc
;;
stop)
echo „Stopping $DESC“
start-stop-daemon –exec $DAEMON –stop
;;
restart|reload|force-reload)
echo „Restarting $DESC configuration“
start-stop-daemon –exec $DAEMON –stop
start-stop-daemon –exec $DAEMON –start — $OPTIONS $EVENTS
/usr/bin/irexec -d /etc/lircrc
;;
*)
echo „Usage: invoke-rc.d $NAME {start|stop|reload|restart|force-reload}“
exit 1
;;
esac

exit 0

da unter Debian …noch kurz das systemctl neu laden:

# systemctl daemon-reload

Fernbedienung beim Harmony-Hub anmelden:

Neues Gerät anlegen:

– Klick auf „Gerät hinzufügen“

1

– Gerät benamen

2

– einfach bestätigen und klick auf „Mein Gerät ist korrekt“

3

– Klick auf „Fortsetzen“

4

– Klick auf „ja“, da wir ja eine Fernbedienung haben

5

– jetzt müssen nur noch alle Tasten angelernt werden –> Klick auf „Befehl Hinzufügen/korrigieren“

6

7

viele Tasten später –> fertig:

8

Jetzt muss man dieses Gerät nur noch zu jeder Aktion hinzufügen, auf die der Linux-Rechner reagieren soll.

Basti

 

Kommentar schreiben

0 Kommentare.

Kommentar schreiben


Hinweis - Du kannst dies benutzenHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>