์ผ์๋ฅผ ์ฝ๊ธฐ ์ํด ConnBee๋ฅผ ์ฐ๊ฒฐํ๋ ค๋ ํ ์๋ํ ์๋ฒ(์ค์ ๋ก๋ NAS๋ก ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ Linux ๋จธ์ )๋ฅผ ์คํ ์ค์ ๋๋ค.
deconz ๊ฐ ์ข
์์ฑ ์ค Qt๋ฅผ ํฌํจํ๋ ๋ฐ์ด๋๋ฆฌ๊ฐ ํ๋๋ง ์๋ค๋ ๊ฒ์ด ๋งค์ฐ ์ด์ํฉ๋๋ค. deconz.service
๋ฅผ ํตํด ํค๋๋ฆฌ์ค ๋ชจ๋์์ ์คํํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ํจํค์ง ์์ฒด๋ ํค๋๋ฆฌ์ค(์๋ฒ) ์์คํ
์ ์ด๋ฆฌ์์ ๋ง์ X11(๋ฐ Wayland) ๊ด๋ จ ํจํค์ง๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
์ด์ ๋ํ ๋ด๊ฐ ์ ์ํ ์๋ฃจ์
์ deconz
๋ฅผ ์ฌ๋ฌ ๋ฐ์ด๋๋ฆฌ(๋๋ ํจํค์ง)๋ก ๋ถํ ํ์ฌ GUI์ ๋ํ ๋ชจ๋ ์ข
์์ฑ์ ์ค์นํ์ง ์๊ณ ๋ ๋ฐ๋ชฌ์ผ๋ก ์คํํ ์ ์๋๋ก ํ๋ ๊ฒ์
๋๋ค.
๋๋ ๋น์ ์ด ๋ฐ์ด๋๋ฆฌ์ ํค๋๋ฆฌ์ค ์ฝ๋ ๊ฒฝ๋ก์์ QtNetwork ์ ๊ฐ์ ๊ฒ์ ์ผ๋ง๋ ์ฌ์ฉํ๋์ง ํ์ ํ์ง ๋ชปํ๋ฏ๋ก ํค๋๋ฆฌ์ค ์์ ์ด ์ฌ์ ํ ๋ง์ ๊ฒ์ ํ์๋ก ํ๋ค๋ฉด ๋ด ์ ์์ ๋ฒ๋ฆฌ์ญ์์ค.
(ํ์ฌ ๋ด๊ฐ ์ฌ์ฉํ๊ณ ์๋) ์ ์ผํ ๋์์ deconz ์คํ์ ์ํด ๋ชจ๋ X11 ํจํค์ง๊ฐ ์๋ Debian/Ubuntu ์ปจํ ์ด๋๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ด ๋์๋ ๋๋ฌด ๊ณผ๋ํ์ง๋ง ์ต์ํ 'ํธ์คํธ ์์คํ '(NAS)์ ์ต์ํ์ผ๋ก ์ ์งํฉ๋๋ค.
์ด ์น์ ์ ์ฌ์ฉํ์ฌ Zigbee ๊ด๋ จ ํ๋ก์ ํธ์ ์์ ๋ชจ๋ ๋ ธ๋ ฅ๊ณผ ๋ ธ๋ ฅ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ์ปค๋ฎค๋ํฐ์ ์๋์ง๋ฅผ ๋ผ ์ ์๋ ๊ฐ๋ฐฉํ ๊ฐ๋ฐ ์คํ์ผ์ ์ ํํด์ฃผ์ ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค.
@๋จ์ ๋ต๊ฒ
GUI์ ํค๋๋ฆฌ์ค ๋ถํ์ ๋ ๊ฐ์ ํจํค์ง๋ก ๋ถ๋ฆฌํด์ผ ํ๋ค๋ ๋ฐ ์ ๋์ ์ผ๋ก ๋์ํฉ๋๋ค. ์ด๊ฒ์ ์ค์ ๋ก ์ด๋ฏธ ๊ฝค ์ค๋ซ๋์ ๋ด๋ถ์ ์ผ๋ก ์งํ ์ค์ธ ํ๋ก์ธ์ค์ ๋๋ค. ์ด๊ธฐ์ deCONZ๋ ํค๋๋ฆฌ์ค๋ฅผ ์ผ๋์ ๋๊ณ ๊ฐ๋ฐ๋์ง ์์์ผ๋ฉฐ ์ด์ ๋ ์ฝ๊ฒ ๋ถ๋ฆฌํ ์ ์๋ ์ฌ๋ฌ ํด๋์ค๊ฐ ํผํฉ๋์ด ์์ต๋๋ค. ์ด ๋ฆฌํฉํ ๋ง์ ETA ์์ด ๋๋ฆฐ ์๋๋ก ์งํ๋๊ณ ์์ต๋๋ค.
Qt ์์ฒด๋ ์ข ์์ฑ์ผ๋ก ์ ์ง๋์ง๋ง X11/Wayland ๊ด๋ จ ๋ถํ์ ํค๋๋ฆฌ์ค ์ค์ ์ ํ์ํ์ง ์์ต๋๋ค.
์ฅ๊ธฐ์ ์ธ ๋ชฉํ ์ค ํ๋๋ REST-API๋ฅผ ํตํด GUI ๋ ธ๋ ๋ถ๋ถ์ ๋ ธ์ถํ์ฌ ํค๋๋ฆฌ์ค ์ค์น์ ๊ฒฝ์ฐ์๋ ์๊ฒฉ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฅผ ๋ค์ด ๋ธ๋ผ์ฐ์ ์์ deCONZ GUI์ ๋ชจ๋ ๊ธฐ๋ฅ๊ณผ ํจ๊ป ๋ํํ ๋ ธ๋๋ฅผ ํ์ํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
์ ์๋ ๋์์ ์ค์ ๋ก ์ฌ๋ฆผ ํค๋๋ฆฌ์ค ๋ฒ์ ์ด ๋์ฐฉํ ๋๊น์ง ํธ์คํธ ์์คํ X11์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ๋ก ์ ์งํ๋ ์ ์ผํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋๋ค.
๋๋ ์ด๊ฒ์ด ์ฌ๊ธฐ์์ ์ฝ๊ฐ ์ฃผ์ ๋ฅผ ๋ฒ์ด๋๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ปจํ ์ด๋ํ๋ฅผ ์ฌ์ฉํ์ฌ ์ด GUI ์ข ์์ฑ์ ํด๊ฒฐํ๋ ค๋ ์๋์ ๋ํ ๋น ๋ฅธ ๋ณด๊ณ ์๋ฅผ ์ ๊ณตํ๊ณ ์ถ์ต๋๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต์ Docker ์ด๋ฏธ์ง๊ฐ ์๋ค๋ ์ฌ์ค์ ์๊ณ ์์ง๋ง ์์งํ ๋งํด์ ์ ๋ Docker๋ณด๋ค LXC ๋๋ ์ผ๋ฐ systemd-nspawn ์ปจํ ์ด๋๋ฅผ ์ ํธํ๊ณ ๋ด NAS์ ์ด๋ฏธ ๋ค๋ฅธ LXC ์ปจํ ์ด๋๊ฐ ์์ผ๋ฏ๋ก ํจ๊ป ๊ฐ๋ ค๊ณ ํ์ต๋๋ค. ๊ฒฐ๊ตญ, ์ด๋ฌํ ๊ธฐ์ ์ ๋์ผํ ์ปค๋ ๋ด ๊ฒฉ๋ฆฌ ๋ฉ์ปค๋์ฆ์ ์์กดํ๋ฏ๋ก ๋น์ทํ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค.
Ubuntu 18.04 ์ปจํ ์ด๋๋ฅผ ์ค์ ํ๊ณ deCONZ ์ค์น์ ๊ดํ ConnBee ์ค์น ๊ฐ์ด๋ ๋ฅผ ์๊ฒฉํ๊ฒ ๋ฐ๋์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ธฐ ์ํด ์ฌ๋ฌ ๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ์ด์ผ ํ์ต๋๋ค.
lxc.cgroup.devices.allow
๋ฐ lxc.mount.entry
).plugdev
๊ทธ๋ฃน์ ์ฅ์น์ ์ก์ธ์คํ ์ ์๋๋ก GID๋ฅผ ๋๊ธฐํํฉ๋๋ค.lxc.cap.keep
์ฌ์ฉํ์ฌ ์์ ๊ฐ๋ฅ).(OT: ํจํค์ง๊ณผ ๊ด๋ จํ์ฌ ๊ฐ์ ์ ์ฌ์ง๊ฐ ์์ต๋๋ค. ํ๋ ์ฝ๋ฉ๋ UID 1000์ ์์กดํ๋ ๋์ ํจํค์ง ์ค์น ์ค์ ์ ์ฉ ์ฌ์ฉ์๋ฅผ ์์ฑํ๋ ๊ฒ์ด ํจ์ฌ ๋ซ์ต๋๋ค. ๋ฐ๋์งํ๊ฒ๋ UID<1000 ๋ฐ ํ ๋๋ ํ ๋ฆฌ๊ฐ /var/lib
๋ฏธ๋ง์ธ ๊ฒ์ด ์ข์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์๋ํ๋ ๊ฒ ๊ฐ์์ต๋๋ค. ์ฆ, ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์์ผ๋ฉฐ Phoscon ์ฑ์์ ๊ธฐ๋ณธ ๊ฒ์ดํธ์จ์ด ๊ตฌ์ฑ์ ์ค์ ํ ์ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ConnBee ํ๋์จ์ด์ ๊ด๋ จ๋ ๋ชจ๋ ๊ฒ์ด ์๋ํ์ง ์์์ต๋๋ค. Phoscon์ ์ฅ์น ๋ฒ์ ์ ํ์ํ์ง๋ง ํ์จ์ด ๋ฒ์ ์ ํ์ํ์ง ์์์ผ๋ฉฐ ๋ชจ๋ ZigBee ์์ฑ(์ฑ๋ ๋ฑ)์ด 0์ผ๋ก ์ค์ ๋์์ต๋๋ค. ์ด๋ค ์ผ์๋ ๋ฐ์ธ๋ฉํ ์ ์์ต๋๋ค.
๊ทธ๋์ ๋๋ ๊ณต์ _stable_ ์ด๋ฏธ์ง๋ก ๋จ์ Raspberry Pi 3๋ฅผ ํ๋์ฑํ๊ฒ ๋์์ต๋๋ค. ์ด์ ๋ชจ๋ ๊ฒ์ด ์ ์๋ํ๊ณ ๋ชจ๋ ์ผ์๊ฐ ๋ฉ์ง Grafana ๋์๋ณด๋์ ํตํฉ๋์์ต๋๋ค.
(OT: Pi ์ด๋ฏธ์ง์๋ ์์ฒด ๊ฒฐํจ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ธฐ๋ณธ ๊ตฌ์ฑ์์ hostapd
๋ฅผ ์์ํ๋ ค๊ณ ์๋ํ ๋์๋ ๋ฃจํ์์ ์ผ์ฃผ์ผ์ ์ฝ 700MiB์ ๋ก๊ทธ๋ฅผ ์์ฑํ์ต๋๋ค(SD ์นด๋ ๋ถ๋). ์ค์ ๊ฐ์ ์ ์ํด ํ ๋ฆฌํ์คํธ๋ฅผ ๋ณด๋ด๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
์ฅ๊ธฐ์ ์ธ ๋ชฉํ ์ค ํ๋๋ REST-API๋ฅผ ํตํด GUI ๋ ธ๋ ๋ถ๋ถ์ ๋ ธ์ถํ์ฌ ํค๋๋ฆฌ์ค ์ค์น์ ๊ฒฝ์ฐ์๋ ์๊ฒฉ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฅผ ๋ค์ด ๋ธ๋ผ์ฐ์ ์์ deCONZ GUI์ ๋ชจ๋ ๊ธฐ๋ฅ๊ณผ ํจ๊ป ๋ํํ ๋ ธ๋๋ฅผ ํ์ํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ด ์คํ๋๋ ๊ฟ์ผ ๊ฒ์ด๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
GUI์ ํค๋๋ฆฌ์ค ๋ถํ์ ๋ ๊ฐ์ ํจํค์ง๋ก ๋ถ๋ฆฌํด์ผ ํ๋ค๋ ๋ฐ ์ ๋์ ์ผ๋ก ๋์ํฉ๋๋ค. ์ด๊ฒ์ ์ค์ ๋ก ์ด๋ฏธ ๊ฝค ์ค๋ซ๋์ ๋ด๋ถ์ ์ผ๋ก ์งํ ์ค์ธ ํ๋ก์ธ์ค์ ๋๋ค. ์ด๊ธฐ์ deCONZ๋ ํค๋๋ฆฌ์ค๋ฅผ ์ผ๋์ ๋๊ณ ๊ฐ๋ฐ๋์ง ์์์ผ๋ฉฐ ์ด์ ๋ ์ฝ๊ฒ ๋ถ๋ฆฌํ ์ ์๋ ์ฌ๋ฌ ํด๋์ค๊ฐ ํผํฉ๋์ด ์์ต๋๋ค. ์ด ๋ฆฌํฉํ ๋ง์ ETA ์์ด ๋๋ฆฐ ์๋๋ก ์งํ๋๊ณ ์์ต๋๋ค.
Qt ์์ฒด๋ ์ข ์์ฑ์ผ๋ก ์ ์ง๋์ง๋ง X11/Wayland ๊ด๋ จ ๋ถํ์ ํค๋๋ฆฌ์ค ์ค์ ์ ํ์ํ์ง ์์ต๋๋ค.
์ฅ๊ธฐ์ ์ธ ๋ชฉํ ์ค ํ๋๋ REST-API๋ฅผ ํตํด GUI ๋ ธ๋ ๋ถ๋ถ์ ๋ ธ์ถํ์ฌ ํค๋๋ฆฌ์ค ์ค์น์ ๊ฒฝ์ฐ์๋ ์๊ฒฉ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฅผ ๋ค์ด ๋ธ๋ผ์ฐ์ ์์ deCONZ GUI์ ๋ชจ๋ ๊ธฐ๋ฅ๊ณผ ํจ๊ป ๋ํํ ๋ ธ๋๋ฅผ ํ์ํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
์ ์๋ ๋์์ ์ค์ ๋ก ์ฌ๋ฆผ ํค๋๋ฆฌ์ค ๋ฒ์ ์ด ๋์ฐฉํ ๋๊น์ง ํธ์คํธ ์์คํ X11์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ๋ก ์ ์งํ๋ ์ ์ผํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋๋ค.