[IoT ๐ /Homebridge] - Homebridge ์ ๊ธฐ๋งคํธ ํ๋ฌ๊ทธ์ธ ์ ์, ๋ธ๋ฃจํฌ์ค ํจํท ๋ถ์ - 1
[IoT ๐ /Homebridge] - [JS] Homebridge ์ ๊ธฐ๋งคํธ ํ๋ฌ๊ทธ์ธ ์ ์, ํ๋ฌ๊ทธ์ธ ๊ตฌํ - 2
์ด๋ฒ ํ๋ก์ ํธ๋ ๋ธ๋ฃจํฌ์ค ํ์ต์ ๋ชฉ์ ์ผ๋ก,
ํต์ ์ค์ธ ํจํท์ ์ค๋ํํด ๋ถ์ํ๋ ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง์ ์๋ํด๋ณด๋ ค๊ณ ํ๋ค.
๋ฐ๋ผ์ ์ ์ฒด ์ฝ๋๋ ๊ณต๊ฐํ์ง ์๊ณ , ๊ณผ์ ์ ์ผ๋ถ๋ง ๊ณต์ ๋ฅผ ํ๊ฒ ๋ค.
ํ๋ก์ ํธ์ ์ต์ข ๋ชฉํ๋, ๊ตฌํ ์ ๊ธฐ๋งคํธ๋ฅผ ๋ฆฌ๋ ์ค ์๋ฒ์ ๋ธ๋ฃจํฌ์ค ํต์ ์ ์์ผ
Homebridge ์๋ฒ์์ ์ ์ด ํ ์ ์๊ฒ ๋ง๋ค ๊ฒ์ด๋ค.
๊ทธ๋ฌ๊ธฐ ์ํด์๋ ์ค์ ๋ก ์ด๋ค ํจํท์ผ๋ก ์ ๊ธฐ๋งคํธ๋ฅผ ์ ์ดํ๋์ง ๋ก๊ทธ๋ฅผ ์ถ์ถํด๋ด์ผ ํ๋ค.
์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์์ง๋ง Android ํฐ์ ๋ธ๋ฃจํฌ์ค HCI ์ค๋ ๊ธฐ๋ก์ ์ด์ฉ ํ ๊ฒ์ด๋ค.
๋ธ๋ฃจํฌ์ค
์์ ์ ์์ ๋ธ๋ฃจํฌ์ค์ ๋ํ ๊ฐ๋จํ ์ค๋ช ์ ํ๊ณ ๋์ด๊ฐ๊ฒ ๋ค.
์๋ ๊ทธ๋ฆผ์ ๋ธ๋ฃจํฌ์ค ํ๋กํ ์ฝ์ ๊ตฌ์กฐ์ด๋ค.

๊ทธ์ค ์ด๋ฒ ๊ฐ๋ฐ์์ ์ฐ์ผ ๋ ์ด์ด์ ์ญํ ์ ๊ฐ๋จํ ํ๋ก ์ ๋ฆฌํด๋ณด์๋ค.
| Layer | ์ญํ | ํ๋ฌ๊ทธ์ธ์์์ ์ญํ |
|
GAP
|
๋ค๋ฅธ ์ฅ์น๋ฅผ ๋ฐ๊ฒฌ ๋ฐ ์ฐ๊ฒฐ ์ค์
|
์ ๊ธฐ๋งคํธ ํธ์ถ ๋ฐ ํ์, ๋ฌด์ ๋งํฌ ์ค์
|
|
GATT
|
์ค์ ๋ฐ์ดํฐ ๊ตฌ์กฐํ, ์ ๊ทผ ๋ฐฉ๋ฒ ์ ์
|
์ฐ๊ฒฐ ๋ฐ ์ ์ด ํน์ฑ(UUID) ํธ์ถ (์ค์ ํจํท ๊ตฌ์กฐํ)
|
|
SMP
|
BLE ํต์ ์ ์ํธํ ์๊ณ ๋ฆฌ์ฆ ๋ฐ ์ ์ฐจ ์ ์
|
-
|
|
ATT
|
GATT์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ , ์ฐ๊ณ , ์๋ฆผ์ ๋ฐ๋ ํต์ ์ ์ฐจ ๋ฐ ํ์์ ์ ์
|
ํน์ฑ(UUID)์ ๊ณ ์ ๋ฒํธ ํ ๋น, ์ ๊ธฐ๋งคํธ ํ์ฌ ์ํ notification ์์
|
|
L2CAP
|
GATT์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ํจํท์ ํฌ๊ธฐ ์กฐ์ ๋ฐ ๋
ผ๋ฆฌ์ ์ฑ๋ ์ ๊ณต
|
-
|
|
LL
|
์ฅ์น๊ฐ์ ๋งํฌ๋ฅผ ์ค์ ํ๊ณ ์ ์ง
|
Homebridge ์๋ฒ์ ์ ๊ธฐ๋งคํธ ๊ฐ์ connect
|
|
PHY
|
์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ฌด์ ์ ํธ๋ก ๋ณํํ์ฌ ์ ์กํ๋ ๋ ์ด์ด
|
-
|
ํต์ ํ๋กํ ์ฝ ์ฐพ๊ธฐ
์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก ๋ค์ด๊ฐ์,
๋ด๊ฐ ์ ์ดํ ์ฐ๊ฒฐ, ์จ๋, ํ์ด๋จธ์ ํจํท ์ ์ก์ ์ฌ์ฉ๋๋ ํน์ฑ์ ์ฐพ์์ผ ํ๋ค.
nRF Connect ์ฑ์ ์ด์ฉํ์ฌ ์ ์ด์ฉ ํน์ฑ(UUID)์ ์ ์ ์์๋ค.
๋ ํ๋ฌ๊ทธ์ธ ์ ์์ ๋๋ฐ์ด์ค๋ฅผ ์ง์ ์ง์ ํด ์ค ๊ฒ์ด๋ฏ๋ก
๊ธฐ๊ธฐ์ MAC ์ฃผ์๋ ๋ฐ๋ก ๋ฉ๋ชจํด๋์๋ค.

