1 điểm bởi GN⁺ 2024-01-21 | 1 bình luận | Chia sẻ qua WhatsApp
  • Màn hình cảm ứng bí ẩn trong một căn hộ tại Anh hoàn thiện năm 2015 thực ra là một phần của hệ thống giám sát năng lượng của NETTHINGS, dùng để hiển thị mức tiêu thụ điện hiện tại và dữ liệu lịch sử
  • Cấu trúc hệ thống được chia thành trình quản lý năng lượng đặt gần công tơ và một client dạng máy tính bảng Android trong phòng; hai thiết bị giao tiếp qua WiFi thay vì cáp dù chỉ cách nhau một khoảng ngắn và vài bức tường
  • Nguyên nhân trực tiếp khiến màn hình không hoạt động là cầu chì 3A trong mạch của trình quản lý năng lượng bị thiếu; sau khi thay cầu chì, mạng WiFi và giao diện web hiển thị mức tiêu thụ hoạt động trở lại
  • UI trên máy tính bảng là một webview, còn máy chủ dùng Node.js, Express, Socket.IO; thiết bị ở công tơ mở các dịch vụ DNS, HTTP, SSH và TCF tại 172.16.0.254
  • tcf-agent được mở đã cung cấp quyền truy cập hệ thống tệp và tiến trình với quyền root, cho phép sửa thiết bị ngay cả khi không có mật khẩu SSH; bên trong là một thiết bị ARM9 chạy Linux 3.10 với cấu trúc lưu dữ liệu điện dạng CSV

Công dụng của màn hình cảm ứng bí ẩn

  • Trong phòng của căn hộ mới có lắp một màn hình cảm ứng nhỏ không có nút hay nhãn, chỉ có một đèn nguồn màu vàng nhỏ
  • Chủ nhà cũng không biết đây là thiết bị điều khiển thứ gì, và sau khi chuyển đến nó đã bị lãng quên một thời gian
  • Danh tính của nó chỉ được làm rõ khi tìm thấy một tờ brochure có in đúng thiết bị đó trong bìa hướng dẫn thiết bị gia dụng
    • Thiết bị là một phần của hệ thống giám sát năng lượng
    • Nó hiển thị mức tiêu thụ điện hiện tại và dữ liệu tiêu thụ trong quá khứ
  • Brochure cũng giới thiệu trình quản lý năng lượng, thành phần thứ hai được kết nối trực tiếp với công tơ điện
  • Trong tủ công tơ chung có một thiết bị mang thương hiệu NETTHINGS được lắp cùng với các thiết bị của những căn hộ khác

Trình quản lý năng lượng kết nối qua WiFi và máy tính bảng Android

  • Hệ thống gồm trình quản lý năng lượng đóng vai trò “server” thu thập dữ liệu, và màn hình cảm ứng đóng vai trò “client” đọc dữ liệu rồi hiển thị lên màn hình
  • Khoảng cách giữa hai thiết bị chỉ vài mét và chỉ ngăn cách bởi khoảng 2–3 bức tường, nhưng trong brochure lại có ghi SSIDPwd
  • Thực tế, việc liên lạc cũng diễn ra qua WiFi chứ không phải cáp
  • Khi nhấn nút trong lỗ nhỏ ở cạnh bên màn hình cảm ứng, logo khởi động Android xuất hiện
    • Đây là một máy tính bảng Android đời cũ
    • Có cài các ứng dụng cũ như Google Talk, Flash
    • Có vẻ là Android 5 nhưng không thể xác định chính xác phiên bản
  • Khi chạy ứng dụng “NetThings”, màn hình chọn mạng WiFi hiện ra, nhưng lúc đầu mạng trong brochure không xuất hiện trong danh sách

Cầu chì bị thiếu và màn hình sống lại

  • Trong tủ công tơ, các trình quản lý năng lượng của căn hộ khác đều đang bật, nhưng riêng thiết bị của căn này lại không có điện
  • Nguyên nhân là thiếu cầu chì trong hộp cầu chì
    • Không có cầu chì nên kết nối điện bị ngắt
    • Trình quản lý năng lượng không được cấp nguồn
    • Điểm phát WiFi cũng không xuất hiện
  • Sau khi kiểm tra cầu chì của một trình quản lý năng lượng khác trong cùng tủ công tơ, xác nhận rằng loại cần dùng là cầu chì 3A
  • Một cầu chì 3A được đặt mua trên Amazon và lắp vào ngày hôm sau; sau đó đèn LED xanh trên trình quản lý năng lượng bắt đầu nhấp nháy và mạng WiFi xuất hiện
  • Công việc này diễn ra gần nguồn điện chính nên rất nguy hiểm; sau đó trong cả một ngày, nhiệt độ cầu chì được kiểm tra nhiều lần, và đây không phải kiểu thử nghiệm được khuyến nghị cho người khác

