文章

惟家 / 智美 Zemismart KS811 開關低成本刷機教學

手把手教你將惟家 /智美 ks-811 智能開關更新為 esphome 版本

惟家 / 智美 Zemismart KS811 開關低成本刷機教學

前言

使用 Home Assistant 來打造自已的智能家居也好一陣子了

因為前陣子剛搬新家的關係,所以一開始規劃就把所有電燈開關的中性線都拉好

當時在市面上能夠選擇 台灣規格的智能開關選擇並不多,看了看覺得惟家的 Tasmota 版本開關滿適合的,外觀也很美觀

因此家裡全數電燈開關都使用此版本開關, 參考下圖:

KS811開關

問題

使用約 2 年的過程中發現了一個問題就是,萬一不小心久按開關的話,可能會出現以下狀況:

開關自已不斷的切換 On / Off ,重新設定 Wifi 後依舊,且此時已經無法再連接上裝置,只要一上電,他就自已 On / Off 切換個不停,

且無法再進行重新設定,在這情況下只能重寫韌體來改變他的行為了!

但什麼情況下會久按按鈕呢?

1
2
3
4
5
6
1. 當你開關安裝在牆上時,人不小心靠著開關 

2. 當你開關安裝在桌上時,雜物靠到開關 (如果你有開關在書桌,化粧台或是床頭櫃的話 就容易有機率發生)

3. 如果你跟我一樣倒楣的話 = =

總之,使用的2年內我遇到約 3 次這樣的狀況,不知道大家有沒有遇過一樣的問題?

原本想請教賣家如何自已處理,但賣家只願意讓我寄回去由他們幫我處理

但若無法自行處理, 每次要寄回給賣家,這一來一往就是好幾天沒有開關可以使用 = =

於是決定自行研究一下刷機的方式,個人對這些電子設備像是 FTDI Basic / 杜邦線 / 麵包板 可以說是大外行

沒什麼使用經驗,但實作過程發現整個刷機過程滿容易的,在此也分享給大家

如果你有以下需求,那這篇文章希望能對你有些幫助

1
2
3
4
5
6
7
1. 想要嘗試刷機  

2. 有跟我一樣的困擾  

3. 想將手邊 KS811(惟家/智美)開關原廠韌體、Tasmota版本更新為 Espome 版本,享受它易設定,反應快的優點 

4. 單純想要無痛升級為 Esphome 韌體  

刷 EspHome 版本的韌體

我購買的是惟家的 Tasmota 版本,此開關看起來是使用 智美 Zemismart 的 KS-811 再刷 Tasmota 版本韌體修改而成

(開關使用的是 ESP8266 chipset ),實際是不是這樣不得而知,但硬體看起來都是相同的

而不管你是在那邊購買的開關,只要是 KS811 且是 ESP8266 晶片的話都可以刷機,如果在淘寶上購買再自行刷機的話,CP 值高上不少

需要的設備

1. FTDI Basic USBT to TTL UART FT232RL 晶片 (USB 轉序列埠) NT.140

Untitled

根據賣家的說明:

1
2
3
FTDI公司提供VCP(虛擬串列埠)和D2XX兩種驅動程序,使用D2XX驅動程序能獲得更好的數據傳輸性能,   
 
而 VCP (虛擬串列埠) 在 PC上應用具有良好的使用者體驗。   

2. 杜邦線 公<>公 / 公<>母 1元一條,共使用 6條 NT.6

其中2條 公<>公 , 4條 公<>母)

3. 麵包板 (Optional) 為了方便接線,買了一個迷你麵包板 NT.20

KS-811 刷機教學

1. 打開智能開關背蓋

轉開 KS-811 背面的 4 個螺絲,使用 **FTDI Basic程序下載器**刷機。

(啟動時而將 IO0 接地以進入刷機的模式,另外有網友提醒,需使用 3.3V 而非 5V 的電源 )

拆開後長的像這樣,上面是繼電器和整流器,我們主要要刷韌體的是下面帶有 ESP8266 和開關的控制板的這一片,所以上面那一片可以先放在一邊不管他

Untitled

2. 連接 KS-811 與 FTDI Basic

連接的方式不難,確也有小眉角,請先參考完整連接後的圖片

Untitled

a. 先看 FTDI Basic 的部份,我的接法如下:

1
2
3
4
5
6
7
綠色線: GND 接地

紅色線: 5V 電源

黃色線: TX 傳送

橘色線: RX 接收

Untitled

b. 再來看到中間連接到麵包板的部份

  (1) 我把 FTDI Basic 上的接地線,先接到麵包板(橫向的5個孔是相通的)

