|
|
本帖最后由 gasment 于 2026-8-6 14:53 编辑
1. 下载并解压固件配置包:
-
打开解压后文件夹阿内的config.yaml,根据注释提示修改相关配置
packages:
- !include main.yaml
#########参数配置
substitutions:
project_name: linp-s2dw3-screen
friendly_name: 领普S2触屏开关
web_user: admin #web页面账号,可自定义
web_passwd: admin #web页面密码,可自定义
ntp_server: 192.168.32.1 #ntp服务器,可以是ip可以是域名如ntp.aliyun.com
remote_temperature_entity: sensor.xxxxxx #屏保界面的温度源实体,在你的HA上挑一个
remote_humidity_entity: sensor.xxxxxx #屏保界面的湿度源实体,在你的HA上挑一个
setting_auth_key: "114514" #设置页的授权码,必须纯数字,不要过长
weather_entity: weather.xxxxx #天气源实体,需要搭配https://github.com/hasscc/tianqi此集成使用
weather_temperature_entity: sensor.xxxxxxx #天气温度源实体,可以使用上方集成提供的,或者其他反应室外温度的实体
key_1_name: "按键1" #按键1显示的名称,使用常规汉字字母数字,3字符以内为妙
key_2_name: "按键2" #按键2显示的名称
key_3_name: "按键3" #按键3显示的名称
screen_min_brightness: 20% #非屏保状态下的亮度下限,建议20%,暗环境不会亮度过低导致看不清
screen_max_brightness: 100% #非屏保状态下的亮度上限,建议100%。
screen_saver_min_brightness: 1% #屏保状态下的亮度下限,建议1%。暗环境不会刺眼
screen_saver_max_brightness: 30% #屏保状态下的亮度上限,建议30%。避免待机屏保长期高亮度
page_1_title: "2F主卧|夜灯" #页码1对应的标题
page_2_title: "2F主卧|空调" #页码2对应的标题
page_3_title: "2F主卧|电蚊香" #页码3对应的标题
page_4_title: "2F主卧|落地扇" #页码4对应的标题
page_1_light_entity: light.xxxxxxx #灯光实体,需要支持色温和亮度调整
page_1_light_changetime_entity: sensor.xxxxxxx #灯光的操作时间记录实体,需要搭配HA辅助元素实现,见下文
page_2_ac_entity: climate.xxxxxxxx #空调climate实体
page_2_ac_changetime_entity: sensor.xxxxxxxxxx #空调的操作时间记录实体,需要搭配HA辅助元素实现,见下文
page_2_ac_target_temperature_attribute: temperature #空调目标温度属性名,不同品牌不一致,可在开发者工具中查看,例如小米为temperature、美的为target_temperature
page_2_ac_fan_modes: #风速档位模式名称,不同品牌不一致,可在开发者工具中查看,比如小米为auto、level1、level1...,美的为auto、silent、low....
auto_mode: "auto"
level_1: "level1"
level_2: "level2"
level_3: "level3"
level_4: "level4"
level_5: "level5"
page_2_ac_swing_horizontal: "false" #空调是否具有水平扫风功能,有就"true",无就"false"
page_2_ac_eco_mode_sw: switch.xxxxxxxxxxx #空调是否具有eco功能,有就填switch实体名,无就填none
page_2_ac_sleep_mode_sw: switch.xxxxxxxxxxx #空调是否具有睡眠模式功能,有就填switch实体名,无就填none
page_4_fan_entity: fan.2fwei_yu_esp01gua_bi_shan_gua_bi_shan #风扇fan实体,支持档位、百分比调速,可选摇头功能
page_4_fan_changetime_entity: sensor.xxxxxxx #风扇操作时间记录实体,需要搭配HA辅助元素实现,见下文
page_4_fan_timer_entity: timer.xxxxxxxxxx #风扇定时器实体,需要搭配HA辅助元素和自动化实现,见下文
page_3_plug_entity: switch.xxxxxxxx #插座switch实体
page_3_plug_changetime_entity: sensor.xxxxxxx #插座的操作时间记录实体,需要搭配HA辅助元素实现,见下文
page_3_plug_timer_entity: timer.xxxxxxx #插座定时器实体,需要搭配HA辅助元素和自动化实现,见下文
page_3_plug_power_entity: sensor.xxxxxxxxxx #插座功率实体,如没有此功能,填none
-
添加HA相关辅助元素和自动化
-
操作时间记录实体使用辅助元素实现
- 进入设置->设备与服务->辅助元素,右下角点击创建辅助元素,拉到最低选择Template(模板),再选择第二个“传感器”,
- 名称按你自己喜好填写,状态一栏,按以下代码填写,注意第一行内的
switch['cuco_cp2d_b5cf_switch_status'],修改为你自己的实体ID
{%- set entity = states.switch['cuco_cp2d_b5cf_switch_status'] -%}
{%- if entity is none -%}
--·--
{%- else -%}
{%- set state_names = {
'on': '打开',
'off': '关闭',
'cool': '制冷',
'heat': '加热',
'fan_only': '送风',
'dry': '除湿',
'auto': '自动',
'docked': '空闲',
'idle': '空闲',
'cleaning': '工作中',
'returning': '工作中',
'returnung': '工作中',
'working': '工作中',
'paused': '暂停',
'error': '错误',
'unknown': '未知',
'unavailable': '离线',
'offline': '离线'
} -%}
{%- set state_text = state_names.get(entity.state, '未知') -%}
{%- set diff_seconds = (now() - entity.last_changed).total_seconds() -%}
{%- if diff_seconds < 60 -%}
{%- set time_ago = '刚刚' -%}
{%- elif diff_seconds < 3600 -%}
{%- set minutes = (diff_seconds / 60) | int -%}
{%- set time_ago = minutes ~ '分钟前' -%}
{%- elif diff_seconds < 86400 -%}
{%- set hours = (diff_seconds / 3600) | int -%}
{%- set time_ago = hours ~ '小时前' -%}
{%- else -%}
{%- set days = (diff_seconds / 86400) | int -%}
{%- set time_ago = days ~ '天前' -%}
{%- endif -%}
{{- state_text ~ '·' ~ time_ago -}}
{%- endif -%}
- 如正确配置,会看到下方显示对应的状态,保存后将此辅助元素的实体ID填入上方config.yaml对应位置
-
定时功能需要同时使用辅助元素和自动化
- 添加辅助元素,选择计时器,名称按自己需要修改,“还原HA启动时的状态和时间”按你需要勾选,然后复制该计时器timer实体ID到config.yaml对应位置
- 进入设置->自动化与场景,右下角创建自动化,新建空白自动化,然后点击右上角选项进入yaml编辑模式
- 将下方代码粘贴到yaml内,按注释修改对应的实体ID,然后保存即可
alias: 2F-主卧-落地扇-智能定时与手动覆盖 #自动化名称,按需修改
description: 处理定时关闭,并在手动关闭时自动取消定时器
triggers:
- event_type: timer.finished
event_data:
entity_id: timer.2f_zhu_wo_luo_di_shan_ding_shi #上一步创建的计时器实体ID
id: timer_finished
trigger: event
- entity_id: switch.8446937734fd_switch #需要定时的开关实体ID
to: "off"
id: manual_off
trigger: state
actions:
- choose:
- conditions:
- condition: trigger
id: timer_finished
sequence:
- condition: state
entity_id: switch.8446937734fd_switch #需要定时的开关实体ID
state: "on"
- target:
entity_id: switch.8446937734fd_switch #需要定时的开关实体ID
action: switch.turn_off
data: {}
- conditions:
- condition: trigger
id: manual_off
sequence:
- condition: state
entity_id: timer.2f_zhu_wo_luo_di_shan_ding_shi #上一步创建的计时器实体ID
state: active
- target:
entity_id: timer.2f_zhu_wo_luo_di_shan_ding_shi #上一步创建的计时器实体ID
action: timer.cancel
data: {}
mode: single
-
编译并刷写esphome固件,这里以pip版 esphome cli做示例
- 确保config.yaml修改完毕并保存好
- 确保文件目录结构未做变动
- 将领普s2置于下载模式,使用esptool chip-id检查连接
- 执行:
esphome run config.yaml --upload_speed 1152000进行编译
- 编译完成,会提示选择对应的COM口烧录,烧录完成后,拔电重启即可进入新固件
- 注意,线刷时,每次都要先手动进入下载模式,这颗芯片因为波特率问题,无法自动进入下载模式
- 系统启动后,搜索并连接设备发出的wifi热点,按提示进行配网
-
HA实体提供列表
|
评分
-
查看全部评分
|