Govee H5074, H5075, H5100, H5101, H5104, H5105, H5174, H5177 และ H5179 Bluetooth Low Energy Temperature and Humidity Logger และ Govee H5181, H5182 และ H5183 เครื่องวัดอุณหภูมิเนื้อสัตว์อัจฉริยะ
ปัจจุบันอุปกรณ์แต่ละชิ้นมีราคาต่ำกว่า 15 ดอลลาร์ใน Amazon และใช้ BLE เพื่อการสื่อสาร ดังนั้นจึงไม่จำเป็นต้องตั้งค่าบัญชีผู้ผลิตเพื่อติดตามข้อมูล
GoveeBTTempLogger ถูกสร้างขึ้นครั้งแรกโดยใช้ Microsoft Visual Studio 2017 โดยกำหนดเป้าหมายไปที่โปรเซสเซอร์ ARM ที่ทำงานบน Linux ฉันใช้ Raspberry Pi 4 เป็นโฮสต์ linux ของฉัน ฉันได้ตรวจสอบแล้วว่าโค้ดเดียวกันนี้ใช้ได้กับ Raspbery Pi ZeroW, Raspberry Pi Zero2W, Raspberry Pi 3b และ Raspberry Pi 5
GoveeBTTempLogger สร้างไฟล์บันทึก หากระบุโดยตัวเลือก -l หรือ --log สำหรับอุปกรณ์แต่ละเครื่องจะได้รับข้อมูลที่เผยแพร่จากการใช้รูปแบบที่แยกแท็บอย่างง่าย ซึ่งเข้ากันได้กับการโหลดใน Microsoft Excel แต่ละบรรทัดในไฟล์บันทึกจะมีวันที่ (บันทึกเป็น UTC) อุณหภูมิ ความชื้นสัมพัทธ์ และเปอร์เซ็นต์แบตเตอรี่ รูปแบบการตั้งชื่อไฟล์บันทึกประกอบด้วยชื่ออุปกรณ์ Govee ที่ไม่ซ้ำกัน ปีปัจจุบัน และเดือน ไฟล์บันทึกใหม่จะถูกสร้างขึ้นทุกเดือน
เพิ่มตัวเลือก --index เพื่อสร้างไฟล์ดัชนี html ตามไฟล์บันทึกที่มีอยู่ ตัวเลือกนี้จะสร้างไฟล์ดัชนีและออกโดยไม่ต้องรันโค้ดบลูทูธใดๆ สามารถทำงานได้โดยไม่กระทบต่ออินสแตนซ์ที่รันอยู่ของโปรแกรมที่กำลังฟังโฆษณา Bluetooth ตัวอย่างคำสั่งในการสร้างดัชนี:
sudo /usr/local/bin/goveebttemplogger --log /var/log/goveebttemplogger/ --index index.html
การแปลงเป็น Bluetooth โดยใช้ BlueZ ผ่าน DBus! DBus เป็นวิธีการสื่อสาร Bluetooth ที่ได้รับการอนุมัติ ดูเหมือนว่าจะใช้ CPU มากกว่ารหัส HCI ล้วนๆ เมื่อฉันลองสร้างสิ่งนี้บนเครื่องที่ใช้ Raspbian GNU/Linux 10 (บัสเตอร์) ระบบจะสร้างขึ้นมา แต่รูทีน BlueZ DBus เพื่อค้นหาอะแดปเตอร์บลูทูธล้มเหลว ด้วยเหตุนี้ ฉันจึงทิ้งคำสั่ง HCI เก่าไว้ในโค้ดและกลับไปใช้ HCI หาก DBus ล้มเหลว
ฉันได้เพิ่มตัวเลือก --HCI เพื่อให้ผู้ใช้สามารถบังคับให้รันคำสั่ง HCI แทนที่จะใช้อินเทอร์เฟซ DBus
เมื่อรัน DBus จะไม่มีวิธีรันในโหมดการสแกนแบบพาสซีฟ ตัวเลือก --passive จะถูกละเว้น
เมื่อใช้งานโหมด HCI ไวท์ลิสต์ที่สร้างด้วยตัวเลือก --only จะถูกส่งไปยังฮาร์ดแวร์บลูทูธ และเฉพาะอุปกรณ์เหล่านั้นเท่านั้นที่จะถูกส่งจากฮาร์ดแวร์ไปยังซอฟต์แวร์ ในรายการไวท์ลิสต์ของโหมด DBus ดูเหมือนจะไม่พร้อมใช้งาน ในโหมด DBus ฉันกำลังกรองเอาต์พุตตามรายการที่อนุญาต
รหัสได้รับการจัดเรียงใหม่เล็กน้อยเพื่อความชัดเจน โดยย้ายรหัสการเข้าถึง HCI ทั้งหมดไปไว้ในบล็อก #ifdef ไฟล์ CMakeLists.txt กำหนด _BLUEZ_HCI_ เพื่อเก็บโค้ดไว้ในแอปพลิเคชัน การลบหรือการใส่ความคิดเห็นในบรรทัด add_compile_definitions( BLUEZ_HCI ) จะคอมไพล์โดยไม่มีไลบรารี Bluetooth HCI ฉันควรจะเพิกเฉยต่อไฟล์ att-types.h, uuid.c และ uuid.h ได้ ฉันมีความเชี่ยวชาญที่ CMake เพื่อทำสิ่งนี้
รหัส HCI ใช้ฟังก์ชัน libbluetooth จาก BlueZ บน linux เพื่อเปิดอุปกรณ์ Bluetooth เริ่มต้นและฟังโฆษณาพลังงานต่ำจากเทอร์โมมิเตอร์ Govee
อัปเดตสคริปต์การติดตั้ง postinst debian เพื่อเพิ่มผู้ใช้ goveebttemplogger และทำการเปลี่ยนแปลงการอนุญาตในไดเรกทอรีเริ่มต้นอย่างเหมาะสม เปลี่ยนไฟล์บริการเพื่อระบุการรันโปรแกรมเป็นผู้ใช้ goveebttemplogger สิ่งนี้เป็นไปได้เนื่องจากการเข้าถึง BlueZ ผ่าน DBus ไม่จำเป็นต้องเข้าถึงรูท
เพิ่มฟังก์ชันเอาต์พุต SVG ซึ่งสร้างกราฟ SVG โดยตรงจากข้อมูลภายในในไดเร็กทอรีที่ระบุ สาเหตุทำให้โปรแกรมใช้เวลานานขึ้นในการเริ่มต้น เนื่องจากจะพยายามอ่านข้อมูลที่บันทึกไว้เก่าทั้งหมดลงในโครงสร้างหน่วยความจำภายในเมื่อเริ่มทำงาน เมื่อโปรแกรมเข้าสู่สถานะการทำงานปกติ โปรแกรมจะเขียนไฟล์ SVG สี่ไฟล์ต่ออุปกรณ์ไปยังไดเร็กทอรีที่ระบุทุกๆ ห้านาที
นี่คือชื่อไฟล์ตัวอย่าง: gvh-E35ECC215C0F-day.svg
อุณหภูมิและความชื้นล่าสุดจะแสดงในระดับแนวตั้งทางด้านซ้าย ระดับอุณหภูมิจะแสดงที่ด้านซ้ายของกราฟ ระดับความชื้นจะแสดงที่ด้านขวา ข้อมูลเวลาล่าสุดจะแสดงที่มุมขวาบน โดยมีชื่ออยู่ที่ด้านซ้ายบนของกราฟ
ข้อมูลอุณหภูมิและความชื้นต่ำสุดและสูงสุดอาจแสดงตามรายละเอียดของกราฟ สิ่งนี้มีประโยชน์มากที่สุดในกราฟรายปี โดยที่รายละเอียดคือหนึ่งวัน นี่คือกราฟรายปีที่สอดคล้องกันสำหรับกราฟรายวันก่อนหน้า: gvh-E35ECC215C0F-year.svg
ความชื้นและระดับความชื้นทางด้านขวาจะถูกละเว้นโดยอัตโนมัติหากข้อมูลปัจจุบันรายงานความชื้นเป็นศูนย์ เครื่องวัดอุณหภูมิเนื้อสัตว์รายงานอุณหภูมิปัจจุบันและอุณหภูมิที่ตั้งปลุกไว้ แต่ไม่มีการวัดความชื้น
ไฟล์ข้อความธรรมดาที่จับคู่ที่อยู่ Bluetooth กับชื่อจะถูกอ่านจากชื่อไฟล์ gvh-titlemap.txt ในไดเร็กทอรีเอาต์พุต svg แต่ละบรรทัดในไฟล์ควรประกอบด้วยที่อยู่บลูทูธ (ในรูปแบบเลขฐานสิบหกโดยมี ( :
) ระหว่างออคเต็ต) ช่องว่าง และชื่อ ดู gvh-titlemap.txt เป็นตัวอย่าง หากไม่มีการจับคู่ชื่อ ที่อยู่ Bluetooth จะใช้สำหรับชื่อกราฟ
หากไม่ได้เพิ่มตัวเลือก --svg ลงในบรรทัดคำสั่ง โปรแกรมควรทำงานต่อไปเหมือนเดิมทุกประการเหมือนเมื่อก่อน
libbluetooth-dev
libdbus-1-dev
ดูเหมือนว่าจะสร้างแพ็คเกจเดเบียนได้ดีกว่าด้วยขนาดที่ติดตั้ง การขึ้นต่อกัน และรายละเอียด md5sums ที่ถูกต้อง ฉันยังคงเรียนรู้ CMake อยู่ ดังนั้นอาจมีการอัปเดตเป็นประจำระยะหนึ่ง
sudo apt install build-essential cmake git libbluetooth-dev libdbus-1-dev
git clone https://github.com/wcbonner/GoveeBTTempLogger.git
cmake -S GoveeBTTempLogger -B GoveeBTTempLogger/build
cmake --build GoveeBTTempLogger/build
pushd GoveeBTTempLogger/build && cpack . && popd
แพ็คเกจการติดตั้งจะสร้างหน่วย systemd goveebttemplogger.service
ซึ่งจะเริ่ม GoveeBTTempLogger โดยอัตโนมัติ บริการสามารถกำหนดค่าผ่านคำสั่ง systemctl edit goveebttemplogger.service
ตามค่าเริ่มต้น ระบบจะเขียนบันทึกไปที่ /var/log/goveebttemplogger
และเขียนไฟล์ SVG ไปที่ /var/www/html/goveebttemplogger
รูทีนการติดตั้ง postinst จะสร้างผู้ใช้หนึ่งรายและสามไดเร็กทอรี นอกจากนี้ยังจะเปลี่ยนการอนุญาตในไดเรกทอรีเหล่านั้นเพื่อให้ผู้ใช้ที่สร้างขึ้นใหม่เป็นเจ้าของและสามารถเขียนได้
adduser --system --ingroup www-data goveebttemplogger
mkdir --verbose --mode 0755 --parents /var/log/goveebttemplogger /var/cache/goveebttemplogger /var/www/html/goveebttemplogger
chown --changes --recursive goveebttemplogger:www-data /var/log/goveebttemplogger /var/cache/goveebttemplogger /var/www/html/goveebttemplogger
chmod --changes --recursive 0644 /var/log/goveebttemplogger/* /var/cache/goveebttemplogger/* /var/www/html/goveebttemplogger/*
sudo setcap 'cap_net_raw,cap_net_admin+eip' /usr/local/bin/goveebttemplogger
ส่วนไฟล์ systemd Unit ExecStart
เพื่อเริ่มบริการถูกแบ่งออกเป็นหลายบรรทัดเพื่อความชัดเจน
[Service]
Type=simple
Restart=always
RestartSec=30
User=goveebttemplogger
Group=www-data
ExecStart=/usr/local/bin/goveebttemplogger
--verbose 0
--log /var/log/goveebttemplogger
--time 60
--svg /var/www/html/goveebttemplogger --battery 8 --minmax 8
--cache /var/cache/goveebttemplogger
KillSignal=SIGINT
ตามตัวอย่าง หากต้องการปิดใช้งานไฟล์ SVG เพิ่มการใช้คำฟุ่มเฟือย และเปลี่ยนไดเร็กทอรีที่เขียนไฟล์บันทึก ให้ใช้ sudo systemctl edit --full goveebttemplogger.service
แล้วป้อนไฟล์ต่อไปนี้ในตัวแก้ไข:
[Service]
Type=simple
Restart=always
RestartSec=5
ExecStartPre=/bin/mkdir -p /var/log/gvh
ExecStart=/usr/local/bin/goveebttemplogger
--verbose 1
--log /var/log/gvh
--time 60
--download
KillSignal=SIGINT
จากนั้นใช้ sudo systemctl restart goveebttemplogger
เพื่อรีสตาร์ท GoveeBTTempLogger
คำสั่งสองคำสั่งแรกด้านล่างตั้งค่าสภาพแวดล้อมที่จำเป็นสำหรับ Visual Studio 2022 เพื่อสร้างโปรเจ็กต์ คำสั่งที่สามเพิ่มไลบรารีที่จำเป็นเพื่อสร้างโปรเจ็กต์บลูทูธ
sudo apt-get update
sudo apt install g++ gdb make ninja-build rsync zip -y
sudo apt install bluetooth bluez libbluetooth-dev -y
รูปแบบไฟล์บันทึกมีความเสถียรมาเป็นเวลานานในฐานะไฟล์ข้อความที่คั่นด้วยแท็บธรรมดาโดยมีจำนวนคอลัมน์ที่กำหนดไว้: วันที่ (UTC) อุณหภูมิ (C) ความชื้น แบตเตอรี่
ด้วยการเพิ่มการรองรับการอ่านอุณหภูมิหลายอุณหภูมิของเทอร์โมมิเตอร์สำหรับเนื้อสัตว์ ฉันจึงเปลี่ยนรูปแบบเล็กน้อยในลักษณะที่ควรจะเข้ากันได้กับโปรแกรมส่วนใหญ่ที่อ่านบันทึกที่มีอยู่ หลังจากคอลัมน์วันที่, อุณหภูมิ, ความชื้น, แบตเตอรี่ที่มีอยู่แล้ว ฉันได้เพิ่มคอลัมน์เสริมของรุ่น อุณหภูมิ อุณหภูมิ อุณหภูมิ
ฉันเปลี่ยนชื่อไฟล์บันทึกเริ่มต้นให้เริ่มต้นด้วย gvh-
แทน gvh507x_
รหัสจะยังคงอ่านไฟล์บันทึกเก่า และจะเปลี่ยนชื่อไฟล์บันทึกของเดือนปัจจุบันเป็นรูปแบบใหม่ ฉันใช้คำสั่ง linux shell for f in gvh507x_*.txt; do sudo mv "${f}" "${f//gvh507x_/gvh-}"; done
ในไดเร็กทอรีไฟล์บันทึกเพื่อเปลี่ยนชื่อไฟล์เก่าทั้งหมดเป็นรูปแบบใหม่บนเครื่องของฉัน
หน่วย 5074, 5075, 5174 และ 5177 ทั้งหมดออกอากาศ UUID ที่ 88EC น่าเสียดายที่ 5074 ไม่ได้รวม UUID ไว้ในโฆษณาเดียวกันกับอุณหภูมิ
หน่วย H5181, 5182 และ 5183 ออกอากาศ UUID ของ 5182 และ 5183 ตามลำดับในแต่ละข้อความออกอากาศ รวมถึงอุณหภูมิ
(Flags) 06 (UUID) 5182 (Manu) 3013270100010164018007D0FFFF860708FFFF (Temp) 20°C (Temp) -0.01°C (Temp) 18°C (Temp) -0.01°C (Battery) 0%
(UUID) 5183 (Flags) 05 (Manu) 5DA1B401000101E40186076C2F660000 (Temp) 19°C (Temp) 121.34°C (Battery) 0% (Other: 00) (Other: 00) (Other: 00) (Other: 00) (Other: 00) (Other: CB)
ฉันใช้เวลานานในการดาวน์โหลดข้อมูลจากอุปกรณ์โดยตรงแทนที่จะฟังโฆษณาเพียงอย่างเดียว วิธีการดาวน์โหลดโดยตรงนั้นดีเพราะสามารถดึงข้อมูลที่สะสมในขณะที่ผู้ฟังออฟไลน์ได้
ปรากฏว่าข้อมูลออกอากาศ H5105 ได้รับการยอมรับโดยอัตโนมัติว่าเป็นเทอร์โมมิเตอร์ Govee และข้อมูลที่เก็บไว้ แต่การดาวน์โหลดไม่ทำงาน H5105 มีปุ่มจับคู่ที่ด้านบนของตัวเครื่อง ฉันสังเกตเห็นว่าอุปกรณ์ H5100 ดูเหมือนจะไม่ดาวน์โหลดข้อมูลประวัติเช่นกัน พวกเขาอาจใช้วิธีปฏิบัติเดียวกัน แตกต่างจากเทอร์โมมิเตอร์รุ่นเก่า
ฉันได้ทำการแฮ็กสองสามวิธีเพื่อให้อุปกรณ์ทั้งสองที่ฉันมีอยู่ในสถานที่ทำงานได้ อุปกรณ์ H5100 ที่ฉันมีมีที่อยู่บลูทูธที่ขึ้นต้นด้วย C อุปกรณ์ H5105 ขึ้นต้นด้วย D ปัญหาใหญ่จริงๆ ก็คือในการสื่อสารกับอุปกรณ์เหล่านี้ โปรโตคอลจะต้องประกาศว่ากำลังพูดคุยกับ LE_RANDOM_ADDRESS ซึ่งตรงข้ามกับ LE_PUBLIC_ADDRESS ที่อีกเครื่องหนึ่ง อุปกรณ์ที่ผมเคยใช้ต้องการ สิ่งนี้จะเกิดขึ้นหากมีการกำหนดค่าตัวกรองบลูทู ธ ให้ฟังเฉพาะอุปกรณ์บางอย่างเท่านั้น ฉันไม่เข้าใจการตั้งค่านี้ตามที่ฉันได้อ่าน หากบิตที่สำคัญที่สุดของที่อยู่บลูทูธ 48 บิตถูกตั้งค่าเป็นหนึ่ง นั่นจะกำหนดที่อยู่เป็น RANDOM ซึ่งหมายความว่า C, D, E, หรือ F ในตัวเลขนำหน้าของที่อยู่ทั้งหมดควรกำหนดให้เป็น RANDOM
ฉันประสบปัญหาในการจดจำโฆษณา ส่งผลให้ต้องใช้เวลามากเกินไปในการทดลองวิธีการสแกนหาโฆษณาบลูทูธ โดยหลักๆ แล้วจะใช้การตั้งค่า ScanWindow และ ScanInterval แต่ยังมีความแตกต่างระหว่างการสแกนแบบแอ็คทีฟและการสแกนแบบพาสซีฟด้วย
ในโหมดนี้โปรแกรมกำลังทำสิ่งที่คุณคาดหวังโดยฟังโฆษณา
ในโหมดนี้สแต็คบลูทูธจะพยายามเชื่อมต่อกับอุปกรณ์ที่รับโฆษณาและดึงข้อมูลเพิ่มเติม
เป็นเวลานานที่สุดที่ฉันได้ตั้งค่าคงที่ในโค้ดของฉันสำหรับ Scan Window และ Scan Interval โดยตั้งค่าอย่างรวดเร็วเป็น bt_ScanInterval(0x0012) bt_ScanWindow(0x0012) ตามด้วย bt_ScanInterval(0x1f40) bt_ScanWindow(0x1f40) ค่าจะเพิ่มขึ้นทีละ 0.625 มิลลิวินาที ค่าแรกคือ 11.25 มิลลิวินาที และค่าที่สองคือ (5000 มิลลิวินาที) จากการอ่านมาหลายครั้ง ฉันพบคำแนะนำให้ใช้ 40 msec และ 30 msec ดังนั้นฉันจึงลองใช้ bt_ScanInterval(64) และ bt_ScanWindow(48) เมื่อตั้งค่าแบบนี้ ดูเหมือนว่าฉันได้รับโฆษณา แต่ฉันไม่สามารถเชื่อมต่อและดาวน์โหลดได้
ฉันเคยรวมแฮ็กที่เกี่ยวข้องกับการกรองบลูทูธไว้ก่อนหน้านี้เพื่อให้กรองอุปกรณ์ที่บันทึกไว้แล้วได้อย่างง่ายดาย หากระบุตัวกรองด้วยชุดบิตทั้งหมด โปรแกรมจะส่งตัวกรองของที่อยู่ที่รู้จักไปยังสแต็กเมื่อเริ่มการสแกน การดำเนินการนี้จะปิดใช้งานการค้นพบอุปกรณ์ใหม่ แต่อาจปรับปรุงประสิทธิภาพในบางสถานการณ์
การเชื่อมต่อบนอุปกรณ์บลูทูธทั้งหมดขึ้นอยู่กับที่จับและ UUID มี UUID ที่กำหนดไว้บางส่วนซึ่งอุปกรณ์บลูทูธทุกเครื่องจำเป็นต้องรองรับ จากนั้นจะมี UUID แบบกำหนดเอง รายการนี้มาจาก GVH5177
[-------------------] Service Handles: 0x0001..0x0007 UUID: 1800 (Generic Access)
[ ] Characteristic Handles: 0x0002..0x0003 Properties: 0x12 UUID: 2a00 (Device Name)
[ ] Characteristic Handles: 0x0004..0x0005 Properties: 0x02 UUID: 2a01 (Appearance)
[ ] Characteristic Handles: 0x0006..0x0007 Properties: 0x02 UUID: 2a04 (Peripheral Preferred Connection Parameters)
[-------------------] Service Handles: 0x0008..0x000b UUID: 1801 (Generic Attribute)
[ ] Characteristic Handles: 0x0009..0x000a Properties: 0x20 UUID: 2a05 (Service Changed)
[-------------------] Service Handles: 0x000c..0x000e UUID: 180a (Device Information)
[ ] Characteristic Handles: 0x000d..0x000e Properties: 0x02 UUID: 2a50 (PnP ID)
[-------------------] Service Handles: 0x000f..0x001b UUID: 57485f53-4b43-4f52-5f49-4c4c45544e49
[ ] Characteristic Handles: 0x0010..0x0011 Properties: 0x1a UUID: 11205f53-4b43-4f52-5f49-4c4c45544e49
[ ] Characteristic Handles: 0x0014..0x0015 Properties: 0x1a UUID: 12205f53-4b43-4f52-5f49-4c4c45544e49
[ ] Characteristic Handles: 0x0018..0x0019 Properties: 0x12 UUID: 13205f53-4b43-4f52-5f49-4c4c45544e49
[-------------------] Service Handles: 0x001c..0x001f UUID: 12190d0c-0b0a-0908-0706-050403020100
[ ] Characteristic Handles: 0x001d..0x001e Properties: 0x06 UUID: 122b0d0c-0b0a-0908-0706-050403020100
57485f53-4b43-4f52-5f49-4c4c45544e49 เป็น UUID 128 บิตแบบกำหนดเองที่เทอร์โมมิเตอร์ Govee ทั้งหมดดูเหมือนจะใช้สำหรับบริการหลัก หากพิมพ์เป็นสตริง ASCII ดูเหมือนว่าข้อความนี้จะถอยหลัง INTELLI_ROCKS_HW ( WH_SKCOR_ILLETNI )
12205f53-4b43-4f52-5f49-4c4c45544e49 เป็น UUID 128 บิตของคุณลักษณะบริการที่ฉันเขียนเพื่อเปิดใช้งานการดาวน์โหลดข้อมูล ดูเหมือนว่า UUID หลักยกเว้นว่าสองไบต์แรกจะแตกต่างกัน INTELLI_ROCKS_ ( _SKCOR_ILLETNI )
อุปกรณ์ส่วนใหญ่มีประวัติ 20 วัน อุปกรณ์ GVH5177 และ GVH5174 มีข้อมูลลดลงครึ่งหนึ่ง
Download from device: [A4:C1:38:DC:CC:3D] 2023-02-03 13:52:00 2023-02-23 13:52:00 (28800)
Download from device: [A4:C1:38:EC:0B:03] 2023-02-03 13:51:00 2023-02-23 13:52:00 (28801)
Download from device: [E3:5E:CC:21:5C:0F] 2023-02-03 13:53:00 2023-02-23 13:53:00 (28800)
Download from device: [A4:C1:38:0D:3B:10] 2023-01-24 13:50:00 2023-02-23 13:53:00 (43203)
Download from device: [A4:C1:38:D5:A3:3B] 2023-02-03 13:54:00 2023-02-23 13:54:00 (28800)
Download from device: [A4:C1:38:65:A2:6A] 2023-02-03 13:52:00 2023-02-23 13:55:00 (28803)
Download from device: [A4:C1:38:05:C7:A1] 2023-02-03 13:53:00 2023-02-23 13:56:00 (28803)
Download from device: [A4:C1:38:13:AE:36] 2023-02-03 13:54:00 2023-02-23 13:57:00 (28803)
Download from device: [C2:35:33:30:25:50] 2024-01-15 22:19:00 2024-02-03 20:01:00 (27222)
Download from device: [D0:35:33:33:44:03] 2024-01-14 20:00:00 2024-02-03 20:00:00 (28800)
[2024-02-04T04:01:41] 46 [C2:35:33:30:25:50] (Flags) 06 (Name) GVH5100_2550 (UUID) 88EC (Manu) 010001010276EF55 (Temp) 16.1519°C (Humidity) 51.9% (Battery) 85% (GVH5100)
[-------------------] Service Handles: 0x0001..0x0009 UUID: 1800 (Generic Access)
[ ] Characteristic Handles: 0x0002..0x0003 Properties: 0x0a UUID: 2a00 (Device Name)
[ ] Characteristic Handles: 0x0004..0x0005 Properties: 0x0a UUID: 2a01 (Appearance)
[ ] Characteristic Handles: 0x0006..0x0007 Properties: 0x02 UUID: 2a04 (Peripheral Preferred Connection Parameters)
[ ] Characteristic Handles: 0x0008..0x0009 Properties: 0x02 UUID: 2ac9
[-------------------] Service Handles: 0x000a..0x000d UUID: 1801 (Generic Attribute)
[ ] Characteristic Handles: 0x000b..0x000c Properties: 0x22 UUID: 2a05 (Service Changed)
[-------------------] Service Handles: 0x000e..0x001a UUID: 57485f53-4b43-4f52-5f49-4c4c45544e49
[ ] Characteristic Handles: 0x000f..0x0010 Properties: 0x1a UUID: 11205f53-4b43-4f52-5f49-4c4c45544e49
[ ] Characteristic Handles: 0x0013..0x0014 Properties: 0x1a UUID: 12205f53-4b43-4f52-5f49-4c4c45544e49
[ ] Characteristic Handles: 0x0017..0x0018 Properties: 0x12 UUID: 13205f53-4b43-4f52-5f49-4c4c45544e49
[-------------------] Service Handles: 0x001b..0x0025 UUID: 00fe0000-0000-0000-0000-00000000f002
[ ] Characteristic Handles: 0x001c..0x001d Properties: 0x02 UUID: 03ff0000-0000-0000-0000-00000000f002
[ ] Characteristic Handles: 0x001e..0x001f Properties: 0x12 UUID: 02ff0000-0000-0000-0000-00000000f002
[ ] Characteristic Handles: 0x0022..0x0023 Properties: 0x02 UUID: 00ff0000-0000-0000-0000-00000000f002
[ ] Characteristic Handles: 0x0024..0x0025 Properties: 0x0c UUID: 01ff0000-0000-0000-0000-00000000f002
[2024-02-04T04:03:05] [C2:35:33:30:25:50] Download from device. 2024-01-15 22:19:00 2024-02-03 20:01:00 (27222)
[2024-02-04T04:00:25] 46 [D0:35:33:33:44:03] (Flags) 06 (Name) GVH5105_4403 (UUID) 88EC (Manu) 0100010102868262 (Temp) 16.5506°C (Humidity) 50.6% (Battery) 98% (GVH5105)
[-------------------] Service Handles: 0x0001..0x0009 UUID: 1800 (Generic Access)
[ ] Characteristic Handles: 0x0002..0x0003 Properties: 0x0a UUID: 2a00 (Device Name)
[ ] Characteristic Handles: 0x0004..0x0005 Properties: 0x0a UUID: 2a01 (Appearance)
[ ] Characteristic Handles: 0x0006..0x0007 Properties: 0x02 UUID: 2a04 (Peripheral Preferred Connection Parameters)
[ ] Characteristic Handles: 0x0008..0x0009 Properties: 0x02 UUID: 2ac9
[-------------------] Service Handles: 0x000a..0x000d UUID: 1801 (Generic Attribute)
[ ] Characteristic Handles: 0x000b..0x000c Properties: 0x22 UUID: 2a05 (Service Changed)
[-------------------] Service Handles: 0x000e..0x001a UUID: 57485f53-4b43-4f52-5f49-4c4c45544e49
[ ] Characteristic Handles: 0x000f..0x0010 Properties: 0x1a UUID: 11205f53-4b43-4f52-5f49-4c4c45544e49
[ ] Characteristic Handles: 0x0013..0x0014 Properties: 0x1a UUID: 12205f53-4b43-4f52-5f49-4c4c45544e49
[ ] Characteristic Handles: 0x0017..0x0018 Properties: 0x12 UUID: 13205f53-4b43-4f52-5f49-4c4c45544e49
[-------------------] Service Handles: 0x001b..0x0025 UUID: 00fe0000-0000-0000-0000-00000000f002
[ ] Characteristic Handles: 0x001c..0x001d Properties: 0x02 UUID: 03ff0000-0000-0000-0000-00000000f002
[ ] Characteristic Handles: 0x001e..0x001f Properties: 0x12 UUID: 02ff0000-0000-0000-0000-00000000f002
[ ] Characteristic Handles: 0x0022..0x0023 Properties: 0x02 UUID: 00ff0000-0000-0000-0000-00000000f002
[ ] Characteristic Handles: 0x0024..0x0025 Properties: 0x0c UUID: 01ff0000-0000-0000-0000-00000000f002
[2024-02-04T04:01:31] [D0:35:33:33:44:03] Download from device. 2024-01-14 20:00:00 2024-02-03 20:00:00 (28800)
ไฟล์ btsnoop_hci.log เป็นบันทึกการสอดแนม Bluetooth hci จากอุปกรณ์ Google Nexus 7 ที่ใช้ Android และแอป Govee Home