Em xin được chia sẻ tiếp về phần kết nối con SONOFF tới hệ thống HASS thông qua MQTT Broker.

Vậy tại sao cần MQTT để kết nối SONOFF và HASS?
Đơn giản vì hiện tại HASS không add trực tiếp được các em SONOFF vào hệ thống nên phải đi qua trung gian là anh MQTT cao to đen hôi =)) (Em hiểu sơ sơ là vậy, nếu có chưa đúng thì các bác giúp em sửa lại nha)

Và vẫn theo thể thức cũ, em sẽ viết theo dạng Step-by-Step để làm sao cho mọi người dễ hiểu nhất. Bắt đầu thôi.

I. Những thứ cần chuẩn bị
1. Một con Rasberry Pi đã cài đặt thành công Home-Assistant (Nếu ai chưa cài có thể đọc lại bài này của Mod @Duy Luân )

2. Home-Assistant (HASS) đã được cài Add-on SAMBA. Add-on này mục đích là để ta có thể truy cập vào ổ đĩa chứa các file hệ thống của HASS (Nếu chưa cài thì xem tại đây)

3. Notepad++ (Dùng để mở các file cấu hình trong HASS, nếu chưa có thì tải ở đây)

4. Một con công tắc SONOFF đã Flash firmware (Vì sao và làm thế nào thì xin đọc lại bài này)Bấm để mở rộng…II. Quy trình thực hiện
1. Cài đặt MQTT vào hệ thống HASS
2. Kết nối SONOFF vào HASS qua MQTT
3. Gọi SONOFF lên bảng điều khiển chính của HASS để sử dụng.III. Cách thực hiện chi tiết.
1.1 Đầu tiên, ta cần cài Add-on Mosquitto Broker (MQTT)

Để cài MQTT mình truy cập vào HASS.
Ở thanh Menu dọc bên trái, mình chọn Hass.io, sau đó nhấn vào Add-on Store.
Trượt xuống bên dưới tìm Add-on có tên là Mosquitto Broker.
Đang tải 01.PNG…

Nhấn Install để cài đặt, và vui lòng chờ đợi trong ít giây để hệ thống thêm add-on này vào.
Đang tải 02.PNG…

Sau khi tiến trình cài đặt thành công, thì mình nhấn vào nút Start để khởi động MQTT.
Đang tải 03.PNG…

1.2. Tiếp theo là mình cần khai báo thông tin kết nối cho con MQTT, chính là username và password để các thiết bị khác kết nối vào.
Trong phần Config, các bác thay thế dòng “logins”: [], thành
Code:

"logins": [
    {
      "username": "xxx",
      "password": "xxx"
    }
  ],

Ở phần username và password, các bác thay thế xxx thành tài khoản và mật khẩu cho con MQTT nhé.
Đặt xong thì nhớ note lại không lại quên =)) .
Sau khi khai báo xong thì nhấn Save để lưu lại nha các bác.
Đang tải 04.PNG…

1.3. Sau khi khai báo thông tin kết nối cho MQTT
Cái này em thấy lúc có lúc không (Chắc do em cài đi cài lại nhiều lần nên nhớ ko chính xác).
Các bác vào phần Configuration ở menu dọc bên trái.
Tiếp theo nhấn vào phần Integrations.
Đang tải 05.PNG…

Nếu như các bác thấy add-on MQTT đã nằm trong phần Configured rồi thì bỏ qua.
Đang tải 06.PNG…

Còn nếu chưa thấy thì các bác trượt xuống tìm con MQTT trong phần Set up a new Integration và nhấn vào nút CONFIGURE ở phía sau.
Một bảng cấu hình sẽ hiện lên, các bác điền thông tin cho con MQTT như sau:
– Broker: Điền địa chỉ ip của HASS (Vd của em là 192.168.10.86)
– Port: Để nguyên 1883
– Username: Tên tài khoản lúc nãy khai báo
– Password: Mật khẩu lúc nãy khai báoSau khi điền và kiểm tra thông tin thì nhấn Submit để lưu cấu hình.
Đang tải 07.PNG…