Giao diện web gây thất vọng và các giá trị giá điện cố định

  • Khi chọn WiFi trên máy tính bảng Android, một menu chọn loại tài nguyên được hiển thị
  • Mục thực sự hoạt động chỉ có Mains Electricity, tức phần điện lưới mà trình quản lý năng lượng đang nối vào
  • Màn hình mức tiêu thụ điện hiển thị một thanh màu ở bên phải và 5 con số bên trái, nhưng ý nghĩa của UI không rõ ràng
    • Không rõ màu xanh là mức tiêu thụ thấp hay mức sử dụng bình thường
    • Không rõ vị trí theo chiều dọc của thanh màu đang được so sánh với mốc nào
    • Cũng không rõ vị trí tối đa có liên quan đến mức tiêu thụ cao nhất trong quá khứ hay không
  • Trong 5 con số hiển thị bên trái, chỉ có mức tiêu thụ kW là giá trị thực sự đúng
  • Không thể cấu hình giá điện và ước tính CO2 trên mỗi kW
    • Brochure nói rằng có thể cấu hình khi cài đặt ban đầu
    • Nhưng không hướng dẫn cách đưa hệ thống trở lại trạng thái có thể cấu hình
  • Brochure cũng nói có thể truy cập từ PC để hiệu chỉnh thời gian dữ liệu, và đồng hồ của máy tính bảng Android đã lệch khoảng 15 phút kể từ lần cài đặt năm 2015

Webview, Socket.IO và máy chủ Node.js

  • Nếu có thể đọc trực tiếp dữ liệu từ trình quản lý năng lượng thì có thể nhân mức sử dụng kW với biểu giá đúng rồi hiển thị trong Grafana hoặc công cụ tương tự
  • Brochure có nêu trường hợp dùng PC để xem mức tiêu thụ năng lượng, và tại đây có ghi IP và cổng
  • Khi truy cập bằng trình duyệt, giao diện hiện ra giống hệt trên máy tính bảng Android, xác nhận rằng UI của máy tính bảng là một webview
  • Khi kiểm tra các lời gọi API bằng web inspector, thấy rằng Socket.IO đang được sử dụng
  • Client chỉ nhận khoảng 5 con số từ server, nhưng trong mã lại có các module RequireJS, Handlebars, Backbone.js, Underscore.js, v.v.

Các cổng mở và tcf-agent

  • IP của thiết bị là 172.16.0.254, và ssh root@172.16.0.254 ban đầu thất bại với thông báo “Connection refused”
  • Quét toàn bộ cổng cho thấy các dịch vụ sau đang mở
    • 53/tcp: dnsmasq 2.63rc6
    • 80/tcp: HTTP chạy trên Node.js
    • 1534/tcp: micromuse-lm?
    • 3000/tcp: HTTP chạy trên Node.js
    • 41142/tcp: OpenSSH 6.2
  • dnsmasq hoàn toàn phù hợp với vai trò máy chủ DHCP vì thiết bị này hoạt động như một điểm truy cập WiFi
  • SSH mở ở cổng 41142, nhưng tài khoản root được bảo vệ bằng mật khẩu, và các tổ hợp đơn giản như admin/admin, root/root đều không dùng được
  • Trong lúc tìm danh tính của cổng 1534, một bài trên diễn đàn Xilinx đã giúp xác định từ khóa tcf-agent

