1 คะแนน โดย GN⁺ 2024-01-21 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • หน้าจอสัมผัสปริศนาในอะพาร์ตเมนต์อังกฤษที่สร้างเสร็จในปี 2015 เป็นส่วนหนึ่งของระบบมอนิเตอร์พลังงานของ NETTHINGS เป็นอุปกรณ์ที่แสดงค่าการใช้ไฟฟ้าปัจจุบันและข้อมูลย้อนหลัง
  • โครงสร้างแบ่งเป็น Energy Manager ฝั่งมิเตอร์ และไคลเอนต์แบบแท็บเล็ต Android ในห้อง โดยสื่อสารผ่าน WiFi แทนสายเคเบิล แม้จะอยู่ใกล้กันและมีผนังกั้นไม่กี่ชั้น
  • สาเหตุโดยตรงที่หน้าจอไม่ทำงานคือ ฟิวส์ 3A ในวงจร Energy Manager หายไป และเมื่อเปลี่ยนฟิวส์แล้ว เครือข่าย WiFi กับหน้าจอแสดงการใช้งานแบบเว็บก็กลับมาใช้งานได้
  • UI ของแท็บเล็ตเป็น WebView ส่วนเซิร์ฟเวอร์ใช้ Node.js, Express และ Socket.IO โดยอุปกรณ์มิเตอร์เปิดบริการ DNS, HTTP, SSH และ TCF ที่ 172.16.0.254
  • tcf-agent ที่เปิดอยู่ให้สิทธิ์ root ในการเข้าถึงไฟล์ซิสเต็มและโปรเซส ทำให้แก้ไขอุปกรณ์ได้แม้ไม่มีรหัสผ่าน SSH ภายในเป็นอุปกรณ์ ARM9 ที่ใช้ Linux 3.10 และมีโครงสร้างเก็บข้อมูลไฟฟ้าแบบ CSV

หน้าจอสัมผัสปริศนาใช้ทำอะไร

  • ในห้องของอะพาร์ตเมนต์ใหม่มีการติดตั้ง หน้าจอสัมผัสที่ไม่มีปุ่มหรือป้ายกำกับใด ๆ มีเพียงไฟสถานะสีเหลืองเล็ก ๆ แสดงว่าเปิดอยู่
  • เจ้าของบ้านเองก็ไม่รู้ว่าเป็นอุปกรณ์สำหรับควบคุมอะไร และหลังย้ายเข้ามาก็ถูกลืมทิ้งไว้พักหนึ่ง
  • ตัวตนของมันถูกเปิดเผยเมื่อพบโบรชัวร์ที่มีอุปกรณ์เดียวกันอยู่ในแฟ้มคู่มือเครื่องใช้ไฟฟ้า
    • อุปกรณ์นี้เป็นส่วนหนึ่งของ ระบบมอนิเตอร์พลังงาน
    • แสดงการใช้ไฟฟ้าปัจจุบันและข้อมูลการใช้งานย้อนหลัง
  • โบรชัวร์ยังแนะนำองค์ประกอบตัวที่สองชื่อ Energy Manager ซึ่งเชื่อมต่อโดยตรงกับมิเตอร์ไฟฟ้า
  • ในตู้มิเตอร์รวมมีอุปกรณ์แบรนด์ NETTHINGS ติดตั้งอยู่ร่วมกับอุปกรณ์ของยูนิตอื่น ๆ

Energy Manager และแท็บเล็ต Android ที่เชื่อมต่อผ่าน WiFi

  • ระบบประกอบด้วย Energy Manager ที่ทำหน้าที่เป็น “เซิร์ฟเวอร์” เก็บข้อมูล และหน้าจอสัมผัสที่ทำหน้าที่เป็น “ไคลเอนต์” อ่านข้อมูลมาแสดงบนหน้าจอ
  • ระยะห่างระหว่างอุปกรณ์ทั้งสองแค่ไม่กี่เมตร และมีกำแพงกั้นราว 2–3 ชั้น แต่ในโบรชัวร์มีระบุ SSID และ Pwd ไว้
  • การสื่อสารจริงก็ทำผ่าน WiFi ไม่ใช่สายเคเบิล
  • เมื่อกดปุ่มในรูเล็ก ๆ ด้านข้างหน้าจอสัมผัส ก็ปรากฏโลโก้บูตของ Android
    • เป็นแท็บเล็ต Android รุ่นเก่า
    • มีแอปรุ่นเก่าอย่าง Google Talk, Flash ฯลฯ ติดตั้งอยู่
    • ดูเหมือนเป็น Android 5 แต่ไม่แน่ชัดว่าเป็นเวอร์ชันใด
  • เมื่อเปิดแอป “NetThings” จะมีหน้าจอให้เลือกเครือข่าย WiFi แต่ตอนแรกเครือข่ายในโบรชัวร์ไม่ปรากฏในรายการ

ฟิวส์ที่หายไปและมอนิเตอร์ที่กลับมามีชีวิต

  • ในตู้มิเตอร์ Energy Manager ของยูนิตอื่นเปิดอยู่ แต่เฉพาะอุปกรณ์ของยูนิตนี้ที่ปิดอยู่
  • สาเหตุคือ ไม่มีฟิวส์ อยู่ในกล่องฟิวส์
    • เมื่อไม่มีฟิวส์ การเชื่อมต่อไฟฟ้าจึงขาด
    • Energy Manager ไม่ได้รับไฟเลี้ยง
    • ฮอตสปอต WiFi ก็ไม่ปรากฏ
  • ตรวจสอบฟิวส์ของ Energy Manager ตัวอื่นในตู้มิเตอร์เดียวกัน จึงยืนยันได้ว่าขนาดที่ต้องใช้คือ ฟิวส์ 3A
  • สั่งฟิวส์ 3A จาก Amazon และติดตั้งในวันถัดมา จากนั้น LED สีเขียวของ Energy Manager ก็เริ่มกะพริบ และเครือข่าย WiFi ปรากฏขึ้น
  • งานนี้ทำใกล้กับไฟเมนซึ่งอันตราย หลังจากนั้นจึงตรวจอุณหภูมิฟิวส์หลายครั้งตลอดหนึ่งวัน และไม่แนะนำให้ผู้อื่นทดลองแบบนี้