(2) 從麵包板再拉2條線出來,目的是要把這2條接到 KS-811 的接地 與 IO0 接口 (接 IO0 是為了要進入刷機的模式)

Untitled

c. 再來看 KS-811 的接法 (前面說到的眉角就在這裡)

這邊需要特別留意的是 黃色/橘色線,也就是 TX / RX 的部份

若你仔細觀察的話會發現,我把 FTDI Basic 上的

黃色線: TX 傳送 ⇒ 連接到 KS-811 上的 RX 接口

橘色線: RX 接收 ⇒ 連接到 KS-811 上的 TX 接口

(一開始我一樣把黃色接 TX, 橘色接 RX , 在刷機的過程卡關了一會無法成功,

突然意識到在另一端 應該要反過來接才對,這相當合理)

Untitled

Untitled

到這邊為止接線的部份已經差不多了!

3. 開啟 Home Assistant 的 EspHome 進行設定

  1. 點擊右下方的 + New Device

Untitled

b. 輸入裝置名稱後,是下 Next

Untitled

c. 這裡先 SKIP

Untitled

d. Device Type 選擇 ESP 8266

Untitled

e. 這裡一樣先 SKIP

Untitled

f. 建立好後,我們可以看到多了一個 Test 的裝置,按下 EDIT 編輯

Untitled

g. 這邊看到預設的程式碼,全選後,以下方的程式碼來覆蓋 (2開的範例)

Untitled

2 開開關的 Esphome code 範例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
esphome:
  name: esphome-2way
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: "YourSSID"
  password: "YourPassword"

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:

# for pinout/schematic 
# https://community.home-assistant.io/t/zemismart-ks-811-working-with-esphome/

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO16
      mode: INPUT
      inverted: True
    name: "Top"
    on_press:
      - switch.toggle: load1
  - platform: gpio
    pin:
      number: GPIO5
      mode: INPUT
      inverted: True
    name: "Bottom"
    on_press:
      - switch.toggle: load2

switch:
  - platform: gpio
    name: "Benson Esphome Top"
    pin: GPIO13
    id: load1
  - platform: gpio
    name: "Benson Esphome Bottom"
    pin: GPIO12
    id: load2

status_led:
  pin:
    number: GPIO2
    inverted: yes

sensor:
  - platform: wifi_signal
    name: "Benson Esphome WiFi signal"
    update_interval: 60s

  - platform: uptime
    name: "Benson Esphome uptime"

text_sensor:
  - platform: version
    name: "Benson Esphome ESPHome version"

以上範例是最基礎的設定,若是需要更多詳細的調整,可以參考 ESPhome 官網的說明

h. 然後按下 Save → Install → Manual Download ,系統會開始編譯並下載編譯後的 bin 檔案

Untitled

Untitled

4. 把 FTDI Basic 的 USB 連接線接上電腦(這邊就沒什麼難度不上圖了 我懶的拍 XD) ,就可以開始刷機了

刷機的軟體:

a. FTDI Basic 接上電腦後 觀察裝置管理員的 COM Port 是多少

Untitled

b. 開啟 Esphome Flasher ,選擇正確的 COM 埠,以及剛剛下載的 bin 檔案

按下 Flash ESP 開始刷機

Untitled

沒有意外的話,刷機就完成了

5. 上電測試

最後把 KS-811 裝回去,並接上中性線、電源線後上電

沒意外的話 Home Assistant 會偵測到新設備,按下設定、選擇區域後,就大公告成了

Untitled

心得

EspHome 版本整體反應要比 Tasmota 再透過 MQTT 來的迅速,設定上也容易許多

自行刷機升級的門檻也不高,總花費更只需要 200塊內即可搞定!

本次刷機前後研究不到 3個小時,若有謬誤還請不吝賜教

若是您手邊也有相同的設備,或者跟我有相同的困擾,又或是想要 DIY 改造 KS-811 韌體的話,希望此篇文章能夠幫助到你!

其它參考資源

淘寶智美 KS-811 購買

Zemismart KS-811 working with ESPHome!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Pinouts:

Inputs

i have all 3 switches now, and these were the pinouts i found

1 way GPIO0

2 way GPIO16 top, GPIO5 bottom

3 way GPIO16 top, GPIO5 middle, GPIO4 bottom

Outputs

Status LED GPIO2

Load 1 GPIO13

Load 2 GPIO12

Load 3 GPIO14

COMO FLASHEAR O INTERRUPTOR ZEMISMART

韓文的刷機分享文章

Zemismart KS-811 3 Gang Switch GPIO

ESPHome GPIO Switch (Yaml 設定參考)

ESPHome 入門 - HackMD

本文章以 CC BY 4.0 授權

Comments powered by Disqus.