返回顶部
t

tuya-cloud涂鸦云控

Read sensor data and control Tuya IoT devices via Tuya Cloud API or local LAN. Use when the user wants to list devices, read temperature, humidity, soil moisture, battery or other sensor data, or send commands to switches and valves. Requires TUYA_ACCESS_ID, TUYA_ACCESS_SECRET, and optionally TUYA_API_ENDPOINT in .env.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.5
安全检测
已通过
461
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

tuya-cloud

Tuya Cloud 控制器

通过 scripts/tuya_controller.py 读取传感器数据并控制涂鸦物联网设备。同时支持涂鸦云 API 和本地局域网直接控制。

设备注册表

已知可控设备在 scripts/config.py 中定义为 CONTROLLABLE_DEVICES(可选)。
如果存在该列表,请优先查阅,以将设备名称解析为对应的 device_id。
对于阀门设备,valve 键提供用作命令 code 的 DP 码(例如 switch_1)。
仅当设备未在配置中列出时,才调用 tuyalistdevices。

设置

将凭证添加到 .env:

bash
TUYAACCESSID=youraccessid
TUYAACCESSSECRET=youraccesssecret
TUYAAPIENDPOINT=https://openapi.tuyaeu.com # 默认:tuyaus.com(美国)

区域端点:欧盟 tuyaeu.com · 美国 tuyaus.com · 中国 tuyacn.com · 印度 tuyain.com

在涂鸦物联网平台项目中启用 IoT Core 服务,并授予设备可控权限(默认为只读)。

工具

tuyalistdevices

列出连接到云项目的所有涂鸦设备。

bash
python scripts/tuyacontroller.py listdevices
python scripts/tuyacontroller.py listdevices --outputformat json --outputpath devices.json

tuyareadsensor

读取涂鸦设备的所有传感器数据(温度、湿度、电量、移动检测、门状态、开关状态)。

bash
python scripts/tuyacontroller.py readsensor
python scripts/tuyacontroller.py readsensor id> --outputformat text

parsesensordata() 解释原始 API 键:

传感器原始键说明
温度vatemperature, tempcurrent, tempset除以 10(例如 245 → 24.5°C)
湿度
vahumidity, humidity_value | 百分比,原样返回 |
| 电量 | battery_percentage, battery | 良好 >80% / 中等 >20% / 低 ≤20% |
| 移动检测 | pir | pir 值 = 检测到移动 |
| 门状态 | doorcontact_state | 布尔值 → 开/关 |
| 状态 | state | 布尔值 → 开/关 |
| 土壤湿度 | soilmoisture, humidity, vahumidity | 百分比,原样返回 |

tuyacontroldevice

向涂鸦设备发送命令(开关、阀门、倒计时定时器)。传递一个 {code, value} 对的 JSON 数组。使用 IoT Core /v1.0/iot-03/ 端点,支持 Zigbee 子设备。

bash

打开或关闭开关/阀门


python scripts/tuyacontroller.py controldevice id> [{code:switch1,value:true}]
python scripts/tuyacontroller.py controldevice id> [{code:switch2,value:false}]

打开阀门并设置固定时长 — 在一次调用中发送开关 ON + 倒计时

countdown1 / countdown2 的值以分钟为单位 — 不要乘以 60

python scripts/tuyacontroller.py controldevice id> [{code:switch1,value:true},{code:countdown_1,value:10}]

⚠️ countdown1 / countdown2 以分钟为单位。10 = 10 分钟,60 = 1 小时。

双通道阀门设备

部分阀门设备提供两个独立通道(例如左右出水口)。每个通道有自己的开关和倒计时 DP:

通道开关 DP倒计时 DP
switch1countdown1
switch2 | countdown2 |

独立控制每个通道:

bash

打开左阀门 5 分钟


python scripts/tuyacontroller.py controldevice id> [{code:switch1,value:true},{code:countdown_1,value:5}]

打开右阀门 10 分钟

python scripts/tuyacontroller.py controldevice id> [{code:switch2,value:true},{code:countdown_2,value:10}]

立即关闭右阀门

python scripts/tuyacontroller.py controldevice id> [{code:switch2,value:false}]

要在 config.py 中注册双通道阀门,可以将两个通道作为单独条目添加,或使用列表:

python

选项 A:两个条目(每个通道一个)


{name: 温室阀门左, deviceid: , valve: switch1, countdown: countdown_1},
{name: 温室阀门右, deviceid: , valve: switch2, countdown: countdown_2},

本地局域网工具

无需云 API 调用,直接在本地网络上控制设备。扫描不需要凭证;读取/控制需要 local_key 和 ip。

scan_local

通过 UDP 广播扫描本地网络中的涂鸦设备。

bash
python scripts/tuyacontroller.py scanlocal
python scripts/tuyacontroller.py scanlocal --timeout 10
python scripts/tuyacontroller.py scanlocal --enrich --outputformat json # 添加云名称/localkeys

read_local

直接通过局域网读取设备状态(无需云往返)。

bash
python scripts/tuyacontroller.py readlocal id> key>
python scripts/tuyacontroller.py readlocal id> key> --version 3.4

control_local

直接通过局域网向设备发送命令。命令可以使用整数 DP 索引(dp)或字符串 DP 名称(code)。

bash
python scripts/tuyacontroller.py controllocal id> key> [{dp:1,value:true}]
python scripts/tuyacontroller.py controllocal id> key> [{code:switch_1,value:true}]

使用整数 dp 可获得最大兼容性。字符串 code 需要设备支持。

API 端点(内部)

  • - 设备列表:GET /v1.0/iot-01/associated-users/devices
  • 设备信息:GET /v1.0/devices/{deviceid}
  • 设备状态:GET /v1.0/iot-03/devices/{deviceid}/status
  • 发送命令:POST /v1.0/iot-03/devices/{device_id}/commands

依赖项

bash
pip install tinytuya python-dotenv

故障排除

错误解决方法
Data center is not enabled在涂鸦物联网平台 → 服务 API 中启用 IoT Core
Permission denied
订阅 IoT Core 并启用设备状态通知 | | 设备离线 | online: false;土壤湿度返回 null | | 端点错误 | 将 TUYAAPIENDPOINT 与您的账户区域匹配 | | 本地扫描未发现任何设备 | 检查防火墙;某些网络可能阻止 UDP 广播 | | 本地控制 Zigbee 设备失败 | Zigbee 子设备必须通过其网关控制(使用网关 ID + cid) |

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 tuya-cloud-1776193683 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 tuya-cloud-1776193683 技能

通过命令行安装

skillhub install tuya-cloud-1776193683

下载

⬇ 下载 tuya-cloud v1.0.5(免费)

文件大小: 12.58 KB | 发布时间: 2026-4-15 12:31

v1.0.5 最新 2026-4-15 12:31
- Added support for direct local LAN control of Tuya devices (scan, read, control without cloud).
- Expanded documentation for dual-channel valve devices and channel-specific control.
- Documented new CLI tools: scan_local, read_local, control_local.
- Updated API endpoints to match current Tuya recommendations.
- Improved troubleshooting tips for local network and Zigbee sub-device scenarios.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部