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

 找回密码
 立即注册
楼主: ryanh7

[新奇玩法] 【esphome】小米空调伴侣2、小米插座2刷入esphome开启红外蓝牙

  [复制链接]

1

主题

158

帖子

872

积分

高级会员

Rank: 4

积分
872
金钱
714
HASS币
0
发表于 2022-4-4 21:38:15 | 显示全部楼层
支持小米蓝牙开关吗?
回复

使用道具 举报

80

主题

388

帖子

1680

积分

金牌会员

Rank: 6Rank: 6

积分
1680
金钱
1292
HASS币
0
发表于 2022-4-5 21:48:09 | 显示全部楼层
大佬,米插座2,gpio0 引脚接地,具体在图示标红的地方接地吗?谢谢。我看到rx 和 tx 在主板的背面,买了电烙铁,准备焊掉焊死的接头,取下电路板。
微信图片_20220405214402.jpg
回复

使用道具 举报

80

主题

388

帖子

1680

积分

金牌会员

Rank: 6Rank: 6

积分
1680
金钱
1292
HASS币
0
发表于 2022-4-6 18:59:49 | 显示全部楼层
本帖最后由 ciasdmxhxjjpd@c 于 2022-4-6 19:02 编辑
ryanh7 发表于 2022-4-6 12:08
rx,tx用杜邦线扶一下也能够得着,印象里按钮按下去gpio0好像是接地的,如果不行就找个GND用杜邦线接一下 ...

芯片引脚太小了,肉眼看的都难受,没有显微镜,不好操作。今天用万用表确认了下,图中粉色的线条,就是连接 gpio0,经过一个 10k 的电阻 ,连接到 按键 左脚。上电的时候,按住按键不放,就能进入烧写模式。

另外,不拆主板,如果连接 rx 和 tx 呢,貌似 不好焊接呢

214652aev1i741uhauq61b.jpg
回复

使用道具 举报

80

主题

388

帖子

1680

积分

金牌会员

Rank: 6Rank: 6

积分
1680
金钱
1292
HASS币
0
发表于 2022-4-6 19:26:19 | 显示全部楼层
本帖最后由 ciasdmxhxjjpd@c 于 2022-4-18 15:49 编辑

/////////////////////
回复

使用道具 举报

80

主题

388

帖子

1680

积分

金牌会员

Rank: 6Rank: 6

积分
1680
金钱
1292
HASS币
0
发表于 2022-4-9 15:47:41 | 显示全部楼层
本帖最后由 ciasdmxhxjjpd@c 于 2022-6-26 22:58 编辑

已经解决了

button gpio 为 gpio0
缺少 interval:


还有部分问题:
1. ota更新提示失败,多试几次

esphome:
  name: smart-plug
  platformio_options:
    platform_packages:
     - framework-arduinoespressif32 @ https://github.com/pauln/arduino-esp32.git#solo-no-mac-crc/1.0.6
 
  on_loop:
   - lambda: |
        vTaskDelay(10/portTICK_PERIOD_MS);
        
  on_boot: 
    then: 
      - switch.turn_off: switch_plug
      - delay: 3s
      - switch.turn_on: switch_plug

esp32:
 board: esp32dev
 
# Enable logging
logger:
#  level: VERY_VERBOSE

web_server:
 port: 80
 auth:
   username: admin
   password: !secret web_password
 
api:
 password: !secret api_password

ota:
  password: !secret ota_password

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.1.100
    gateway: 192.168.1.1
    subnet: 255.255.255.0
    dns1: 192.168.1.1

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "SmartPlug Fallback Hotspot"
    password: !secret wifi_password

captive_portal:

# add
globals: #示例,配合实现切换灯状态 可删除
  # idle 1, wifi connected 2, reboot 3
  - id: var_light_status
    type: int
    restore_value: no
    initial_value: '0'

