หน้าจอสัมผัสในห้องของฉันคืออะไรกันแน่?
(laplab.me)- หน้าจอสัมผัสปริศนาในอะพาร์ตเมนต์อังกฤษที่สร้างเสร็จในปี 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.63rc680/tcp: HTTP บน Node.js1534/tcp:micromuse-lm?3000/tcp: HTTP บน Node.js41142/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 แทน
- หน้าคำแนะนำ: TCF/Python_Scripting
- คำแนะนำ repository เก่า: เส้นทาง git.eclipse.org
- repository ปัจจุบัน: Eclipse GitLab TCF
- เอกสารโปรโตคอล: TCF Specification, TCF Services
- ด้วยบริการ
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 อยู่ในโฟลเดอร์
binpulse-apppulse.koct-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 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เมื่อไม่กี่ปีก่อน ผมตระหนักว่าถ้าจะช่วยให้ผู้คนจัดการ ปริมาณการใช้ค่าสาธารณูปโภค อย่างไฟฟ้า น้ำ และก๊าซ ให้เป็นมิตรต่อสิ่งแวดล้อมและประหยัดมากขึ้น จำเป็นต้องมีข้อมูลที่ดีกว่าตัวเลขรวมรายเดือนมาก
อย่างน้อยควรดูปริมาณการใช้ได้ในระดับประมาณ ทุก 5 นาที ถึงจะสังเกตได้ว่า “เปิดฮีตเตอร์ไฟฟ้าไว้ไม่กี่ชั่วโมง ใช้ไฟมากกว่าไฟส่องสว่างทั้งเดือน”
ในครัวเรือนชนชั้นกลางของแอฟริกาใต้ อินเวอร์เตอร์และแผงโซลาร์เซลล์เป็นเรื่องปกติเพราะไฟฟ้าจ่ายไม่เสถียร บ้านของผมเองก็ดูประวัติการใช้ไฟฟ้าทั้งหมดได้ จึงระบุได้ง่ายขึ้นว่าควรเพิ่มประสิทธิภาพตรงไหน
แต่ก็ยังเป็นข้อมูลรวมอยู่ดี จึงต้องคาดเดาสาเหตุ เช่น หลังอาบน้ำแล้วมีการใช้ไฟ 3kW ประมาณหนึ่งชั่วโมง ก็คือเครื่องทำน้ำอุ่นกำลังอุ่นน้ำใหม่ และจากบันทึกของอินเวอร์เตอร์ก็รู้ได้ว่าตอนนั้นแบตเตอรี่ถูกใช้จนหมดตลอดคืน แถมเป็นตอนเช้าที่การผลิตจากโซลาร์ยังต่ำ จึงดึงไฟจากกริด
ดังนั้นถ้าติดตั้งไทเมอร์ให้เครื่องทำน้ำอุ่นทำงานหลัง 10 โมงเช้าเท่านั้น เมื่อดวงอาทิตย์ขึ้นสูงพอและใช้ไฟจากโซลาร์ได้ ก็ลดค่าไฟได้ง่าย ๆ ตอนนี้ผมอยากติดตามการใช้น้ำได้สะดวกแบบนี้บ้าง
ถ้าอยู่ในเนเธอร์แลนด์ แค่เสียบอุปกรณ์อย่าง “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/...
อีกวิธีหนึ่งที่ผมเคยทำสำเร็จคือ ติดโพรบวัดอุณหภูมิเข้ากับท่อน้ำขาเข้าโดยตรง แล้วเปรียบเทียบกับอุณหภูมิแวดล้อม ที่ที่ผมอยู่ น้ำมาจากใต้ดินจึงเย็นกว่าอากาศรอบ ๆ มากตลอดเวลา ทำให้วิธีนี้ใช้ได้
หากอินทิเกรตความต่างของอุณหภูมิทั้งสองตามเวลา ก็จะได้ค่าประมาณที่ใช้แทนปริมาณการใช้น้ำ แต่กว่าจะได้ข้อมูลที่มีความหมายต้องลงแรงมากกว่ามาก
เซ็นเซอร์พร็อกซิมิตีที่ตรวจจับโลหะอาจเป็นวิธีที่ง่ายที่สุด ถ้ามิเตอร์น้ำมีเกจโลหะหมุนอยู่ ก็ใช้อุปกรณ์อย่าง 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 ปี หรืออาจเร็วกว่านั้นด้วยซ้ำ
ในมุมธุรกิจ พวกเขาไม่อยากใช้คนราคาแพงที่เขียนโปรแกรมไมโครคอนโทรลเลอร์ได้ ถ้าเป็นอินเทอร์เฟซง่าย ๆ ที่แค่แสดงกราฟแท่ง นักพัฒนาฟรอนต์เอนด์จะถูกกว่ามาก
บอร์ดบางรุ่นมีไมโครโฟน MEMS กับกล้องอยู่แล้ว และในกล่องในรูปก็ดูเหมือนมีเลนส์กล้อง ถ้าเป็นผม ผมคงแกะอุปกรณ์ออกมาดูข้างใน หรืออย่างน้อยก็รันการวินิจฉัยเพื่อดูว่ามีฮาร์ดแวร์อะไรติดตั้งและถูกตรวจพบอยู่บ้าง
https://www.wolframalpha.com/input?i=16+watts++24+hours++3...
ไม่แปลกใจเลยที่มีการพิมพ์ SSID กับรหัสผ่านไว้ อุปกรณ์แบบนี้น่าจะมักถูก ติดตั้งดัดแปลง ในบ้านเดิม มากกว่าจะรวมมากับบ้านสร้างใหม่ และการเดินสายเข้าไปในผนังเดิมก็ยุ่งยาก พวกเขาคงไม่อยากสร้างอุปสรรคในการขาย
สมัยนี้ชิปเซ็ต WiFi ที่พอใช้ได้หาได้ในราคาไม่กี่ดอลลาร์
ฟิวส์ 3A ก็ดูไม่ใช่เรื่องต้องกังวลขนาดนั้น ถ้าเป็นฟิวส์ 3A แปลว่าไฟหลักทั้งอะพาร์ตเมนต์ไม่ได้ผ่านมันอยู่แล้ว และถ้าพยายามทำแบบนั้นจริง มันคงขาดในพริบตา
แล้ว Jazelle นี่นะ การรองรับ Java bytecode ในฮาร์ดแวร์สุดท้ายก็เป็นเทคโนโลยีที่ไปได้ไม่สวย
[0]: https://www.youtube.com/watch?v=B90_SNNbcoU
มันอาจไม่จำเป็นเสมอไป แต่เป็นวิธีที่คุ้มต้นทุนในการแยกส่วนที่อันตรายทางไฟฟ้าออกจากส่วนที่คนสัมผัส และหลีกเลี่ยงลูปเมื่อเกิดปัญหาได้ ไร้สายไม่ได้มีประโยชน์แค่ตัดสายไฟออกเท่านั้น
อย่างน้อยก็ไม่ได้เจอปลั๊กที่เอาฟิวส์ตายแล้วมาห่ออย่างประณีตด้วยเปลือกอะลูมิเนียมสำหรับพิธีกรรมแห่งชีวิตนิรันดร์และความตายที่แน่นอน นั่นอาจเป็นอาชญากรรมที่ผมเคยก่อไว้ตอนเด็ก ๆ ในยุคที่ไฟไหม้ง่ายกว่านี้
น่าสนใจที่คนจำนวนมากรู้สึกไม่สบายใจเมื่ออยู่นอก โซนปลอดภัย ของตัวเอง แน่นอนว่าผมเป็นคนประเภทชอบเอาจมูกไปยุ่งกับสิ่งที่ไม่จำเป็นต้องแตะต้องไปตลอดชีวิต
แน่นอนว่าถ้าความปลอดภัยเพียงพอและยังได้รับอัปเดตความปลอดภัยเป็นประจำก็ไม่ใช่ปัญหา และเราคงได้แต่สันนิษฐานว่าอุปกรณ์ที่ผู้เขียนพบเป็นข้อยกเว้นที่หายากมากซึ่งไม่เข้าเงื่อนไขเหล่านั้น
ชื่อบริษัท 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” อ่านแล้วเหมือนประโยคจากนิยายของ Philip K. Dick
เห็นได้ชัดว่าไม่ได้จบสวยนัก
มุกที่ว่า “ตัว C ใน IoT คงย่อมาจาก cost-effective” นั้นสั้นและคมดี แต่ถ้ารู้ว่า SoC ที่รองรับ WiFi ราคาถูกและคุ้มต้นทุนแค่ไหนจริง ๆ ก็อาจแปลกใจได้
ในหลายกรณี WiFi แทบจะแถมมาฟรี และ SoC แบบนี้ส่วนใหญ่ไม่มีคอนโทรลเลอร์ Ethernet มาให้เป็นพื้นฐาน ดังนั้นถ้าเหมาะกับกรณีใช้งาน WiFi ก็จะคุ้มต้นทุนกว่า
แน่นอนว่าโปรโตคอลทางกายภาพหรือวิธีเชื่อมต่อแบบอื่นก็เป็นไปได้ แต่สำหรับไคลเอนต์แบบติดตั้งดัดแปลงย้อนหลังเช่นนี้ WiFi หรือโปรโตคอลไร้สายทั่วไปน่าจะดีที่สุด
ใกล้เคียงกับสาย 3 เมตร คอนเนกเตอร์ และชิปราคาถูกสำหรับจัดการการเชื่อมต่อสาย แถมค่าแรงติดตั้งสายยังแพงกว่านั้นมาก ดังนั้นจึงไม่ค่อยเข้าใจว่าทำไมถึงมองว่าการเชื่อมต่อผ่าน WiFi เป็นการสิ้นเปลือง
มีการขอให้ผู้เขียนต้นฉบับส่งไฟล์
/etc/shadowที่เคยลอง brute force ด้วย John The Ripper แล้วไม่สำเร็จมาให้ และเนื่องจากเป็นแฮช UNIXcrypt()แบบเก่า จึงสามารถใช้ hashcat กับ RTX 4090 จำนวน 12 ตัว แคร็กรหัสผ่าน root ได้ในเวลาประมาณ 7 ชั่วโมงรหัสผ่าน root คือ
Newt@rd$อุปกรณ์นี้เข้าถึง root ผ่าน TCF ได้อยู่แล้วโดยไม่ต้องยืนยันตัวตน จึงไม่ได้มีประโยชน์เป็นพิเศษนัก แต่รหัสผ่านนี้อาจถูกนำไปใช้ซ้ำที่อื่นได้
เผื่อว่าโดเมนจะถูกกลืนหายไปกับกาลเวลา น่าจะดีถ้า โฮสต์บทความไว้บนอุปกรณ์นั้นเอง
3A คือ 720W ถ้ากล่องเล็ก ๆ นั้นปล่อยความร้อนขนาดนั้น ตู้ติดผนังทั้งตู้คงกลายเป็นเตาอบจริง ๆ
อีกอย่าง ถ้ามิเตอร์พลังงานใช้ไฟมากขนาดนั้นก็ขัดกับจุดประสงค์ของมันเอง และคล้ายกับการทดสอบไม้ขีดไฟ คงไม่เกิน 10W อย่างมาก และกระแสกระชากตอนเริ่มทำงานก็คงไม่ได้สูงขนาดนั้น
ฟิวส์ 1A น่าจะเพียงพอ และการติดตั้งก็ดูเรียบร้อยพอสมควร ดังนั้นการอยู่ใกล้ไฟเมนก็ไม่ได้ดูน่ากลัวขนาดนั้น
เครื่องใช้ไฟฟ้าทุกชนิดในสหราชอาณาจักรจะมีฟิวส์ตรงจุดที่เชื่อมเข้ากับสายไฟของอาคาร โดยปกติอยู่ในปลั๊ก แต่ก็อาจอยู่ในที่ใส่ฟิวส์แบบติดตั้งตายตัวเหมือนอุปกรณ์นี้ได้
เนื่องจากมองว่าถ้าค่ามีหลากหลายเกินไปจะทำให้ผู้ใช้สับสนและยุ่งยาก ฟิวส์เหล่านี้จึงถูกจำกัดให้มีขนาดเท่ากันและมีค่ามาตรฐานเพียง 13A, 5A, 3A อย่างใดอย่างหนึ่ง ตามที่มีคนกล่าวไว้ที่อื่น ฟิวส์นี้ซื้อได้แม้ในซูเปอร์มาร์เก็ตและร้านสะดวกซื้อในสหราชอาณาจักร
ถ้า 3A สูงเกินไปสำหรับอุปกรณ์ ผู้ออกแบบควรใช้สายเฟล็กซ์พิกัด 3A เพื่อให้ฟิวส์ฝั่งปลั๊กเป็นตัวป้องกัน และเพิ่มการป้องกันกระแสที่ต่ำกว่าทางฝั่งอุปกรณ์
ระบบแบบอังกฤษเป็นโครงสร้างที่ชาญฉลาด ซึ่งรายละเอียดปลีกย่อยอย่างค่าฟิวส์มาตรฐานสอดคล้องกันดีในช่วงที่เริ่มนำมาใช้ แต่สำหรับบ้านสมัยใหม่ที่มีอุปกรณ์กินกระแสต่ำจำนวนมากแล้ว ถือว่าค่อนข้างออกแบบเผื่อเกินและไม่ได้เหมาะที่สุด
ถ้าอยากดู ข้อมูลการใช้งานแบบเรียลไทม์ แบบนี้ที่บ้าน ขอแนะนำ IoTaWatt อย่างยิ่ง: https://iotawatt.com
มันเป็นมอนิเตอร์พลังงานแบบโลคัลล้วนที่ติดตั้งในแผงเบรกเกอร์ของบ้าน และสามารถดูแดชบอร์ดจากเว็บเซิร์ฟเวอร์โลคัลที่รันอยู่บนอุปกรณ์ หรืออ่านข้อมูลผ่าน API ได้
คุณเลือกจำนวนเซนเซอร์เองได้ และมอนิเตอร์ได้ทั้งบ้านรวมถึงวงจรไฟฟ้าแต่ละวงจร
เช่น ติดตามตอนที่เครื่องใช้ไฟฟ้าอย่างเครื่องซักผ้า เครื่องล้างจาน หรือไมโครเวฟเริ่มและหยุดทำงาน แล้วทริกเกอร์ระบบอัตโนมัติ
อย่างไรก็ตาม ถ้าจะติดตั้งเองต้องค้นคว้า มีความรู้พื้นฐานด้านไฟฟ้า และต้องรับมือกับงานเชื่อมต่อไฟเมนแรงดันสูงอยู่บ้าง แต่ก็ยังเข้าถึงได้ และการตั้งค่าก็ง่าย
หน้าตาเป็นแบบนี้: https://i.ibb.co/qBVmBD1/IMG-1595.jpg