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

 找回密码
 立即注册
查看: 17872|回复: 15

[经验分享] 8266模块刷ESPHOME将普通电动窗帘改智能遥控窗帘

[复制链接]

7

主题

188

帖子

2349

积分

金牌会员

Rank: 6Rank: 6

积分
2349
金钱
2161
HASS币
0
发表于 2019-12-23 17:22:45 | 显示全部楼层 |阅读模式
本帖最后由 xlsj519 于 2019-12-23 17:48 编辑

一、起因
家里装的电动窗帘,带射频遥控的。其中一个遥控功能自己坏了,只能通过手拉方式启动窗帘的电动开合。后来问卖家,卖家说可以通过窗帘电机下面的一个6针的水晶头插座引出线来,实现对电动窗帘的控制。
2-3针脚短接是开,2-4针脚短接是关,2-5针脚短接是停,要求短接一下后松开。与窗帘遥控器上的按键是一一对应的。


二、软硬件环境

(一)硬件
硬件是通过8266开发板和一个3路继电器模块实现的。通过8266分别控制3路继电器吸合,模拟按键按下从而实现对窗帘的控制。
硬件成本:
8266开发板9.9元
444.jpg
三路继电器8元
333.jpg
外加一个5V的USB电源。
硬件连接方式:
1、将继电器模块上的3路COM公共端连接起来。

2、通过一个6针水晶头的电话线将电动窗帘4根控制线引出
窗帘引出的控制线与继电器连接
2脚-----------------------继电器COM端
3脚-----------------------继电器NO1(第一个继电器的常开端)
4脚----------------------继电器NO2(第二个继电器的常开端)
5脚----------------------继电器NO3(第三个继电器的常开端)

3、使用杜邦线将8266模块与3路继电器模块进行连接
8266模块的GND-----------继电器GND
VV脚(5V电源输出)------继电器VCC
D5脚-----------------------继电器第1路输入
D6脚----------------------继电器第2路输入
D7脚----------------------继电器第3路输入

4、找个5V的USB充电器通过microUSB线给8266模块供电。
222.jpg


(二)软件
我是用的蜗牛星际装的PVE,然后装的黑群晖,在群晖DSM里通过DOCKER方式安装的homeassistant和MQTT。
一开始用的tasmota,通过MQTT接入HASS。DSM我设置的晚上12点至早上6点期间关机。结果DSM开机时,8266模块第一次与MQTT建立连接时,会把三个继电器都开合一次,导致窗帘自己乱动。通过在tasmoat里更改PowerOnState、PowerRetain 1等设置依然没有解决,后来决定用ESPHOME。


通过使用ESPHOME,个人感觉有几点比较方便:
一是直接接入HASS,不通过MQTT,少个环节少些问题,关键是解决了初次连接MQTT服务器时所有继电器自己吸合一次的问题。
二是第一次通过串口线刷入ESPHOME固件后,以后可以直接通过ESPHOME直接OTA升级,更改程序、调试等十分方便,不用像tasmota需要更改yaml文件,再重启HASS。
三是ESPHOME可以直接在配置文件里可以编程,有的HASS里的配置和命令直接在ESPHOME的配置里就可以实现。

三、实现方法

下面直接上ESP里的配置文件代码:


esphome:  
  name: ys1 #Han Chuanglian  
  platform: ESP8266  
  board: nodemcuv2

wifi:  
  ssid: "XXXXXX"  
  password: "MMMMM"  
# Enable fallback hotspot (captive portal) in case wifi connection fails  
  ap:    
      ssid: "Ys1 Fallback Hotspot"    
      password: "XXXXXXX"

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:  
  password: "XXXXXX"

ota:  
  password: "XXXXXXX"  
 
web_server:  
  port: 80  

switch: # 组件类型:开关  
# 定义D5、D6、D7分别对应三个继电器  
  - platform: gpio
    pin: D5
    id: relay1
  - platform: gpio
    pin: D6
    id: relay2
  - platform: gpio
    pin: D7
    id: relay3
#通过临时实体实现继电器合上0.8秒后再松开,模拟开、关、停三个按键的操作
  - platform: template
    name: "Curtain01_Open"
    icon: "mdi:code-tags" 
    turn_on_action:
    - switch.turn_on: relay1
    - delay: 800ms
    - switch.turn_off: relay1
  - platform: template
    name: "Curtain01_Close"
    icon: "mdi:mixer"
    turn_on_action:
    - switch.turn_on: relay2
    - delay: 800ms
    - switch.turn_off: relay2
  - platform: template
    name: "Curtain01_Stop"
    icon: "mdi:checkbox-blank"
    turn_on_action:
    - switch.turn_on: relay3
    - delay: 800ms
    - switch.turn_off: relay3
# 以下命令实现窗帘以四分之一的幅度实现分段开合。我是通过计算窗帘关闭需要的总时长,然后除以四来实现的
# 窗帘开四分之一
  - platform: template
    name: "Curtain01_halfOpen" 
    icon: "mdi:window-open"
    turn_on_action:
    - switch.turn_on: relay1
    - delay: 800ms
    - switch.turn_off: relay1
    - delay: 2000ms
    - switch.turn_on: relay3
    - delay: 800ms
    - switch.turn_off: relay3
       # 窗帘关四分之一
  - platform: template
    name: "Curtain01_halfClose"
    icon: "mdi:window-open"
    turn_on_action:
    - switch.turn_on: relay2
    - delay: 800ms
    - switch.turn_off: relay2
    - delay: 2000ms
    - switch.turn_on: relay3
    - delay: 800ms
    - switch.turn_off: relay3    

