lukasroegner / homebridge-apple-tv-remote

Plugin for controlling Apple TVs in homebridge.
MIT License
131 stars 13 forks source link

Play/Pause button not properly updating #7

Closed CooperCGN closed 4 years ago

CooperCGN commented 4 years ago

Not sure if this is plugin related or a iOS 13 problem. Sometimes the play/pause button isn’t updated.

lukasroegner commented 4 years ago

It's actually a "best-we-can-do" implementation. The play/pause events from the Apple TV don't seem to be that reliable. In my own experience, it works better with apps like Netflix, worse with apps like Prime Video.

CooperCGN commented 4 years ago

Thanks, already thought so. Would have been nice to have for some automations but the scripting abilities alone make this another awesome plugin.

RaymondMouthaan commented 4 years ago

Facing the same issues here with Netfix :(

robborow commented 4 years ago

Facing the same issues here with Netfix :(

Something worth noting that might cause some confusion is that the auto preview when browsing Netflix content triggers the play event (also worth noting; either Netflix doesn't properly send the event for stopping this preview playback or this plugin doesn't pick that up). I disabled that feature in the Netflix settings and everything feels much more consistent.

RaymondMouthaan commented 4 years ago

@lukasroegner, thanks for your answer at #30, specially pointing me to the 'appletv' command line tool.

Using the following command:

appletv --credentials <token> state

I get the following logging:

S1: A2 "Aflevering 2" (52.5%) | Netflix (com.netflix.Netflix) | paused
S1: A2 "Aflevering 2" (52.5%) | Netflix (com.netflix.Netflix) | playing
S1: A2 "Aflevering 2" (52.5%) | Netflix (com.netflix.Netflix) | playing
S1: A2 "Aflevering 2" (52.5%) | Netflix (com.netflix.Netflix) | paused
S1: A2 "Aflevering 2" (52.7%) | Netflix (com.netflix.Netflix) | paused
S1: A2 "Aflevering 2" (52.7%) | Netflix (com.netflix.Netflix) | playing
S1: A2 "Aflevering 2" (52.8%) | Netflix (com.netflix.Netflix) | playing
S1: A2 "Aflevering 2" (52.8%) | Netflix (com.netflix.Netflix) | paused
S1: A2 "Aflevering 2" (52.9%) | Netflix (com.netflix.Netflix) | paused
S1: A2 "Aflevering 2" (52.9%) | Netflix (com.netflix.Netflix) | playing
S1: A2 "Aflevering 2" (52.9%) | Netflix (com.netflix.Netflix) | playing
S1: A2 "Aflevering 2" (52.9%) | Netflix (com.netflix.Netflix) | paused
S1: A2 "Aflevering 2" (53.9%) | Netflix (com.netflix.Netflix) | paused
S1: A2 "Aflevering 2" (53.9%) | Netflix (com.netflix.Netflix) | playing
S1: A2 "Aflevering 2" (53.9%) | Netflix (com.netflix.Netflix) | playing
S1: A2 "Aflevering 2" (53.9%) | Netflix (com.netflix.Netflix) | paused
S1: A2 "Aflevering 2" (54.3%) | Netflix (com.netflix.Netflix) | paused
S1: A2 "Aflevering 2" (54.3%) | Netflix (com.netflix.Netflix) | playing
S1: A2 "Aflevering 2" (54.3%) | Netflix (com.netflix.Netflix) | playing
S1: A2 "Aflevering 2" (54.3%) | Netflix (com.netflix.Netflix) | paused
S1: A2 "Aflevering 2" (54.5%) | Netflix (com.netflix.Netflix) | paused
S1: A2 "Aflevering 2" (54.5%) | Netflix (com.netflix.Netflix) | playing
S1: A2 "Aflevering 2" (54.5%) | Netflix (com.netflix.Netflix) | playing
S1: A2 "Aflevering 2" (54.5%) | Netflix (com.netflix.Netflix) | paused
S1: A2 "Aflevering 2" (61.1%) | Netflix (com.netflix.Netflix) | paused
S1: A2 "Aflevering 2" (61.1%) | Netflix (com.netflix.Netflix) | playing
S1: A2 "Aflevering 2" (61.2%) | Netflix (com.netflix.Netflix) | playing
S1: A2 "Aflevering 2" (61.2%) | Netflix (com.netflix.Netflix) | paused
S1: A2 "Aflevering 2" (65.0%) | Netflix (com.netflix.Netflix) | paused
S1: A2 "Aflevering 2" (65.0%) | Netflix (com.netflix.Netflix) | playing
S1: A2 "Aflevering 2" (65.1%) | Netflix (com.netflix.Netflix) | playing

As you see, I've tested with Netflix and every state is logged twice, but it corresponds exactly with the state of the Apple TV. In contrast to homebridge-apple-tv-remote, which sometimes passes the state correctly , sometimes incorrectly and sometimes changes its status "spontaneously" while the appletv tool remains unchanged.