『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 1072|回复: 9

[技术探讨] 涂鸦wifi红外智能空调遥控器插件,魔改HA官方generic_thermostat

[复制链接]

4

主题

26

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
金钱
364
HASS币
0
发表于 2024-8-19 13:30:56 | 显示全部楼层 |阅读模式
本帖最后由 jesusya 于 2024-8-20 18:13 编辑

基于涂鸦wifi红外遥控硬件,魔改了HA官方generic_thermostat (通用恒温器),可以:
1 让空调在指定温度和上下幅度范围内能(我是上下0.3摄氏度)控制室内温度制冷和制热
2 温度达到目标温度时候,空调进入送风模式运行,保持室内温度循环,如果室内过冷过热(超过温度容忍范围2倍,大家可以在程序开头的常量中定义,如:0.6度)空调自动关闭。
3. 可以设置最短循环周期,我是3分钟,避免空调开、关切换频繁,损坏空调硬件
4. 支持多种预设,比如:活动、舒适、睡眠,预定义温度,睡眠模式,达到目标温度适合是关闭空调,静音作用。
5. 支持风速设定,低、中、高、自动(官网generic_thermostat,是控制开关,所以没风速,我加上了)
6. 通过yaml 的参数:ac_mode:false ,冬天空调可以制热控制室温7. 支持目标温度和空调运行温度分开,如:房间目标温度是24度,空调可以以22度制冷,更快速达到目标温度
8. Tuya API调用,支持失败再连接涂鸦云
9. 删除了配置文件中温度控制器(Switch)和 keep alive 2个参数,加入涂鸦api 的4个ID。

项目的github地址:https://github.com/jesustoachild ... blob/main/README.md
基于这个控件,你可以苹果Home里、Node-Red 或者 HA 自动化脚本,设置白天温度、活动时间温度,睡眠时间温度和风速,或者加室外温温度判断等,去自动化房间的室温控制。
WechatIMG236.jpg
如果大家感兴趣,定制化自己的”智能“控制,我稍后,讲解下代码修改的地方。

玩这个前:基础连接尝试,请看我帖子:https://bbs.hassbian.com/thread-25949-1-1.html,大家请务必尝试这个帖子中,在你PC上调用API 控制空调,得知你空调的控制方式,然后在HA上调试,避免很多麻烦。

关于HA Generic Thermostat,https://www.home-assistant.io/integrations/generic_thermostat/,谷歌翻译了转存官网介绍PDF,在附件。官方源码:https://github.com/home-assistan ... /generic_thermostat
Generic Thermostat,是一个假设你有个设备,只有加热、制冷开关,这个控件结合家中温度传感器,通过控制加热、制冷开关实现室内恒温。我魔改了这个插件,加入涂鸦红外api调用,风扇的风速控制,去掉了swtich温控开关
我修改的代码都有中文注解。

制冷、制热中的界面显示:
WechatIMG228.jpg WechatIMG230.jpg
温度达到目标温度的范围后,空调转为送风,过冷过热或晚上睡眠(看定义),关闭送风,进入静音模式(空调物理实际关闭)
WechatIMG227.jpg WechatIMG226.jpg

Apple 家庭中: WechatIMG232.jpg
在HA上安装Tuya官方 API 模块。官网:https://github.com/tuya/tuya-connector-python 我是HA 虚拟机X86版本,进入SSH 终端
一定要再进入: HA docker 的  ssh :
docker exec -it homeassistant /bin/bash
git clone https://github.com/tuya/tuya-connector-python.git
cd tuya-connector-python
pip install .


如果你github clone有问题,我也下载了,在附件

插件安装目录:
homeassistant:/config/custom_components/tuya_generic_thermostat/
├── __init__.py
├── api_x.py
├── climate.py
├── const.py
├── icons.json
├── manifest.json
├── services.yaml
├── strings.json
└── version.py


我HA configuration.yaml
climate:
  - platform: tuya_generic_thermostat
    name: "主卧空调"
    #heater: switch.master_bedroom_tcooling_switch
    target_sensor: sensor.temperature_humidity_sensor_XXXXX_temperature
    #target_sensor: sensor.ble_temperature_zhu_wo_qing_XXXXX_du_ji
    unique_id: "主卧空调xxx,一定要唯一"
    access_id: "tty7xxxxxxxnuw"
    access_secret: "a60xxxxxxxxxxxxxed"
    remote_id: "6cxxxxxxxxvif0"
    ac_id: "6c3xxxxxxxcttx5"
    min_temp: 16
    max_temp: 30
    ac_mode: true
    target_temp: 24.7
    sleep_temp: 26.7
    activity_temp: 22.7
    comfort_temp: 24.7
    cold_tolerance: 0.3
    hot_tolerance: 0.3
    min_cycle_duration:
      minutes: 3
    initial_hvac_mode: "off"
    precision: 0.1














