DigitalStrom的PythonAPI客户端
pydigitalstrom的Python项目详细描述
洋地黄
运行捆绑式Docker
$ docker-compose build
$ docker-compose up -d
$ docker-compose exec python bash
在本地运行测试
$ docker-compose run --rm python tox
概念
由于digitalstrom主要建立在场景的概念上,所以这个库也只支持设置场景。
当前支持用户定义的命名场景和通用场景。
示例用法
# -*- coding: UTF-8 -*-importurllib3importosimportasynciofrompydigitalstrom.clientimportDSClient# disable certificate warnings - dss uses self signedasyncdeftest():urllib3.disable_warnings()config_path=os.path.join(os.path.dirname(os.path.abspath(__file__)),'config','auth.json')client=DSClient(host='https://dss.local:8080',username='dssadmin',password='mySuperSecretPassword',config_path=config_path,apartment_name='Apartment')awaitclient.initialize()scenes=client.get_scenes()forsceneinscenes.values():print(scene.unique_id)print(scene.name)awaitscene.turn_on()loop=asyncio.get_event_loop()loop.run_until_complete(test())
事件侦听器
运行事件侦听器从digitalSTROM获取场景调用更新
# -*- coding: UTF-8 -*-importurllib3importosimportasynciofrompydigitalstrom.clientimportDSClientfrompydigitalstrom.listenerimportDSEventListenerasyncdefcallback(event):print('callback called')print(event)# disable certificate warnings - dss uses self signedasyncdeftest(loop):urllib3.disable_warnings()config_path=os.path.join(os.path.dirname(os.path.abspath(__file__)),'config','auth.json')client=DSClient(host='https://dss.local:8080',username='dssadmin',password='mySuperSecretPassword',config_path=config_path,apartment_name='Apartment')listener=DSEventListener(client=client,event_id=1,event_name='callScene',timeout=1,loop=loop)awaitlistener.start()listener.register(callback=callback)whileTrue:awaitasyncio.sleep(1)loop=asyncio.get_event_loop()loop.run_until_complete(test(loop=loop))
更改日志
该项目的所有显著变化都将记录在本文件中。
格式基于Keep a Changelog 这个项目遵循Semantic Versioning。
[未发布]
[0.5.0]-2019-02-09年
更改
- 中断-已更改的设备唯一ID以下划线分隔,而不是以点分隔
- 更新了python版本和依赖项
[0.4.1]-2018-10-01
更改
- 在dseventlistener上注册回调不应是异步的
[0.4.0]-2018-10-01
更改
- 打破-这个库将只支持从现在起的场景,因为设备行动吸吮数字存储
- 中断-dseventlistener现在将把事件数据转发到回调,而不是自己更新状态
[0.3.4]-2018-09-30
添加了
- 从dslistener更新areablind状态
[0.3.3]-2018-09-29
添加了
- 支持区域盲,基本上将场景0-9转换为区域的适当盲设备
[0.3.2]-2018-09-16
更改
- 允许向DSListener传递异步循环
[0.3.1]-2018-09-16
添加了
- 在AreaLight上支持更新回调
[0.3.0]-2018-09-16
添加了
- 支持区域光,基本上将场景0-9转换为区域的适当照明设备
- 可以更新区域灯光状态的事件侦听器
更改
- 中断-设备等现在由dsclient初始化。initialize()和dsclient getter函数不再是异步的
[0.2.0]-2018-09-11
添加了
- 测试覆盖率增加
更改
- 中断-所有事情都是异步的
- 使用aiohttp进行调用,并使用async函数提供api
- 符合PEP8格式规则
- 将合并的DSTerminal和DSDevice拆分为DSDevice
- 打破最低要求的python版本现在是3.5.3
- 运行完整TOX套件的多版本Docker环境
[0.1.2]-2018-09-10
固定
- 某些API调用不应期望结果节点响应
更改
- 为Docker env和app config添加了更多GitIgnores
[0.1.1]-2018-09-10
添加了
- 盲、光、表、景试验
- 将“上移”、“下移”和“停止”添加到“盲板”
更改
- 请求的DSDevice和DSTerminal签名现在允许无结果节点的响应
[0.1.0]-2018-09-09年
更改
- 完全重写
添加了
- (黄色)GE-KL200、GE-KM200支架
- (灰色)GR-KL200支架
- (黑色)支持sw-zw200-f、sw-tkm200
- (米)支持dSM12
- (服务器)支持DSS IP
- 支持场景
[0.0.1]-2016-11-23
添加了
- 初始版本