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

 找回密码
 立即注册
查看: 19886|回复: 23

[技术探讨] ESPHOME风扇改装睡眠模式,六档,按键配置请教。

[复制链接]

9

主题

534

帖子

4530

积分

元老级技术达人

积分
4530
金钱
3986
HASS币
60
发表于 2019-6-6 09:51:07 | 显示全部楼层 |阅读模式
本帖最后由 sangood 于 2019-6-6 11:03 编辑

1、参考:三開改裝模塊 + ESPHome = 改裝電風扇   https://bbs.hassbian.com/forum.php?mod=viewthread&tid=6876&page=1&authorid=2388
以及七总的https://bbs.hassbian.com/forum.php?mod=viewthread&tid=502&highlight=%E9%A3%8E%E6%89%87,使用小的继电器UD2-3NU, 已经改装成功了一台,按钮是老式的123档形式,可以使用。
2、改进:增加电容串联,原格力风扇3挡的,添加5个继电器,电容。改成六档(包含睡眠模式3挡,原有的3档),原有四个微动按钮,添加红外接收。
3、草图:
IMG_2461.JPG
4、配置:
esphome:
  name: gree_fan
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: "xxxx"
  password: "xxxx"
  # ...
  manual_ip:
    # Set this to the IP of the ESP
    static_ip: 192.168.1.230
    # Set this to the IP address of the router. Often ends with .1
    gateway: 192.168.1.1
    # The subnet of the network. 255.255.255.0 works for most home networks.
    subnet: 255.255.255.0
    dns1: 192.168.1.1
    dns2: 8.8.8.8
  #reboot_timeout: $wifi_reboot_timeout # 无wifi连接自动重启时间,默认5min
  #power_save_mode: none # 节能模式,启用的话不会一直连接wifi
  #fast_connect: $wifi_fast_connect # 快速连接,不执行完整的wifi扫描,当存在多个相同wifi可能会直接连接到最弱的信号
# Enable logging
logger:
  #  hardware_uart: UART1 # 串口调式,不懂
  #level: info # 日志等级,默认DEBUG,平常用设置INFO
# Enable Home Assistant API
api:
  password: 'xxxx'
  # 本地api服务(esphome自己通信协议)
  #reboot_timeout: $api_reboot_timeout # 无客户端访问设备API自动重启,默认5min
ota:
  safe_mode: true # 连续10次启动失败,进入安全模式,只加载Serial Logging+WiFi+OTA组件
  password: 'esther'
  
