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

标题: 普通风扇改智能 [打印本页]

作者: wz199021    时间: 2023-5-11 21:31
标题: 普通风扇改智能
风扇型号:美的FS40-11D4
三个档位,摇头是齿轮传动,只能手动。
准备材料:[attach]47790[/attach]
我没用AC转DC,风扇空间有限装不进去,直接用USB线接出来的。

接线:
      [attach]47791[/attach]
把原来按键控制电机的线剪断,按键面板的线接在nodemcu的D5 D6 D7上,物理按键的公共线(按一下能关风扇的这个开关接出来的线)接在nodemcu的G上,电机那边的3根档位线分别接在3路继电器的3个NO常开端子上,风扇插头的火线接在继电器的COM口上,继电器的3个COM口要串起来,nodemcu的3v和G接在继电器的DC+和DC-上,nodemcu的D0 D1 D2分别接在继电器的IN1 IN2 IN3。

esphome编译:

  1. esphome:
  2.   name: jidianqi
  3.   friendly_name: 风扇档位

  4. esp8266:
  5.   board: nodemcuv2

  6. # Enable logging
  7. logger:

  8. # Enable Home Assistant API
  9. api:
  10.   encryption:
  11.     key: "dO8f6OaNQV/q0BACr9gYlYUrFlcbWDSvqhU="   #自动生成

  12. ota:
  13.   password: "111233213" #自动生成

  14. wifi:
  15.   ssid: "11"#改成自己的WIFI名字
  16.   password: "4444442224" #改成自己的WIFI密码

  17.   # Enable fallback hotspot (captive portal) in case wifi connection fails
  18.   ap:
  19.     ssid: "Jidianqi Fallback Hotspot"   #自己改
  20.     password: "ShdhUCjmMge4"  #自己改

  21. captive_portal:

  22. web_server:  
  23.   port: 80

  24. switch:
  25.   - platform: gpio
  26.     pin: D0
  27.     name: "LOW"
  28.     id: relay1
  29.   - platform: gpio
  30.     pin: D1
  31.     name: "MID"
  32.     id: relay2
  33.   - platform: gpio
  34.     pin: D2
  35.     name: "HIGH"
  36.     id: relay3
  37.   - platform: gpio
  38.     pin: D3
  39.     name: "SOH"
  40.     id: relay4

  41. binary_sensor:
  42.   - platform: gpio
  43.     name: "Switch1"
  44.     id: "SW1"
  45.     pin:
  46.       number: D4
  47.       inverted: True
  48.       mode: INPUT_PULLUP
  49.     on_press:
  50.       then:
  51.         - switch.toggle:
  52.            id: relay1

  53.   - platform: gpio
  54.     name: "Switch2"
  55.     id: "SW2"
  56.     pin:
  57.       number: D5
  58.       inverted: True
  59.       mode: INPUT_PULLUP
  60.     on_press:
  61.       then:
  62.         - switch.toggle:
  63.            id: relay2

  64.   - platform: gpio
  65.     name: "Switch3"
  66.     id: "SW3"
  67.     pin:
  68.       number: D6
  69.       inverted: True
  70.       mode: INPUT_PULLUP
  71.     on_press:
  72.       then:
  73.         - switch.toggle:
  74.            id: relay3

  75.   - platform: gpio
  76.     name: "Switch4"
  77.     id: "SW4"
  78.     pin:
  79.       number: D7
  80.       inverted: True
  81.       mode: INPUT_PULLUP
  82.     on_press:
  83.       then:
  84.         - switch.toggle:
  85.            id: relay4
复制代码


做完刷进nodemcu。

nodered设置:
[attach]47792[/attach]

[attach]47793[/attach]
这样就能物理按键状态和WEB按键状态同步,有点不好的就是物理按键按下去只能手动弹起,但是不影响远程控制,即使按键按下去或者没按下去都可以远程控制。









作者: lausonus    时间: 2023-5-11 21:41
666,来学习学习
作者: hyq    时间: 2023-5-11 22:09
如果继电器没有硬互锁,建议程序里面都要互锁一下。摇头电机网上有电动的,一样可以改。我还加了温度跟红外人体感应。自动启停。自动化就在esp里面完成。或者自动化在ha里面,跟房间的人体感应、空调联动。不用人管。
作者: hyq    时间: 2023-5-11 22:11
alias: 风扇自动化
description: 风扇自动化
trigger:
  - platform: template
    value_template: >-
      {{ is_state('binary_sensor.tuyatec_2gn2zf9e_rh3040_iaszone', 'on')  and
      is_state('input_boolean.kong_diao_shan_ke_ting_ci_wo_qie_huan', 'off')}}
  - platform: template
    value_template: >-
      {{ is_state('binary_sensor.tuyatec_aovdiasu_rh3040_iaszone', 'on')   or
      is_state('binary_sensor.guangmingzhuangtai', 'on') and
      is_state('input_boolean.kong_diao_shan_ke_ting_ci_wo_qie_huan', 'on') }}
