本帖最后由 XCray 于 2021-5-26 11:06 编辑
补充:完整方案:https://bbs.hassbian.com/thread-13012-1-1.html
~~~~~~~~~~~~~~~~~~
0. 前言
夏天如何让空调吹得更舒服、更省事,相信是每个人的梦想。
普通空调不舒服的一大原因就是温度检测的准确度无法保障——不是说空调自带的传感器不准,而是其离人太远——可能你躺的床上已经低到20度了,空调自己测得的室温还是28度,于是空调只好继续努力的吹冷风,完全不顾躲在被子里瑟瑟发抖的你。。。
虽然有的空调号称有随身感模式,但实话说有的品牌这个功能仅仅局限于宣传材料,实际使用效果几乎感觉不到。各位坛友如果知道哪款空调的随身感功能确实比较好,不妨推荐一下,先行谢过~~~
那么,既然是智能家居玩家,这个问题怎么能忍呢?!
之前,我采取的是利用小米万能遥控器+米家自动化的方式来解决这个问题,简单说,就是空调设置一个合适的温度(比如25),在需要的地方放一个温度传感器(蓝牙zigbee啥的都行),在这个外置传感器温度低于门限值(可以是24或任何其他你感觉舒服的温度)时,就让万能遥控器发出让空调关机或者温度提高1~2度。在传感器温度高于门限值时,再开启空调或者温度降低1~2度。
这样,可以确保身体实际感受的温度一直在舒服温度的区间。
显然,米家这个方案只能是凑合,比空调自己控制好,但仍然存在不足。
1. 把空调接入HA
偶然间看到一个前年的帖子:[进阶教程] 创米万能遥控搭配SmartIR接入格力空调【7月23日更新代码】,感谢楼主”houhd“的信息,使我了解到一个非常不错的定制插件:SmartIR。利用这个插件,可以很好的实现把空调接入HA的想法。但是,也仅仅是接入而已,对温度的控制依然是完全由空调自身完成。
虽然这个组件也可以用上HA的温湿度传感器,但作用仅仅是在界面上显示而已,并不会对空调的温控有任何一丝一毫的影响。不舒服的问题依然没有得到解决。
之前,我也考虑过别的接入方案:
- 比较高级的是买个好用的温控器,或者用ESP+显示器+旋钮+开关自己弄一个。由于不舍得花钱、懒,这个方案一直没有实施。
- 利用HA内置的generic_thermostat,省事,但这个组件只能实现空调的开和关,虽然可以解决随身感的需求,但是太简单粗暴,变频空调的优势也完全被无视。
- 最简单的,利用input_boolean和input_number再加上自动化,可以达到目的,但又无法兼容HomeKit,看不上。。。
2. 用上HA的传感器,真正智能地控制空调
接入解决了,接下来就是实现目标。
思路还是前面说的,利用HA的传感器(可以用更加科学的体感温度,参考我之前的一个帖子:简单方便的体感温度传感器,不用定制组件、不用代码)、让HA来决定如何控制空调的目标温度。
具体到实现环节,又可以有两个思路:
- 推荐:编写自动化,根据体感温度传感器数值、通过调用climate.set_temperature或climate.turn_on/off自动控制空调,在HA或Node-Red里都可以。
- 不推荐:修改SmartIR代码,在climate.py第383行的_async_temp_sensor_changed函数里面加入如下代码:
#增加以下代码使之更智能,注意缩进
target_temperature = '{0:g}'.format(self._target_temperature)
if (new_state.state < target_temperature) and self._hvac_mode == HVAC_MODE_COOL:
await self._controller.send(self._commands['cool']['auto'][str(int(target_temperature)+1)])
await asyncio.sleep(self._delay)
_LOGGER.info('实测温度低于目标,调高空调目标温度:'+new_state.state)
elif (new_state.state > target_temperature) and self._hvac_mode == HVAC_MODE_COOL:
await self._controller.send(self._commands['cool']['auto'][target_temperature])
await asyncio.sleep(self._delay)
_LOGGER.info('实测温度高于目标,空调恢复原目标温度:'+new_state.state)
#修改结束,仅针对空调制冷模式
注:这种直接修改代码的方法容易出问题,难以利用体感温度进行控制,也容易受版本更新的影响,我也只是验证思路,这段代码也还很不完善,每次温度变化都会发射。正常使用还是推荐采用自动化来解决。
对于非变频空调,直接关闭就可以;变频空调的话,应该提高目标温度更好一些。
等以后换了更聪明、更舒服、直接可以接入HA的空调,也许就不用这么折腾了。
|