Alternative zu samsungctl

Eine Sache, die seid dem Crash meines Raspberry Pi 4 nicht mehr funktioniert ist samsungctl

Was ist samsungctl?

Mit samsungctl ist es möglich, einen Samsung SmartTV via Linux Command Line zu steuern und damit wahnsinnige Automatisierungen zu starten.
Als Beispiel:
Es möglich die Eingabe der Jugenschutz Pin zu automatisieren oder Netflix auf Kommando mit dem richtigen Benutzer zu starten.
Der Phantasie sind da keine Grenzen gesetzt.

Was funktioniert nicht?

Ich habe nun schon mindestens hundert Anläufe gehabt, um das ganze auch in frischen VM’s oder LXC zum laufen zu bekommen – aber Pustekuchen.
Von dem Haupt-Git gibt es mittlerweile jede Menge Forks und auch ein vergleichsweise gut gewartetes Repository.

Im Endeffekt ist das Fehlerbild, dass ich einen Befehl starte und keine Authentifizierungsanfrage am TV ankommt und deshalb keine Verbindung zu Stande kommt.
Da kann man wählen, welche Python Version oder samsungctl-Fork, ich habe dort schon viel Zeit reingesteckt aber es will nicht laufen.

Der Workaround

Weshalb ich das ganze überhaupt Blogge?
Ich habe einen Workaround gefunden der das ganze auch abbilden kann jedoch über die SmartThings-Cloud von Samsung.
Das ganze nennt sich: pysmartthings

Eigentlich bin ich ein Verfechter der „Cloud“-Kultur im weiteren Sinne, alles was Lokal laufen kann, soll auch Lokal laufen.

Die Installation an sich war eigentlich Recht einfach, nur die Dokumentation lässt zu wünschen übrig.
Ich kenne mich weder mit Python noch mit irgendwelche JSON Sachen aus aber irgendwie habe ich es dann doch hinbekommen, zumindest den TV beim Gehen oder Schlafen wieder ausschalten zu können.

Nach installation von pysmartthings wird alles weitere in Python programmiert.
Für die Programmierung von Funktionen wird auf die  SmartThings Capability Reference referenziert und daraus werden auch die Syntax generiert.

Die Hälfte davon funktioniert momentan bei mir noch nicht, aber ich arbeite dran.
Das PowerOff-Script sieht wie folgt aus: Klick

Einbindung in Homematic

Da Python nicht direkt auf der Homematic CCU oder dem Raspberrymatic läuft, möchte ich noch kurz erklären, wie ich dieses Script in meine Homematic Automatisierung eingebunden habe.

Zuerst muss man auf der CCU ein Addon installieren, damit sich die CCU Passwortlos mit einem anderen Linux Gerät über SSH verbinden kann.
Nächster Schritt ist sich mit der CCU über SSH zu verbinden und den SSH-Key auf das Zielgerät zu kopieren.
Dafür gibt es unter Linux eine einfache Befehlsabfolge:

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.178.23

Sollte noch kein Schlüssel existieren, muss folgender Befehl vorher eingegeben werden:
ssh-keygen

Danach ist es möglich, sich via ssh root@192.168.178.23 sich Passwortlos mit dem Remote-Host zu verbinden.

Somit lässt sich das ganze dann als CMD_EXEC in CCU Programme einbauen oder als An -und Ausschaltbefehl für CUxD-Geräte, so wie ich es habe.

/usr/bin/ssh root@192.168.178.23 python /root/samsung/poweron.py

So können natürlich auch beliebe andere Befehle von der CCU aus an ein Remote-System gesendet werden um Funktionen einzubinden, die Nativ nicht unterstützt werden.

Speichere in deinen Favoriten diesen permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.