เว็บ UI ที่น่าผิดหวังและค่าไฟที่ถูกตรึงไว้

  • เมื่อเลือก WiFi บนแท็บเล็ต Android จะปรากฏเมนูให้เลือกประเภททรัพยากร
  • รายการที่ใช้งานได้จริงมีเพียง Mains Electricity ซึ่ง Energy Manager เชื่อมต่ออยู่
  • หน้าจอการใช้ไฟฟ้าแสดงตัวบอกสีทางขวาและตัวเลข 5 ค่า ทางซ้าย แต่ความหมายของ UI ไม่ชัดเจน
    • ไม่รู้ว่าสีเขียวหมายถึงการใช้งานต่ำหรือการใช้งานปกติ
    • ไม่รู้ว่าตำแหน่งแนวตั้งของตัวบอกสีนั้นเปรียบเทียบกับอะไร
    • ไม่รู้ว่าตำแหน่งสูงสุดเกี่ยวข้องกับค่าการใช้งานสูงสุดในอดีตหรือไม่
  • ในตัวเลข 5 ค่าที่แสดงทางซ้าย มีค่าที่ถูกต้องจริงเพียงค่าเดียวคือ การใช้ kW
  • ค่าไฟและค่าประมาณ CO2 ต่อ kW ไม่สามารถตั้งค่าได้
    • โบรชัวร์ระบุว่าสามารถตั้งค่าได้ตอนติดตั้งครั้งแรก
    • ไม่มีคำแนะนำวิธีทำให้ระบบกลับสู่สถานะที่ตั้งค่าใหม่ได้
  • โบรชัวร์ยังมีเนื้อหาให้เชื่อมต่อจาก PC เพื่อปรับเวลาให้ข้อมูล และนาฬิกาของแท็บเล็ต Android คลาดเคลื่อนไปราว 15 นาทีหลังการติดตั้งตั้งแต่ปี 2015

WebView, Socket.IO และเซิร์ฟเวอร์ Node.js

  • หากอ่านข้อมูลจาก Energy Manager ได้โดยตรง ก็สามารถนำปริมาณการใช้ kW ไปคูณอัตราที่ถูกต้องแล้วแสดงใน Grafana เป็นต้น
  • ในโบรชัวร์มีกรณีใช้งานสำหรับตรวจสอบการใช้พลังงานจาก PC และระบุ IP กับพอร์ต ไว้ด้วย
  • เมื่อเชื่อมต่อผ่านเบราว์เซอร์ก็เห็นหน้าจอเดียวกับแท็บเล็ต Android จึงยืนยันได้ว่า UI ของแท็บเล็ตเป็น WebView
  • เมื่อตรวจดูการเรียก API ในเว็บอินสเปกเตอร์ พบว่ามีการใช้ Socket.IO
  • ไคลเอนต์ดูเหมือนเพียงรับตัวเลข 5 ค่าจากเซิร์ฟเวอร์ แต่ในโค้ดมี RequireJS modules, Handlebars, Backbone.js, Underscore.js ฯลฯ รวมอยู่ด้วย

พอร์ตที่เปิดอยู่และ tcf-agent

  • IP ของอุปกรณ์คือ 172.16.0.254 และ ssh root@172.16.0.254 ล้มเหลวในตอนแรกด้วยข้อความ “Connection refused”
  • ผลสแกนพอร์ตทั้งหมดพบว่ามีบริการต่อไปนี้เปิดอยู่
    • 53/tcp: dnsmasq 2.63rc6
    • 80/tcp: HTTP บน Node.js
    • 1534/tcp: micromuse-lm?
    • 3000/tcp: HTTP บน Node.js
    • 41142/tcp: OpenSSH 6.2
  • dnsmasq สอดคล้องกับบทบาทเซิร์ฟเวอร์ DHCP เพราะอุปกรณ์เป็น WiFi access point
  • SSH เปิดอยู่ที่พอร์ต 41142 แต่บัญชี root ถูกป้องกันด้วยรหัสผ่าน และชุดเดาง่าย ๆ อย่าง admin/admin, root/root ใช้ไม่ได้
  • ระหว่างค้นหาตัวตนของพอร์ต 1534 ก็พบคีย์เวิร์ด tcf-agent ผ่านโพสต์ในฟอรัม Xilinx

การเข้าถึงไฟล์ซิสเต็มแบบ root ผ่าน TCF

  • TCF ย่อมาจาก Target Communications Framework เป็นโปรโตคอลแบบข้อความที่รองรับการอ่านไฟล์ซิสเต็ม การเริ่มโปรเซสใหม่ การส่งสัญญาณไปยังโปรเซส ฯลฯ บนระบบเป้าหมาย
  • tcf-agent คือเซิร์ฟเวอร์ที่ implement โปรโตคอลนี้ และบนอุปกรณ์นี้มันทำงานในฐานะ ผู้ใช้ root
  • TCF เชื่อมโยงอย่างใกล้ชิดกับ ecosystem ของ Eclipse และเอกสาร Getting Started แนะนำ Eclipse plugin เป็นวิธีใช้งานหลัก
  • พยายามติดตั้ง plugin ใน Eclipse เวอร์ชันใหม่ แต่ทำได้ยากเพราะ dependency ขัดแย้งกัน
  • จึงหันไปใช้ Python SDK ของโปรเจกต์ TCF แทน
  • ด้วยบริการ FileSystem และ Processes ของ TCF สามารถสร้างเครื่องมือแทนคำสั่งอย่าง ls, cat, ps ได้ และผลงานถูกรวบรวมไว้ที่ tcf-tools