1.4. Khai báo cấu hình MQTT vào file Configuration.yaml
À, các bác lưu ý là File Configuration.yaml là file mà mình sẽ phải làm việc khá nhiều với nó, ở đây sẽ là nơi mình khai báo và cấu hình các Components (Các linh kiện ngoại vi kết nối vào hệ thống HASS).
OK, giờ để mở được File Configuration.yaml thì mình truy cập vào ổ đĩa của con HASS bằng cách vào Run (Ctrl + R trên windows) và nhập địa chỉ máy chủ HASS.
Vd máy chủ HASS của em có địa chỉ là 192.168.10.86 thì em sẽ gõ vào cửa sổ Run như sau:
\\192.168.10.86\Hệ thống sẽ yêu cầu đăng nhập, các bác điền thông tin tài khoản của Add-on SAMBA nha.
Sau khi vào được ổ đĩa của HASS, mình mở thư mục Config, và chuột phải vào File Configuration.yaml và chọn Edit with Notepad ++.

Trong file Configuration.yaml mình sẽ khai báo thêm đoạn sau, lưu ý là thay đổi các thông tin broker, username và password theo đúng những gì mà các bác đã khai báo ở phần Add-on MQTT nha

Code:

#MQTT Broker
mqtt:
  broker: 192.168.10.86
  username: taikhoan
  password: matkhau
  discovery: True

Lưu ý: Cần gõ chính xác, KỂ CẢ DẤU CÁCH nếu không sẽ bị lỗi.
Đang tải 9b.PNG…

1.5 Sau khi thêm xong phần khai báo cho MQTT trong file Configuration.yaml thì mình lưu lại (Crtl + S) và kiểm tra xem có bị gõ sai không bằng cách truy cập trở lại HASS, vào phần Configuration > General > Check Config. Nếu hệ thống báo Configuration Valid! thì xem như mình đã thành công.
Sau đó nhấn vào Reload Core và Restart để nạp lại cấu hình
Đang tải 10a.PNG…
Đang tải 10b.PNG…

2.1 Tiếp theo, mình sẽ khai báo thông số kết nối vào MQTT trên con SONOFF.
Để truy cập vào được con SONOFF, mình vào trình duyệt web và truy cập vào địa chỉ IP của nó.
Ở màn hình Menu của con SONOFF, mình chọn Configuration > Configure MQTT.
Đang tải 11a.png…
Đang tải 11b.PNG…

Ở đây, mình cần lưu ý điền thông tin cho 4 phần quan trọng là:
– Host: Điền địa chỉ IP của con HASS vào
– User: Tên tài khoản MQTT (Không phải tài khoản HASS)
– Password: Mật khẩu của MQTT
– Topic: Cái này là tên dành riêng cho mỗi con Sonoff để khai báo vào HASS. Nếu mình có nhiều hơn 2 con thiết bị ngoại vi, thì phần Topic này phải đặt khác nhau. Vd em có 2 con Sonoff thì em sẽ đặt lần lượt là Sonoff1 và Sonoff2, vì nếu đặt trùng tên Topic thì sẽ có hiện tượng bị loạn lúc điều khiển. mình cực kỳ lưu ý vấn đề này, cần đặt tên làm sao cho khoa học và dễ nhớ.Sau khi điền thông tin kết nối vào MQTT xong thì mình nhấn vào Save.
Đang tải 12.PNG…

2.2. Khai báo thông tin con Sonoff vào hệ thống HASS.
Cũng giống như con MQTT sau khi cài đặt ta phải khai vào vào file Configuration.yaml, thì tương tự với con Sonoff hay bất kể thiết bị ngoại vi nào sau này mình thêm vào cũng đều phải được khai báo để hệ thống nhận diện.
OK, mình vào lại file Configuration.yaml. Ở đây mình sẽ add thông tin con công tắc Sonoff vào. Hiện tại em đang test 2 con nên em điền như sau:

Code:

switch:
  - platform: mqtt
    name: "Cây Cam"
    state_topic: "stat/sonoff1/POWER"
    command_topic: "cmnd/sonoff1/POWER"
    qos: 0
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"
    retain: true
  - platform: mqtt
    name: "Cây Bưởi"
    state_topic: "stat/sonoff2/POWER"
    command_topic: "cmnd/sonoff2/POWER"
    qos: 0
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"
    retain: true

