Bạn có nên dựa hoàn toàn vào Home Assistant và nhà thông minh với các nhiệm vụ quan trọng như an ninh, báo cháy
Các tác vụ “quan trọng” ở đây nhắm đến các tác vụ liên quan đến an toàn và an ninh, cũng như các sự cố có khả năng gây thiệt hại nghiêm trọng đến sinh hoạt và tài chính của mỗi gia đình. Các tác vụ này thường là: cháy, ngập nước, đột nhập, rò rỉ khí ga, gián đoạt cung cấp điện, nước v.v..
Bài viết này dựa trên bài viết của một lập trình viên và cũng là người dùng Home Assistant – PaulAnnekov với cùng tiêu đề (tiếng Anh, bạn xem bài gốc trong mục Tham Khảo).
Chúng tôi xin phép lược dịch lại bài viết này ở ngay bên dưới. Phần bình luận và quan điểm của Konnect ED Team xin được đăng ở cuối bài.
Tại sao bạn không nên sử dụng Home Assistant cho các tác vụ quan trọng
Chính xác là, mặc dù đặt tiêu đề như vậy, mục đích của tôi (PaulAnnekov) không phải là kêu gọi bạn ngừng sử dụng Home Assistant. Tôi yêu Home Assistant (Hass, HA) và cho rằng nó là nền tảng tốt nhất để xây dựng một ngôi nhà thông minh từ chỗ chưa có gì cả.
(tuy nhiên) Giả định rằng bạn đã lắp đặt các cảm biến rò rỉ nước ở tầng hầm của mình và sử dụng một component thông báo (như cái này) (không rõ vì lí do và hạn chế gì mà tác giả sử dụng component này). Với automation của Hass, bạn kì vọng chắc chắn sẽ nhận được thông báo ngay khi có rò rỉ nước trong khu vực đã lắp đặt. Giờ hãy nghĩ kĩ xem liệu có gì sai sai không?
Thiết bị offline
Rất nhiều component không triển khai health check (kiểm tra sức khoẻ). Bạn không thể nào biết được tại một thời điểm nào đó, component có hoạt động hay không. Không có quy định nào bắt buộc các lập trình viên (tạo ra component) phải áp dụng health check và HA cũng không có sẵn cơ chế nào để thực hiện (trong lõi).
Ở đây tác giả muốn nói đến 2 thứ: bản thân component không hoạt động và thiết bị gặp sự cố nhưng component không phát hiện được. Tác giả đưa ra ví dụ rằng các thiết bị Xiaomi Aqara khi liên kết vào Hass cần được cho khung giờ 2.5g trước khi bị nhận là unavailable – không khả dụng. Điều này dựa trên sự thật rằng các thiết bị Aqara, kể cả loại dùng pin, sẽ định kỳ gửi dữ liệu thông báo tình trạng của mình. Nếu không nhận được dữ liệu hợp lệ sau tối thiểu 2 chu kỳ (2.5g), thiết bị sẽ bị đánh dấu là đang có vấn đề – không khả dụng.
Hass phát hiện ra vấn đề nhưng thông báo không được thiết lập
Trạng thái của một thiết bị có thể chuyển thành ‘unavailable’, mức pin có thể tụt xuống 0%, một thông báo lỗi có thể xuất hiện trong Nhật ký lỗi của Home Assistant nhưng hiện tại, Hass không có bất cứ cơ chế nào để thông báo các lỗi dạng này và lỗi của chính nó.
Giải pháp: sử dụng automation để thông báo khi các sự kiện kiểu này xảy ra. (bạn có thể tự thực hiện các automation này dựa trên các hướng dẫn có sẵn của konnected.vn/home-assistant, như bài này: dùng automation tạo thông báo hoặc báo động, hay thông báo khi công tắc thay đổi trạng thái).
HA lỗi
Từ quan điểm của tôi, Hass rất ổn định. Nhưng khi bắt đầu sử dụng Hass cho các tác vụ quan trọng, ta cần chắc chắn xác suất hoạt động là 100% (!).
Giải pháp: sử dụng thêm giải pháp giám sát hoạt động của Hass, như UptimeRobot (phát hiện máy chủ Hass gián đoạn) hoặc Giám sát hoạt động của Docker (nếu bạn có nhu cầu, chúng tôi sẽ chia sẻ giải pháp giám sát này).
Một email thông báo khi bản thân docker dừng hoạt động. Máy chủ sẽ cố gắng khắc phục lỗi và gửi thông báo nếu khắc phục được.
Các component không được kiểm tra đầy đủ
Có thể nói việc kiểm tra các component của Hass khá là nghèo nàn. Nhà phát triển không có thời gian để triển khai kiểm lỗi và Home Assistant không yêu cầu phải làm thế.
Các tích hợp – integration kém cỏi
Một số component tích hợp không ổn định vào Hass do thiết bị đã lỗi thời hoặc API (giao diện lập trình ứng dụng) không ổn định (xin chào, Tuya).
Giải pháp: kiểm tra các vấn đề liên quan từ cộng đồng Hass trước khi bạn mua thiết bị. Hoặc chuyển sang sử dụng một component thay thế, ví dụ, một số thiết bị hỗ trợ nhiều phương thức tích hợp như API hoặc local.
Bỏ lỡ các breaking changes
Nếu bạn sử dụng các custom component cho thông báo, có thể trong lần cập nhật Home Assistant tiếp theo, nó sẽ không hoạt động. Thi thoảng, nhóm phát triển Home Assistant cũng quên đề cập đến các breaking changes (thay đổi không tương thích, ví dụ).
Giải pháp: hạn chế sử dụng các custom_component vì nhóm phát triển Hass không (thể) chú ý đầy đủ đến các component này. Sau mỗi bản cập nhật, kiểm tra xem component và các chức năng có hoạt động như ý không.
Chất lượng khiêm tốn của các component
Nhóm phát triển Home Assistant (chính thức) khá nhỏ và đang làm hết sức mình để phát triển phần lõi – core, kiểm tra các vấn đề, thảo luận các thay đổi và tính năng mới, xem xét các yêu cầu chỉnh sửa từ cộng đồng. Vì họ đang bị quá tải, nhóm khó có thể duy trì chất lượng và khó bắt kịp tất cả các thay đổi.
Giải pháp: đừng trông chờ ai đó sửa lỗi cho bạn, hãy xắn tay áo làm lấy. Bạn cũng có thể hỗ trợ nhóm phát triển bằng cách sử dụng dịch vụ NabuCasa (dịch vụ Cloud tích hợp vào Hass, có phí 5USD mỗi tháng giúp bạn truy cập Hass từ bên ngoài cũng như đơn giản hoá việc liên kết với Google Assistant hay Alexa)
Và cuối cùng, để đảm bảo các automation quan trọng hoạt động như mong muốn, hãy kiểm tra thủ công các automation này mỗi tháng một lần.
Các vấn đề trên không phải của riêng Home Assistant, nó cũng xảy ra với Domoticz, OpenHub và bất cứ nền tảng nào phát triển bởi cộng đồng mà không có các hướng dẫn đầy đủ và gây quỹ đủ lớn. Giải pháp duy nhất tôi thấy là kiểm soát toàn bộ quá trình từ phát triển phần cứng cho đến phần mềm với một đội ngũ khổng lồ làm việc toàn thời gian.
Bình luận và quan điểm của Konnect ED Team
Là những người nhiều năm tìm hiểu, phát triển, làm việc với các nền tảng Home Automation (không phải tất cả) nói riêng và công nghệ nói chung, các tồn tại nêu ra bởi bài viết trên là không sai về mặt sự kiện. Tức là chúng có thật và có xảy ra trong thực tế. Tuy nhiên, cách nhìn và nguyên nhân thực sự có thể khác với nhận định của tác giả bài viết (ở trên).
Home Assistant và các nền tảng khác
Mọi nền tảng Smart Home đều dựa trên các thiết bị, bao gồm thiết bị cuối (cảm biến, công tắc, quan sát v.v..), thiết bị dẫn truyền (hạ tầng WiFi, Zigbee, Z-Wave, RF, cáp), thiết bị xử lý trung tâm (hub/máy chủ Hass). Với các nền tảng Cloud – đám mây thì nó còn phụ thuộc vào máy chủ Cloud và đường truyền từ nhà bạn đến máy chủ.
Sai sót có thể xảy ra ở bất cứ điểm nào trong các thành phần này khiến cho toàn hệ thống gián đoạn. Không có hệ thống nào hoạt động 100% và càng nhiều thành phần tham gia trực tiếp vào chuỗi vận hành, khả năng xảy ra sai sót càng lớn.
Ít nhất với Home Assistant và các nền tảng nội bộ khác, bạn toàn quyền kiểm soát hệ thống do đó có thể quyết định tin tưởng vào thiết bị nào (kể cả máy chủ), quyết định cách chúng hoạt động và bảo trì, nâng cấp. Nếu bạn gặp khó khăn, hầu hết giải pháp có thể được tìm thấy từ các cộng đồng người dùng đông đảo, cởi mở và nhiệt tình (như group SmartHome Việt hay page Konnected Home trên Facebook).
Về các tác vụ quan trọng (critical)
Luôn luôn, chúng tôi đảm bảo (và khuyến cáo) rằng Hass nói riêng và các nền tảng SmartHome nói chung, không thể được sử dụng như giải pháp duy nhất cho các yếu tố liên quan đến an toàn và sức khoẻ của người dùng như cháy nổ, ngập nước, an toàn điện v.v..
Các giải pháp an ninh và an toàn luôn bao gồm nhiều lớp, mà Home Assistant hay các giải pháp khác chỉ là một trong các lớp đó. Và trong lĩnh vực Nhà Thông Minh, luôn có sự tương tác và can thiệp của người dùng đối với hệ thống khiến cho các giải pháp kĩ thuật có thể bị suy yếu.
Bạn không vì đã liên kết và cài đặt các cảm biến mở cửa mà bỏ qua việc khoá cửa khi ra khỏi nhà. Bạn cũng không vì các cảm biến báo khói liên kết vào Hass mà tháo bỏ các cảm biến báo khói truyền thống đã được lắp đặt sẵn. Bạn càng không vì automation tự động ngắt máy nước nóng trong phòng tắm mà loại bỏ ELCB (aptomat chống giật).
Home Assistant sẽ bổ sung thêm vào hệ thống an toàn sẵn có:
- Giúp ngăn ngừa thiệt hại nghiêm trọng khi sự cố xảy ra như chủ động dự báo và thông báo để bạn phản ứng trước khi hệ thống chữa cháy hoạt động hay vô hiệu hoá hệ thống cung cấp nước trước khi nhà bạn bị ngập nặng
- Cho bạn khả năng giám sát các thiết bị an toàn có hoạt động bình thường hay không, mức pin, chất lượng kết nối v.v.. Các hệ thống cũ có thể gặp sự cố mà bạn hoàn toàn không hay biết gì nếu chưa tới kì kiểm tra định kỳ.
- Khả năng đa dạng hoá thông báo và phương thức thông báo như thông báo qua điện thoại đến nhiều người, loa, còi hú, ánh sáng v.v.. giúp tối đa khả năng nhận biết cũng như giảm thiểu khả năng bị lỡ các thông báo quan trọng
- Kết hợp các hệ thống an toàn, an ninh riêng rẽ với nhau để tăng cường tính năng và giảm thiểu sai sót
- Kết hợp các giải pháp giám sát sử dụng trí tuệ nhân tạo có sẵn hoặc tự tạo
Bạn có thể quên đóng cửa khi đi ngủ và chẳng mất gì cả. Nhưng với Home Assistant, bạn sẽ được nhắc nhở 99 lần trong số 100 lần quên cho tới khi nào bạn hoặc vợ/chồng bạn chịu dậy đóng cửa (lần còn lại chính là cái lần may mắn quên mà không mất gì cả).
Và đừng quên rằng, Home Assistant là một nền tảng nhắm đến người dùng thông thường, trong các tác vụ đời sống bình thường, không phải là một nền tảng sinh ra dành cho hoạt động quốc phòng, công nghiệp hay thám hiểm vũ trụ. Do vậy, không có cơ chế “fail-safe” nào được thiết kế mặc định trong lõi cả. (fail-safe: wikipedia tiếng Anh)
Về lỗi và custom component
Những gì PaulAnnekov viết về lỗi trong Home Assistant và các component là có thật. Và việc Home Assistant hiện tại hoạt động rất ổn định cũng là thật.
Sự thật trên thế giới này, không có phần mềm nào không tồn tại lỗi (kể cả Hello World). Các phần mềm siêu phổ biến và tốn nguồn lực khổng lồ như Windows, iOS đều tồn tại vô số lỗi ở vô số dạng khác nhau.
Nhưng với Home Assistant, do sự phổ biến và “mở” của nó, lỗi dễ dàng bị phát hiện và dễ sửa hơn. Là một người dùng bình thường hay một người dùng đầy kinh nghiệm, bạn sẽ dễ dàng tìm thấy các hướng dẫn sửa lỗi trên Home Assistant hơn nhiều so với các lỗi trên Windows hay MacOS (ai đồng ý xin giơ tay). Và tất nhiên, như PaulAnnekov đề nghị, bạn có thể thử tự sửa lỗi nếu muốn rồi đóng góp cho cộng đồng. Đây là điều hoàn toàn bất khả thi với các nền tảng đóng hoặc Cloud.
Và Hass vẫn đang ở giai đoạn beta – phát triển, lỗi là tất nhiên.
Riêng với các custom component được phát triển độc lập bởi cộng đồng và người dùng, bạn sẽ khó khăn hơn và phải dựa nhiều hơn vào tác giả khi lỗi phát sinh. Do vậy, chúng tôi không khuyến khích sử dụng “bừa bãi” các thành phần custom này một cách không cần thiết do vấn đề về hiệu suất, ổn định và đặc biệt: bảo mật.
Hãy “khó tính” một chút và “tiết chế” một chút khi cài đặt và cấu hình Hass. Bạn sẽ ổn.
Phần cuối: Điều khiển nội bộ và riêng tư
Cuối cùng, đừng quên rằng bên cạnh hàng loạt ưu điểm và khuyết điểm, Home Assistant luôn là nền tảng SmartHome đặt khả năng “điều khiển nội bộ” và “riêng tư” lên hàng đầu. Dù bạn có hay không tin tưởng vào Home Assistant, rõ ràng là bạn không nên tin tưởng vào các “ông lớn” nổi tiếng về đánh cắp dữ liệu và khai thác thông tin người dùng, đặc biệt khi đây là thông tin về sinh hoạt của gia đình bạn, bao gồm cả các thành viên chưa thành niên được bảo vệ đặc biệt bởi pháp luật và xã hội.
Thiên vị (biased) mà nói: bạn không thể giao sự an toàn của bạn cho một kẻ chuyên rình mò dù lời hứa hẹn có hấp dẫn cỡ nào đi nữa.
Thảo luận cùng chúng tôi
Trên đây chỉ là quan điểm cá nhân của tác giả PaulAnnekov và của (nhóm) Konnect ED Việt Nam. Chúng tôi luôn cởi mở và tích cực nhận mọi đóng góp cũng như ý kiến của các bạn về tất cả các vấn đề có liên quan!
Bạn có thể tham gia thảo luận (thậm chí tranh cãi tích cực) tại mục Bình luận bên dưới hoặc trên bất cứ kênh kết nối nào thuận tiện hoặc yêu thích của bạn.
Cảm ơn các bạn!