2016-02-27 18 views
6

Sto lavorando su alcuni programmi di automazione domestica e una delle cose che voglio essere in grado di fare è rilevare quando la mia quarta generazione di Apple TV si è svegliata dal sonno. Generalmente questo succede solo quando qualcuno ha premuto un pulsante sul suo telecomando Siri per riattivarlo.Rilevare quando una quarta generazione di Apple TV si è svegliata dal sonno

Ho un PC (collegato allo stesso televisore della Apple TV) che ha un adattatore CEC USB Pulse-Eight, quindi naturalmente la prima cosa che ho provato è stata usare CEC per determinare quando Apple TV è attiva. Sfortunatamente non è affidabile, dal momento che monitorare lo stato di alimentazione di Apple TV per vedere quando si sveglia produce falsi positivi. (Devo notare che non ho "TV e ricevitori di controllo" abilitati su Apple TV, e non posso accenderlo per il particolare progetto a cui sto lavorando perché ho bisogno che Apple TV non cambi l'ingresso della TV.)

Sto provando a pensare ad un altro modo per farlo. Sono aperto a qualsiasi possibilità, comprese le cose come:

  • Facendo uso di API private sulla Apple TV
  • in corso un 'always on' programma in background della Apple TV che invia un segnale quando il Apple TV si sveglia, se possibile. (Ho il sospetto che non lo è.)
  • Monitoraggio della comunicazione Bluetooth tra il Siri remoto e l'Apple TV, se è possibile
  • In qualche modo il filtraggio comandi HDMI-CEC in modo che possa girare su 'TV Controllo e ricevitori' , consenti ai comandi CEC di Apple TV di accendere e spegnere la TV ed escludi i comandi per modificare l'ingresso della TV.
  • Qualsiasi altro metodo, non importa quanto hacky o ridicolo, finché funziona!

Qualcuno ha qualche suggerimento? Sono a corto di cose da provare!

+0

Penso che stai guardando un'app che fornisce un server di rete, probabilmente pubblicato tramite Bonjour. – trojanfoe

+0

@trojanfoe Puoi essere più specifico? Questa app funzionerà su Apple TV o verrà eseguita da qualche altra parte e verrà connessa la TV Apple? Se quest'ultimo, come potrei ottenere che Apple TV sia sempre connessa quando è attiva? – GuyGizmo

+0

Non lo so con precisione; Sto solo indovinando, ma la mia sensazione è un'app che fornisce un servizio di rete su Apple TV. – trojanfoe

risposta

0

Ho finalmente trovato un metodo che sembra funzionare in modo coerente. Questo metodo è incredibilmente hacky e non è affatto il modo in cui preferirei farlo, ma è l'unico che ho trovato finora che funzioni in modo coerente.

Ho preso una vecchia webcam USB e l'ho apposta sul davanti della mia Apple TV in modo che il suo obiettivo sia direttamente davanti alla luce frontale di Apply TV. Ogni volta che Apple TV dorme, mi limito a controllare che la luce si accenda prendendo le immagini dalla fotocamera e analizzando la loro luminosità media. Dato che l'obiettivo è vicino alla luce, quando si accende creerà un enorme cerchio bianco scoppiato nell'immagine che è incredibilmente facile da rilevare.

Finché Apple TV è addormentata, la luce accesa sembra indicare il 100% delle volte che si è svegliata. Devo ancora trovare un singolo incidente di un falso positivo o falso negativo.

Poiché premendo i pulsanti sul telecomando Siri questa spia lampeggia, significa anche che è possibile rilevare i pulsanti premuti cercando le modifiche alla luce mentre Apple TV è attiva. Non è preciso al 100%, dal momento che alcune pressioni dei pulsanti sono più veloci della frequenza fotogrammi della mia vecchia e corta webcam USB, ma funziona abbastanza bene.

Preferisco di gran lunga trovare un metodo migliore per farlo, come fare una richiesta sulla LAN ad Apple TV dove la risposta indica chiaramente che è sveglio o addormentato, ma finora non sembra possibile .

1

Ho provato a postare sotto le comunità di discussione/supporto Apple, ma mi è stato detto che non ho il diritto di pubblicare questo contenuto.Forse qualcuno in questo gruppo può riuscire a farlo:

Apple TV 4 L'integrazione di CEC è ottima quando funziona, ma non funziona sempre e non con tutte le varie apparecchiature là fuori, puoi farlo una ricerca attraverso i forum e vedrai molti utenti infelici. Vorrei utilizzare un PI di lamponi per rilevare quando il mio AppleTV si addormenta e si riattiva e accende e spegne programmaticamente il mio televisore utilizzando i comandi RS232C o CEC personalizzati.

Ho utilizzato un esperto di servizi di bonjour e ho confrontato ogni singolo risultato tra il sonno e gli stati e non ci sono differenze di sorta. Mi sarei aspettato che Apple accogliesse tali progetti di automazione e rendesse queste informazioni facilmente disponibili con una variabile come status: sleep o status: on.

C'è un modo per distinguere i due stati tramite la connessione di rete?

In caso contrario, si potrebbe costruire un'app TVOS che viene eseguita in background e rende queste informazioni disponibili ai client in qualche modo?

+0

Non ho provato a postare su questo nei forum di supporto, ma posso rispondere alle vostre domande. Non è possibile creare un'applicazione in background, almeno non senza jailbreaker tvOS. Non ci sono servizi di rete che segnalano se Apple TV è in standby o meno. E abbastanza frustrante, ho segnalato un bug ad Apple anni fa su come Apple TV non riporta il suo stato correttamente tramite HDMI-CEC, e ancora non l'hanno riparato. Immagino che la CEC/la domotica non sia una priorità per loro. – GuyGizmo

Problemi correlati