纯python库控制/提供tuya设备

aiotuya的Python项目详细描述


#aiotuya

aiotuya是用于tuya设备的lan控制的python库。它可以检测、设置和控制连接到[图雅云](https://www.tuya.com)的设备。


为了方便用户,Aiotuya附带了由[图雅云](https://www.tuya.com)提供的应用程序密钥和机密。我们要求您不要将这些密钥和机密用于任何其他目的。

com/codetheweb/tuyapi/issues/5)。我所做的就是将他们的工作移植到python中,使用asyncio并添加了错误。

同时,我们将上传到pypi

惯性导航与制导。你想


``shell
python3-m aiotuya-e me@mypass-s wifissid-p wifisecret开始设置新设备
```



准备好设备进行配置,然后按0再按回车键。

然后等待,不时按回车键。

这些不适合人类食用,已知会导致老鼠癌症。


WiFi。从有线计算机上尝试不起作用。显然我的路由器(asus rt-ac5300)
没有中继数据包。您的相似性可能会有所不同。

设置也适用于通过WiFi连接的RPI3(请注意,我使用USB WiFi加密狗来连接,而不是RPI3 WiFi模块)


设置还不适用于使用WiFi加密狗连接的RPI2(有线连接)。



ys

在配置过程中,设备将向[tuya cloud]注册(https://www.tuya.com)。
注册成功后,配置系统将收到一个密钥,以便在与设备通信时使用。默认情况下,aiotuya会将这些对(设备id、密钥)保存在主目录中的csv文件中。默认文件名为.aiotuya

它有两种方法:

*on()
*off()


配有"tuyaocswitch"。它有3种方法:

*open()
*close()
*idle()


,状态值可以是:

*closing
*opening
*idling

它由"tuyalight"提供,并提供以下方法:

*on()
*off()
*设置白色(亮度,k)
*设置颜色([色调,饱和度,值])
*设置颜色rgb([pred,绿色,蓝色])
*过渡白色([亮度,k],持续时间)
*过渡颜色([h,s,v],du定量)
*淡入白(亮,k,持续时间)
*淡出白(持续时间)
*淡出色(h,s,v,持续时间)
*淡出色(持续时间)


e添加它们所需的信息。

这允许它在设备状态发生变化时接收实时状态消息
(例如按下开关上的按钮)。缺点是tuya设备似乎只接受一个这样的
连接,因此aiotuya通过lan独家控制设备。幸运的是,当设备有网络连接时,它们将停止中断其存在,因此其他应用程序将无法找到它们。我还没有试过查看在这种情况下
云api是否仍然有效。

该类至少应有4个方法:

*register(self,device)
当找到新设备时,将使用此方法进行报告。
*unregister(self,device)
当与设备的连接丢失时调用此方法。
*got_data(self,data)
当设备接收到VE数据。数据应该是字典。"devid"可用于判断哪个设备接收到数据
*got_error(self,device,data)
在接收到错误时调用此函数。设备作为参数传递。



tuyamanager子类,如果要持久化设备密钥,请重载2个方法:

*加载密钥(self)
加载字典中的已知密钥self.known\u设备。在初始化中调用
*持久化密钥(self)
保存密钥,在报告新密钥时调用。


之后

``python
mydevs=devices()
loop=aio.get_event_loop()
manager=devmanager(dev_parent=mydevs)
scanner=tuya.tuyascanner(parent=manager)
scanner.start(loop)
```
h raw_dps set,使用其自身作为设备管理器。
在接收到设备状态数据时,tuyamanager将尝试找出设备的类型,并使用应用程序设备管理器创建适当的实例来控制设备。


tuyamanager找出它是de的设备类型发出一个状态请求并检查返回的值,以进行报警。
如果返回错误,OT将尝试发送命令。原因是,我的oc开关在通电后,将向任何状态请求返回
一个"json struct data unvalid"错误,直到按下按钮或发出有效命令为止。tuyamanager的行为
是为了规避这个问题。

使用LED灯泡和打开/关闭开关对我有效




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

推荐PyPI第三方库


热门话题
使用安卓 studio和mysql进行第二次照片更新的java   java是我的pom。xml安装和生成失败   获取并处理java异常行   java 2d平台冲突错误   java使用SSH exec通道调用shell脚本,但忽略对其他shell脚本的调用   java如何将postgresSql查询重写为Springdata jpa查询   java无法使用IP地址和端口登录liferay 6.2   爪哇1。按钮不显示文本2。逻辑正确吗   java如何在片段中使用谷歌地图视图?   如何在java中连接字符?   Java右移输出负值   java@PropertySource()在@ImportResource()导入的XML中定义的bean中不起作用   Java、SWT使窗口(shell)部分透明   回溯回溯java中的DUCU