通用恒温器 - 家庭助理.pdf

937.04 KB, 下载次数: 19

tuya_generic_thermostat.zip

18.39 KB, 下载次数: 11

tuya-connector-python.zip

57.08 KB, 下载次数: 10

回复

使用道具 举报

4

主题

26

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
金钱
364
HASS币
0
 楼主| 发表于 2024-8-19 13:54:52 | 显示全部楼层
Generic Thermostat
https://www.home-assistant.io/integrations/generic_thermostat/

通用恒温器
气候一体化generic_thermostat​是 Home Assistant 中实现的恒温器。它使用一个传感器和一个连接到引擎盖下的加热器或空调的开关。在加热器模式下,如果测量的温度低于目标温度,则加热器将打开,当达到所需温度时关闭。在空调模式下,如果测量的温度高于目标温度,则空调将打开,当达到所需温度时关闭。一个通用恒温器实体只能控制一个开关。如果需要激活两个开关,一个用于加热器,一个用于空调,则需要两个通用恒温器实体。

配置
要将通用恒温器助手添加到您的 Home Assistant 实例,请使用此“我的”按钮:



手动配置步骤
笔记

使用我们的用户界面进行配置提供了更有限的选项子集,使得这种集成更易于访问,同时涵盖大多数用例。

如果您的用例需要更多特定功能,则此集成的手动YAML 配置部分可能会提供这些功能。

YAML 配置
或者,也可以通过 YAML 手动配置和设置此集成。要启用集成,你需要将其添加到你的configuration.yaml文件。更改后configuration.yaml文件,重新启动 Home Assistant以应用更改。 . 集成现在显示在设置 > 设备和服务下的集成页面上。 其实体列在集成卡本身和实体选项卡上。

# Example configuration.yaml entry
climate:
  - platform: generic_thermostat
    name: Study
    heater: switch.study_heater
    target_sensor: sensor.study_temperature
YAML
配置变量
正在寻找您的配置文件?
名称字符串必填,默认值:通用恒温器
恒温器的名称。

unique_id字符串(可选)
唯一标识此恒温器的 ID。将其设置为唯一值,以便通过 UI 进行自定义。

加热器串必需
entity_idac_mode对于暖风开关,必须是拨动装置。设置为 时变为空调开关true。

target_sensor字符串必填
entity_id对于温度传感器,target_sensor.state 必须是温度。

min_temp float (可选,默认值: 7)
设置可用的最小设定点。

max_temp float (可选,默认值: 35)
设置可用的最大设定点。

target_temp float (可选)
设置初始目标温度。如果未设置此变量,则启动时目标温度将设置为零。从 0.59 版开始,如果可用,它将保留重启前设置的目标温度。

ac_mode布尔值(可选,默认值:false)
将加热器选项中指定的开关设置为冷却设备而不是加热设备。

min_cycle_duration时间 | 整数(可选)
设置加热器选项中指定的开关在关闭或打开之前必须处于当前状态的最短时间。如果keep_alive设置了此选项,则此选项将被忽略。

cold_tolerance float (可选,默认值: 0.3)
设置target_sensor选项中指定的传感器读取的温度与目标温度之间的最小差值,该差值在开启之前必须改变。例如,如果目标温度为 25 且容差为 0.5,则当传感器等于或低于 24.5 时,加热器将启动。

hot_tolerance float (可选,默认值: 0.3)
设置target_sensor选项中指定的传感器读取的温度与关闭前必须改变的目标温度之间的最小差值。例如,如果目标温度为 25 且容差为 0.5,则当传感器等于或超过 25.5 时,加热器将停止。

keep_alive时间 | 整数(可选)
设置保持活动间隔。如果设置,则每次间隔过去时都会触发加热器选项中指定的开关。用于加热器和空调装置,如果它们在一段时间内没有收到遥控器的信号,它们就会关闭。也用于可能丢失状态的开关。保持活动调用是通过当前有效的气候集成状态(打开或关闭)完成的。keep_alive设置后,该min_cycle_duration选项将被忽略。

initial_hvac_mode字符串(可选)
设置初始 HVAC 模式。有效值为off、heat或cool。值必须用双引号引起来。如果未设置此参数,最好设置keep_alive值。这有助于协调generic_thermostat和加热器状态之间的任何差异。

