Đây là hướng dẫn thêm vào Home Assistant thông tin về số ca xác nhận, nghi nhiễm, bình phục và âm tính trong dịch bệnh Covid19, gây ra bởi virus SARS-CoV-2, còn gọi là Corona virus hay Wuhan virus.
Cập nhật 12/09/2021
- Website lấy dữ liệu đã được chuyển về https://covid19.gov.vn thay vì https://ncov.moh.gov.vn
- Cảm biến Rest được hiệu chỉnh cấu hình, nay có thêm attributes – thuộc tính
tinh
thể hiện thống kê số ca nhiễm, số ca nhiễm trong ngày, đã khỏi, đang điều trị, tử vong của các Tỉnh/Thành phố - Điều chỉnh card ví dụ (
Markdown
) để hiển thị thông tin của các Tỉnh/Thành phố muốn theo dõi riêng
Hi vọng thông tin này giúp bạn và các thành viên trong gia đình sớm cập nhật và nắm được tình hình dịch bệnh để tiện sinh hoạt và giúp cho công tác phòng chống dịch.
Lưu ý về Nguồn dữ liệu và Hass
Thông tin được lấy từ nguồn dữ liệu công bố chính thức của bộ Y Tế về tình hình Covid19 tại địa chỉ https://covid19.gov.vn. Chúng tôi chỉ lấy thông tin này và chuyển đổi dạng để phù hợp sử dụng trên Hass. Chúng tôi không can thiệp vào bản chất và nội dung thông tin. Do vậy KonnectED không chịu bất cứ trách nhiệm nào do thông tin sai lệch từ nguồn. Toàn bộ thông tin lấy về bởi Hass phụ thuộc vào tốc độ cập nhật và thông tin cập nhập của bộ Y Tế Việt Nam tại địa chỉ trên.
Sử dụng Rest sensor với nguồn dữ liệu từ server Github như dưới đây yêu cầu máy chủ Hass phải được kết nối vào internet. Điều này không ảnh hưởng đến tính năng điều khiển nội bộ của Hass nhưng có thể cảm biến sẽ hiển thị trạng thái unavailable khi kết nối internet hoặc kết nối đến nguồn tin bị gián đoạn.
04/12/2020
Do Bộ Y Tế đã thay đổi thông tin cung cấp từ ngày 12 tháng 4 năm 2020. Chúng tôi điều chỉnh lại cấu hình cảm biến và các Lovelace card ở dưới. Riêng Automation không thay đổi.
Thêm các cảm biến thông tin vào Hass
Bạn copy đoạn cấu hình mẫu sau vào dưới mục sensor:
trong file cấu hình chính tại /config/configuration.yaml
của Home Assistant hoặc tuỳ theo hiện trạng của Home Assistant. Bạn có thể thay đổi phần name:
theo ý thích, tuy nhiên các phần khác cần được giữ nguyên.
- platform: rest name: "VN Covid19" resource: "https://konnected.vn/community_services/covid19_VN_stat.json" value_template: '{{ value_json.soCaNhiem }}' unit_of_measurement: ca json_attributes: - tuVong - dangDieuTri - binhPhuc - updatedOn - tinh
Sau khi thêm, kiểm tra cấu hình và khởi động lại Home Assistant để kích hoạt cảm biến. Nếu thành công, bạn sẽ nhận được cảm biến như dưới đây:
Thêm cảm biến vào giao diện Lovelace
Để thêm cảm biến này vào giao diện Lovelace, sử dụng giao diện web, bạn chọn thêm card mới , chọn Manual ở dưới cùng rồi xoá hết dữ liệu trong ô nhập, sau đó Copy và Paste đoạn cấu hình bên dưới:
cards: - entities: - sensor.vn_covid19 hours_to_show: 48 refresh_interval: 0 title: Số Ca Nhiễm type: history-graph - type: markdown content: > **Toàn Quốc** Đang Điều Trị: *{{ "{:,.0f}".format(state_attr('sensor.vn_covid19','dangDieuTri'))}}* Bình Phục: *{{ "{:,.0f}".format(state_attr('sensor.vn_covid19','binhPhuc'))}}* Tử Vong: *{{ "{:,.0f}".format(state_attr('sensor.vn_covid19','tuVong'))}}* **Sài Gòn** Số Ca: *{{ "{:,.0f}".format(state_attr('sensor.vn_covid19','tinh')['TP. Hồ Chí Minh']['soCaNhiem'])}}* Hôm Nay: *{{ "{:,.0f}".format(state_attr('sensor.vn_covid19','tinh')['TP. Hồ Chí Minh']['soCaHomNay'])}}* **Hà Nội** Số Ca: *{{ "{:,.0f}".format(state_attr('sensor.vn_covid19','tinh')['Hà Nội']['soCaNhiem'])}}* Hôm Nay: *{{ "{:,.0f}".format(state_attr('sensor.vn_covid19','tinh')['Hà Nội']['soCaHomNay'])}}* title: Tình Hình Covid19 VN type: vertical-stack
Chú thích:
"{:,.0f}".format(...)
Template để định dạng lại cách thể hiện số, nhóm hàng nghìn lại bằng dấu “,”{{state_attr('sensor.vn_covid19','tinh')['TP. Hồ Chí Minh']['soCaNhiem']}}
lấy thông tinSoCaNhiem
của TP. Hồ Chí Minh. Ví dụ, để lấy thông tin của Khánh Hòa, thay'TP. Hồ Chí Minh'
bằng'Khánh Hòa'
Hoặc dùng đoạn cấu hình sau nếu bạn sử dụng Lovelace ở chế độ YAML (cấu hình bằng file). Bạn nên sử dụng cấu hình qua UI.
Automation thông báo khi có thay đổi
Bạn cũng có thể tạo automation thông báo mỗi khi có sự thay đổi tổng số ca nhiễm toàn quốc như dưới đây. Thay thế:
– media_player.google_home bằng tên entity bạn muốn phát thông báo lời nói, như media_player.phong_khach_loa chẳng hạn.
– notify.mobileapp bằng service thông báo khác bạn đang dùng, như notify.telegram_abc.
- id: '1585534137174' alias: Covid19 Notify description: thông báo khi số ca nhiễm thay đổi trigger: - entity_id: sensor.vn_covid19 platform: state condition: - after: 06:00:00 before: '20:30:00' condition: time - above: '0' condition: numeric_state entity_id: sensor.vn_covid19 - condition: template value_template: '{{ trigger.to_state.state|int != trigger.from_state.state|int and trigger.from_state.state|int >0 and trigger.to_state.state|int > 0 }}' - condition: template value_template: '{{ not is_state(''media_player.google_home'',''playing'') }}' action: - data_template: message: 'Covid19: Số ca nhiễm hiện tại: {{ trigger.to_state.state }}' title: Cập nhật Covid 19 service: notify.mobileapp - data_template: entity_id: media_player.google_home language: 'vi' message: 'Thông báo: tổng số ca nhiễm Covid 19 hiện tại là {{states(''sensor.vn_covid19'')}}' service: tts.google_translate_say
Chú thích:
– Ở đây ta kiểm tra trạng thái của media_player.google_home xem có đang phát hay không trước khi thông báo
– Do lỗi kết nối hay lỗi nguồn thông tin, ở một vài thời điểm sensor Rest có thể chuyển sang trạng thái unavailable, do đó ở đây ta thêm 3 điều kiện kiểm tra để loại bỏ thông báo trong trường hợp đó.
Về Bài viết
Bài viết chưa đầy đủ hoặc bạn còn có ý kiến khác? Bạn có thắc mắc và cần thêm thông tin. Vui lòng đăng ý kiến vào mục bình luận để tác giả và Team có thêm thông tin cải thiện chất lượng bài viết. Chúng tôi sẽ giải đáp các thắc mắc ngay trong mục bình luận để giúp được nhiều đọc giả với cùng vấn đề hơn hoặc chúng tôi sẽ trả lời trong một bài viết riêng. Trân trọng cảm ơn bạn!
Cảm ơn bạn đã xem bài viết này!
konnectED Team.