openairplay / airplay2-receiver

AirPlay 2 Receiver - Python implementation
2.13k stars 133 forks source link

Homekit pairing failed #16

Closed Neustradamus closed 3 years ago

Neustradamus commented 3 years ago

Originally: https://github.com/ckdo/airplay2-receiver/issues/6

@yuhengqiu commented Aug 1, 2020 •

Hi guys, when I tried to pair to HomeKit, I got "Coundn't add Accessory" error and failed. Actually it was stucked at:

POST /pair-add Not implemented! 10.0.0.71 -- [01/Aug/2020 17:27:31] code 404, message Not Found

If I implements pair-add in hap.py, then it added pair, but got stucked at:

Exception happened during processing of request from ('10.0.0.71', 51700) Traceback (most recent call last): File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/socketserver.py", line 316, in _handle_request_noblock self.process_request(request, client_address) File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/socketserver.py", line 347, in process_request self.finish_request(request, client_address) File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/socketserver.py", line 360, in finish_request self.RequestHandlerClass(request, client_address, self) File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/socketserver.py", line 720, in init self.handle() File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/http/server.py", line 428, in handle self.handle_one_request() File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/http/server.py", line 394, in handle_one_request self.raw_requestline = self.rfile.readline(65537) File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/socket.py", line 589, in readinto return self._sock.recv_into(b) File "/Volumes/Workspace/App/airplay2-receiver/ap2/pairing/hap.py", line 348, in recv_into data = self.recv(nbytes, flags) File "/Volumes/Workspace/App/airplay2-receiver/ap2/pairing/hap.py", line 366, in recv block_length_bytes = self.socket.recv(self.LENGTH_LENGTH) File "/Volumes/Workspace/App/airplay2-receiver/ap2/pairing/hap.py", line 357, in recv assert not flags and buflen > self.LENGTH_LENGTH AssertionError

Anyone has succeed in pairing to HomeKit? Did I miss something? Cheers

systemcrash commented 3 years ago

@yuhengqiu Can you try with the latest master? We added #27 which should make it obvious which Flags are needed for HomeKit.

TheSpookyCat commented 3 years ago

@yuhengqiu Can you try with the latest master? We added #27 which should make it obvious which Flags are needed for HomeKit.

27 will not fix this problem - I don't think there is any code to implement HomeKit support.

https://developer.apple.com/homekit/specification/ The HomeKit spec does not go into detail on how we can implement this. Looks like we might need someone who has access to an MFi-enrolled account in order to get HomeKit pairing working.

TheSpookyCat commented 3 years ago

Could someone please close in favour of #38?