DHT 温湿度采集与阈值告警
先配置 dht_room 为实际 DHT11 或 DHT22 外设,确认供电、数据上拉、引脚和受支持采样间隔。本例为 DHT22,读取动作类别须与实际硬件一致。
分通道采集
每个动作读取一个通道。温度与湿度均需要时配置两个动作,不能只读温度再显示湿度:
json
{
"rules": [
{
"id": "exec_dht_read",
"name": "exec_dht_read",
"enabled": false,
"execMode": 0,
"triggers": [
{
"triggerType": 1,
"timerMode": 0,
"intervalSec": 5
}
],
"actions": [
{
"actionType": 19,
"targetPeriphId": "dht_room",
"actionValue": "{\"periphId\":\"dht_room\",\"sensorCategory\":\"dht22\",\"channelField\":\"temperature\",\"dataField\":\"temperature\",\"unit\":\"°C\"}"
},
{
"actionType": 19,
"targetPeriphId": "dht_room",
"actionValue": "{\"periphId\":\"dht_room\",\"sensorCategory\":\"dht22\",\"channelField\":\"humidity\",\"dataField\":\"humidity\",\"unit\":\"%\"}"
}
],
"reportAfterExec": true
},
{
"id": "exec_dht_high",
"name": "exec_dht_high",
"enabled": false,
"execMode": 0,
"triggers": [
{
"triggerType": 4,
"eventId": "ds:dht_room_temperature",
"operatorType": 2,
"compareValue": "30"
}
],
"actions": [
{
"actionType": 21,
"targetPeriphId": "device_alarm",
"actionValue": "temperature_high"
}
],
"reportAfterExec": true
}
]
}告警监听 ds:dht_room_temperature,比较的是本地有效样本;不是平台下发 ID,也不能在“每5秒读取”的同一轮询规则后添加继电器并声称仅在超过30°C时启动。
device_alarm 是内置设备事件;自定义 high_temperature 需先保存 DEVICE_EVENT,再引用。超限数据事件可能持续重复告警,不是只在越界边沿触发;无效/过期温度不按零度处理。
显示与持续温控
OLED 模板使用 ${dht_room.temperature}、${dht_room.humidity} 及各自 .unit;先独立确认两个缓存。读取和重绘不会延长旧样本年龄,详见显示动作。
风扇、制热或制冷持续控制改用本地温控规则。该功能核对唯一摄氏来源、专用低电平吸合输出、HIGH 安全状态、回差、最小开停时间、失鲜关闭与恢复策略。不要用缺少上述保护的旧两条高低阈值继电器配置替代;显示与上报放在独立规则中。
规则先保存为停用,按授权范围验证当前设备、真实温湿度、采样失败、平台完整消息及需要的实物反馈,再启用。软件回归不证明传感器校准或负载验收。

