Skydrop喷水灭火器控制器API的python库
skydropp的Python项目详细描述
与Skydrop喷水灭火器控制器API接口的python库。在
第一件事:OAuth你的应用和你的用户
要使用此库,您必须具有Skydrop API的开发人员帐户。您可以尝试通过电子邮件api@skydrop.com请求开发人员访问您的帐户。在
您必须根据文档导航OAuth2流,以获取用户代码,该代码可用于收集用户的访问和刷新令牌: Skydrop API Documentation
客户机中有几个helper方法可以帮助实现这一点
示例代码
稍后的文档,现在,请随意探索代码
示例代码:
import skydroppy import time async def main(): client = skydroppy.SkydropClient(client_key, client_secret) # load tokens for the user from your favorite long term storage # should match the structure below. tokens = load_tokens() #{ # 'access': <access token>, # 'refresh': <refresh token>>, # 'expires': <epoch timestamp for when access token expires> #} if tokens: client.load_token_data(tokens) # little helper method else: tokens = await client.get_access_token(code) save_tokens(client._tokens) if client.is_token_expired(): tokens = await client.refresh_access_token() save_tokens(client._tokens) controllers = await client.update_controllers() for controller in controllers: print(controller) for zone in controller.zones: if zone.status == 'wired': print(zone) front_yard = controllers[0] back_yard = controllers[1] await front_yard.update() #updates status of all zones and controller status await front_yard.get_zone(3).start_watering() await back_yard.get_zone(1).start_watering() time.sleep(120) print(back_yard.get_zone(1).time_remaining) await back_yard.stop_watering() # stops all zones await front_yard.get_zone(3).stop_watering() # also stops all zones.. API/Skydrop limitation asyncio.run(main())
- 项目
标签: