跳转到内容

Tuya Number

tuya 数字平台允许你创建一个控制 Tuya 串口组件的数字。此平台要求已配置 Tuya。

当 Tuya 正确配置后,启动后会在日志中输出一份有效数据点列表。

[21:37:14][C][tuya:028]: Tuya:
[21:37:14][C][tuya:045]: Datapoint 101: enum (value: 4)
[21:37:14][C][tuya:045]: Datapoint 102: enum (value: 1)
[21:37:14][C][tuya:041]: Datapoint 103: int value (value: 5)
[21:37:14][C][tuya:039]: Datapoint 104: switch (value: OFF)
[21:37:14][C][tuya:041]: Datapoint 105: int value (value: 229)
[21:37:14][C][tuya:041]: Datapoint 106: int value (value: 37)
[21:37:14][C][tuya:041]: Datapoint 107: int value (value: 10)
[21:37:14][C][tuya:041]: Datapoint 108: int value (value: 35)
[21:37:14][C][tuya:041]: Datapoint 109: int value (value: 30)
[21:37:14][C][tuya:041]: Datapoint 110: int value (value: 80)
[21:37:14][C][tuya:039]: Datapoint 112: switch (value: OFF)
[21:37:14][C][tuya:039]: Datapoint 113: switch (value: OFF)
[21:37:14][C][tuya:039]: Datapoint 114: switch (value: OFF)
[21:37:14][C][tuya:045]: Datapoint 115: enum (value: 4)
[21:37:14][C][tuya:045]: Datapoint 116: enum (value: 2)
[21:37:14][C][tuya:055]: Product: '{"p":"ymf4oruxqx0xlogp","v":"1.0.3","m":0}'

上面的示例输出来自带有温度和湿度传感器的 Tuya 警笛。tuya 数字平台可用于控制所有整数和枚举数据点。

在此设备上,数据点 116 代表音量控制,有效值为 0=高、1=中、2=低。

基于此,你可以创建如下数字:

- platform: "tuya"
name: "Volume"
number_datapoint: 116
min_value: 0
max_value: 2
step: 1

multiply 的值用作 Number 的缩放因子。Tuya 中的所有数字都是整数,因此有时需要缩放因子将 Tuya 报告的数值转换为浮点数。

例如,假设我们有一个 pH 传感器,读取范围为 0.00 到 15.00,缩放为 0.01。通过在 Tuya 端(用户不可见)将 multiply 设为 100,数字将以 0 到 1500 的整数形式报告。可以使用以下配置:

- platform: "tuya"
name: "pH Sensor"
number_datapoint: 106
min_value: 0.00
max_value: 15.00
multiply: 100

上述配置在 Tuya 设备于初始化时发布数据点值(及其类型)时能正常工作。但这并不总是如此。要使用此类”隐藏”数据点作为 Number,你需要指定额外的 datapoint_hidden 配置块。此块允许指定缺失的数据点类型,以及可选的在初始化时应写入数据点的值。

TuyaMCU 会在重启后恢复其所有数据点的状态,但对于隐藏数据点,无法知道它们的值是什么。因此,还有一个选项可以在 ESPHome 端存储它们,并会在初始化时设置。要使用此功能,请将 restore_value YAML 键设为 True。

- platform: "tuya"
name: "Alarm at maximum"
number_datapoint: 116
min_value: 0
max_value: 100
datapoint_hidden:
datapoint_type: int
initial_value: 85
restore_value: yes
  • number_datapoint(必需,int):数字的数据点 ID 号。

  • min_value(必需,float):此数字可以的最小值。

  • max_value(必需,float):此数字可以的最大值。

  • step(可选,float):设置数字的粒度。默认为 1。

  • multiply(可选,float):在发送请求之前,将新值乘以该因子。

  • datapoint_hidden(可选):指定隐藏数据点所需的信息。

    • datapoint_type(必需,string):数据点类型,可选 int、uint、enum。
    • initial_value(可选,float):初始化时要写入的值。必须在 min_value 和 max_value 之间。
    • restore_value(可选,boolean):将状态保存到 RTC/闪存并加载。默认为 false。
  • 数字 的所有其他选项。