ikalchev / HAP-python

A python implementation of the HomeKit Accessory Protocol (HAP)
Other
624 stars 119 forks source link

cannot find accessory.state #434

Open cactm08062 opened 1 year ago

cactm08062 commented 1 year ago

Exception has occurred: FileNotFoundError [WinError 2] The system cannot find the file specified: 'accessory.state' File "C:\Users\OWNER\homekit_test\HAP-python\pyhap\accessory_driver.py", line 648, in persist os.chmod(self.persist_file, 0o644) File "C:\Users\OWNER\homekit_test\HAP-python\pyhap\accessory_driver.py", line 483, in add_accessory self.persist() File "C:\Users\OWNER\homekit_test\HAP-python\main.py", line 57, in driver.add_accessory(accessory=get_accessory(driver)) FileNotFoundError: [WinError 2] The system cannot find the file specified: 'accessory.state'

Pythonaire commented 1 year ago

The state-file will be created after the first homekit connection. It sounds like this process was never fulfilled.

jiiiiiiiiiin commented 1 year ago

May I ask if you are experiencing this issue under the Windows operating system? I have also encountered this issue. I tried to add the following code in line 646 of "pyhap/accessory_driver. py" to solve this problem。

with open(self.persist_file, "w", encoding="utf8") as file_handle:
    self.encoder.persist(file_handle, self.state)
pjkundert commented 7 months ago

On Windows os.chmod fails if the file doesn't exist; it's failing trying to make the current persistence file writable by the user, in preparation for swapping in the temporary file just written.

Fixed by #471