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())

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java随机填充2d数组   java运行时。getRuntime。带有长参数的exec(cmd)   java Minecraft无法放置自定义背景   java AChartEngine YAxis自定义标签区域边距和图表值为字符串?   泛型类的java类型安全错误   整数的java符号等价物。toBinaryString方法?   Java中数组列表的数组   java WebView应用程序在谷歌登录后显示空白屏幕   java从backback中删除特定片段   如果服务器不支持使用的协议,java JSSE是否实现回退?   java Sonarqube正在进行核心漏洞查找。如何解决   javajavax。jcr。UnsupportedPositionOperationException:testVersionable处的节点不可版本化   java在安卓中每隔X小时运行一次文件/函数,无需打开应用程序   java如何为磁盘持久性配置BigMemory?   java BufferWriter不转换383以上的整数   Java7交集类型:规范具体说明了什么?   Java:CollectionHow创建多列   java如何检测运算符的空白   java问题:在firebase中为导航栏中的第二个表单提交数据第一个表单工作正常。实际isse是连接Mainactivity中的另一个活动