homebridge-apple-tv-remote

  • Hier mal die komplette Fehlerorgie:


    Sorry- zu lang bekomme: "Ihre Nachricht ist zu lang. Es stehen maximal 30.000 Zeichen zur Verfügung."


    Gibt einen Eindruck wie ellenlang die Fehlerliste ist.... ?(

  • Hier der Log als Zip


    EDIT:

    Dann dürfte dies der relevante Teil sein:


  • Sodium wurde laut Log korrekt installiert. Ganz unten findest du den Fehler:


    Also ist curve25519-n2 der Übeltäter. Das sollte hyxamp Hoffnung machen.

  • Ohje, das heist ja nicht nur curve, das sind ja wirklich kryptokurven :)

    Da hat bubffm nicht zu viel versprochen, bei dem Thema bin ich allerdings auch raus.


    Ich steuere meinen ATV derzeit ausschließlich über pyatv (via shell). Es dauert zwar 6 Sekunden, bis ein Befehl ankommt.. aber letztendlich:


    Fernseher an + Apple TV an (command: "menu"):

    Der Fernseher braucht zum "Hochfahren" so lange (ist bereits älter als 10 Jahre), dass mich die 6 Sekunden, ehe der Befehl am ATV angekommen ist, nicht stören. Der Apple TV braucht dann zwar auch nochmal seine Zeit, letztendlich ist dann aber Fernseher und Apple TV nahezu zeitgleich einsatzbereit. In der Realität stehe ich meistens auch noch in der Küche, gebe den Sprachbefehl "Apple TV und Fernseher einschalten" und eh ich dann auf der Couch sitze sind die 6 Sekunden schon lange vorbei..


    Fernseher aus + Apple TV aus (command: "home_hold" + "select"):

    Der Fernseher geht aus, wie lange dann noch der ATV braucht, interessiert mich nicht.


    Apple TV play / pause (command: "play" / "pause":

    Nutze ich eigentlich nicht wirklich. Würde dafür normalerweise die Fernbedienung nehmen, statt App oder Sprache. Hab "pause" lediglich in die Automation meiner Türklingel eingebunden. Allerdings muss ich gestehen: Wenn ich mal eine Serie auf dem Apple TV schaue, dann abends.. Da klingelt in der Regel aber niemand mehr. Ich hätte "pause" ja auch gerne via Shortcuts eingebunden, wenn ich einen eingehenden Anruf auf dem Iphone erhalte.. Habe aber bisher noch keine Möglichkeit zur Umsetzung gefunden.


    Netflix starten (command: "top_menu" + "top_menu" + "select"):

    Läuft auch bei mir innerhalb einer Automation: Lichter alle aus, Ambilight an, TV an, Apple TV an.. und da ist wieder der Knackpunkt "TV" mit dabei, welcher die 6 Sekunden irrelevant erscheinen lassen.


    Mit Overclocking auf dem Pi konnte ich die Dauer zum Senden des Befehls auf 5 Sekunden drücken. Die eine Sekunde ist es mir aber nicht wert. Ich bin also mit meinem bisherigen Setup ganz zufrieden, muss aber auch gestehen, dass ich keine Ahnung habe wie ich CLI nutzen kann. In der Shell ist es mir klar, allerdings nicht wenn ich mit einem CMD - Schalter auf eine bash zugreife bzw. die Kommandos direkt im Schalter eintrage. Daher habe ich es beispielsweise so gelöst (Netflix starten):


    Code
    python3 /usr/local/lib/python3.7/dist-packages/pyatv --manual --address 192.168.2.xxx --port 49152 --protocol mrp --id xx:xx:xxxx:xx:xx top_menu  & 
    sleep 1
    python3 /usr/local/lib/python3.7/dist-packages/pyatv --manual --address 192.168.2.xxx1 --port 49152 --protocol mrp --id xx:xx:xxxx:xx:xx top_menu  &
    sleep 1 
    python3 /usr/local/lib/python3.7/dist-packages/pyatv --manual --address 192.168.2.xxx --port 49152 --protocol mrp --id xx:xx:xxxx:xx:xx select 


    Die Programmierer unter euch bekommen dabei bestimmt graue Haare, aber ich wusste mir nicht anders zu helfen. Habe wie gesagt von Linux, Java, Python, Bash... nicht wirklich Ahnung und probiere so lange rum, bis es funktioniert.. oder kaputt ist. Damit wird meines Erachtens pyatv 3x hintereinander ausgeführt, jeweils zeitversetzt um eine Sekunde. Ich erhalte also das commando: "top_menu" nach 6 Sekunden am Apple TV, eine Sekunde später erneut "top_menu" und schließlich nach insgesamt 8 Sekunden "select". Klappt.


    Um ehrlich zu sein wüsste ich jetzt auch gar nicht, ob für mich ein neues Plugin überhaupt wichtig wäre. In deinem ersten Plugin hast du keine Schalter vorgesehen. Tatsächlich bräuchte man mit pyatv aber auch nicht wirklich eine API, da mit shortcuts auch Skipte über SSH ausgeführt werden können (ob CLI auch geht, weis ich nicht). Die +/- 6 Sekunden für den Sendebefehl mögen ein Argument sein, stören mich aber letztendlich gar nicht. Der Zustand des Apple TV könnte bei externer Schaltung über die Fernbedienung relevant sein, sofern man beispielsweise Automationen damit auslösen möchte. Dafür fehlt es mir dann aber wieder an Kreativität. Daher sind mir die Schalterstellungen von an/aus und play/pause eigentlich auch egal. Natürlich überschneiden sich die Eingaben via Fernbedienung mit der Darstellung in der App. Solange ich allerdings via Sprachbefehl einen virtuell "angeschaltenen" Apple TV erneut anschalten kann, damit er dann auch "mechanisch" an geht, bin ich glücklich. Allerdings ist das nur meine Sichtweise und ursprünglich hattest du das Plugin ja auch nur für dich entwickelt. Ich hoffe nur das die nötige Entwicklungsarbeit für ein neues Plugin letztendlich nicht den resultierenden Nutzen deutlich übersteigt. Da es aber auch eine Art Hobby zu sein scheint, bei dem dich möglicherweise der Ehrgeiz packt, kann ich das völlig nachvollziehen.


    Viele Grüße

    Einmal editiert, zuletzt von hyxamp ()

  • So, ein kurzes Update: Die homebridge-appletv Implementierung läuft bei mir seit einer Woche, heute noch eine Optimierung durchgeführt und ich muss sagen...es funktioniert gut. Das neue Plugin hält die Verbindung dauerhaft aufrecht und das funktioniert soweit mit meinen AppleTVs.


    Da ihr Probleme mit dem neuen Plugin habt (ich vermute nach einiger Recherche, dass es tatsächlich an Node >= 12 liegt), würde ich, falls gewünscht, die Features in das homebridge-atvremote Plugin rückführen. Dann kann man je nachdem, was für einen am Besten funktioniert, auf das eine oder andere Plugin gehen.

    Das würde konkret bedeuten:

    - ich baue die Schalter in das homebridge-atvremote ein

    - ich würde (auf einem dev-Branch erstmal testweise) auch die dauerhafte Verbindung implementieren, sodass die die Befehle dann viel schneller ausgeführt werden können (was vor allem bei Nutzung der Schalter Sinn macht)


    hyxamp würde dir das helfen? Falls daran kein Interesse besteht, bin ich auch nicht böse darüber, da noch einige Issues bei anderen Plugins auf meine Freizeit warten ;)

  • Mein Deutsch ist nicht so gut...

    So I will switch to english, sorry in advance if it's not according to the rules. :)


    I've released an updated/reworked version node-appletv library in case your interested.

    It's available @npm: https://www.npmjs.com/package/node-appletv-x

    and @git: https://github.com/stickpin/node-appletv-x


    New version contains following changes:

    • Works with latest NodeJS (v12.x and newer) & Modules.
    • Fix duplicate AppleTV entries
    • Additional buttons are added: select, tv, longtv
    • Support for tvOS 13.3 and newer
    • Various fixes

    I will continues optimizing it, so new updates will come later on.

    I'm not sure for how long I will continue maintaining it, so feel free to fork and to do with it whatever you want. :)


    Heads-up: I will also release simple homebridge plugin based on this library, just to turn on and turn off AppleTV. :)

  • just to turn on and turn off AppleTV

    YEAAAAAHHHH!!!

  • Ich habe jetzt die Dependency auf node-appletv-x umgestellt. Auf dem Mac konnte ich jetzt sowohl node-appletv-x als auch mein Plugin homebridge-appletv ohne --unsafe-perm und sudo installieren. Gleiches gilt für den Raspberry.


    Falls einer von euch Zeit hat und auf Node 12 ist, würde ich mich über eine Info freuen, ob es bei euch auch funktioniert (npm install -g https://github.com/lukasroegner/homebridge-appletv.git).