So, jetzt revidiere ich meine Aussage. Ich habe mal geschaut was der Fehler innerhalb der .js genau besagt.. Letztendlich läuft alles darauf hinaus, dass sich mein Kommando nicht innerhalb eines Arrays befindet (hatte die eckigen Klammern nicht berücksichtigt, da ich nur einen Befehl wie "play" senden wollte). Gleiches muss dann auch bei der Verwendung von Shortcuts beachtet werden, d.h.:
- Haupttext anfordern: JSON
- Array hinzufügen mit dem "titel" commands
- Objekte -> neues Objekt hinzufügen -> Text -> "command (play/pause...)"
Dann geht es auch. Für einzelne Befehle muss ich sagen, läuft die Kommunikation über das Plugin nicht schneller als direkt über pyatv. Bei mehreren aufeinanderfolgenden Befehlen wird allerdings auf CLI zurückgegriffen, sodass es dann doch schneller gehen sollte (beispielsweise die Navigation durch ein Menü). Muss jeder selber wissen, wieviel bzw. wie oft durch das Menü navigiert werden soll. Mir reicht fürs erste "an/aus" und "play/pause". Eventuell würde ich dann noch das Starten einer App einrichten, weshalb die Verwendung des Plugins für mich wieder Sinn ergibt.
Zusammenfassend hat es bei mir in dieser Reihenfolge funktioniert:
- Python3 installieren (wenn nicht bereits installiert)
- Pip3 installieren
- Kennwort für User homebridge anlegen (wenn nicht bereits geschehen) und pyatv via SSH (mit User homebridge) installieren
- homebridge-atvremote also User root installieren
- Bei der Übergabe von Befehlen darauf achten, dass sich diese in einem Array befinden
Ich hoffe das ich nix vergessen habe. So kompliziert wars ja jetzt doch nicht
Die Kommunikation mit dem Apple TV erfolgt bei mir jetzt über das webhooks-plugin, statt über http-switches. Der Vorteil (für mich jedenfalls): Man benötigt bei einfachen an/aus - Schaltern keine Url bezüglich der Statusabfrage. Falls der Author tatsächlich noch eine Statusabfrage implementiert, werde ich evtl. zu http-switches wechseln. Allerdings muss ich gestehen: letztendlich sind mir die Schalterstellungen egal. Den Apple TV über Schalter via Home zu steuern, ist meines Erachtens alles andere als praktikabel. Ich würde an dieser Stelle auf Sprachsteuerung zurückgreifen, in meinem Fall mit Alexa. Hier besteht die Möglichkeit, den Apple TV zu pausieren, selbst wenn der Schalter schon auf "pause" steht. Gleiches gilt ja dann auch für an/aus usw.. Der Befehl wird einfach nochmal gesendet, genauso wie innerhalb von Automationen.. Wenn es an der Tür klingelt und Apple TV pausieren soll, der Schalter allerdings schon auf "pause" steht (weil es sich mit der Fernbedienung überschnitten hat), wird trotzdem pausiert. Solange ich die Schalter für den Apple TV also in einen Raum schiebe, den ich nicht sehe, ist mir auch egal, was die jeweiligen Schalter anzeigen.