script: #示例,配合实现切换灯状态 可删除
  - id: script_led_idle
    mode: single
    then:
      - if:
          condition:
            lambda: "return (id(var_light_status) != 1) && (id(var_light_status) != 3);"
          then:
            - globals.set:
                id: var_light_status
                value: '1'
            - light.turn_off: 
                id: light_blue
                transition_length: 0s
            - light.turn_on:
                id: light_yellow
                transition_length: 0s
  - id: script_led_connected
    mode: single
    then:
      - if:
          condition:
            lambda: "return (id(var_light_status) != 2) && (id(var_light_status) != 3);"
          then:
            - globals.set:
                id: var_light_status
                value: '2'
            - light.turn_off:
                id: light_yellow
                transition_length: 0s
            - light.turn_on:
                id: light_blue
                brightness: 50%
                transition_length: 0s
  - id: script_led_reboot
    mode: single
    then:
      - globals.set:
          id: var_light_status
          value: '3'
      - light.turn_off:
          id: light_blue
          transition_length: 0s
      - light.turn_on:
          id: light_yellow
          effect: "fast flash"

light:
  - platform: monochromatic
    id: "light_blue"
    name: "Light Blue"
    output: output_blue
    restore_mode: ALWAYS_OFF
  - platform: monochromatic
    id: "light_yellow"
    output: output_yellow
    restore_mode: ALWAYS_OFF
    effects:
      - pulse:
          name: "fast flash"
          transition_length: 0s
          update_interval: 100ms
              
output: #黄、蓝指示灯引脚
  - id: output_blue
    platform: ledc
    pin: GPIO18
    inverted: True
  - id: output_yellow
    platform: ledc
    pin: GPIO23
    inverted: True
    
switch: #继电器引脚
  - platform: gpio
    name: "SmartPlug Switcher"
    id: "switch_plug"
    pin:
      number: GPIO27
    on_turn_on:
      then:
        - switch.toggle: switch_lock
    on_turn_off:
      then:
        - switch.toggle: switch_lock
  - platform: gpio
    id: "switch_lock"
    pin: GPIO26

sensor: #功率计引脚
  - platform: hlw8012
    current_resistor: 0.005
    voltage_divider: 766 #影响220v电压测量结果,自行校准
    sel_pin: 
      number: GPIO5
      inverted: True
    cf_pin: GPIO21
    cf1_pin: GPIO22
    current:
      name: "HLW8012 Current"
      unit_of_measurement: A
    voltage:
      name: "HLW8012 Voltage"
      unit_of_measurement: V
    power:
      name: "HLW8012 Power"
      unit_of_measurement: W
    energy:
      name: "HLW8012 Energy"
      filters:
        - multiply: 0.001
      unit_of_measurement: 'kWh'
      accuracy_decimals: 3
    change_mode_every: 1
    update_interval: 30s

  - platform: template
    lambda: return temperatureRead();
    name: "HLW8012 Temperature"
    unit_of_measurement: "°C"
    update_interval: 300s    
    
  # xiaomi temperature meter with custom firmware,https://github.com/atc1441/ATC_MiThermometer
  # in https://atc1441.github.io/TelinkFlasher.html
  # after flush custom fireware, set Advertising Type: Mi Like
  # and click 'Save current settings in flash' button
  # replace BLE MAC address
  - platform: xiaomi_lywsd03mmc
    mac_address: "A4:C1:38:xx:xx:xx"
    bindkey: "47CF9F14B8CE5C668DE3C6799B008D28"
    temperature:
      name: "Room LYWSD03MMC Temperature"
    humidity:
      name: "Room LYWSD03MMC Humidity"
    battery_level:
      name: "Room LYWSD03MMC Battery Level"
  - platform: xiaomi_lywsd03mmc
    mac_address: "A4:C1:38:xx:xx:xx"
    bindkey: "47CF9F14B8CE5C668DE3C6799B008D28"
    temperature:
      name: "Outdoor LYWSD03MMC Temperature"
    humidity:
      name: "Outdoor LYWSD03MMC Humidity"
    battery_level:
      name: "Outdoor LYWSD03MMC Battery Level"
          
 