Lưu ý: Cần gõ chính xác, KỂ CẢ DẤU CÁCH nếu không sẽ bị lỗi.
Đang tải 13.PNG…
mình cần quan tâm đến những dòng này nhé:
name: Cái này là tên của thiết bị sẽ được hiển thị trên bảng tổng quan của HASS
state_topic và Command_topic: lúc nãy mình đã khai báo tên cho con Sonoff là gì trong phần Topic thì giờ gõ lại chính xác như vậy2.3. Sau khi thêm xong phần khai báo cho Sonoff trong file Configuration.yaml thì mình lưu lại (Crtl + S) và kiểm tra xem có bị gõ sai không bằng cách truy cập trở lại HASS, vào phần Configuration > General > Check Config. Nếu hệ thống báo Configuration Valid! thì xem như mình đã thành công.
Sau đó nhấn vào Reload Core và Restart để nạp lại cấu hình

2.4 Kiểm tra kết nối thực tế.
Vậy là khai báo thành công rồi, giờ đến lúc mình kiểm tra xem kết nối giữa Sonoff và Hass đã thông suốt hay chưa.
mình vào lại trang cấu hình của con Sonoff. Chọn vào mục Console.
Đang tải 14c.png…
Nếu trong phần Console xuất hiện dòng Connected thì chúc mừng các bác, mình đã thành công.
Đang tải 14b.png…
Còn nếu không? Console sẽ liên tục trả về trạng thái là False. Lúc này cũng đừng quá hoảng loạn, mình sẽ bình tĩnh kiểm tra từng phần 1 theo thứ tự sau:
Kiểm tra thông tin tài khoản trong add-on MQTT > Kiểm tra thông tin tài khoản MQTT trên con Sonoff > Kiểm tra thông tin trong File Configuration.yamlNếu làm đến đây thì xem như đã xong rồi nha các bác. Giờ là lúc mình lôi con Sonoff ra màn hình chính để điều khiển thôi.

3. Gọi Component Sonoff vừa add xong lên màn hình chính của HASS.
3.1 Ở màn hình chính, mình nhấn vào nút 3 chấm (góc trên bên phải) và chọn vào mục Configure UI (Cấu hình giao diện người dùng).
Đang tải 15a.PNG…

Sau đó, mình nhấn vào nút Thêm (Hình dấu +) để tạo thêm 1 Entity.
Đang tải 15b.PNG…

3.2. Ở đây có rất nhiều lựa chọn để mình bố trí ở màn hình chính, nhưng ở bài này em sẽ giới thiệu 2 cái cơ bản là Entities và Entity Button.


mình sẽ chọn Entities trước.
Bảng cấu hình cho Entities sẽ hiện ra, mình chú ý điền như sau:
– Điền tiêu đề cho Entities, vd như Phòng khách, Phòng ngủ, Bếp,v.v… ở đây em đặt là Chuồng Cây cho nó ngầu T_T
– Lựa chọn Show Header Togger? nếu như ta muốn có một Cầu dao tổng cho cả Entities. Có nghĩa là sao? có nghĩa là nếu như Entities Chuồng Cây này của em có đến 5 công tắc Sonoff, thì ở phần trên cùng sẽ có 1 nút công tắc chung, nếu em muốn mở cả 5 con lên thì chỉ cần nhấn vào cái này, khỏi phải nhấn lần lượt 5 con chi cho mất công.
– Tiếp theo là chọn cái công tắc Sonoff của mình khai báo lúc nãy trong file Configuration.yaml là xong.
Đang tải 15d.png…

– Sau cùng là nhấn vào nút X phía bên trên để trở về chế độ bình thường.
Đang tải 15f.PNG…

Trong demo em có gọi thêm Entity Button, các bác tham khảo thêm nhé.
Đang tải 15g.PNG…

TRUNG TÂM SỬA CHỮA ĐIỆN TỬ QUẢNG BÌNH
MR. XÔ - 0901.679.359 - 80 Võ Thị Sáu, Phường Quảng Thuận, tx Ba Đồn, tỉnh Quảng Bình
Sửa điện tử tại Quảng Bình

VÀ ĐÂY LÀ THÀNH QUẢ CUỐI CÙNGĐang tải 15h.PNG…

Hiện em đang đặt về một số thiết bị như Công tắc âm tường Sonoff, cảm biến chuyển động, bộ trung tâm Sonoff Bridge, Bóng đèn Phillips Hue… dần dần em sẽ nghiên cứu sâu hơn và viết bài chia sẻ với mọi người. Rất cảm ơn mọi người đã dành thời gian cho bài viết này.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

5 + 4 =