Truy cập root vào hệ thống tệp qua TCF

  • TCF là viết tắt của Target Communications Framework, một giao thức văn bản hỗ trợ đọc hệ thống tệp, khởi chạy tiến trình mới, gửi tín hiệu đến tiến trình trên hệ thống đích, v.v.
  • tcf-agent là máy chủ triển khai giao thức này, và trên thiết bị nó đang chạy với người dùng root
  • TCF gắn chặt với hệ sinh thái Eclipse, và tài liệu Getting Started hướng dẫn dùng plugin Eclipse như phương pháp chính
  • Đã thử cài plugin trên phiên bản Eclipse mới nhưng gặp xung đột phụ thuộc nên rất khó cài đúng cách
  • Thay vào đó, đã tìm và dùng Python SDK của dự án TCF
  • Với các dịch vụ FileSystem, Processes của TCF, có thể tạo các công cụ thay thế cho ls, cat, ps, và kết quả được tổng hợp trong tcf-tools

Truy cập SSH và thông số phần cứng bên trong thiết bị

  • Ban đầu, /etc/passwd/etc/shadow được lấy ra qua TCF để thử bẻ mật khẩu root bằng John the Ripper
  • Dù chạy khoảng 7 giờ vẫn không tìm thấy kết quả khớp, và John cho biết thời điểm hoàn tất brute-force dự kiến là năm 2035
  • Sau đó /etc/shadow được sửa để xóa mật khẩu root rồi cấp nguồn lại, nhưng đăng nhập SSH vẫn tiếp tục bị từ chối
  • Nguyên nhân là cấu hình PermitRootLogin no trong sshd_config
    • Sau khi đổi dòng này thành PermitRootLogin yes, có thể đăng nhập root qua SSH
  • Thiết bị chạy Linux 3.10.28 armv5tejl
  • CPU là ARM926EJ-S rev 5, thuộc dòng ARM9
  • Mục java trong danh sách tính năng của /proc/cpuinfo ám chỉ Jazelle, phần mở rộng ARM để thực thi bytecode Java
  • Bộ nhớ hiển thị là MemTotal: 118172 kB, trong khi trên thiết bị vẫn đang chạy ứng dụng Node.js

Cấu trúc ứng dụng và lưu trữ dữ liệu

  • Ứng dụng server nằm dưới /srv/server, với cấu trúc gồm Gruntfile.js, app.js, bower.json, package.json, node_modules, routes, views, public
  • Ứng dụng được chia thành hai phần lớn
    • Pulse app đọc dữ liệu tiêu thụ từ công tơ điện
    • Ứng dụng Node.js đọc dữ liệu CSV và hiển thị chúng trên web UI
  • Các tệp liên quan đến Pulse app nằm trong thư mục bin
    • pulse-app
    • pulse.ko
    • ct-read-daemon
    • Các thư mục theo tháng, ngày, giờ, tuần, năm
  • Phần mở rộng .ko của pulse.ko thường có nghĩa là Kernel Object, nên nhiều khả năng đây là một kernel module
  • Pulse app đọc dữ liệu từ các chân GPIO và lưu kết quả vào các tệp CSV
  • Các tệp CSV được chia theo thư mục tháng, ngày, giờ, và phần hiển thị dữ liệu lịch sử của web UI cũng chỉ hỗ trợ theo tháng, ngày, giờ
  • Ứng dụng Node.js dùng Node.js 0.10.26, Express.js 4.13.3, Socket.io 1.3.6
  • Trong các phụ thuộc có gói mqtt, và trong mã nguồn có đoạn mã chưa hoàn thiện cùng IP broker được hardcode, có vẻ là phần tích hợp đám mây từng được hứa hẹn trong brochure
    • Các IP đó nay không còn hoạt động
    • Bản thân thiết bị cũng không có truy cập Internet

Những phát hiện tiếp theo

  • Công ty NETTHINGS tạo ra thiết bị này đã giải thể
  • Người dùng Hacker News M6WIQ đã chỉ ra một bài viết khác nói về hậu quả từ các quyết định kỹ thuật của NetThings
  • Tác giả của bài viết đó đã hỏi trên Mastodon liệu thiết bị này còn dùng IP máy chủ NTP của ông ấy hay không, và thực tế được xác nhận là còn tệ hơn
  • Marc Bevand đã cung cấp tài nguyên GPU để brute-force mật khẩu người dùng Linux gốc của trình quản lý năng lượng
  • Một công ty hosting đã dịch bài viết này sang tiếng Nga

