Hallo zusammen,
hier mein IRTrans-PlugIn für SmartHome.py. Auch bei dem PlugIn gilt: Für meinen Anwendungsfall funktioniert das PlugIn bisher recht gut, ich bin aber offen für jeden Verbesserungsvorschlag. :-)
Funktionen:
- Senden von zuvor angelernten Infrarot-Befehlen über Items
- Empfangen von angelernten Befehlen und setzen von Zuständen bei zugeordneten Items
Voraussetzungen:
- IRTrans-Hardware mit integrierter IR-Datenbank
oder
- Installation von IRTransServer LAN (laut Webseite auch mit Mono unter Linux möglich: Link)
Noch notwendige Anpassungen (werde ich bei Gelegenheit nachziehen):
- Ein Verbindungsabbruch zwischen dem PlugIn und dem IRTrans wird bisher nicht abgefangen. Bei einem Neustart von IRTrans muss auch SH.py neu gestartet werden.
- Wenn IRTrans ein Signal erkennt, das einem Item zugeordnet ist, wird bisher nur ein Timestamp in das entsprechende Item geschrieben. Das deckt wahrscheinlich nur meinen akuten Anwendungsfall ab, da ich die Timestamps weiterverarbeiten will. Somit ist die Änderung aber auch über Logiken abfangbar. Zukünftig wäre wahrscheinlich das Schreiben in eine Bool-Variable sinnvoller.
Ich würde mich freuen, wenn der Code jemandem weiterhilft.
Viele Grüße,
David
Zum Testen des PlugIns einfach in dem PlugIn-Verzeichnis einen Unterordner ‚irtrans‘ anlegen und die angefügten Files in das Verzeichnis kopieren (bei dem Raspberry-Image /usr/smarthome/plugins/irtrans/).
Die Konfiguration muss angepasst werden, wie folgt:
PlugIn-Konfiguration - /usr/smarthome/etc/plugin.conf
Beispiele für das Anlegen von Items:
hier mein IRTrans-PlugIn für SmartHome.py. Auch bei dem PlugIn gilt: Für meinen Anwendungsfall funktioniert das PlugIn bisher recht gut, ich bin aber offen für jeden Verbesserungsvorschlag. :-)
Funktionen:
- Senden von zuvor angelernten Infrarot-Befehlen über Items
- Empfangen von angelernten Befehlen und setzen von Zuständen bei zugeordneten Items
Voraussetzungen:
- IRTrans-Hardware mit integrierter IR-Datenbank
oder
- Installation von IRTransServer LAN (laut Webseite auch mit Mono unter Linux möglich: Link)
Noch notwendige Anpassungen (werde ich bei Gelegenheit nachziehen):
- Ein Verbindungsabbruch zwischen dem PlugIn und dem IRTrans wird bisher nicht abgefangen. Bei einem Neustart von IRTrans muss auch SH.py neu gestartet werden.
- Wenn IRTrans ein Signal erkennt, das einem Item zugeordnet ist, wird bisher nur ein Timestamp in das entsprechende Item geschrieben. Das deckt wahrscheinlich nur meinen akuten Anwendungsfall ab, da ich die Timestamps weiterverarbeiten will. Somit ist die Änderung aber auch über Logiken abfangbar. Zukünftig wäre wahrscheinlich das Schreiben in eine Bool-Variable sinnvoller.
Ich würde mich freuen, wenn der Code jemandem weiterhilft.
Viele Grüße,
David
Zum Testen des PlugIns einfach in dem PlugIn-Verzeichnis einen Unterordner ‚irtrans‘ anlegen und die angefügten Files in das Verzeichnis kopieren (bei dem Raspberry-Image /usr/smarthome/plugins/irtrans/).
Die Konfiguration muss angepasst werden, wie folgt:
PlugIn-Konfiguration - /usr/smarthome/etc/plugin.conf
Code:
[irtrans] class_name = IRTrans class_path = plugins.irtrans host = 192.168.50.250 port = 21000
Code:
[IRTransTest] name = IRTransTest # -------- Senden eines IR-Befehls -------- [[irtrans_senden]] name = irtrans_senden type = bool irtrans_type = send irtrans_control = sonytv # Name der Fernbedienung laut IRTrans-Datenbank irtrans_command = poweron # Name des Befehls laut IRTrans-Datenbank # -------- Empfangen eines IR-Befehls -------- [[irtrans_empfangen]] name = irtrans_empfangen type = str # Da aktuell lediglich ein Timestamp geschrieben wird, wird hierbei 'type = str' vorausgesetzt. irtrans_type = recv irtrans_control = sonytv # Name der Fernbedienung laut IRTrans-Datenbank irtrans_command = poweroff # Name des Befehls laut IRTrans-Datenbank # -------- Anzeigen eines nicht zugewiesenen IR-Befehls -------- [[irtrans_nicht_zugeordnet]] name = irtrans_nicht_zugeordnet type = str # Bei einem erkannten Befehl, der keinem Item zugeordnet ist, wird hier der Name der Fernbedienung und des Befehls eingetragen. Daher wird 'type = str' vorausgesetzt. irtrans_show_unknown = true #
Kommentar