与铃声通信的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 Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本