away_temp float (可选)
设定使用的温度preset_mode: away。

comfort_temp float (可选)
设定使用的温度preset_mode: comfort。

eco_temp float (可选)
设定使用的温度preset_mode: eco。

home_temp float (可选)
设定使用的温度preset_mode: home。

sleep_temp float (可选)
设定使用的温度preset_mode: sleep。

activity_temp float (可选)
设定使用的温度preset_mode: activity。

精度浮点数(可选)
此设备所需的精度。可用于匹配您实际恒温器的精度。支持的值是0.1、0.5和1.0。此值也用作设置目标温度的步长。

默认:0.1摄氏度和1.0华氏度。
target_temp_step float (可选)
设置目标温度所需的步长。支持的值为0.1、0.5和1.0。

默认:等于precision。
min_cycle_duration和的时间keep_alive必须设置为“hh:mm:ss”,或者必须包含以下条目之一:days:、hours:、minutes:或。seconds:或者milliseconds:,它可以是一个以秒为单位表示时间的整数。

目前,generic_thermostat气候平台支持“加热”、“冷却”和“关闭” HVAC 模式。您可以generic_thermostat通过将 HVAC 模式设置为“关闭”来强制避免启动。

请注意,当将预设模式更改为离开时,您也将强制改变目标温度,一旦预设模式再次设置为无,该温度就会恢复。

完整 YAML 配置示例
climate:
  - platform: generic_thermostat
    name: Study
    heater: switch.study_heater
    target_sensor: sensor.study_temperature
    min_temp: 15
    max_temp: 21
    ac_mode: false
    target_temp: 17
    cold_tolerance: 0.3
    hot_tolerance: 0
    min_cycle_duration:
      seconds: 5
    keep_alive:
      minutes: 3
    initial_hvac_mode: "off"
    away_temp: 16
    precision: 0.1
YAML
相关主题
回复

使用道具 举报

24

主题

579

帖子

2679

积分

金牌会员

Rank: 6Rank: 6

积分
2679
金钱
2100
HASS币
0
发表于 2024-8-19 14:57:54 | 显示全部楼层
大佬流批  
只是这几个教程难度有点高了
小白大概率搞不定
回复

使用道具 举报

4

主题

26

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
金钱
364
HASS币
0
 楼主| 发表于 2024-8-19 15:57:37 | 显示全部楼层
kjjuhfv 发表于 2024-8-19 14:57
大佬流批  
只是这几个教程难度有点高了
小白大概率搞不定

我也是查着ChatGPT 搞的,没啥,你就是先把PC 上控制涂鸦空调搞定,HA上就顺水推舟了
回复

使用道具 举报

10

主题

1328

帖子

4238

积分

论坛元老

Rank: 8Rank: 8

积分
4238
金钱
2910
HASS币
0
发表于 2024-8-19 21:38:02 | 显示全部楼层
大佬牛B。感谢分享
回复

使用道具 举报

4

主题

26

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
金钱
364
HASS币
0
 楼主| 发表于 2024-8-23 11:25:29 | 显示全部楼层

希望可以用上,玩的愉快
回复

使用道具 举报

0

主题

12

帖子

56

积分

注册会员

Rank: 2

积分
56
金钱
44
HASS币
0
发表于 2024-11-9 01:35:43 | 显示全部楼层
你这是用的撒设备?魔蛋还是涂鸦?
回复

使用道具 举报

0

主题

12

帖子

56

积分

注册会员

Rank: 2

积分
56
金钱
44
HASS币
0
发表于 2024-11-9 01:40:45 | 显示全部楼层
我家有给R6吃灰中
回复

使用道具 举报

4

主题

26

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
金钱
364
HASS币
0
 楼主| 发表于 2024-11-9 15:51:11 | 显示全部楼层
cnp124858074 发表于 2024-11-9 01:35
你这是用的撒设备?魔蛋还是涂鸦?

感觉涂鸦是平台名字,魔蛋是生产商用涂鸦平台方案做的产品起的商品名称,实际使用都是用涂鸦app 涂鸦api 涂鸦云。。。
回复

使用道具 举报

1

主题

6

帖子

58

积分

注册会员

Rank: 2

积分
58
金钱
52
HASS币
0
发表于 2024-11-13 12:22:36 | 显示全部楼层
jesusya 发表于 2024-11-9 15:51
感觉涂鸦是平台名字,魔蛋是生产商用涂鸦平台方案做的产品起的商品名称,实际使用都是用涂鸦app 涂鸦api  ...

大佬,能出一期小白傻瓜式教程吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-21 20:55 , Processed in 1.440892 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表