# web端,可以查看排查信息以及进行控制,另外新版可以OTA。
web_server:
  port: 80 # web端口
  css_url: [url=https://esphome.io/_static/webserver-v1.min.css]https://esphome.io/_static/webserver-v1.min.css[/url] # css样式,不设置默认就这个,后续官方更新才用上。
  js_url: [url=https://esphome.io/_static/webserver-v1.min.js]https://esphome.io/_static/webserver-v1.min.js[/url] # js文件,不设置默认就这个,后续官方更新才用上。

# 改造格力风扇,这个风扇原装是4档位的。参考
# 配置 [url=https://bbs.hassbian.com/forum.php?mod=viewthread&tid=502&highlight=%E9%A3%8E%E6%89%87]https://bbs.hassbian.com/forum.p ... =%E9%A3%8E%E6%89%87[/url] 
# 三开开关 [url=https://bbs.hassbian.com/forum.php?mod=viewthread&tid=6876&page=1&authorid=2388]https://bbs.hassbian.com/forum.p ... age=1&authorid=2388[/url]
# 按钮接线方法:
#   gpio1和gnd接开机键、调速
#   gpio2和gnd接风类按钮两脚,睡眠模式
#   gpio0和gnd接摇头,
#   gpio12和gnd关机按钮,
#   GPIO3接红外接收端口
# 继电器接线方法:
# 8266的gpio14接继电器1 IN1输入(常开端口NO1接风扇橙色底档线SL),
# gpio5接中档M继电器2 IN2输入(常开口NO2接风扇白色线M档),
# gpio4接高档继电器3 IN3输入(NO3接风扇高档线H,红色线)。
# gpio15 接继电器4 输入IN4,NO接摇头控制线SW 紫色。
# gpio13 接另外一个继电器5 输入IN5,串联电容接电容,NC接电容一端,NO接电容另外一端同时NO口连接接继电器 1、2、3。这样的话,默认启用睡眠模式。
#
# AC电源负极端连接风扇黑线公共端,接NO端口,AC电源正极接继电器4和继电器5 的COM口。

binary_sensor:
  # 开关机、调速
  - platform: gpio
    id: btnpower
    #是否对外隐藏(true/false)
    #internal: true
    pin:
      number: GPIO1
      mode: INPUT_PULLUP
    # on_press:
    #   - switch.toggle: switch0
    filters:
      - invert:
      - delayed_on: 40ms
      - delayed_off: 40ms
    on_click:
      - min_length: 50ms
        max_length: 350ms
        then:
          - switch.toggle: switch0

  # 风类  接入电容,睡眠模式
  - platform: gpio
    id: btnmodule
    #是否对外隐藏(true/false)
    internal: true
    pin:
      number: GPIO2
      mode: INPUT_PULLUP
    filters:
      - invert:
      - delayed_on: 40ms
      - delayed_off: 40ms
    on_click:
      - min_length: 50ms
        max_length: 350ms
        then:
          - switch.toggle: relay5

  # 摇头控制
  - platform: gpio
    id: btnswap
    #是否对外隐藏(true/false)
    internal: true
    pin:
      number: GPIO0
      mode: INPUT_PULLUP
    filters:
      - invert:
      - delayed_on: 40ms
      - delayed_off: 40ms
    on_click:
      - min_length: 50ms
        max_length: 350ms
        then:
          - switch.toggle: relay4
  # 关机
  - platform: gpio
    id: btnoff
    #是否对外隐藏(true/false)
    internal: true
    pin:
      number: GPIO12
      mode: INPUT_PULLUP
    # on_press:
    #   - switch.toggle: switch1
    filters:
      - invert:
      - delayed_on: 40ms
      - delayed_off: 40ms
    on_click:
      - min_length: 50ms
        max_length: 350ms
        then:
          - switch.toggle: switch1

switch:
  - platform: template
    #总开关(显示为一个开关)   # 开关机、调速
    name: "gree_fan_on"
    #output: realy0
    id: switch0
    #internal: true
    #第一次打开,当前状态为0档,则打开1档,打开2档
    # 当前状态为1档,则关闭1档,打开2档
    # 当前状态为2档,则关闭2档,打开3档
    # 当前状态为3档,则关闭3档,打开1档
    turn_on_action:
      - lambda: |-
          if (id(relay1).state){
            id(relay1).turn_off();
            id(relay3).turn_off();
            id(relay2).turn_on();
          }else if (id(relay2).state){
            id(relay1).turn_off();
            id(relay2).turn_off();
            id(relay3).turn_on();
          }else {
            id(relay3).turn_off();
            id(relay2).turn_off();
            id(relay1).turn_on();
          }

    turn_off_action:
      - lambda: |-
          if (id(relay1).state){
            id(relay1).turn_off();
            id(relay3).turn_off();
            id(relay2).turn_on();
          }else if (id(relay2).state){
            id(relay1).turn_off();
            id(relay2).turn_off();
            id(relay3).turn_on();
          }else {
            id(relay3).turn_off();
            id(relay2).turn_off();
            id(relay1).turn_on();
          }
  - platform: template
    #全部关闭 
    name: "gree_fan_off"
    #output: realy0
    id: switch1
    #internal: true
    #on_turn_on:
    turn_on_action:
      - lambda: |-
            id(relay2).turn_off();
            id(relay3).turn_off();
            id(relay1).turn_off();
            id(relay4).turn_off();
            id(relay5).turn_off();
    turn_off_action:
      - lambda: |-
            id(relay2).turn_off();
            id(relay3).turn_off();
            id(relay1).turn_off();
            id(relay4).turn_off();
            id(relay5).turn_off();

  - platform: gpio # GPIO 14 Relay1 接 電風扇 低档位
    name: "gree_fan_sw1"
    pin: 14
    id: relay1
    icon: "mdi:fan"
    # interlock: &interlock_group [relay1, relay2, relay3]
    interlock: [relay1, relay2, relay3]
    restore_mode: ALWAYS_OFF
  - platform: gpio # GPIO 5 Relay2 接 電風扇 中檔位
    name: "gree_fan_sw2"
    pin: 5
    id: relay2
    icon: "mdi:fan"
    # interlock: *interlock_group
    interlock: [relay1, relay2, relay3]
    restore_mode: ALWAYS_OFF
  - platform: gpio # GPIO 4 Relay3 接 電風扇 弱檔位
    name: "gree_fan_sw3"
    pin: 4
    id: relay3
    icon: "mdi:fan"
    # interlock: *interlock_group
    interlock: [relay1, relay2, relay3]
    restore_mode: ALWAYS_OFF
  - platform: gpio # GPIO 0 Relay4 接 電風扇 摇头
    name: "gree_fan_shake"
    pin: 15
    id: relay4
    icon: "mdi:fan"
    # interlock: *interlock_group
    #interlock: [relay1, relay2, relay3]
    restore_mode: ALWAYS_OFF
  - platform: gpio # GPIO 13 Relay5 睡眠模式 串联新的 電風扇 电容
    name: "gree_fan_sleep"
    pin: 13
    id: relay5
    icon: "mdi:fan"
    # interlock: *interlock_group
    #interlock: [relay1, relay2, relay3]
    restore_mode: ALWAYS_OFF
    # 睡眠模式,反转
    #inverted: true

remote_receiver:
  pin: GPIO3
  dump: raw
  #inverted: true
    

4、目前问题,esphome不知道如何配置红外接收,红外遥控器发射接收到的编码是未知类型,只能Raw源码方式接收了吗?如何红外触发,官方有点看不懂了,请教esphome大神。





回复

使用道具 举报

0

主题

96

帖子

883

积分

高级会员

Rank: 4

积分
883
金钱
787
HASS币
0
发表于 2019-6-7 02:49:17 | 显示全部楼层
remote_receiver:
  pin: GPIO32
  dump: all

binary_sensor:
  - platform: remote_receiver
    name: "raw Remote Input"
    raw:
      code: [4088, -1542, 1019, -510, 513, -1019, 510, -509, 511, -510, 1020,
             -1020, 1022, -1019, 510, -509, 511, -510, 511, -509, 511, -510,
             1020, -1019, 510, -511, 1020, -510, 512, -508, 510, -1020, 1022,
             -1021, 1019, -1019, 511, -510, 510, -510, 1022, -1020, 1019,
             -1020, 511, -511, 1018, -1022, 1020, -1019, 1021, -1019, 1020,
             -511, 510, -1019, 1023, -1019, 1019, -510, 512, -508, 510, -511,
             512, -1019, 510, -509]

code里面改成你录的代码
回复

使用道具 举报

22

主题

519

帖子

1608

积分

金牌会员

Rank: 6Rank: 6

积分
1608
金钱
1089
HASS币
10
发表于 2019-6-6 10:53:20 | 显示全部楼层
还能这么玩啊 利害了
回复

使用道具 举报

10

主题

151

帖子

1572

积分

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1416
HASS币
40
发表于 2019-6-6 11:03:25 | 显示全部楼层
改装的效果图上几张看看
回复

使用道具 举报

22

主题

519

帖子

1608

积分

金牌会员

Rank: 6Rank: 6

积分
1608
金钱
1089
HASS币
10
发表于 2019-6-6 11:06:44 | 显示全部楼层
楼主用的也是goouuu s1的8266模块吗?
回复

使用道具 举报

24

主题

608

帖子

3488

积分

元老级技术达人

积分
3488
金钱
2875
HASS币
0

卓越贡献

发表于 2019-6-6 11:12:57 | 显示全部楼层
添加5个继电器,电容。改成六档,楼主,不是变频风扇的话,。电机不是只有三条线而已吗?可以6挡?
回复

使用道具 举报

9

主题

534

帖子

4530

积分

元老级技术达人

积分
4530
金钱
3986
HASS币
60
 楼主| 发表于 2019-6-6 11:21:16 | 显示全部楼层
本帖最后由 sangood 于 2019-6-6 11:23 编辑
eric 发表于 2019-6-6 11:12
添加5个继电器,电容。改成六档,楼主,不是变频风扇的话,。电机不是只有三条线而已吗?可以6挡? ...

看电路图,加了电容,其实我这个格力本来有四挡的,再加一个继电器可以8档了。用不着,就有根线没接。
回复

使用道具 举报

9

主题

534

帖子

4530

积分

元老级技术达人

积分
4530
金钱
3986
HASS币
60
 楼主| 发表于 2019-6-6 11:23:52 | 显示全部楼层
pigcais 发表于 2019-6-6 11:06
楼主用的也是goouuu s1的8266模块吗?

nodemcu v3
回复

使用道具 举报

13

主题

554

帖子

4310

积分

论坛元老

Jeff

Rank: 8Rank: 8

积分
4310
金钱
3756
HASS币
10

活跃会员

发表于 2019-6-6 12:59:15 | 显示全部楼层
本帖最后由 karl_31 于 2019-6-6 13:02 编辑

TIM图片20190606125808.jpg

我是这么改的。还可以接电容 多加3档?
Jeff
回复

使用道具 举报

9

主题

534

帖子

4530

积分

元老级技术达人

积分
4530
金钱
3986
HASS币
60
 楼主| 发表于 2019-6-6 14:02:41 来自手机 | 显示全部楼层
karl_31 发表于 2019-6-6 12:59
我是这么改的。还可以接电容 多加3档?

可呀,加个继电器,看我的图
回复

使用道具 举报

23

主题

1338

帖子

6755

积分

超级版主

Rank: 8Rank: 8

积分
6755
金钱
5392
HASS币
100

教程狂人

发表于 2019-6-6 16:54:13 | 显示全部楼层
eric 发表于 2019-6-6 11:12
添加5个继电器,电容。改成六档,楼主,不是变频风扇的话,。电机不是只有三条线而已吗?可以6挡? ...

我量过普通电扇,原理跟初中物理学的一样,就是加电阻降低电流,你想改成100挡都可以
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-26 03:36 , Processed in 0.377901 second(s), 38 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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