Über Infrarot kann man mit dem FLIRC ja ganz gut Tasten an einen PC senden.
Für Windows gibt es Services die Tasten annehmen und an das System weiterleiten. zB HASS.agent
Bislang habe ich beide Methoden genutzt, aber IR-Signale mit HomeAssistant zu erzeugen, um diese an den FLIRC zu senden ist 3x ums Eck und langsam, und der HASS.agent samt MQTT ist umständlich zu konfigurieren und verschluckt bei mir manchmal Tasten.
Daher habe ich nach einer Möglichkeit gesucht Tastaturbefehle direkt via IP und USB an den HTPC zu senden.
Zu meiner Verwunderung hab ich keine Produkte gefunden.
Somit habe ich einen WLAN-USB-Keyboard-Adapter selbst erstellt, der gut funktioniert und den ihr gerne nachbauen könnt.
(Hilfreich waren die Artikel von www.elektronik-kompendium.de)
Hardware (Größe eines USB-Sticks):
- Raspberry Pi Pico W um 7€
- Gehäuse um 1,5€
- USB-Kabel aus dem Lager
Software (Python WebServer und HID-USB):
- Thonny Python IDE um den PRI Pico zu programmieren
- CircuitPython als Firmware
- Mein Python-Programm - Ein Webserver der über http Parameter annimmt und diese via USB, als Tastatur-Kommandos, an den PC sendet.
Anwendung:
1) Man steckt den RPI-PicoW an einen USB-PORT des HTPC an
2) Der RPI-Pico verbindet sich automatisch mit dem konfigurierten WLAN und als Tastatur mit dem HTPC
3) Um Tasten zu senden ruft man entweder
- die Webseite des WebServers auf und klickt auf die Buttons, oder
- gibt eine URI ein (zB. http://10.0.xx.yy/key?key=CTRL+SHIFT+A), oder
- geht über das REST-Service von HomeAssistant.
Die virtuelle Tastatur des WebServers:
Nutzung mit REST von HomeAssistant:
Installation:
1) Download und installieren von Thonny
2) Download der CircuitPython Firmware (adafruit-circuitpython-raspberry_pi_pico_w-en_US-9.2.4.uf2)
3) Download des meines Python-Programms und der notwendigen Libs (Bitte bei mir via PM anfragen)
4) RPI mit CircuitPython Firmware flashen (Ist ganz einfach!)
- BootSel-Taste am RPI gedrückt halten und an USB anstecken.
- es erscheint ein USB-Laufwerk mit zwei Dateien
- Firmware Datei (.uf2) via Copy-Paste in das USB-Laufwerk kopieren.
- sobald der Kopiervorgang fertig ist startet der RPI automatisch neu. Zu Sicherheit nochmals abstecken und wieder anstecken (jetzt OHNE BootSel-Taste)
- es erscheint wieder ein USB-Laufwerk diesmal mit mehr Files:
5) Meinen Programm-Code ins Root und die notwendigen Libs im Ordner "/lib" aufspielen
Libs:
6) Thonny starten
Rechts unten im Fenster muss "CircuitPython" stehen. Dann hat sich Thonny mit dem RPI Pico verbunden.
7) WLAN Settings
- Wir öffnen mit Thonny die Datei wlan.py vom "CircuitPython Device"
Hier die Daten für SSID und Passwort deines WLANs eingeben und die Datei speichern.
- Wir öffnen mit Thonny die Datei code_.py vom "CircuitPython Device"
Und klicken auf "Ausführen"
So testen wir, ob die WLAN-Verbindung klappt.
8) Testen
- Den Maus-Cursor des PCs in ein Textfeld plazieren.
- Am Handy mit dem Browser die IP-Adresse des Webservers eingeben.
- Es sollte die oben gezeigte virtuellen Tastatur im Browser angezeigt werden.
- Beim Klicken auf die Buttons der virtuellen Tastatur sollte am PC die entsprechenden Zeichen, ohne große Verzögerung, geschrieben werden.
9) Fertig stellen
- Damit der Webserver automatisch beim Booten startet müssen wir die Datei code_.py in code.py umbenennen. (Einfach im Datei-Manager)
- Nach dem Ab-/Anstecken sollte beim Aufruf der URL wieder die virtuelle Tastatur angezeigt werden und die Tasten-Weiterleitung funktionieren.
10) Integration in HomeAssistant:
im configuration.yaml folgendes ergänzen
rest_command:
htpc_send_key_sequence:
url: "http://192.168.xx.yy/key?key={{ keys }}"
method: GET
Und so aufrufen:
oder in einer CustomButton-Card:
oder als Rest mit via Control4 und ähnliches.
Ich hoffe dies es hilft so machen mit seinem HTPC weiter, so wie mir.
VG