用于与 Kuna 相机移动 API 交互的 Python3 异步库
项目描述
皮库纳
用于与 Kuna 相机移动 API 交互的 Python3 异步库
要求: aiohttp、asyncio、async_timeout
使用python3 -m pip install pykuna
.
用法
pykuna的主类是KunaAPI;创建一个 API 对象,并对其进行身份验证,如下所示:
from aiohttp import ClientSession
from pykuna import KunaAPI
websession = ClientSession()
kuna = KunaAPI(USERNAME, PASSWORD, websession)
await kuna.authenticate()
在哪里:
USERNAME
是您用于 Kuna 应用程序的电子邮件地址;PASSWORD
是您使用 Kuna 应用程序的密码;和,websession
是 aiohttp.ClientSession() 的一个实例。
update()
身份验证后,通过调用API 对象上的方法填充(或刷新)Kuna 帐户中所有相机的字典(键 = 相机序列号,值 = 相机对象) :
await kuna.update()
方法
在 KunaAPI.cameras 字典中的相机设备对象上可以使用以下方法;所有都是异步的,必须await
编辑:
update()
- 仅从 API 刷新该相机的属性。get_thumbnail()
- 将相机快照作为 jpeg 图像返回。set_property(property=state)
- 设置设备的属性。当前可通过 pykuna 设置的属性有:bulb_on
(boolean) - 将灯泡设置为打开 (true) 或关闭 (false)led_mask
(boolean) - 将设备上的 LED 状态设置为 on (true) 或 off (false)volume
(int) - 设置设备的扬声器音量(最小0,最大100)
light_on()
- 打开相机的灯泡light_off()
- 关闭相机的灯泡enable_notifications()
- 为相机启用 Kuna 应用通知disable_notifications()
- 禁用相机的 Kuna 应用通知get_recordings_by_time(timedelta)
- 返回过去datetime.timedelta
时间段的记录对象的 python 列表。
例子.py
提供了一个示例脚本来演示pykuna的使用;它打印与 Kuna 帐户关联的摄像机列表,并检索摄像机当前存在的记录,打印每个记录的时间戳及其相关的下载链接。
python example.py USERNAME PASSWORD
注意事项
pykuna 与 Kuna 的(私有)移动设备 API 交互,该 API 可以随时更改。而且,如果没有官方文件或服务条款,就无法知道什么类型或使用率可能会导致您的帐户被 Kuna 禁止。谨慎使用!
pykuna 不实现超时;在您的客户端代码中使用 asyncio_timeout 根据需要包装对 API 的调用。
pykuna 的灵感来自@loghound 的调查工作:https ://github.com/loghound/kuna-camera-api ,但尚未实现所有已知端点;这个项目主要是为了将 Home Assistant 与 Kuna API 连接起来,并将在考虑到这个目标的情况下进一步开发。
当 pykuna 为 Home Assistant 做好准备时,它将达到 v1.0.0。在那之前,pykuna 的 API 随时可能发生变化!
贡献
请打开问题或拉取请求。