๋ธ๋ฃจํฌ์ค HCI ์ค๋ํ
์ด์ ์ ์ด์ฉ UUID์ ์ด๋ค ํจํท์ด ๋ด๊ฒจ์ ธ ์ ์ด๋ฅผ ํ๋์ง ์์๋ด์ผ ํ๋ค.
Android ๊ธฐ๊ธฐ์ ๊ฐ๋ฐ์ ๋ชจ๋๋ฅผ ์ผ๊ณ , ๋ธ๋ฃจํฌ์ค HCI ์ค๋ํ ๋ก๊ทธ ์ฌ์ฉ
์ค์ ๋งคํธ์ ์ฐ๊ฒฐํ์ฌ ์จ๋ ์กฐ์ ๋ ์ ๋ถ ์๋ํ๊ณ , ํ์ด๋จธ ์กฐ์ ๋ ์๋ ํด๋ณด๋ฉฐ
๋ธ๋ฃจํฌ์ค๋ก ํจํท์ ์ฃผ๊ณ ๋ฐ๋ ๊ธฐ๋ก์ ๋จ๊ฒจ์ฃผ์๋ค.
๊ทธํ, ๋ฒ๊ทธ ๋ฆฌํฌํธ(์ ์ฒด) ์ ์ก์ผ๋ก ๋ก๊ทธ๋ฅผ ๋จ๊ธฐ๊ณ ,
์์ถ๋ ๋ฆฌํฌํธ ํ์ผ ์์ bluetooth ํด๋์์ ์ฐพ์ ์ ์์๋ค. (๊ธฐ๊ธฐ๋ง๋ค ์์ด)


๊ทธ๋ ๊ฒ ๋ฐ์์จ ๋ก๊ทธ๋ PC์์ Wireshark ํ๋ก๊ทธ๋จ์ผ๋ก ๋ถ์์ ํ ์ ์๋ค.
https://www.wireshark.org/download.html
Wireshark • Go Deep | Download
Wireshark: The world's most popular network protocol analyzer
www.wireshark.org
ํ๋ก๊ทธ๋จ์ ๋๋ ค๋ณด๋, ๊ทธ ์งง์ ์๊ฐ์ ๋ก๊ทธ๊ฐ 3์ฒ์ฌ๊ฐ ์ฉ์ด๋ ์ฐํ๋ค.
๋ก๊ทธ๋ค์ ์ญ ๋ณด๋ฉด์ ์ค์ ์ ๊ธฐ๋งคํธ์ ํต์ ํ ๋ก๊ทธ๋ฅผ ์ฐพ์์ ๋ถ์์ ์์ํ๋ค.
์จ๋ ์ ์ด๋, ํ์ด๋จธ ์ ์ด๋ก ์์ฌ๋๋ ํจํท๋ค์ ์น ๋ค ๋ฉ๋ชจ๋ฅผ ํด ๋์๋ค.

