Open ohyeah521 opened 1 month ago
Hi @ohyeah521 Do you have a bit more context and details?
D:\>pydsm_test.py
Creating Valid API
D:\pydsm_test.py:8: DeprecationWarning: verify_ssl is deprecated, use ssl=False instead
connector=aiohttp.TCPConnector(verify_ssl=False)
Traceback (most recent call last):
File "D:\pydsm_test.py", line 44, in <module>
asyncio.run(main())
File "C:\Python3\Lib\asyncio\runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "C:\Python3\Lib\asyncio\runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python3\Lib\asyncio\base_events.py", line 654, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "D:\pydsm_test.py", line 10, in main
await do(session)
File "D:\pydsm_test.py", line 23, in do
camera_id = cameras[0].camera_id
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'SynoCamera' object has no attribute 'camera_id'
pydsm_test.py source code:
import asyncio
import aiohttp
from synology_dsm import SynologyDSM
async def main():
print("Creating Valid API")
async with aiohttp.ClientSession(
connector=aiohttp.TCPConnector(verify_ssl=False)
) as session:
await do(session)
async def do(session: aiohttp.ClientSession):
api = SynologyDSM(****************)
await api.login()
surveillance = api.surveillance_station
await surveillance.update() # First update is required
# Returns a list of cached cameras available
cameras = surveillance.get_all_cameras()
# Assuming there's at least one camera, get the first camera_id
camera_id = cameras[0].camera_id
# Returns cached camera object by camera_id
camera = surveillance.get_camera(camera_id)
# Returns cached motion detection enabled
motion_setting = camera.is_motion_detection_enabled
# Return bytes of camera image
await surveillance.get_camera_image(camera_id)
# Updates all cameras/motion settings and cahce them
await surveillance.update()
# Gets Home Mode status
home_mode_status = await surveillance.get_home_mode_status()
# Sets home mode - true is on, false is off
await surveillance.set_home_mode(True)
if __name__ == "__main__":
asyncio.run(main())
I did some testing and found that this error occurs when the SurveillanceStation service crashes. 'details': 'API SYNO.SurveillanceStation.Camera does not exists'
D:\pydsm_test.py:8: DeprecationWarning: verify_ssl is deprecated, use ssl=False instead
connector=aiohttp.TCPConnector(verify_ssl=False)
Traceback (most recent call last):
File "D:\pydsm_test.py", line 44, in <module>
asyncio.run(main())
File "C:\Python3\Lib\asyncio\runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "C:\Python3\Lib\asyncio\runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python3\Lib\asyncio\base_events.py", line 654, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "D:\pydsm_test.py", line 10, in main
await do(session)
File "D:\pydsm_test.py", line 17, in do
await surveillance.update() # First update is required
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python3\Lib\site-packages\synology_dsm\api\surveillance_station\__init__.py", line 81, in update
raw_data = await self._dsm.get(self.CAMERA_API_KEY, "List", max_version=7)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python3\Lib\site-packages\synology_dsm\synology_dsm.py", line 239, in get
return await self._request("GET", api, method, params, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python3\Lib\site-packages\synology_dsm\synology_dsm.py", line 311, in _request
url, params, kwargs = await self._prepare_request(api, method, params, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python3\Lib\site-packages\synology_dsm\synology_dsm.py", line 282, in _prepare_request
raise SynologyDSMAPINotExistsException(api)
synology_dsm.exceptions.SynologyDSMAPINotExistsException: {'api': 'SYNO.SurveillanceStation.Camera', 'code': -2, 'reason': 'Unknown', 'details': 'API SYNO.SurveillanceStation.Camera does not exists'}
DSM:7.2.x Surveillance Station:9.2.0-11289
synology_dsm.exceptions.SynologyDSMAPINotExistsException: {'api': 'SYNO.SurveillanceStation.Camera', 'code': -2, 'reason': 'Unknown', 'details': 'API SYNO.SurveillanceStation.Camera does not exists'}