请选择 进入手机版 | 继续访问电脑版

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

 找回密码
 立即注册
查看: 914|回复: 8

[修仙教程] ESPHome 直接互控 不再需要 HA 了

[复制链接]

26

主题

356

帖子

2906

积分

金牌会员

Rank: 6Rank: 6

积分
2906
金钱
2540
HASS币
146

教程狂人

发表于 6 天前 | 显示全部楼层 |阅读模式
本帖最后由 chinyaolin 于 2020-11-22 00:48 编辑

先給兩篇連結

  • ESPHome 提供 REST API, 可直接取得 sensor 資料 或是 直接控制 switch/light 開關
    Web Server API
  • ESPHome 從 15.0 版之後, 提供了 http_request 元件, 可 get/post/put 呼叫外部 URL
    HTTP Request

沿襲之前的「愛老婆的好男人(床頭燈聯動)」思路,
今天要讓兩個床頭燈在僅有 wifi 而沒有 HA 的情形下, 實現聯動互控
這個思路大家可以發揮想像力, 可以應用在雙控、三控等各種場景

一、說在前頭

  • 要想使用 Web Server API, 你的 ESPHome 需高於 1.3 版, 應該沒有人使用這麼舊的版本了
  • 要想使用 HTTP Request, 你的 ESPHome 需高於 15.0 版, 且使用的 Arduino framework 高於 2.5.0 (後者若你已經用 15.x 一定沒有問題)
  • 另外, 因為載入 HTTP Request 元件之後, 幾乎 100% 會讓你的固件大於 512KB, 對於使用 ESP8266 來說, 未來將無法直接 OTA 刷固件, 而需要改用二階段升級, 大概的做法如下:

  • 製作一個全新的 ESPHome YAML 檔案, 只留下 esphome/wifi/web_server/api 等最精簡的設定, 編譯一個最小固件備存 (miniESPHome.bin)
  • 在刷你自己的新固件之前, 先透過 Web 介面刷入 miniESPHome.bin 後重啟
  • 重啟之後, 這時才可以透過 ESPHome 介面上傳固件
  • 若遇到 mDNS 無法解析時, 也可以用 (2) 的方法上傳新固件
  • 當然, 若將模塊拆下直刷, 保證就沒有問題了


                               
登录/注册后可看大图

二、老婆的床頭燈
我用了 Sonoff RFR3 來做床頭燈的控制, 這裡就使用最簡單的 GPIO 控制開關燈, 應該沒什麼難度
這裡為了比較好閱讀, 所以也用了一點我之前發表過的小技巧 YAML 混搭 JSON 讓你的設定檔更簡捷
#################################################################################
substitutions: { desc: 老婆床頭燈, devicename: SONOFF_RFR3_AD2EA }
#################################################################################
esphome:
  name: $devicename
  platform: ESP8266
  board: esp01_1m
packages:
  wifi:       !include common/wifi_YAO_and_SOPHIA_2.yaml
  apiotaweb:  !include common/apiotaweb_default.yaml
binary_sensor:
  - platform: gpio
    id: btn1
    internal: true
    pin: {number: GPIO0, mode: INPUT_PULLUP, inverted: True}
    filters: [{delayed_on: 40ms}, {delayed_off: 40ms}]
    on_press: [{light.toggle: light1}]
output:
  - {pin: 12, id: output1, platform: gpio}
light:
  - {id: light1, output: output1, platform: binary, name: '${devicename}_lt1'}
switch:
  - {platform: restart, name: '${devicename}_restart'}


三、好男人的床頭燈
不廢話, 直接上代碼
游客,如果您要查看本帖隐藏内容请回复

四、解釋一下
  • http_request : 載入元件
  • packages : 把共用的設定另外存放,編譯時載入, 未來要統一修改也方便 [ 官網的說明 ]
  • on_click / on_multi_click : 讓一個按鍵透過短按/長按來執行不同的功能
  • http_request.post : 使用 post 方法呼叫指定的 URL
  • URL : 格式為 http://[IP位址/mDNS網址]/<domain>/<ID>/<action>