ํจํท ๋ถ์
์ด์ ํจํท ์์ง์ ์ ๋ถ ๋ง์ณค๊ณ , ๋ชจ๋ ๋์์ ํจํท์ ์์ ๋ผ ์ ์์๋ค.
๋ค์์ ํจํท์ ๊ท์น์ฑ์ ์ฐพ์์ผ ํ๋๋ฐ, ๊ทธ๋ฆฌ ์ด๋ ต์ง ์์๋ค.
์จ๋์ ํ์ด๋จธ ํจํท์ ์ง๊ด์ ์ผ๋ก ์ค๋ฆ์ฐจ์ ์ซ์๋ก ๊ตฌ์ฑ ๋์ด ์์๊ณ ,
[data, checksum, data, checksum] ํจํด์ผ๋ก ๋ ์์ฉ ์ง์ง์ด์ ธ์ ๋์๋ค.
checksum ๊ท์น์ ์ ์กํจํท๊ณผ ์ฒดํฌ์ฌ ํฉ์ฐ์ 255(0xFF)๊ฐ ๋์ค๊ฒ ํ๊ฒํ๋
1์ ๋ณด์ ํฉ์ฐ(One's complement sum)์ ์ด์ฉํ ๊ฒ ๊ฐ์๋ค.
๋ฐ๋ผ์ ์ ์ด ํจํท์ด 01~10์ผ์, ์ฒดํฌ์ฌ์ FE~F5๋ก ์ญ์์์ ์ ์ ์์๋ค.
Homebridge ์๋ฒ ๋ธ๋ฃจํฌ์ค ์ค์
์ด๋ก์จ, ์ค์ ๋ธ๋ฃจํฌ์ค๋ก ๋ณด๋ผ payload ๊ท์น์ ์์ฑ ๋์๋ค.
Homebridge ํ๋ฌ๊ทธ์ธ์ ๋ง๋ค๊ธฐ ์ ์, ์๋ฒ์ ๋ธ๋ฃจํฌ์ค ์ค์ ์ ํด์ฃผ์ด์ผ ํ๋ค.
ํ์์ Homebridge ์๋ฒ๋ ๋ฆฌ๋ ์ค ์ด๋ฏ๋ก, ๋ฆฌ๋ ์ค ๊ธฐ์ค์ผ๋ก ์ค๋ช ํ๊ฒ ๋ค.
๋จผ์ , ์ฌ์ฉํ ๋ธ๋ฃจํฌ์ค ๋ชจ๋์ ์ค์น ํ ๋ค,
sudo apt install bluetooth bluez libbluetooth-dev libudev-dev
which node ๋ช ๋ น์ด๋ก node.js๊ฐ ์ค์ ์ค์น๋ ๊ฒฝ๋ก๋ก
๋ธ๋ฃจํฌ์ค ๊ถํ ์ค์ ์ ํ์์ ์ผ๋ก ํด์ฃผ์ด์ผํ๋ค.
sudo setcap cap_net_raw+eip /usr/bin/node
์ด์ , ๋ชจ๋ ์ค์ ์ ๋ง์ณค๋ค.
๋ค์ ๊ฒ์๊ธ์์ ์ค์ ํ๋ฌ๊ทธ์ธ ๊ตฌํ ํ,
์ ๊ธฐ๋งคํธ์ ์ ์ด ๋ถ๋ถ์ ํ๋ธ๋ฆฟ์ง ์ ์ธ์๋ฆฌ์ ๋งคํํด ๋ณด๋๋ก ํ๊ฒ ๋ค.
์๋ณธ ๊ฒ์๊ธ
https://blog.naver.com/101artspace/224052655237
Homebridge ์ ๊ธฐ๋งคํธ ํ๋ฌ๊ทธ์ธ ์ ์, ๋ธ๋ฃจํฌ์ค ํจํท ๋ถ์ - 1
์ด๋ฒ ํ๋ก์ ํธ๋ ๋ธ๋ฃจํฌ์ค ํ์ต์ ๋ชฉ์ ์ผ๋ก, ํต์ ์ค์ธ ํจํท์ ์ค๋ํํด ๋ถ์ํ๋ ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง์ ์...
blog.naver.com
'IoT ๐ > Homebridge' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [JS] Homebridge Smartthings ์ฐ๋ ํ๋ฌ๊ทธ์ธ ์ ์, OAuth ์ธ์ฆ - 1 (0) | 2026.01.22 |
|---|---|
| [JS] Homebridge ์ ๊ธฐ๋งคํธ ํ๋ฌ๊ทธ์ธ ์ ์, ํ๋ฌ๊ทธ์ธ ๊ตฌํ - 2 (1) | 2025.12.07 |
| [JS] Homebridge ๋ฐ์คํฌํ ์๊ฒฉ ์ ์ ํ๋ฌ๊ทธ์ธ ์ ์ (0) | 2025.12.02 |
| Homebridge์ Xiaomi Home ์ฐ๋ (0) | 2025.11.24 |
| [C#] ์น ํ ๊ณผ, Windows ๋ฐฑ๊ทธ๋ผ์ด๋์์ ํ๋ก์ธ์ค ๊ฐ์งํ๊ธฐ (0) | 2025.11.06 |