binary_sensor:
  - platform: gpio #按钮相关引脚
    pin:
      number: GPIO0
      mode: INPUT
    name: "SmartPlug Button"
    filters:
     - invert:
     - delayed_on_off: 100ms
    on_click: #示例,单击开关继电器
      min_length: 50ms
      max_length: 350ms
      then:
        - switch.toggle: switch_plug
    on_multi_click: #示例,长按3秒重启插座
      - timing:
          - ON for at least 3s
        then:
          - script.execute: script_led_reboot
      - timing:
          - ON for at least 3s
          - OFF for at least 0.3s
        then:
          - lambda: |
             App.reboot();
interval:
  - interval: 3s #示例,根据wifi连接情况改变灯色,可删除
    then:
      - if:
          condition:
            wifi.connected
          then:
            - script.execute: script_led_connected
          else:
            - script.execute: script_led_idle

    
# BLE    
esp32_ble_tracker:
                  




回复

使用道具 举报

80

主题

388

帖子

1680

积分

金牌会员

Rank: 6Rank: 6

积分
1680
金钱
1292
HASS币
0
发表于 2022-4-10 08:30:57 | 显示全部楼层
电压显示错误,请问,根据 voltage_divider  如何计算 测量电压值?
看了下芯片手册,没搞懂
捕获.PNG
回复

使用道具 举报

80

主题

388

帖子

1680

积分

金牌会员

Rank: 6Rank: 6

积分
1680
金钱
1292
HASS币
0
发表于 2022-4-10 09:15:10 | 显示全部楼层
本帖最后由 ciasdmxhxjjpd@c 于 2022-4-10 09:25 编辑
ryanh7 发表于 2022-4-10 09:02
和电路上的电阻有关系,我的测量值和实际也对不上,你调整一下voltage_divider把电压调到220左右吧,如果 ...

实测,加入下面的延时代码,ota时,多次几次,可以进行ota更新。而且,在没有网络的情况,也可以避免无限重启。(即便不用ble)
  on_loop:
   - lambda: |
        vTaskDelay(10/portTICK_PERIOD_MS);

测试了下,改到2000多,还是显示几十伏。貌似改变 voltage_divider 还影响功率值。





回复

使用道具 举报

80

主题

388

帖子

1680

积分

金牌会员

Rank: 6Rank: 6

积分
1680
金钱
1292
HASS币
0
发表于 2022-4-10 09:57:23 | 显示全部楼层
本帖最后由 ciasdmxhxjjpd@c 于 2022-4-10 09:59 编辑
ryanh7 发表于 2022-4-10 09:48
和current_resistor还有关系,共同决定电压电流电功率的值。看着调吧,我也不知道为什么换一个就阻值就不 ...

current_resistor 不变的情况下,用苹果充电头测.
voltage_divider  = 766 时,power = 5.7w ; 
voltage_divider  = 7660 时, power = 30w ;  
voltage_divider  = 76 时, power = 0.3w 

感觉小米的这个插座很鸡肋啊!原版固件里,始终显示220v,估计是写死的。因为我的 pzem-004t 显示我家电压是  227 v。

捕获.PNG
回复

使用道具 举报

17

主题

77

帖子

1490

积分

金牌会员

Rank: 6Rank: 6

积分
1490
金钱
1413
HASS币
0
发表于 2022-12-15 04:18:51 | 显示全部楼层
空调伴侣的配置代码能再分享下吗
回复

使用道具 举报

17

主题

77

帖子

1490

积分

金牌会员

Rank: 6Rank: 6

积分
1490
金钱
1413
HASS币
0
发表于 2022-12-15 04:28:56 | 显示全部楼层
dscao 发表于 2022-3-30 21:55
我也不懂,只是发现报错,搜索到解决方法,测试后可行。
这个引用就是使用特定库了,其它按楼主的代码复制 ...

有esphome空调伴侣的代码吗,帖子上面代码现在已经没了,能不能发一份给我下,谢谢
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-25 13:39 , Processed in 0.056060 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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