condition:
  - or:
      - and:
          - "{{ is_state('input_boolean.feng_shan_shou_dong_kai_guan', 'on')}}"
          - >-
            {{ is_state('input_boolean.kong_diao_shan_ke_ting_ci_wo_qie_huan',
            'on') }}
          - "{{  now() > today_at(\"5:30\") and now() < today_at(\"22:00\")  }}"
      - and:
          - "{{ is_state('input_boolean.feng_shan_shou_dong_kai_guan', 'on')}}"
          - >-
            {{is_state('input_boolean.kong_diao_shan_ke_ting_ci_wo_qie_huan',
            'off')}}
          - "{{  now() < today_at(\"5:30\") or now() > today_at(\"22:00\")  }}"
action:
  - repeat:
      sequence:
        - choose:
            - conditions:
                - "{{ 30 > states('sensor.fengshanwendu')|int >= 26 }}"
                - "{{ is_state('switch.fengshang1', 'off')}}"
              sequence:
                - service: switch.turn_on
                  data: {}
                  target:
                    entity_id: switch.fengshang1
        - choose:
            - conditions:
                - "{{ 33 > states('sensor.fengshanwendu')|int >= 30 }}"
                - "{{ is_state('switch.fengshang2', 'off')}}"
              sequence:
                - service: switch.turn_on
                  data: {}
                  target:
                    entity_id: switch.fengshang2
        - choose:
            - conditions:
                - "{{  states('sensor.fengshanwendu')|int >= 36 }}"
                - "{{ is_state('switch.fengshang3', 'off')}}"
              sequence:
                - service: switch.turn_on
                  data: {}
                  target:
                    entity_id: switch.fengshang3
        - choose:
            - conditions:
                - "{{ is_state('switch.yaotou', 'off')}}"
                - or:
                    - "{{ is_state('switch.fengshang1', 'on')}}"
                    - "{{ is_state('switch.fengshang2', 'on')}}"
                    - "{{ is_state('switch.fengshang3', 'on')}}"
              sequence:
                - service: switch.turn_on
                  data: {}
                  target:
                    entity_id: switch.yaotou
        - delay: "00:01:00"
      until:
        - or:
            - and:
                - >-
                  {{ ((as_timestamp(now())
                  -as_timestamp(states.binary_sensor.tuyatec_aovdiasu_rh3040_iaszone.last_changed))/60)|float|
                  round(0)>=20 and
                  is_state('binary_sensor.tuyatec_aovdiasu_rh3040_iaszone',
                  'off') }}
                - >-
                  {{ ((as_timestamp(now())
                  -as_timestamp(states.binary_sensor.guangmingzhuangtai.last_changed))/60)|float|
                  round(0)>=20 and is_state('binary_sensor.guangmingzhuangtai',
                  'off') }}
                - "{{  now() > today_at(\"5:30\") and now() < today_at(\"22:00\")  }}"
                - >-
                  {{is_state('input_boolean.feng_shan_shou_dong_kai_guan',
                  'on')}}
                - >-
                  {{is_state('input_boolean.kong_diao_shan_ke_ting_ci_wo_qie_huan',
                  'on')}}
            - and:
                - >-
                  {{ ((as_timestamp(now())
                  -as_timestamp(states.binary_sensor.tuyatec_2gn2zf9e_rh3040_iaszone.last_changed))/60)|float|
                  round(0)>=40 and
                  is_state('binary_sensor.tuyatec_2gn2zf9e_rh3040_iaszone',
                  'off') }}
                - "{{  now() < today_at(\"5:30\") or now() > today_at(\"22:00\")  }}"
                - >-
                  {{ is_state('input_boolean.feng_shan_shou_dong_kai_guan',
                  'on') }}
                - >-
                  {{is_state('input_boolean.kong_diao_shan_ke_ting_ci_wo_qie_huan',
                  'off')}}
            - "{{ is_state('input_boolean.feng_shan_shou_dong_kai_guan', 'off')}}"
            - "{{ states('sensor.fengshanwendu_2')|int < 26 }}"
  - service: switch.turn_on
    data: {}
    target:
      entity_id: switch.fengshang0
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.yaotou
mode: single