其中,
  • [IP位址/mDNS網址] : 192.168.x.x 或是 sonoff_rfr3_ad2ea5.local 可以連結到你想控制的模塊
  • <domain> : 你在 ESPHome 想控制的實例所設定的 domain, 我這裡是 light
  • <ID> : 這裡比較麻煩, 不是你在 YAML 檔中所設定的 ID。依照官方的說法 -->「此ID是通過採用組件的名稱,去除所有非字母數字字符,將所有內容都變為小寫並用下劃線替換所有空格來創建的」, 轉換細節請參考前面給出的官網連結。以我為例, 我要控制的燈是老婆的床頭燈, 這個燈在我的 YAML 檔中取名為SONOFF_RFR3_AD2EA_lt1 , 經由剛剛說明會轉換為 sonoff_rfr3_ad2ea_lt1
  • <action> : 不同 domain 支援的 action 不同, 還是請大家去看官網, 我這裡選擇使用 toggle
  • 整串連結起來, 從我的床頭燈要控制老婆床頭置所使用的 URL 為 http://sonoff_rfr3_ad2ea5.local/light/sonoff_rfr3_ad2ea5_lt1/toggle

以上,
我再也不同擔心 HA 主機發生狀況時,
沒有辦法幫老婆關燈了

评分

参与人数 1金钱 +20 HASS币 +20 收起 理由
+ 20 + 20 膜拜大神!

查看全部评分

ASRock H370 PRO4, 48GB, 8TBx3 + 2TBx3
ESXi 6.7 + Ununtu + Docker + HASS.IO
(Home Assistant Supervised 官方文件)
回复

使用道具 举报

2

主题

257

帖子

1955

积分

论坛积极会员

积分
1955
金钱
1698
HASS币
20
发表于 6 天前 | 显示全部楼层
啥回事......看看學習......
回复

使用道具 举报

15

主题

79

帖子

819

积分

高级会员

Rank: 4

积分
819
金钱
740
HASS币
0
发表于 6 天前 | 显示全部楼层
还是不行啊 大哥  你老婆不能给你关灯啊
回复

使用道具 举报

26

主题

356

帖子

2906

积分

金牌会员

Rank: 6Rank: 6

积分
2906
金钱
2540
HASS币
146

教程狂人

 楼主| 发表于 5 天前 | 显示全部楼层
yuzhigang 发表于 2020-11-22 19:02
还是不行啊 大哥  你老婆不能给你关灯啊

舉一反三啊~ 老婆的燈比照設定就行了
ASRock H370 PRO4, 48GB, 8TBx3 + 2TBx3
ESXi 6.7 + Ununtu + Docker + HASS.IO
(Home Assistant Supervised 官方文件)
回复

使用道具 举报

15

主题

79

帖子

819

积分

高级会员

Rank: 4

积分
819
金钱
740
HASS币
0
发表于 5 天前 | 显示全部楼层
chinyaolin 发表于 2020-11-23 08:53
舉一反三啊~ 老婆的燈比照設定就行了

了解  做天猫已经改好了
回复

使用道具 举报

15

主题

79

帖子

819

积分

高级会员

Rank: 4

积分
819
金钱
740
HASS币
0
发表于 5 天前 | 显示全部楼层
yuzhigang 发表于 2020-11-23 11:06
了解  做天猫已经改好了

有个小bug,老是等一会就提示api连不上,然后esp就重启,我不知道你有没有这个问题
回复

使用道具 举报

26

主题

356

帖子

2906

积分

金牌会员

Rank: 6Rank: 6

积分
2906
金钱
2540
HASS币
146

教程狂人

 楼主| 发表于 5 天前 | 显示全部楼层
yuzhigang 发表于 2020-11-23 11:07
有个小bug,老是等一会就提示api连不上,然后esp就重启,我不知道你有没有这个问题 ...

詳細情況?
天貓 API 連不上?
HA 與 ESPHome 連不上?
ASRock H370 PRO4, 48GB, 8TBx3 + 2TBx3
ESXi 6.7 + Ununtu + Docker + HASS.IO
(Home Assistant Supervised 官方文件)
回复

使用道具 举报

6

主题

264

帖子

1504

积分

金牌会员

Rank: 6Rank: 6

积分
1504
金钱
1240
HASS币
0
QQ
发表于 4 天前 | 显示全部楼层
这个功能确实是不错 挺好的
回复

使用道具 举报

1

主题

56

帖子

153

积分

注册会员

Rank: 2

积分
153
金钱
97
HASS币
0
发表于 前天 10:50 | 显示全部楼层
学习一下
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2020-11-28 21:25 , Processed in 0.097257 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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