#通过COVER组件使其在HASS以电动窗帘方式控制。其实不加这个也可以,上面的内容已经可以在HASS分别加上三个独立的开关了
cover:
  - platform: template
    name: "Han cover"
    open_action:
    - switch.turn_on: relay1
    - delay: 800ms
    - switch.turn_off: relay1
    close_action:
    - switch.turn_on: relay2
    - delay: 800ms
    - switch.turn_off: relay2
    stop_action:
    - switch.turn_on: relay3
    - delay: 800ms
    - switch.turn_off: relay3
    optimistic: true
    assumed_state: true
 
代码可能有点繁琐了,下一步精简优化下

然后在HASS里增加组件就可以了
555.jpg


刷ESPHOME的方法论坛里,这里就不贴上了



评分

参与人数 1金钱 +1 收起 理由
hundajdx + 1 赠人玫瑰,手留余香!

查看全部评分

回复

使用道具 举报

7

主题

188

帖子

2349

积分

金牌会员

Rank: 6Rank: 6

积分
2349
金钱
2161
HASS币
0
 楼主| 发表于 2019-12-23 17:51:00 | 显示全部楼层
本帖最后由 xlsj519 于 2019-12-23 17:56 编辑

小米无线开关控制窗帘和定时开关窗帘是通过HASS的自动化实现的。
这里面有个问题,我用的是aqara空调伴侣升级版做的网关,好像不能识别无线开关的长按状态,目前长按无线开关停止窗帘是不起作用的。下步装备通过2秒内3击无线开关实现停止命令。
代码如下
#自动化1:通过双击或定时关窗帘
- alias: ZYY chuanglian Close
  initial_state: true
  trigger:
    - platform: time
      at: '18:35:00'
    - platform: event
      event_type: xiaomi_aqara.click
      event_data:
        entity_id: binary_sensor.switch_1111111111111
        click_type: double
#环境条件
  condition:
    - condition: state
      entity_id: switch.curtain01_close_2
      state: 'off'
    - condition: state
      entity_id: switch.curtain01_open_2
      state: 'off'
  action:
    - service: switch.turn_on
      entity_id: switch.curtain01_close_2

#自动化2:通过单击或定时开窗帘
- alias: ZYY chuanglian Open
  trigger:
    - platform: time
      at: '6:30:00'
    - platform: event
      event_type: xiaomi_aqara.click
      event_data:
        entity_id: binary_sensor.switch_1111111111111
        click_type: single
  action:
    - service: switch.turn_on
      entity_id: switch.curtain01_open_2

#自动化3:长按停止窗帘动作,不起作用
- alias: ZYY chuanglian Stop
  trigger:
    platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.switch_1111111111111
      click_type: long_click_press
  action:
    - service: switch.turn_on
      entity_id: switch.curtain01_stop_2


评分

参与人数 1金钱 +50 收起 理由
+ 50 厉害了word楼主!

查看全部评分

回复

使用道具 举报

3

主题

43

帖子

119

积分

注册会员

Rank: 2

积分
119
金钱
76
HASS币
0
发表于 2019-12-23 18:04:33 | 显示全部楼层
感谢分享,希望楼主以后出越来越多的实用教程,造福天下苍生,
回复

使用道具 举报

11

主题

359

帖子

2482

积分

金牌会员

Rank: 6Rank: 6

积分
2482
金钱
2123
HASS币
0
发表于 2019-12-23 18:57:42 | 显示全部楼层
厉害了。。。。
回复

使用道具 举报

1

主题

32

帖子

130

积分

论坛分享达人

积分
130
金钱
98
HASS币
0
发表于 2019-12-23 19:48:25 | 显示全部楼层
好帖子,留着备用~
回复

使用道具 举报

9

主题

527

帖子

2350

积分

金牌会员

Rank: 6Rank: 6

积分
2350
金钱
1823
HASS币
0
发表于 2019-12-23 21:51:06 | 显示全部楼层
思路清晰。。。支持了
回复

使用道具 举报

3

主题

43

帖子

119

积分

注册会员

Rank: 2

积分
119
金钱
76
HASS币
0
发表于 2019-12-25 17:12:42 | 显示全部楼层
不错,学习了。
回复

使用道具 举报

1

主题

57

帖子

465

积分

论坛积极会员

积分
465
金钱
408
HASS币
0
发表于 2019-12-27 15:11:50 | 显示全部楼层
我是来膜拜的
回复

使用道具 举报

175

主题

2967

帖子

7606

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7606
金钱
4614
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2020-1-27 10:32:40 来自手机 | 显示全部楼层
供电能带动吗?
回复

使用道具 举报

1

主题

52

帖子

437

积分

中级会员

Rank: 3Rank: 3

积分
437
金钱
385
HASS币
0
发表于 2020-2-16 11:27:14 | 显示全部楼层
谢谢楼主,好文章!!!
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-28 22:36 , Processed in 0.113667 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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