postlund / pyatv

A client library for Apple TV and AirPlay devices
https://pyatv.dev
MIT License
891 stars 100 forks source link

conf: Add macOS as operating system #2113

Closed postlund closed 1 year ago

postlund commented 1 year ago

Detection has been added fir AirPlay and RAOP.

Relates to #2104

codecov[bot] commented 1 year ago

Codecov Report

Patch coverage: 100.00% and project coverage change: +0.34% :tada:

Comparison is base (b8f793e) 88.31% compared to head (b9e29b9) 88.65%.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #2113 +/- ## ========================================== + Coverage 88.31% 88.65% +0.34% ========================================== Files 162 162 Lines 10836 10969 +133 ========================================== + Hits 9570 9725 +155 + Misses 1266 1244 -22 ``` | [Files Changed](https://app.codecov.io/gh/postlund/pyatv/pull/2113?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Pierre+St%C3%A5hl) | Coverage Δ | | |---|---|---| | [pyatv/interface.py](https://app.codecov.io/gh/postlund/pyatv/pull/2113?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Pierre+St%C3%A5hl#diff-cHlhdHYvaW50ZXJmYWNlLnB5) | `98.57% <ø> (+0.15%)` | :arrow_up: | | [pyatv/const.py](https://app.codecov.io/gh/postlund/pyatv/pull/2113?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Pierre+St%C3%A5hl#diff-cHlhdHYvY29uc3QucHk=) | `100.00% <100.00%> (ø)` | | | [pyatv/protocols/airplay/\_\_init\_\_.py](https://app.codecov.io/gh/postlund/pyatv/pull/2113?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Pierre+St%C3%A5hl#diff-cHlhdHYvcHJvdG9jb2xzL2FpcnBsYXkvX19pbml0X18ucHk=) | `73.09% <100.00%> (+0.48%)` | :arrow_up: | | [pyatv/protocols/raop/\_\_init\_\_.py](https://app.codecov.io/gh/postlund/pyatv/pull/2113?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Pierre+St%C3%A5hl#diff-cHlhdHYvcHJvdG9jb2xzL3Jhb3AvX19pbml0X18ucHk=) | `97.00% <100.00%> (+0.03%)` | :arrow_up: | | [pyatv/support/device\_info.py](https://app.codecov.io/gh/postlund/pyatv/pull/2113?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Pierre+St%C3%A5hl#diff-cHlhdHYvc3VwcG9ydC9kZXZpY2VfaW5mby5weQ==) | `100.00% <100.00%> (ø)` | | ... and [13 files with indirect coverage changes](https://app.codecov.io/gh/postlund/pyatv/pull/2113/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Pierre+St%C3%A5hl)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

stibbzy commented 1 month ago

@postlund Hi there. I’ve finally been able to add my MacBook (using the AirPlay Receiver feature) to the ATV integration in Home Assistant. However, the two entities it produces show no actual activity. The media player entity’s status is constantly ‘idle’ no matter whether it is receiving an Airplay stream or not.

Is this expected operation, and just a shortcoming of the protocol? It just seems that as it is right now, the entities don’t have any utility at all.

Many thanks!

postlund commented 1 month ago

@stibbzy It's expected behavior unfortunately. As far as I have managed to figure out, there's nothing in AirPlay that allows you to get metadata from an AirPlay receiver that already plays something. It is possible to see the play state via Zeroconf properties (not implemented in pyatv though). Some people seem to suggest that they see this, but I'm not sure how it is possible. So current state is basically what I can do in pyatv.

stibbzy commented 1 month ago

@postlund Ahh I see, thanks! So am I right in assuming that whatever protocol (assuming it's MRP) that allows us to see Apple TV and HomePod metadata isn't present in the MacOS implementation of Airplay Receiver? (i.e. no MRP tunnelling)