作者: sorrypqa    时间: 2023-5-11 22:21
hyq 发表于 2023-5-11 22:11
alias: 风扇自动化
description: 风扇自动化
trigger:

我的天,自动化看起来很复杂呀!可以分享一下ESPHome的配置吗?先谢谢!
作者: hyq    时间: 2023-5-11 22:21
摇头电机:https://item.taobao.com/item.htm ... amp;_u=b1s9opga980b
作者: hyq    时间: 2023-5-11 22:24
替换原来的机械按键:https://item.taobao.com/item.htm ... amp;_u=b1s9opga23b2[/url]
作者: hyq    时间: 2023-5-11 22:25
用这个改装个人感觉比继电器好。https://item.taobao.com/item.htm ... ;abbucket=17#detail
作者: wangmucha    时间: 2023-5-11 22:58
哇,天气热了大家都来改电风扇啦,我也刚改了一个,楼主这个开一档锁闭23档,这个互锁可以直接写到esphome代码里不需要nr再做调整。另外我也想人在和温度直接装电风扇,不过如果调用ha那我何必塞那么多东西进去,家里其他感应完全可以替代。如果想做个离线都可以自动化的温度和人在联动自动化代码直接写入esphome的我又感觉不靠谱,误判难免不该开自己开关都关不掉,就鸡肋了,所以还是算了,不加人在和温度
作者: a_dongde    时间: 2023-5-12 11:43
我有个红外遥控的电风扇,想改成WIFI的有方案吗?我觉得一个esphome不用继电器硬件就可以,奈何不会编程。
作者: wodepiqi    时间: 2023-5-12 14:09
红外不需要继电器喔,切换原板子可控硅接到esp就可以
作者: DDDear    时间: 2023-5-12 15:48
期待大佬出个人体跟随的版本
作者: taida    时间: 2023-5-12 17:29
本帖最后由 taida 于 2023-5-12 17:36 编辑

继电器A常开接继电器2公共,我这样互锁的,esphome中,代码这样互锁:switch:
  - platform: restart
    name: "rst_esp32_fan"

  - platform: gpio
    name: "fanlow"
    pin: 16
    id: low
    interlock: [mid, fast]

  - platform: gpio
    name: "fanmid"
    pin: 14
    id: mid
    interlock: [low, fast]

  - platform: gpio
    name: "fanfast"
    pin: 12
    id: fast
    interlock: [low, mid]

  - platform: gpio
    name: "fanshakes"
    pin: 13
    id: fanshakes

binary_sensor:

  - platform: gpio
    pin:
      number: GPIO5
      mode: INPUT_PULLUP
      inverted: True
    name: "fasttouch"
    filters:
       - delayed_on_off: 100ms      
    on_state:
      then:
      - switch.turn_off: fast
      - switch.turn_off: mid  
#      - switch.turn_off: fanshakes
      - switch.toggle:
         id: low


gmshiwoge 大佬的帖子https://bbs.hassbian.com/forum.php?mod=viewthread&tid=12361&highlight=%E6%99%AE%E9%80%9A%E9%A3%8E%E6%89%87


作者: sczdlj`    时间: 2023-5-13 20:25
在下对你的景仰犹如滔滔长江之水,连绵不绝.

作者: hyq    时间: 2023-5-13 21:25
DDDear 发表于 2023-5-12 15:48
期待大佬出个人体跟随的版本

https://esphome.io/components/sensor/sen21231.html
作者: DDDear    时间: 2023-5-14 22:40
hyq 发表于 2023-5-13 21:25
https://esphome.io/components/sensor/sen21231.html

厉害啊,人脸识别的,那个视频还是实时跟随的,我感觉能实现拍不到人脸就自动转头,拍到人脸就停止就满足了
作者: hyq    时间: 2023-5-15 13:17
DDDear 发表于 2023-5-14 22:40
厉害啊,人脸识别的,那个视频还是实时跟随的,我感觉能实现拍不到人脸就自动转头,拍到人脸就停止就满足 ...

就是只能看看!玩不懂!
作者: karl_31    时间: 2023-5-19 09:16
带互锁带总开关 esphome直接接入ha
作者: lagosken    时间: 2023-5-22 15:30
楼主这个操作目测原来的按键没法关风扇,只能调风速
作者: byb8742    时间: 2023-5-29 14:58
谢谢分享

作者: sdmcu    时间: 2025-4-25 15:38
猛人啊,感谢分享!!!




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5