与铃声通信的python库(https://ring.com/)

ring-doorbell的Python项目详细描述


https://badge.fury.io/py/ring-doorbell.svghttps://travis-ci.org/tchellomello/python-ring-doorbell.svg?branch=masterhttps://coveralls.io/repos/github/tchellomello/python-ring-doorbell/badge.svg?branch=masterhttps://img.shields.io/pypi/pyversions/ring-doorbell.svg

python ring door bell是一个用python 2.7/3x编写的库 将ring.com设备公开为python对象。

当前ring.com不提供正式的api。这个项目的结果仅仅来自逆向工程。

文档:http://python-ring-doorbell.readthedocs.io/

安装

# Installing from PyPi
$ pip install ring_doorbell

# Installing latest development
$ pip install \
    git+https://github.com/tchellomello/python-ring-doorbell@master

初始化环形对象

fromring_doorbellimportRingmyring=Ring('foo@bar','secret')myring.is_connectedTrue

列出链接到您的帐户的设备

# All devicesmyring.devices{'chimes':[<RingChime:Downstairs>],'doorbells':[<RingDoorBell:FrontDoor>]}# All chimesmyring.chimes[<RingChime:Downstairs>]# All door bellsmyring.doorbells[<RingDoorBell:FrontDoor>]# All stickup camsmyring.stickup_cams[<RingStickUpCam:Driveway>]

使用属性和函数

fordevinlist(myring.stickup_cams+myring.chimes+myring.doorbells):# refresh datadev.update()print('Account ID: %s'%dev.account_id)print('Address:    %s'%dev.address)print('Family:     %s'%dev.family)print('ID:         %s'%dev.id)print('Name:       %s'%dev.name)print('Timezone:   %s'%dev.timezone)print('Wifi Name:  %s'%dev.wifi_name)print('Wifi RSSI:  %s'%dev.wifi_signal_strength)# setting dev volumeprint('Volume:     %s'%dev.volume)dev.volume=5print('Volume:     %s'%dev.volume)# play dev test shoundifdev.family=='chimes':dev.test_sound(kind='ding')dev.test_sound(kind='motion')# turn on lights on floodlight camifdev.family=='stickup_cams'anddev.lights:dev.lights='on'

显示门铃事件

fordoorbellinmyring.doorbells:# listing the last 15 events of any kindforeventindoorbell.history(limit=15):print('ID:       %s'%event['id'])print('Kind:     %s'%event['kind'])print('Answered: %s'%event['answered'])print('When:     %s'%event['created_at'])print('--'*50)# get a event list only the triggered by motionevents=doorbell.history(kind='motion')

下载丁触发的最后一个视频

doorbell=myring.doorbells[0]doorbell.recording_download(doorbell.history(limit=100,kind='ding')[0]['id'],filename='/home/user/last_ding.mp4',override=True)

显示上一个视频捕获URL

print(doorbell.recording_url(doorbell.last_recording_id))'https://ring-transcoded-videos.s3.amazonaws.com/99999999.mp4?X-Amz-Expires=3600&X-Amz-Date=20170313T232537Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=TOKEN_SECRET/us-east-1/s3/aws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=secret'

如何贡献

请参见contribution.rst

积分和感谢

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

推荐PyPI第三方库


热门话题
java Spring freemarker多模板加载程序路径   在java插件中从控制台获取输入   java在包中创建继承类   网页抓取Java Jsoup网页抓取   java在线程内创建一个对象,而true条件具有相同的引用   java如何根据空格数拆分字符串   java新的安卓 studio更新中的配置文件“app”是什么?   java在将ArrayList写入/读取到文件时出现奇怪的问题   java Reg替换文本块第一次出现+最后一次出现   java当我单击任何RecyclerView列表项时,如何在MainActivity的EditText中显示特定的单击项?   JAVA XML删除节点仅删除第一个外观   java如何在数组中查找特定值   java SVG/矢量图形对象布尔运算(并集、交集、减法)   java在Android中创建线程需要多长时间   尝试从JBOSS联系Oracle LDAP服务器时发生java连接重置异常   java基于参数获取特定的实现实例   使用java就地修改文件内容   java MonetaryException:未加载MonetaryAmountsSingletonSpi   java接受用户的不同输入并使其触发完全相同的代码段的最短方法是什么   Spring 3.2.8应用程序中未找到java HTTP 404错误