การเข้าถึง SSH และสเปกภายในของอุปกรณ์

  • ตอนแรกพยายามดึง /etc/passwd และ /etc/shadow ผ่าน TCF แล้วใช้ John the Ripper แคร็กรหัสผ่าน root
  • แม้รันประมาณ 7 ชั่วโมงก็ไม่พบค่าที่ตรงกัน และ John แสดงเวลาคาดการณ์ที่ brute force จะเสร็จเป็นปี 2035
  • ต่อมาจึงแก้ /etc/shadow ให้รหัสผ่าน root ว่างแล้วเปิดเครื่องใหม่ แต่ SSH login ก็ยังถูกปฏิเสธ
  • สาเหตุคือการตั้งค่า PermitRootLogin no ใน sshd_config
    • เมื่อเปลี่ยนบรรทัดนี้เป็น PermitRootLogin yes ก็สามารถล็อกอิน SSH เป็น root ได้
  • อุปกรณ์กำลังรัน Linux 3.10.28 armv5tejl
  • CPU คือ ARM926EJ-S rev 5 ซึ่งอยู่ในตระกูล ARM9
  • java ในรายการฟีเจอร์ของ /proc/cpuinfo หมายถึง Jazelle ซึ่งเป็นส่วนขยาย ARM สำหรับรัน Java bytecode
  • หน่วยความจำแสดงเป็น MemTotal: 118172 kB และมีแอป Node.js รันอยู่บนอุปกรณ์

โครงสร้างแอปพลิเคชันและการเก็บข้อมูล

  • แอปพลิเคชันเซิร์ฟเวอร์อยู่ใต้ /srv/server และมีโครงสร้างเช่น Gruntfile.js, app.js, bower.json, package.json, node_modules, routes, views, public
  • แอปแบ่งคร่าว ๆ เป็นสองส่วน
    • Pulse app ที่อ่านข้อมูลการใช้งานจากมิเตอร์ไฟฟ้า
    • แอป Node.js ที่อ่านข้อมูล CSV แล้วแสดงผ่านเว็บ UI
  • ไฟล์ที่เกี่ยวกับ Pulse app อยู่ในโฟลเดอร์ bin
    • pulse-app
    • pulse.ko
    • ct-read-daemon
    • ไดเรกทอรีรายเดือน รายวัน รายชั่วโมง รายสัปดาห์ และรายปี
  • นามสกุล .ko ของ pulse.ko โดยทั่วไปหมายถึง Kernel Object จึงอาจเป็น kernel module
  • Pulse app อ่านข้อมูลจากขา GPIO แล้วบันทึกผลเป็นไฟล์ CSV
  • ไฟล์ CSV แบ่งเป็นไดเรกทอรีรายเดือน รายวัน และรายชั่วโมง และการแสดงข้อมูลย้อนหลังของเว็บ UI ก็รองรับเฉพาะรายเดือน รายวัน และรายชั่วโมงเท่านั้น
  • แอป Node.js ใช้ Node.js 0.10.26, Express.js 4.13.3, Socket.io 1.3.6
  • ใน dependencies มีแพ็กเกจ mqtt และในซอร์สมีโค้ดที่ยังไม่เสร็จซึ่งดูเหมือน cloud integration ตามที่โบรชัวร์สัญญาไว้ พร้อม IP ของ broker ที่ hard-code ไว้
    • IP เหล่านั้นใช้งานไม่ได้อีกต่อไป
    • ตัวอุปกรณ์เองก็ไม่มีการเข้าถึงอินเทอร์เน็ต

การค้นพบภายหลัง

  • บริษัท NETTHINGS ผู้ผลิตอุปกรณ์นี้ถูกยุบไปแล้ว
  • ผู้ใช้ Hacker News M6WIQ ชี้ให้เห็นบทความอีกชิ้นที่กล่าวถึงผลลัพธ์จากการตัดสินใจทางวิศวกรรมของ NetThings
  • ผู้เขียนบทความนั้นถามบน Mastodon ว่าอุปกรณ์ยังใช้ IP ของเซิร์ฟเวอร์ NTP ของเขาอยู่หรือไม่ และสถานการณ์จริงถูกยืนยันว่าแย่กว่านั้น
  • Marc Bevand ให้ทรัพยากร GPU เพื่อ brute force รหัสผ่านผู้ใช้ Linux เดิมของ Energy Manager
    • แฮชใช้อัลกอริทึมที่มีอายุอย่างน้อย 30 ปี)
    • รหัสผ่านของ root และ gecko_user คือ Newt@rd$
    • รหัสผ่านของบัญชี prod_test คือ NetTh@ng
  • บริษัทโฮสติ้งแห่งหนึ่งแปลบทความนี้เป็นภาษารัสเซีย

