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 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:
prepareGitDep make: *** [Release/obj.target/curve/node_curve.o] Error 1
npm ERR! prepareGitDep gyp ERR! build error
npm ERR! prepareGitDep gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! prepareGitDep gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
npm ERR! prepareGitDep gyp ERR! stack at ChildProcess.emit (events.js:210:5)
npm ERR! prepareGitDep gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
npm ERR! prepareGitDep gyp ERR! System Linux 4.19.66-v7+
npm ERR! prepareGitDep gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! prepareGitDep gyp ERR! cwd /home/pi/.npm/_cacache/tmp/git-clone-4fad4e44/node_modules/curve25519-n2
npm ERR! prepareGitDep gyp ERR! node -v v12.13.0
npm ERR! prepareGitDep gyp ERR! node-gyp -v v5.0.5
npm ERR! prepareGitDep gyp ERR! not ok
npm ERR! prepareGitDep npm ERR! code ELIFECYCLE
npm ERR! prepareGitDep npm ERR! errno 1
npm ERR! prepareGitDep npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! prepareGitDep npm ERR! Exit status 1
npm ERR! prepareGitDep npm ERR!
npm ERR! prepareGitDep npm ERR! Failed at the [email protected] install script.
npm ERR! prepareGitDep npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! prepareGitDep
npm ERR! prepareGitDep npm ERR! A complete log of this run can be found in:
npm ERR! prepareGitDep npm ERR! /home/pi/.npm/_logs/2020-01-05T14_42_50_063Z-debug.log
npm ERR! prepareGitDep
npm ERR! premature close
Alles anzeigen
Sodium wurde laut Log korrekt installiert. Ganz unten findest du den Fehler:
9 error prepareGitDep gyp ERR! build error
9 error prepareGitDep gyp ERR! stack Error: `make` failed with exit code: 2
9 error prepareGitDep gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
9 error prepareGitDep gyp ERR! stack at ChildProcess.emit (events.js:210:5)
9 error prepareGitDep gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
9 error prepareGitDep gyp ERR! System Linux 4.19.66-v7+
9 error prepareGitDep gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
9 error prepareGitDep gyp ERR! cwd /home/pi/.npm/_cacache/tmp/git-clone-4fad4e44/node_modules/curve25519-n2
9 error prepareGitDep gyp ERR! node -v v12.13.0
9 error prepareGitDep gyp ERR! node-gyp -v v5.0.5
9 error prepareGitDep gyp ERR! not ok
9 error prepareGitDep npm ERR! code ELIFECYCLE
9 error prepareGitDep npm ERR! errno 1
9 error prepareGitDep npm ERR! [email protected] install: `node-gyp rebuild`
9 error prepareGitDep npm ERR! Exit status 1
9 error prepareGitDep npm ERR!
9 error prepareGitDep npm ERR! Failed at the [email protected] install script.
Alles anzeigen
Also ist curve25519-n2 der Übeltäter. Das sollte hyxamp Hoffnung machen.
Also ist curve25519-n2 der Übeltäter.
ok, und was sagt mir das jetzt ?
Vulgo: Wie krieg ich die Kurve?
Raspi 3b+
auch mal gegoogelt, aber Krypto-Kurven sind echt zuviel für mich....
Rödelt wieder eine Weile, dann gleicher Fehler:
prepareGitDep npm ERR! Failed at the [email protected] install script
Was ist denn dieses curve? Das war doch auch bei der Installation von pyatv mit dabei..
Ist eine Cryto-Library, die von node-appletv verwendet wird.
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):
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
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:
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).