|
本帖最后由 riceball 于 2022-7-6 19:43 编辑
一直以来,空调的温度调节就是一个问题:调低一度太冷, 调高一度又热. 现在有了HA,可以思考下用HA自然控制温度的策略了.
最近在写 SmartIR 智能红外遥控集成(空调/电视/风扇)改进增强版(测试)
准备内置外部控温,正在思考自然温度调节的策略, 这里征求下坛友的意见. 下面是我初步思考的策略,总感觉不太完善.
- 制冷还是制热:
- 方法一: 增加室外温度传感器, 如果设定温度 > 室外温度传感器 制热, 小于室外温度传感器则制冷
- 方法二: 根据 HOME 的地理位置 确定南北半球,南北极,赤道, 再根据时间确定冬夏来决定制冷还是制热, 但是如果是在春秋开空调呢?
- 使用体感温度代替温度传感器,这个最简单, 没啥好说的,装一个体感温度集成即可, 地址这里: Thermal Comfort 热舒适度集成(含体感温度)
- 使用智能墙壁插座控制空调以及监测空调运行功耗(通过检测功耗来监视空调的制冷工作情况)
- 开机流程: 如果空调电源插座开关没有打开,打开电源插座并延迟开机
- 关机流程: 先关闭空调, 然后延迟指定时间后关闭空调电源插座
- 温度控制策略:
温度监测(制冷)策略:
- 当
当前温度 - 控制温度(HA上设定的目标温度) 高于设定阀值(cold_tolerance) 开始制冷:
- 如果 HA的设定目标温度 == 空调上的设定目标温度 and 运行时间 >= 30m(run_time) 并且 当前运行功耗(power_meter_sensor) 高于 最小工作功耗(min_power_meter)
- 那么降低空调上的设定目标温度-1
- 当
控制温度(HA上设定的目标温度) - 当前温度 高于设定阀值(hot_tolerance) 停止制冷:
- 如果 HA的设定目标温度 == 空调上的设定目标温度 and 运行时间 >= 30m(run_time) 并且 当前运行功耗(power_meter_sensor) 高于 最小工作功耗(min_power_meter)
- 那么提高空调上的设定目标温度+1
OK, 根据坛友反馈,以及自己的需要新增功能如下:
- (可选) 使用外部温度传感器
temperature_sensor 来精确控制室内温度(温度传感器所在位置的)
- 可自定义调整温度的精度(温度调整的增量):
+1 , +0.5 , +0.1
- (可选) 使用
switch_sensor 来自动关闭/打开空调插座电源开关,并作为感知空调是否开启的传感器
- (可选) 允许在HA中重新设定空调的调整温度范围
- 遵循HA
ClimateEntity 基类约定改写代码(完成一部分)
目前我自己卧室空调温度精度从-1°C提升到 0.2-0.4 °C之间,温度已经接近直线(一上一下的方波). 好玩的是还可以据此大致判断晚上起夜的时间(温度会有一个升高的方波). 如果还要更高的精度,那就必须先对空调的制冷能力进行智能预估,然后再进行处理了. 目前对我来说,这个精度够了.
空调新增参数:
switch_sensor : (可选) 指定空调插座的实体ID, 设定后, 开插座就是开空调, 关闭插座就是关闭空调
- 如果不想作为开关控制,可以去设定
power_sensor 实体ID参数,power_sensor 参数只是感知空调是否打开的传感.
delay_on : (可选) 打开空调插座后,延迟delay_on 秒后发送空调打开信号. 默认: 2(s)
delay_off : (可选) 发送空调关闭信号后, 延迟delay_off 秒后关闭空调插座. 默认: 60(s)
use_temperature_sensor : (可选) 是否启用外部温度传感器作为空调温度控制. 默认为False .
- 如果启用那么温度传感器
temperature_sensor 实体ID也必须设定好.
precision : (可选) 目标温度的调整精度设置: 1 , 0.1 , 05 , 默认为空调的温度调整精度
- 如果启用
use_temperature_sensor 后,才可以调整该参数.否则没作用.
min_temp : (可选) 空调在HA上可配置的最小温度, 默认为空调本身的最小温度
max_temp : (可选) 空调在HA上可配置的最大温度, 默认为空调本身的最大温度
min_run_time : (可选) 使得温度变化的最小运行时间,默认: 1800(秒=30分钟)
default_mode : (可选) 空调开机后的默认模式. 默认: auto
power_meter_sensor : (可选) 空调功率传感器实体ID
min_power_meter : (可选) 空调开机后的最小功率(W)
max_power_meter : (可选) 空调开机后的最大功率(W)
HA configuration.yaml 例子:
climate:
- platform: smartir
name: 主卧空调
unique_id: bed_ac
device_code: 1581
use_temperature_sensor: true
controller: MQTT
controller_data: home/OMG_IR_AIWIN/commands/MQTTtoIR
temperature_sensor: sensor.bed_temperature_temperature
humidity_sensor: sensor.bed_temperature_humidity
switch_sensor: switch.bed_switchac
power_meter_sensor: sensor.bed_switchac_power
max_power_meter: 800
min_power_meter: 30
delay_off: 60
min_run_time: 300
default_mode: cool
precision: 0.5
目前仅实现了制冷的温控,还十分不完善,所以不准备提交PR,自己使用.
如果需要清自行取用(已经合并至主分支): https://github.com/snowyu/SmartIR
|
|