diff --git a/README.md b/README.md index 0e320fe..3b2b9a0 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Optimal: Zusätzlich kann ein IR-Receiver (an GPIO23) angeschlossen werden, um n #### Schaltplan ![Schaltplan](schematics.png) -## Software +## Software Vorbereitung - Paketquellen aktualisieren: `sudo apt update` #### LIRC installieren @@ -56,3 +56,11 @@ Diese Schritte sind nötig: - Gespeicherte Buttons ausgeben: `irsend LIST rgbled ""` - Einzelne Codes senden: `irsend SEND_ONCE rgbled ` also z.B. `irsend SEND_ONCE rgbled ON` - Sollte das nicht funktionieren ist die Fernbedienungsconfig nicht geeignet, sodass die Fernbedienung manuell angelernt werden muss. + +## Python3 CLI +`python3 rgb-led-ir-control.py` + +Das [Python-Programm](rgb-led-ir-control.py) ist nahezu selbsterklärend. Zunächst werden alle bekannten IR-Codes nummeriert ausgegeben. Anschließend kann der Benutzer fortlaufend die Nummer des Codes eingeben, der gesendet werden soll. Wird eine "0" eingeben, beendet sich das Programm. + +Intern führt das Programm den _irsend_-Befehl aus. \ +Somit kann es beliebig für weitere Fernbedienungen erweitert werden. diff --git a/rgb-led-ir-control.py b/rgb-led-ir-control.py new file mode 100644 index 0000000..3aa6653 --- /dev/null +++ b/rgb-led-ir-control.py @@ -0,0 +1,31 @@ +# Voraussetzung: LIRC installiert und FB-Config erstellt +# Wenn eine andere FB-Config verwendet wird muss die Code-Liste und der FB-Name angepasst werden. + +import os + +baseCommand = "irsend SEND_ONCE rgbled " +codeList = ["ON","OFF","WHITE","RED","GREEN","BLUE","ORANGE","YELLOW_DARK","YELLOW_LIME","YELLOW_GREENISH","TURQUOISE","TURQUOISE_LIGHT","BLUE_LIGHT","BLUE_PASTEL","BLUE_PURPLE","PURPLE_DARK","PURPLE_PINKISH","PINK"] +codeCount = len(codeList) + +os.system("sudo systemctl start lircd") + +# Ausgabe der bekannten Codes +print("+++ IR-Sender +++ \n") +print("Bekannte Codes:") +for i in range(codeCount): + print(str(i+1) + ": " + codeList[i]) +print("\n") + +# Per Benutzereingabe senden +print("Bitte die Nummer des Codes eingeben, der gesendet werden soll.") +print("\"0\" zum Beenden eingeben \n") + +while True: + codeNummer = int(input("Nummer des Codes, der gesendet werden soll: ")) + + if (codeNummer == 0): + break + + command = baseCommand + codeList[codeNummer-1] + os.system(command) + print()