1 ความคิดเห็น

 
GN⁺ 2024-01-21
ความคิดเห็นจาก Hacker News
  • เมื่อไม่กี่ปีก่อน ผมตระหนักว่าถ้าจะช่วยให้ผู้คนจัดการ ปริมาณการใช้ค่าสาธารณูปโภค อย่างไฟฟ้า น้ำ และก๊าซ ให้เป็นมิตรต่อสิ่งแวดล้อมและประหยัดมากขึ้น จำเป็นต้องมีข้อมูลที่ดีกว่าตัวเลขรวมรายเดือนมาก
    อย่างน้อยควรดูปริมาณการใช้ได้ในระดับประมาณ ทุก 5 นาที ถึงจะสังเกตได้ว่า “เปิดฮีตเตอร์ไฟฟ้าไว้ไม่กี่ชั่วโมง ใช้ไฟมากกว่าไฟส่องสว่างทั้งเดือน”
    ในครัวเรือนชนชั้นกลางของแอฟริกาใต้ อินเวอร์เตอร์และแผงโซลาร์เซลล์เป็นเรื่องปกติเพราะไฟฟ้าจ่ายไม่เสถียร บ้านของผมเองก็ดูประวัติการใช้ไฟฟ้าทั้งหมดได้ จึงระบุได้ง่ายขึ้นว่าควรเพิ่มประสิทธิภาพตรงไหน
    แต่ก็ยังเป็นข้อมูลรวมอยู่ดี จึงต้องคาดเดาสาเหตุ เช่น หลังอาบน้ำแล้วมีการใช้ไฟ 3kW ประมาณหนึ่งชั่วโมง ก็คือเครื่องทำน้ำอุ่นกำลังอุ่นน้ำใหม่ และจากบันทึกของอินเวอร์เตอร์ก็รู้ได้ว่าตอนนั้นแบตเตอรี่ถูกใช้จนหมดตลอดคืน แถมเป็นตอนเช้าที่การผลิตจากโซลาร์ยังต่ำ จึงดึงไฟจากกริด
    ดังนั้นถ้าติดตั้งไทเมอร์ให้เครื่องทำน้ำอุ่นทำงานหลัง 10 โมงเช้าเท่านั้น เมื่อดวงอาทิตย์ขึ้นสูงพอและใช้ไฟจากโซลาร์ได้ ก็ลดค่าไฟได้ง่าย ๆ ตอนนี้ผมอยากติดตามการใช้น้ำได้สะดวกแบบนี้บ้าง

    • เห็นด้วยอย่างยิ่ง และผมคิดว่า แดชบอร์ดพลังงานของ Home Assistant ที่บ้านมีส่วนช่วยลดการใช้พลังงานมากกว่ามาตรการอื่น ๆ
      ถ้าอยู่ในเนเธอร์แลนด์ แค่เสียบอุปกรณ์อย่าง “slimme lezer” เข้ากับพอร์ต p1 ของมิเตอร์ไฟฟ้า มันก็จะปรากฏใน Home Assistant เป็นเซ็นเซอร์ที่เหมาะสมทันที
      แดชบอร์ดพลังงานดีมาก เพราะแสดงการใช้ก๊าซและไฟฟ้า ปริมาณผลิตไฟจากโซลาร์ สัดส่วนการใช้ไฟจากกริด/โซลาร์ และถ้ามีก็แสดงแบตเตอรี่ภายในบ้านด้วย
      ปลั๊กวัดพลังงานของ Aqara ใช้ Zigbee จึงอาจโอเวอร์โหลดได้ง่าย ส่วน Shelly เป็น WiFi แต่ค่อนข้างทนทาน เมื่อใช้ร่วมกับอุปกรณ์เหล่านี้ จะช่วยให้จัดลำดับความสำคัญของมาตรการประหยัดไฟได้ดี และยังใส่ค่าใช้จ่ายต่อ kWh กับค่าก๊าซต่อ m³ ในเซ็นเซอร์ของ Home Assistant ได้ด้วย
    • เพื่อนที่เป็นเบาหวานคนหนึ่งคุมอาหารได้ค่อนข้างแย่ แต่พอแพทย์สั่ง เครื่องวัดระดับน้ำตาลในเลือด ให้ใช้สักสองสามสัปดาห์ ก็เปลี่ยนพฤติกรรมทันที
      เป็นอุปกรณ์คล้ายแผ่นแปะขนาดใหญ่ติดที่แขน สอดเข็มบาง ๆ เข้าใต้ผิวหนัง และสื่อสารกับแอปบนโทรศัพท์เพื่อบอกค่าต่าง ๆ เช่น ระดับน้ำตาลในเลือด
      พอรู้ว่าอาหารที่กินส่งผลอย่างไร เขาก็เปลี่ยนอาหารทันที และยังรักษาพฤติกรรมนั้นอยู่แม้ตอนนี้ไม่ได้ใส่เครื่องวัดแล้ว UI ของแอปก็ดีใช้ได้ แต่สิ่งที่ได้ผลอย่างแท้จริงคือ ข้อมูลย้อนหลัง
    • ประสบการณ์นั้นยังแสดงให้เห็นข้อจำกัดของการติดตามและการเปลี่ยนพฤติกรรมที่ตามมา เราอาจทำให้เครื่องซักผ้าทำงานเร็วขึ้นหรือช้าลงเล็กน้อยให้ตรงกับช่วงที่ผลิตไฟโซลาร์ได้มาก แต่ก็ยังน่าสงสัยว่าการบริโภคที่เลื่อนได้จริงมีมากแค่ไหน และเราจะตัดสินใจไม่ใช้อุปกรณ์กินไฟมากได้เพียงใด
      ถ้ารู้ว่าการทำอาหารใช้ไฟสูง เราจะกินสลัดมากขึ้นหรือไม่? ทั่วทั้งยุโรป มิเตอร์ไฟฟ้ากำลังถูกเปลี่ยนเป็นสมาร์ตมิเตอร์ และมีการประชาสัมพันธ์อย่างมากถึงข้อดีของการดูการใช้พลังงานได้ต่อเนื่อง แต่ยังยากจะตัดสินว่าจะนำไปสู่การประหยัดอย่างมีนัยสำคัญจริงหรือไม่
      ท้ายที่สุด ผลที่ใหญ่ที่สุดจะเกิดจากเครื่องใช้ไฟฟ้าขนาดใหญ่และระบบทำความร้อน/ความเย็นตอบสนองต่อปริมาณไฟที่ผลิตเองได้ หรือใช้ประโยชน์จากช่วงที่ไฟฟ้าราคาถูกในแผนราคาผันแปรตามช่วงเวลา/รายวัน ตัวอย่างเช่น ไทเมอร์ง่าย ๆ ที่ติดตั้งเอง รีเลย์ที่ปิดฮีตติ้งระหว่างทำอาหาร หรืออุปกรณ์อย่าง Fronius Ohmpilot [1] ที่ปรับกำลังทำความร้อนตามไฟโซลาร์ส่วนเกิน
      [1] https://www.fronius.com/en/solar-energy/installers-partners/...
    • สำหรับปริมาณการใช้น้ำ ขึ้นอยู่กับชนิดของมิเตอร์ แต่มักมี ล้อสะท้อนแสง เล็ก ๆ ที่หมุนหนึ่งครั้งต่อ 1 ลิตร บางครั้งเป็นโลหะหรือมีคุณสมบัติแม่เหล็กอ่อน ๆ ดังนั้นถ้าติดเซ็นเซอร์ออปติคัลหรือเซ็นเซอร์ Hall effect กับ Arduino ก็สามารถเก็บข้อมูลแบบเรียลไทม์ความละเอียดสูงได้ค่อนข้างดี
      อีกวิธีหนึ่งที่ผมเคยทำสำเร็จคือ ติดโพรบวัดอุณหภูมิเข้ากับท่อน้ำขาเข้าโดยตรง แล้วเปรียบเทียบกับอุณหภูมิแวดล้อม ที่ที่ผมอยู่ น้ำมาจากใต้ดินจึงเย็นกว่าอากาศรอบ ๆ มากตลอดเวลา ทำให้วิธีนี้ใช้ได้
      หากอินทิเกรตความต่างของอุณหภูมิทั้งสองตามเวลา ก็จะได้ค่าประมาณที่ใช้แทนปริมาณการใช้น้ำ แต่กว่าจะได้ข้อมูลที่มีความหมายต้องลงแรงมากกว่ามาก
      เซ็นเซอร์พร็อกซิมิตีที่ตรวจจับโลหะอาจเป็นวิธีที่ง่ายที่สุด ถ้ามิเตอร์น้ำมีเกจโลหะหมุนอยู่ ก็ใช้อุปกรณ์อย่าง https://www.alldatasheet.com/view.jsp?Searchword=LJ12A3-4-Z/... ได้
    • การรวบรวมข้อมูลไฟฟ้ารายอุปกรณ์ ก็ให้ข้อมูลที่น่าสนใจเช่นกัน
      ด้วยแดชบอร์ดพลังงานของ Home Assistant เราจะรู้ได้ว่า “แร็ก” (UPS+Mac mini+อุปกรณ์ดิสก์ 5 เบย์+อื่น ๆ) ใช้ไฟจริงเท่าไรเมื่อเทียบกับตู้เย็นหรือเครื่องซักผ้า, คอมพิวเตอร์บนโต๊ะใช้ไฟน้อยแต่จอกินไฟพอสมควรเมื่อเปิดอยู่หรือไม่, ค่าไฟในการชาร์จจักรยานไฟฟ้าเท่าไร, และการตั้งเทอร์โมสตัทไว้ที่ 19 องศาแทน 20 องศาในฤดูหนาวทำให้ต่างกันอย่างไร
      ยังเห็นเรื่องน่าประหลาดใจได้ด้วย เช่น พัดลมที่ใช้บ่อยในฤดูร้อนจริง ๆ แล้วกินไฟพอ ๆ กับเครื่องทำน้ำอุ่น ผมวัดไฟด้วย Shelly Plug Plus S, 3EM, 4PM และวัดอุณหภูมิด้วย Shelly H&T Plus
  • เป็นเรื่องน่าสนใจที่ผู้เขียนประหลาดใจกับ ความผิดรูปทางเทคนิค ของเครื่องใช้ไฟฟ้าที่ขับเคลื่อนด้วย Linux โครงสร้างที่เซิร์ฟเวอร์ Node ให้บริการเว็บไซต์, API และเว็บซ็อกเก็ตผ่าน WiFi แล้วไซต์นั้นแสดงบนเอนจิน WebView เก่า ๆ ของอุปกรณ์ปลายทางที่มีข้อจำกัดมากและไม่สามารถนำไปใช้ทำอย่างอื่นได้ กลายเป็นเหมือนมาตรฐานทั่วไปไปแล้ว
    ทั้งที่งานแสดงตัวเลขไม่กี่ตัวกับกราฟแท่ง น่าจะใช้ไมโครคอนโทรลเลอร์สองตัวคุยกันผ่านบัสแบบมีสายก็พอแล้ว แต่ถ้าเป็นอุปกรณ์จ่ายไฟยุคนี้ อุปกรณ์สองชิ้นอาจกินไฟราว 16W ตอนว่างงานได้
    ถ้าเปิดทิ้งไว้ตลอด 24 ชั่วโมง 365 วัน ก็ใช้ไฟพอ ๆ กับตู้เย็นขนาดเล็ก และเมื่อเทียบกับไมโครคอนโทรลเลอร์ราคาไม่กี่ดอลลาร์สักไม่กี่ตัว การประเมินวัฏจักรชีวิตก็คงไม่ดีนัก
    แย่ที่สุดคือมีความเป็นไปได้สูงว่าอุปกรณ์ซับซ้อนนี้จะกลายเป็นก้อนอิฐหลังติดตั้งไป 3 ปี หรืออาจเร็วกว่านั้นด้วยซ้ำ

    • เหตุผลที่ บอตเน็ต Mirai ยังอาละวาดอยู่ก็คือ Android
      ในมุมธุรกิจ พวกเขาไม่อยากใช้คนราคาแพงที่เขียนโปรแกรมไมโครคอนโทรลเลอร์ได้ ถ้าเป็นอินเทอร์เฟซง่าย ๆ ที่แค่แสดงกราฟแท่ง นักพัฒนาฟรอนต์เอนด์จะถูกกว่ามาก
    • แม้จะบอกว่าเป็น “อุปกรณ์ปลายทางที่มีข้อจำกัดมากและไม่สามารถนำไปใช้ทำอย่างอื่นได้” แต่ก็ใช้เป็นบอตเน็ตหรือใช้เฝ้าระวังได้
      บอร์ดบางรุ่นมีไมโครโฟน MEMS กับกล้องอยู่แล้ว และในกล่องในรูปก็ดูเหมือนมีเลนส์กล้อง ถ้าเป็นผม ผมคงแกะอุปกรณ์ออกมาดูข้างใน หรืออย่างน้อยก็รันการวินิจฉัยเพื่อดูว่ามีฮาร์ดแวร์อะไรติดตั้งและถูกตรวจพบอยู่บ้าง
    • แทนที่จะเปิดอุปกรณ์ไร้ประโยชน์นั่นทิ้งไว้ การถอดฟิวส์กลับออกน่าจะประหยัดได้มากกว่า
    • การ เดินสายใหม่ ไปที่ไหนก็ตามหลังสร้างเสร็จแล้วนั้นติดตั้งยากมาก อาจเป็นไปได้ก็จริง แต่ถึงทำได้ก็อาจไม่สมจริงอย่างสิ้นเชิง เช่น บัสแรงดันต่ำกับสายไฟที่ไม่มีชีลด์ไม่ค่อยเหมาะจะวิ่งขนานกัน
    • ค่าไฟของการใช้ 16W ตลอด 24 ชั่วโมง 30 วัน ตามค่าไฟเฉลี่ยของสหรัฐฯ อยู่ต่ำกว่าเดือนละ 2 ดอลลาร์ จึงดูเป็นเรื่องเล็กน้อย
      https://www.wolframalpha.com/input?i=16+watts++24+hours++3...
  • ไม่แปลกใจเลยที่มีการพิมพ์ SSID กับรหัสผ่านไว้ อุปกรณ์แบบนี้น่าจะมักถูก ติดตั้งดัดแปลง ในบ้านเดิม มากกว่าจะรวมมากับบ้านสร้างใหม่ และการเดินสายเข้าไปในผนังเดิมก็ยุ่งยาก พวกเขาคงไม่อยากสร้างอุปสรรคในการขาย
    สมัยนี้ชิปเซ็ต WiFi ที่พอใช้ได้หาได้ในราคาไม่กี่ดอลลาร์
    ฟิวส์ 3A ก็ดูไม่ใช่เรื่องต้องกังวลขนาดนั้น ถ้าเป็นฟิวส์ 3A แปลว่าไฟหลักทั้งอะพาร์ตเมนต์ไม่ได้ผ่านมันอยู่แล้ว และถ้าพยายามทำแบบนั้นจริง มันคงขาดในพริบตา
    แล้ว Jazelle นี่นะ การรองรับ Java bytecode ในฮาร์ดแวร์สุดท้ายก็เป็นเทคโนโลยีที่ไปได้ไม่สวย

    • ถ้าเป็นฟิวส์ที่ซื้อจาก Amazon ก็มีเหตุผลพอให้กังวลว่ามันอาจไม่ขาด Louis Rossmann มีวิดีโอ[0] ที่ปล่อยกระแส 8A ผ่านฟิวส์ 2A แล้วออกจากห้องไปค่อนข้างนาน น่าจะหลายนาที
      [0]: https://www.youtube.com/watch?v=B90_SNNbcoU
    • โดยธรรมชาติแล้ว WiFi ให้ การแยกทางไฟฟ้าแบบกัลวานิก ด้วยระยะห่างมาก
      มันอาจไม่จำเป็นเสมอไป แต่เป็นวิธีที่คุ้มต้นทุนในการแยกส่วนที่อันตรายทางไฟฟ้าออกจากส่วนที่คนสัมผัส และหลีกเลี่ยงลูปเมื่อเกิดปัญหาได้ ไร้สายไม่ได้มีประโยชน์แค่ตัดสายไฟออกเท่านั้น
    • ผมยังอายุไม่มากพอที่จะทันมองยุคนั้นได้ชัด ๆ เลยสงสัยว่าเหตุผลที่ Jazelle ไปไม่รอดคืออะไร มองย้อนกลับไปตอนนี้ Java ดูครอบงำมาก จึงน่าแปลกที่เทคโนโลยีแบบนี้ไม่ประสบความสำเร็จ
    • ผมหัวเราะตรงส่วนที่บอกว่า “มันอยู่ใกล้ไฟเมนเลยน่ากลัวนิดหน่อย” การเปลี่ยนฟิวส์มันน่ากลัวขนาดนั้นเลยหรือ ในอังกฤษเคยเป็นเรื่องที่สอนกันในโรงเรียนประถม และฟิวส์ก็มีแค่ขาดหรือไม่ขาด ถ้าขาดก็รู้ได้ทันที
      อย่างน้อยก็ไม่ได้เจอปลั๊กที่เอาฟิวส์ตายแล้วมาห่ออย่างประณีตด้วยเปลือกอะลูมิเนียมสำหรับพิธีกรรมแห่งชีวิตนิรันดร์และความตายที่แน่นอน นั่นอาจเป็นอาชญากรรมที่ผมเคยก่อไว้ตอนเด็ก ๆ ในยุคที่ไฟไหม้ง่ายกว่านี้
      น่าสนใจที่คนจำนวนมากรู้สึกไม่สบายใจเมื่ออยู่นอก โซนปลอดภัย ของตัวเอง แน่นอนว่าผมเป็นคนประเภทชอบเอาจมูกไปยุ่งกับสิ่งที่ไม่จำเป็นต้องแตะต้องไปตลอดชีวิต
    • จริงอยู่ที่การเดินสายผ่านผนังเดิมทำได้ยาก แต่เพราะอย่างนั้นจึงทำให้การเจาะอุปกรณ์จากฝั่งตรงข้ามถนน หรือแม้แต่จากอีกฝั่งของเมืองถ้าใช้เสาอากาศทิศทาง ทำได้สะดวกขึ้น
      แน่นอนว่าถ้าความปลอดภัยเพียงพอและยังได้รับอัปเดตความปลอดภัยเป็นประจำก็ไม่ใช่ปัญหา และเราคงได้แต่สันนิษฐานว่าอุปกรณ์ที่ผู้เขียนพบเป็นข้อยกเว้นที่หายากมากซึ่งไม่เข้าเงื่อนไขเหล่านั้น
  • ชื่อบริษัท Netthings ดูคุ้น ๆ เพราะผมเคยอ่านบทความที่บอกว่าอุปกรณ์ของบริษัทนี้สูญเสียการซิงก์เวลา เนื่องจากเซิร์ฟเวอร์ NTP ที่ฮาร์ดโค้ดไว้ถูกไฟร์วอลล์บล็อก
    บทความ: https://strugglers.net/~andy/blog/2018/12/24/the-internet-of...
    ดูเหมือนบริษัทเข้าสู่กระบวนการชำระบัญชีในปี 2018 ดังนั้นคงยากที่จะได้รับการสนับสนุนสำหรับอุปกรณ์นี้

    • ข้อความในคู่มือที่ว่า “DATE & TIME ARE ALWAYS CORRECT AND NEVER NEED TO BE ADJUSTED” จึงยิ่งยอดเยี่ยมขึ้นไปอีก
    • ลิงก์นี้น่าทึ่งจริง ๆ เลยเพิ่มไว้ท้ายบทความ
  • “DATE & TIME ARE ALWAYS CORRECT AND NEVER NEED TO BE ADJUSTED” อ่านแล้วเหมือนประโยคจากนิยายของ Philip K. Dick

    • อาจเป็นวิธีที่คนเขียนเอกสารเทคนิคบอกว่า “มัน ping เซิร์ฟเวอร์ NTP ได้ ไม่ต้องห่วง” ก็ได้ https://news.ycombinator.com/item?id=39065780
      เห็นได้ชัดว่าไม่ได้จบสวยนัก
    • ตอนแรกผมเดาว่าน่าจะมี ฟังก์ชันปรับเวลา แบบเชื่อมกับเสาวิทยุในสหราชอาณาจักร แต่ตามบทความ อุปกรณ์นี้เป็นผลิตภัณฑ์ปี 2015 จึงมีโอกาสสูงว่าไม่ใช่
  • มุกที่ว่า “ตัว C ใน IoT คงย่อมาจาก cost-effective” นั้นสั้นและคมดี แต่ถ้ารู้ว่า SoC ที่รองรับ WiFi ราคาถูกและคุ้มต้นทุนแค่ไหนจริง ๆ ก็อาจแปลกใจได้
    ในหลายกรณี WiFi แทบจะแถมมาฟรี และ SoC แบบนี้ส่วนใหญ่ไม่มีคอนโทรลเลอร์ Ethernet มาให้เป็นพื้นฐาน ดังนั้นถ้าเหมาะกับกรณีใช้งาน WiFi ก็จะคุ้มต้นทุนกว่า
    แน่นอนว่าโปรโตคอลทางกายภาพหรือวิธีเชื่อมต่อแบบอื่นก็เป็นไปได้ แต่สำหรับไคลเอนต์แบบติดตั้งดัดแปลงย้อนหลังเช่นนี้ WiFi หรือโปรโตคอลไร้สายทั่วไปน่าจะดีที่สุด

    • ถ้ามองเฉพาะมุมวัสดุ ไมโครคอนโทรลเลอร์ราคาถูกที่รองรับ WiFi อย่าง esp8266 จำนวน 2 ตัว น่าจะมีต้นทุนผู้ผลิตรวมกันประมาณ 4–5 ดอลลาร์
      ใกล้เคียงกับสาย 3 เมตร คอนเนกเตอร์ และชิปราคาถูกสำหรับจัดการการเชื่อมต่อสาย แถมค่าแรงติดตั้งสายยังแพงกว่านั้นมาก ดังนั้นจึงไม่ค่อยเข้าใจว่าทำไมถึงมองว่าการเชื่อมต่อผ่าน WiFi เป็นการสิ้นเปลือง
    • ESP32 ตอนนี้แทบจะเป็นตัวเลือกมาตรฐานไปแล้ว ถ้าสั่งในปริมาณหนึ่งก็ซื้อได้ต่ำกว่า 1 ดอลลาร์ และมี WiFi กับ Bluetooth มาให้เลย ทุกวันนี้การไม่ใช้ WiFi กลับแพงกว่าเสียอีก
  • มีการขอให้ผู้เขียนต้นฉบับส่งไฟล์ /etc/shadow ที่เคยลอง brute force ด้วย John The Ripper แล้วไม่สำเร็จมาให้ และเนื่องจากเป็นแฮช UNIX crypt() แบบเก่า จึงสามารถใช้ hashcat กับ RTX 4090 จำนวน 12 ตัว แคร็กรหัสผ่าน root ได้ในเวลาประมาณ 7 ชั่วโมง
    รหัสผ่าน root คือ Newt@rd$
    อุปกรณ์นี้เข้าถึง root ผ่าน TCF ได้อยู่แล้วโดยไม่ต้องยืนยันตัวตน จึงไม่ได้มีประโยชน์เป็นพิเศษนัก แต่รหัสผ่านนี้อาจถูกนำไปใช้ซ้ำที่อื่นได้

  • เผื่อว่าโดเมนจะถูกกลืนหายไปกับกาลเวลา น่าจะดีถ้า โฮสต์บทความไว้บนอุปกรณ์นั้นเอง

  • 3A คือ 720W ถ้ากล่องเล็ก ๆ นั้นปล่อยความร้อนขนาดนั้น ตู้ติดผนังทั้งตู้คงกลายเป็นเตาอบจริง ๆ
    อีกอย่าง ถ้ามิเตอร์พลังงานใช้ไฟมากขนาดนั้นก็ขัดกับจุดประสงค์ของมันเอง และคล้ายกับการทดสอบไม้ขีดไฟ คงไม่เกิน 10W อย่างมาก และกระแสกระชากตอนเริ่มทำงานก็คงไม่ได้สูงขนาดนั้น
    ฟิวส์ 1A น่าจะเพียงพอ และการติดตั้งก็ดูเรียบร้อยพอสมควร ดังนั้นการอยู่ใกล้ไฟเมนก็ไม่ได้ดูน่ากลัวขนาดนั้น

    • ฟิวส์ 3A ถูกใช้ไม่ใช่เพราะเป็นค่าที่เหมาะที่สุดสำหรับอุปกรณ์นี้ แต่เพราะระบบเดินสายไฟของสหราชอาณาจักร
      เครื่องใช้ไฟฟ้าทุกชนิดในสหราชอาณาจักรจะมีฟิวส์ตรงจุดที่เชื่อมเข้ากับสายไฟของอาคาร โดยปกติอยู่ในปลั๊ก แต่ก็อาจอยู่ในที่ใส่ฟิวส์แบบติดตั้งตายตัวเหมือนอุปกรณ์นี้ได้
      เนื่องจากมองว่าถ้าค่ามีหลากหลายเกินไปจะทำให้ผู้ใช้สับสนและยุ่งยาก ฟิวส์เหล่านี้จึงถูกจำกัดให้มีขนาดเท่ากันและมีค่ามาตรฐานเพียง 13A, 5A, 3A อย่างใดอย่างหนึ่ง ตามที่มีคนกล่าวไว้ที่อื่น ฟิวส์นี้ซื้อได้แม้ในซูเปอร์มาร์เก็ตและร้านสะดวกซื้อในสหราชอาณาจักร
      ถ้า 3A สูงเกินไปสำหรับอุปกรณ์ ผู้ออกแบบควรใช้สายเฟล็กซ์พิกัด 3A เพื่อให้ฟิวส์ฝั่งปลั๊กเป็นตัวป้องกัน และเพิ่มการป้องกันกระแสที่ต่ำกว่าทางฝั่งอุปกรณ์
      ระบบแบบอังกฤษเป็นโครงสร้างที่ชาญฉลาด ซึ่งรายละเอียดปลีกย่อยอย่างค่าฟิวส์มาตรฐานสอดคล้องกันดีในช่วงที่เริ่มนำมาใช้ แต่สำหรับบ้านสมัยใหม่ที่มีอุปกรณ์กินกระแสต่ำจำนวนมากแล้ว ถือว่าค่อนข้างออกแบบเผื่อเกินและไม่ได้เหมาะที่สุด
    • ขึ้นอยู่กับ พิกัดเวลา ของฟิวส์และกระแสกระชากตอนเริ่มทำงานของแหล่งจ่ายไฟ กระแสกระชากอาจเกิน 10A ได้ ดังนั้นฟิวส์ 1A บางรุ่นอาจขาดเป็นครั้งคราวเมื่อเปิดอุปกรณ์
  • ถ้าอยากดู ข้อมูลการใช้งานแบบเรียลไทม์ แบบนี้ที่บ้าน ขอแนะนำ IoTaWatt อย่างยิ่ง: https://iotawatt.com
    มันเป็นมอนิเตอร์พลังงานแบบโลคัลล้วนที่ติดตั้งในแผงเบรกเกอร์ของบ้าน และสามารถดูแดชบอร์ดจากเว็บเซิร์ฟเวอร์โลคัลที่รันอยู่บนอุปกรณ์ หรืออ่านข้อมูลผ่าน API ได้
    คุณเลือกจำนวนเซนเซอร์เองได้ และมอนิเตอร์ได้ทั้งบ้านรวมถึงวงจรไฟฟ้าแต่ละวงจร
    เช่น ติดตามตอนที่เครื่องใช้ไฟฟ้าอย่างเครื่องซักผ้า เครื่องล้างจาน หรือไมโครเวฟเริ่มและหยุดทำงาน แล้วทริกเกอร์ระบบอัตโนมัติ
    อย่างไรก็ตาม ถ้าจะติดตั้งเองต้องค้นคว้า มีความรู้พื้นฐานด้านไฟฟ้า และต้องรับมือกับงานเชื่อมต่อไฟเมนแรงดันสูงอยู่บ้าง แต่ก็ยังเข้าถึงได้ และการตั้งค่าก็ง่าย
    หน้าตาเป็นแบบนี้: https://i.ibb.co/qBVmBD1/IMG-1595.jpg