1 bình luận

 
GN⁺ 2024-01-21
Ý kiến trên Hacker News
  • Vài năm trước, mọi người nhận ra rằng nếu muốn giúp người dùng quản lý mức tiêu thụ tiện ích công cộng như điện, nước, gas theo cách thân thiện hơn với môi trường và kinh tế hơn, thì cần dữ liệu tốt hơn rất nhiều so với chỉ một con số tổng theo tháng
    Ít nhất phải xem được mức tiêu thụ theo từng 5 phút thì mới nhận ra những điều như “bật máy sưởi điện vài tiếng còn tốn điện hơn cả hệ thống chiếu sáng trong một tháng”
    Ở các hộ gia đình trung lưu tại Nam Phi, inverter và tấm pin mặt trời rất phổ biến do nguồn điện không ổn định, và nhà tôi cũng có thể xem lịch sử sử dụng điện tổng thể nên khá dễ xác định chỗ nào có thể tăng hiệu suất
    Nhưng đây vẫn chỉ là dữ liệu tổng nên phải suy đoán nguyên nhân. Ví dụ, nếu thấy mức 3kW xuất hiện khoảng một giờ sau khi tắm, thì đó là bình nước nóng đang đun lại; đồng thời có thể biết qua nhật ký inverter rằng lúc đó pin đã xả hết từ ban đêm, lại là buổi sáng nên sản lượng điện mặt trời còn thấp, vì vậy điện đang được lấy từ lưới
    Vì thế, chỉ cần gắn bộ hẹn giờ cho bình nước nóng để nó chỉ đun sau 10 giờ sáng, khi mặt trời đã lên đủ cao để có thể dùng điện mặt trời, là có thể dễ dàng giảm hóa đơn tiền điện. Giờ tôi cũng muốn theo dõi lượng nước sử dụng thuận tiện như vậy

    • Hoàn toàn đồng ý, và tôi cho rằng bảng điều khiển năng lượng Home Assistant đã đóng góp vào việc giảm tiêu thụ năng lượng của gia đình tôi nhiều hơn bất kỳ biện pháp nào khác
      Ở Hà Lan, chỉ cần cắm thứ như “slimme lezer” vào cổng p1 của công tơ điện là nó hiện ngay trong Home Assistant dưới dạng các cảm biến phù hợp
      Bảng điều khiển năng lượng hiển thị mức dùng gas và điện, sản lượng điện mặt trời, tỷ lệ sử dụng điện lưới/điện mặt trời, và cả pin gia đình nếu có, nên rất tuyệt
      Ổ cắm đo điện Aqara dùng Zigbee nên khá dễ bị quá tải, còn Shelly thì dùng WiFi nhưng lại khá chắc chắn. Kết hợp với những thiết bị này sẽ dễ xác định thứ tự ưu tiên cho các biện pháp tiết kiệm điện, và bạn cũng có thể đưa chi phí trên mỗi kWh cùng chi phí gas trên mỗi m³ vào cảm biến của Home Assistant
    • Tôi có một người bạn bị tiểu đường nhưng quản lý chế độ ăn khá kém, và ngay khi bác sĩ kê cho anh ấy dùng máy theo dõi đường huyết trong vài tuần thì mọi thứ thay đổi hẳn
      Đó là một thiết bị lớn như miếng băng dán gắn trên cánh tay, đưa một cây kim mảnh xuống dưới da và giao tiếp với ứng dụng trên điện thoại để báo các chỉ số như mức đường huyết
      Khi biết những món mình ăn ảnh hưởng ra sao, anh ấy đã lập tức thay đổi chế độ ăn, và đến giờ dù không còn đeo thiết bị theo dõi nữa vẫn duy trì được. UI của ứng dụng cũng ổn, nhưng thứ thực sự tạo ra hiệu quả quyết định là dữ liệu lịch sử
    • Trải nghiệm đó cũng cho thấy giới hạn của việc giám sát và thay đổi hành vi dựa trên đó. Bạn có thể khiến mình chạy máy giặt sớm hơn hoặc muộn hơn một chút để khớp với lúc sản lượng điện mặt trời cao, nhưng vẫn phải đặt câu hỏi là thực sự có bao nhiêu mức tiêu thụ có thể dời đi, và bạn có thể hạn chế dùng các thiết bị ngốn điện đến mức nào
      Nếu biết lúc nấu ăn điện năng tiêu thụ cao, liệu bạn có ăn salad nhiều hơn không? Trên khắp châu Âu, công tơ điện đang được thay bằng công tơ thông minh và lợi ích là có thể liên tục xem mức dùng điện được quảng bá rất mạnh, nhưng liệu điều đó có thực sự dẫn đến mức tiết kiệm đáng kể hay không thì vẫn khó kết luận
      Cuối cùng, hiệu quả lớn nhất đến từ việc các thiết bị gia dụng lớn và hệ thống sưởi/làm mát phản ứng theo sản lượng tự phát, hoặc tận dụng lúc điện rẻ trong các biểu giá động theo giờ hay theo ngày. Những ví dụ ở đây gồm bộ hẹn giờ đơn giản tự lắp, rơ-le tắt sưởi khi đang nấu ăn, hoặc thiết bị như Fronius Ohmpilot [1] điều chỉnh công suất gia nhiệt theo lượng điện mặt trời dư thừa
      [1] https://www.fronius.com/en/solar-energy/installers-partners/...
    • Lượng nước sử dụng, tùy theo loại đồng hồ, thường có một bánh xe phản quang nhỏ quay một vòng mỗi lít. Nó có thể làm bằng kim loại hoặc có từ tính nhẹ, nên nếu gắn cảm biến quang hoặc cảm biến Hall vào Arduino thì bạn có thể thu thập dữ liệu thời gian thực với độ phân giải khá cao
      Một cách khác tôi từng làm thành công là gắn trực tiếp đầu dò nhiệt độ lên ống nước cấp vào rồi so với nhiệt độ môi trường. Ở nơi tôi sống, nước đến từ dưới lòng đất nên lúc nào cũng lạnh hơn không khí xung quanh rất nhiều, vì thế cách này khả thi
      Nếu tích phân chênh lệch giữa hai mức nhiệt theo thời gian thì sẽ có một giá trị thay thế xấp xỉ cho lượng nước sử dụng, nhưng cần công sức nhiều hơn hẳn mới có được dữ liệu có ý nghĩa
      Có thể cảm biến tiệm cận phát hiện kim loại là cách đơn giản nhất. Nếu đồng hồ nước của bạn có mặt đo kim loại quay, bạn có thể dùng thứ như https://www.alldatasheet.com/view.jsp?Searchword=LJ12A3-4-Z/...
    • Tổng hợp điện năng theo từng thiết bị cũng cho ra dữ liệu rất thú vị
      Với bảng điều khiển năng lượng của Home Assistant, bạn có thể biết “rack” (UPS + Mac mini + thiết bị đĩa 5 khay + linh tinh) thực sự tiêu thụ bao nhiêu so với tủ lạnh hay máy giặt, hệ thống máy tính trên bàn thì thấp nhưng màn hình lại ngốn khá nhiều khi bật, chi phí sạc xe đạp điện là bao nhiêu, hay việc đặt bộ điều nhiệt mùa đông ở 19 độ thay vì 20 độ tạo ra khác biệt thế nào
      Nó cũng cho thấy những điều bất ngờ kiểu như chiếc quạt dùng thường xuyên vào mùa hè thực ra lại tiêu thụ điện ngang với bình nước nóng. Việc đo điện được thực hiện bằng Shelly Plug Plus S, 3EM, 4PM, còn đo nhiệt độ thì dùng Shelly H&T Plus
  • Điều thú vị là tác giả ngạc nhiên trước một sự quái dị về mặt kỹ thuật: một thiết bị gia dụng chạy Linux. Kiến trúc trong đó một máy chủ Node cung cấp website, API và websocket qua WiFi, còn website đó lại được hiển thị trong một engine WebView cũ trên một thiết bị đầu cuối đầy ràng buộc không thể tái sử dụng cho mục đích khác, giờ đây gần như đã trở thành tiêu chuẩn phổ biến.
    Chỉ để hiển thị vài con số và biểu đồ cột thì đáng ra hai vi điều khiển giao tiếp qua bus có dây cũng đã đủ, thế nhưng với kiểu bộ nguồn của thời đại này, hai thiết bị đó khi nhàn rỗi có thể vẫn tiêu thụ khoảng 16W.
    Nếu bật 24/7 quanh năm, nó sẽ dùng điện ngang một chiếc tủ lạnh cỡ nhỏ, và nếu so với vài vi điều khiển giá vài đô la thì đánh giá vòng đời cũng khó mà tốt được.
    Tệ nhất là thiết bị phức tạp này có khả năng đã thành cục gạch sau 3 năm lắp đặt, thậm chí có thể còn sớm hơn.

    • Lý do botnet Mirai vẫn còn hoành hành đến giờ là Android.
      Từ góc độ kinh doanh, người ta không muốn thuê nhân lực đắt đỏ biết lập trình vi điều khiển. Với một giao diện đơn giản chỉ hiển thị biểu đồ cột, thuê lập trình viên frontend rẻ hơn nhiều.
    • Có nói là “thiết bị đầu cuối đầy ràng buộc không thể tái sử dụng cho mục đích khác”, nhưng vẫn có thể dùng cho botnet hoặc giám sát.
      Một số bo mạch đã tích hợp sẵn microphone MEMS và camera, và trong bức ảnh cái hộp đó cũng có vẻ thấy được ống kính camera. Nếu là tôi thì tôi sẽ tháo thiết bị ra xem bên trong, hoặc ít nhất chạy chẩn đoán để xem phần cứng nào được lắp và được nhận diện.
    • Có lẽ tiết kiệm hơn nhiều nếu rút lại cầu chì thay vì cứ để cái thiết bị vô dụng đó chạy mãi.
    • Sau khi công trình đã hoàn thiện rồi mà đi lại dây điện ở bất cứ đâu thì độ khó thi công rất cao. Có thể làm được, nhưng kể cả có thể thì cũng hoàn toàn phi thực tế. Ví dụ, bus điện áp thấp và dây nguồn không được che chắn không hợp để chạy song song với nhau.
    • Chi phí dùng 16W suốt 24 giờ trong 30 ngày, theo giá điện trung bình ở Mỹ, là chưa tới 2 đô la một tháng nên có vẻ không đáng kể.
      https://www.wolframalpha.com/input?i=16+watts++24+hours++3...
  • Việc SSID và mật khẩu được in sẵn hoàn toàn không có gì đáng ngạc nhiên. Những thiết bị kiểu này có lẽ thường được lắp cải tạo vào nhà sẵn có hơn là được tích hợp ngay từ lúc xây mới, mà việc luồn dây vào trong tường cũ thì phiền phức, nên chắc họ không muốn tạo thêm rào cản bán hàng.
    Dạo này chỉ với vài đô la là đã mua được chipset WiFi đủ dùng.
    Cầu chì 3A cũng có lẽ không đáng lo đến vậy. Nếu là cầu chì 3A thì chắc chắn không phải toàn bộ nguồn chính của căn hộ đi qua đó, vì nếu cố làm thế thì nó đã đứt ngay lập tức rồi.
    Và còn Jazelle nữa, hỗ trợ phần cứng cho Java bytecode rốt cuộc là một công nghệ đã không đi đến đâu.

    • Nếu là cầu chì mua trên Amazon thì có đủ lý do để lo rằng nó sẽ không đứt. Có video của Louis Rossmann[0] để dòng 8A chạy qua cầu chì 2A trong khá lâu, hình như là vài phút, rồi còn rời khỏi phòng.
      [0]: https://www.youtube.com/watch?v=B90_SNNbcoU
    • WiFi về bản chất cung cấp cách ly galvanic với khoảng cách rất lớn.
      Không phải lúc nào cũng cần, nhưng đó có thể là cách tiết kiệm chi phí để tách phần nguy hiểm về điện với phần con người chạm vào, đồng thời tránh các vòng lặp khi có sự cố. Không dây có công dụng vượt xa việc chỉ đơn giản là bỏ dây.
    • Tôi không đủ lớn tuổi để chứng kiến giai đoạn đó rõ ràng, nhưng vẫn tò mò vì sao Jazelle lại thất bại. Nhìn lại bây giờ thì Java có vẻ từng thống trị đến mức thật bất ngờ khi công nghệ kiểu này không thành công.
    • Đoạn “nó ở gần nguồn điện chính nên hơi đáng sợ” làm tôi bật cười. Thay cầu chì mà cũng đáng sợ đến thế sao. Ở Anh người ta từng dạy việc này từ tiểu học, và cầu chì thì либо đứt либо không; nếu đứt thì biết ngay.
      Ít ra cũng không phải là phát hiện ra một ổ cắm đã được nhét cầu chì chết vào rồi bọc cẩn thận bằng lớp vỏ nhôm mang tính nghi lễ của sự bất tử và cái chết chắc chắn. Đó là kiểu tội lỗi mà có lẽ hồi nhỏ, vào thời tôi còn dễ gây cháy hơn, tôi từng phạm phải.
      Thật thú vị khi có nhiều người thấy không thoải mái khi ở ngoài vùng an toàn của mình. Dĩ nhiên, tôi là kiểu người suốt đời cứ thích chõ mũi vào những thứ lẽ ra chẳng bao giờ cần đụng tới.
    • Đúng là khó đi dây qua tường cũ, nhưng đổi lại, từ bên kia đường hoặc với ăng-ten định hướng thì việc xâm nhập thiết bị từ tận đầu kia thành phố lại dễ hơn.
      Tất nhiên, nếu bảo mật đủ tốt và vẫn đều đặn nhận các bản cập nhật bảo mật thì đó không phải vấn đề, và ta chỉ có thể giả định rằng thiết bị mà tác giả phát hiện ra là một ngoại lệ cực kỳ hiếm hoi không đáp ứng được các điều kiện đó.
  • Tên công ty Netthings nghe quen quen, tôi nhớ từng đọc một bài về việc máy chủ NTP bị hardcode trong thiết bị của công ty này bị tường lửa chặn, khiến nó mất đồng bộ thời gian.
    Bài viết: https://strugglers.net/~andy/blog/2018/12/24/the-internet-of...
    Có vẻ như họ đã bước vào thủ tục thanh lý từ năm 2018, nên khó mà nhận được hỗ trợ cho thiết bị này.

    • Vì thế câu trong tài liệu “DATE & TIME ARE ALWAYS CORRECT AND NEVER NEED TO BE ADJUSTED” lại càng xuất sắc hơn.
    • Liên kết này quá đỗi kinh ngạc nên tôi đã thêm nó vào cuối bài.
  • “DATE & TIME ARE ALWAYS CORRECT AND NEVER NEED TO BE ADJUSTED” nghe như một câu trích ra từ tiểu thuyết của Philip K. Dick.

    • Có lẽ đó là cách người viết tài liệu kỹ thuật muốn nói kiểu “cứ ping máy chủ NTP đi, đừng lo” https://news.ycombinator.com/item?id=39065780
      Rõ ràng là mọi chuyện đã không diễn ra suôn sẻ.
    • Ban đầu tôi đoán nó có thể có chức năng hiệu chỉnh thời gian kiểu đồng bộ với tháp phát thanh ở Anh, nhưng theo bài viết thì thiết bị này là sản phẩm năm 2015 nên có lẽ không phải vậy.
  • Câu đùa “Có vẻ chữ C trong IoT là cost-effective” thì ngắn gọn và dí dỏm, nhưng nếu biết SoC hỗ trợ WiFi thực sự rẻ và hiệu quả chi phí đến mức nào thì có thể bạn sẽ ngạc nhiên
    Trong nhiều trường hợp, WiFi gần như đi kèm miễn phí, và phần lớn các SoC kiểu này mặc định không có bộ điều khiển Ethernet, nên miễn là phù hợp với ca sử dụng thì WiFi lại hiệu quả chi phí hơn
    Tất nhiên các giao thức vật lý hay phương thức kết nối khác cũng khả thi, nhưng với kiểu thiết bị khách lắp cải tạo như thế này thì WiFi hoặc các giao thức không dây phổ biến là lựa chọn tốt nhất

    • Xét thuần túy về mặt vật tư, 2 vi điều khiển giá rẻ có WiFi như esp8266 cộng lại có lẽ chỉ khoảng 4~5 USD theo giá nhà sản xuất
      Mức này tương đương cáp 3m, đầu nối, và chip giá rẻ để xử lý kết nối cáp, còn chi phí nhân công lắp cáp thì đắt hơn nhiều. Vì vậy tôi không hiểu lắm tại sao lại xem việc kết nối qua WiFi là lãng phí
    • ESP32 giờ gần như là lựa chọn phổ quát. Nếu đặt với số lượng nhất định thì có thể mua dưới 1 USD, và đã tích hợp sẵn WiFi lẫn Bluetooth. Bây giờ không dùng WiFi mới là phương án đắt hơn
  • Tôi đã nhờ tác giả bài gốc gửi file /etc/shadow mà John The Ripper đã không brute-force được, và vì đó là hash UNIX crypt() kiểu cũ nên tôi đã có thể dùng hashcat cùng 12 chiếc RTX 4090 để bẻ mật khẩu root trong khoảng 7 giờ
    Mật khẩu root là Newt@rd$
    Thiết bị này vốn đã có thể truy cập root qua TCF mà không cần xác thực nên điều này không đặc biệt hữu ích, nhưng cũng có khả năng mật khẩu này đã được tái sử dụng ở nơi khác

  • Để đề phòng tên miền bị chôn vùi theo cát bụi thời gian, sẽ hay hơn nếu chính bài viết được host trên thiết bị đó

  • 3A là 720W. Nếu cái hộp nhỏ đó thật sự tỏa ra ngần ấy nhiệt thì cả cái tủ kỹ thuật sẽ đúng nghĩa thành lò nướng
    Ngay từ đầu, nếu đồng hồ đo năng lượng mà tiêu thụ nhiều điện đến thế thì đã đi ngược mục đích của nó, gần như kiểu thử diêm vậy. Nhiều nhất chắc chỉ khoảng 10W, và dòng khởi động có lẽ cũng không cao đến vậy
    Cầu chì 1A có vẻ là đủ, và việc lắp đặt trông cũng khá gọn gàng nên chuyện nó ở gần nguồn điện lưới cũng không đến mức đáng sợ như vậy

    • Cầu chì 3A không phải vì đó là mức tối ưu cho thiết bị này, mà là do hệ thống dây điện của Anh
      Mọi thiết bị điện ở Anh đều có cầu chì tại điểm kết nối với hệ thống dây điện của tòa nhà, thường là trong phích cắm nhưng cũng có thể nằm trong hộp giữ cầu chì cố định như ở thiết bị này
      Vì người ta cho rằng quá nhiều mức định mức sẽ gây rối và bất tiện cho người dùng, các cầu chì này bị giới hạn ở cùng một kích thước với một trong các mức tiêu chuẩn 13A, 5A hoặc 3A. Như đã nói ở nơi khác, những cầu chì này có thể mua cả ở siêu thị và cửa hàng tiện lợi tại Anh
      Nếu 3A là quá cao so với thiết bị, thì nhà thiết kế nên dùng cáp mềm định mức 3A để cầu chì phía phích cắm bảo vệ, đồng thời bổ sung bảo vệ quá dòng thấp hơn ở phía thiết bị
      Hệ thống kiểu Anh là một cấu trúc thông minh, khi được đưa vào sử dụng thì những chi tiết tinh tế như mức cầu chì tiêu chuẩn đã rất khớp, nhưng với nhà ở hiện đại có nhiều thiết bị dòng thấp thì nó hơi bị thiết kế dư và không còn tối ưu
    • Còn phụ thuộc vào định mức thời gian của cầu chì và dòng khởi động của bộ nguồn. Có trường hợp dòng khởi động vượt quá 10A, nên một số cầu chì 1A có thể thỉnh thoảng bị đứt khi bật thiết bị
  • Nếu bạn muốn xem dữ liệu tiêu thụ theo thời gian thực kiểu này tại nhà, tôi rất khuyến nghị IoTaWatt: https://iotawatt.com
    Đây là bộ giám sát năng lượng hoàn toàn cục bộ, lắp trong tủ điện của nhà, và bạn có thể xem bảng điều khiển trên web server cục bộ chạy trên thiết bị hoặc đọc dữ liệu qua API
    Bạn có thể tự chọn số lượng cảm biến, và không chỉ giám sát toàn bộ ngôi nhà mà còn cả từng mạch riêng lẻ
    Ví dụ, bạn có thể theo dõi lúc các thiết bị như máy giặt, máy rửa chén, lò vi sóng bắt đầu/dừng và kích hoạt tự động hóa
    Tuy nhiên, để tự lắp thì cần tìm hiểu trước, có kiến thức điện cơ bản, và chấp nhận động chạm đến kết nối điện lưới cao áp. Dù vậy, nó vẫn khá dễ tiếp cận và việc thiết lập cũng đơn giản
    Hình dáng của nó như thế này: https://i.ibb.co/qBVmBD1/IMG-1595.jpg