Skip to content

Latest commit

ย 

History

92 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ipTIME Manager for Home Assistant

๐Ÿ‡บ๐Ÿ‡ธ English Version | ๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญ์–ด ๋ฒ„์ „

hacs_badge version kofi

EFM ipTIME ๊ณต์œ ๊ธฐ ์—ฐ๋™์„ ์œ„ํ•œ Home Assistant ํ†ตํ•ฉ ๊ตฌ์„ฑ์š”์†Œ์ž…๋‹ˆ๋‹ค. 3์„ธ๋Œ€ ๋ชจ๋ฐ”์ผ IUX ๋ฐ ์ตœ์‹  Flutter ๋ฒ ํƒ€ UI๊ฐ€ ํƒ‘์žฌ๋œ AX ์‹œ๋ฆฌ์ฆˆ ๋“ฑ์˜ ๊ณต์œ ๊ธฐ๋ฅผ ์ง€์›ํ•˜๋ฉฐ, JSON-RPC (Web API) ํ†ต์‹  ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜์—ฌ ๋ณต์žกํ•œ SNMP ์„ค์ • ์—†์ด ๊ฐ„ํŽธํ•˜๊ฒŒ ์‹ค์‹œ๊ฐ„ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ณ  ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ฃผ์š” ๊ธฐ๋Šฅ

1. ์Šค๋งˆํŠธ ์บ์‹ฑ ์—”์ง„ (Smart Caching Engine)

  • ๊ณต์œ ๊ธฐ ๋ถ€ํ•˜ ๊ฐ์†Œ: ์ง€๋Šฅํ˜• ๋ฉ”๋ชจ๋ฆฌ ์บ์‹ฑ ๋ ˆ์ด์–ด๋ฅผ ์ ์šฉํ•ด ์žฆ์€ API ํ˜ธ์ถœ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ๊ธฐ์  ์ˆ˜๋ช… ์ฃผ๊ธฐ ๊ด€๋ฆฌ: ๊ณต์œ ๊ธฐ ๋ชจ๋ธ๋ช… ๋“ฑ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ •๋ณด๋Š” ์ตœ์ดˆ 1ํšŒ ์ˆ˜์ง‘ ํ›„ ์˜๊ตฌ ์บ์‹ฑํ•˜๋ฉฐ, ํฌํŠธ/DNS/๋ณด์•ˆ ์ œ์–ด/UPnP/์žฌ๋ถ€ํŒ… ์Šค์ผ€์ค„/WireGuard ์ƒํƒœ ๋“ฑ์€ 5๋ถ„~1์‹œ๊ฐ„ ๋™์•ˆ ๋ฉ”๋ชจ๋ฆฌ์— ์บ์‹ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ œ์–ด ์ฆ‰์‹œ ๋ฐ˜์˜ (Mutation Invalidation): ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์Šค์œ„์น˜๋‚˜ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ฆ‰์‹œ ๊ด€๋ จ ๋ฉ”๋ชจ๋ฆฌ ์บ์‹œ๋ฅผ ๋งŒ๋ฃŒ์‹œํ‚ค๊ณ  ๊ณต์œ ๊ธฐ์— ๋™๊ธฐํ™”ํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ์ƒํƒœ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

2. ์ธํ„ฐ๋„ท(WAN) ๋‹จ์ ˆ, ๊ณต์ธ IP ๋ณ€๊ฒฝ, ๋ณด์•ˆ ๊ฒฝ๋ณด ๋ฐ ํŽŒ์›จ์–ด ์—…๋ฐ์ดํŠธ ๊ฐ์ง€ (1.0.4 ๊ณ ๋„ํ™”)

  • ์ด์ค‘ ํ†ต๋ณด ์‹œ์Šคํ…œ: ์ธํ„ฐ๋„ท์ด ๋Š๊ธฐ๊ฑฐ๋‚˜ ๊ณต์ธ IP ์ฃผ์†Œ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ๋Œ€์‹œ๋ณด๋“œ์— ์ง€์† ์•Œ๋ฆผ(Persistent Notification)์„ ๋„์šฐ๋Š” ๊ฒƒ๊ณผ ๋™์‹œ์—, ์ž๋™ํ™” ๊ตฌ์ถ•์„ ์œ„ํ•œ ์‹ค์‹œ๊ฐ„ ์ปค์Šคํ…€ ์ด๋ฒคํŠธ(iptime_manager_wan_alert)๋ฅผ ๋ฐฉ์ถœํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณด์•ˆ ์œ„ํ˜‘ ์‹ค์‹œ๊ฐ„ ํƒ์ง€: GeoIP ์ฐจ๋‹จ ํ•ด์ œ, CSRF ๋ฐฉ์–ด ํ•ด์ œ, DoS ๋ณดํ˜ธ ๊บผ์ง, Wi-Fi BSS ๊ฐ•์ œ ์ข…๋ฃŒ ๋“ฑ ์น˜๋ช…์ ์ธ ๋ณด์•ˆ ์„ค์ • ๋ณ€๋™ ๊ฐ์ง€ ์‹œ ์Šค๋งˆํŠธํฐ ํ…”๋ ˆ๊ทธ๋žจ์ด๋‚˜ ํ‘ธ์‹œ ์•Œ๋ฆผ ๋“ฑ์œผ๋กœ ์ฆ‰์‹œ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋™ํ™” ํŠธ๋ฆฌ๊ฑฐ์šฉ ์ปค์Šคํ…€ ์ด๋ฒคํŠธ(iptime_manager_security_alert)๋ฅผ ๋ฐœ์†กํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณต์œ ๊ธฐ ํŽŒ์›จ์–ด ์—…๋ฐ์ดํŠธ ๊ฐ์ง€ (1.0.4 ์‹ ์„ค): ํ˜„์žฌ ์„ค์น˜๋œ ๊ณต์œ ๊ธฐ ํŽŒ์›จ์–ด ๋ฒ„์ „๊ณผ ์›๊ฒฉ ์ตœ์‹  ๋ฒ„์ „์„ ๋น„๊ตํ•˜์—ฌ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ฐฐํฌ๋œ ๊ฒฝ์šฐ ๋Œ€์‹œ๋ณด๋“œ์— ํด๋ฆญ ๊ฐ€๋Šฅํ•œ ๊ณต์œ ๊ธฐ ์„ค์ • ํŽ˜์ด์ง€ ๋‹จ์ถ• ๋งํฌ๋ฅผ ๋™๋ด‰ํ•œ ์ง€์† ์•Œ๋ฆผ์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋ฉฐ, ์—…๋ฐ์ดํŠธ ์™„๋ฃŒ ์‹œ ์•Œ๋ฆผ์ด ์ž๋™์œผ๋กœ ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค.

3. Wi-Fi ๋ฌด์„  ๋Œ€์—ญ๋ณ„ ์ตœ์  ์ฑ„๋„ ์ˆ˜๋™ ์ œ์–ด ๋ฐ ์‹ค์‹œ๊ฐ„ ๊ตฌ๋™ ์ฑ„๋„ ์—ฐ๋™ (1.0.3 ์‹ ์„ค)

  • ๋Œ€์—ญ๋ณ„ Wi-Fi ์ฑ„๋„ ๋ณ€๊ฒฝ: 2.4GHz, 5GHz, 6GHz ๋“ฑ ๋Œ€์—ญ๋ณ„๋กœ ๊ณต์œ ๊ธฐ๊ฐ€ ๊ฐ€๋™ํ•  ๋ฌด์„  ์ฑ„๋„์„ ๋Œ€์‹œ๋ณด๋“œ ์…€๋ ‰ํ„ฐ(select.iptime_wifi_channel_...)๋กœ ์ง์ ‘ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์Šค๋งˆํŠธ ์บ์‹ฑ & ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค์บ”: ๋™๊ธฐ์ ์ธ API ํ†ต์‹ ์œผ๋กœ ์ธํ•ด ํ™ˆ์–ด์‹œ์Šคํ„ดํŠธ UI๊ฐ€ ์–ผ์–ด๋ถ™๋Š” ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ ์ž, 1์‹œ๊ฐ„ ์Šค๋งˆํŠธ ์บ์‹ฑ๊ณผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํƒœ์Šคํฌ ์—”์ง„์„ ๋„์ž…ํ•ด ์พŒ์ ํ•˜๊ฒŒ ๋ฌด์„  ๊ฐ€์šฉ ์ฑ„๋„ ๋ชฉ๋ก์„ ์กฐํšŒํ•˜๊ณ  ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฑ„๋„ ์†์„ฑ ์‹ค์‹œ๊ฐ„ ๋…ธ์ถœ: Wi-Fi ์˜จ์˜คํ”„ ์Šค์œ„์น˜์˜ ์ƒํƒœ ์†์„ฑ(channel ํ•„๋“œ)์— ํ˜„์žฌ ๋ฌด์„  ์นฉ์…‹์˜ ๋ฌผ๋ฆฌ ๊ฐ€๋™ ์ฑ„๋„ ์ •๋ณด๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฒฐํ•ฉํ•ด ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

4. ๊ฐœ๋ณ„ Wi-Fi SSID(BSS) ํ† ๊ธ€ ์Šค์œ„์น˜

  • SSID ๋‹จ์œ„ ๊ฐœ๋ณ„ ์ œ์–ด: 2.4G/5G/6G ๋Œ€์—ญ์˜ ๊ฐœ๋ณ„ SSID๋ฅผ ์ผœ๊ณ  ๋Œ ์ˆ˜ ์žˆ๋Š” ํ† ๊ธ€ ์Šค์œ„์น˜(switch)๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ์ˆœ๋‹จ ์˜ˆ๋ฐฉ: ๋ฐด๋“œ ์ „์ฒด๋ฅผ ๋„๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ฐœ๋ณ„ SSID(BSS) ๋‹จ์œ„๋กœ ์ œ์–ดํ•˜๋ฏ€๋กœ ๋ฌด์„  ์นฉ์…‹ ์ „์ฒด ์žฌ๋ถ€ํŒ…์œผ๋กœ ์ธํ•œ IoT ๊ธฐ๊ธฐ๋“ค์˜ ํŠ•๊น€ ํ˜„์ƒ์„ ์˜ˆ๋ฐฉํ•ฉ๋‹ˆ๋‹ค.

4. 3์„ธ๋Œ€ IUX ๋ณด์•ˆ ์Šค์œ„์น˜ ๋ฐ GeoIP ์•ˆ์ „์žฅ์น˜ (๋ฝ์•„์›ƒ ๋ฐฉ์ง€)

  • 8์ข… ๋ณด์•ˆ ์ œ์–ด: ์›๊ฒฉ ๊ด€๋ฆฌ ํฌํŠธ, CSRF ๋ณด์•ˆ ์ฐจ๋‹จ, ARP ๋ฐ”์ด๋Ÿฌ์Šค ์ฐจ๋‹จ, Inbound Ping ์ œ์–ด ๋“ฑ 8์ข… ๋ณด์•ˆ ์„ค์ •์„ ์Šค์œ„์น˜๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค.
  • ๋น„ํ™œ์„ฑํ™” ๊ฐ์ง€ ์•Œ๋ฆผ: 8์ข… ๋ณด์•ˆ ์˜ต์…˜ ์ค‘ ์ผœ์ ธ ์žˆ๋˜ ์˜ต์…˜์ด ๋น„ํ™œ์„ฑํ™”๋˜๋ฉด ์ทจ์•ฝ ์œ„ํ—˜์„ฑ์— ๋Œ€ํ•œ ๊ฐ„๊ฒฐํ•œ ์•ˆ๋‚ด์™€ ํ•จ๊ป˜ ๋Œ€์‹œ๋ณด๋“œ์— ์•Œ๋ฆผ์„ ๋„์›๋‹ˆ๋‹ค.
  • GeoIP ๊ตญ๊ฐ€ ํ—ˆ์šฉ ๋ฝ์•„์›ƒ ๋ฐฉ์ง€: GeoIP ์ฐจ๋‹จ ๊ฑด์ˆ˜ ์„ผ์„œ ๋ฐ ์ •์ฑ… ์„ค์ • ์…€๋ ‰ํ„ฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ๊ตญ๊ฐ€ ํ—ˆ์šฉ(Country Allow) ๋ชจ๋“œ๋กœ ๋ณ€๊ฒฝ ์‹œ ํ—ˆ์šฉ ๊ตญ๊ฐ€ ๋ชฉ๋ก์ด ์™„์ „ํžˆ ๋น„์–ด ์žˆ์œผ๋ฉด ๋Œ€ํ•œ๋ฏผ๊ตญ ์ฝ”๋“œ('kr')๋ฅผ ๊ฐ•์ œ๋กœ ์ž๋™ ์‚ฝ์ž…ํ•˜์—ฌ ์‚ฌ์šฉ์ž ๋ณธ์ธ์ด ๊ณต์œ ๊ธฐ ๊ด€๋ฆฌ ํŽ˜์ด์ง€์—์„œ ์˜๊ตฌ์ ์œผ๋กœ ์ฐจ๋‹จ๋˜๋Š” ์‚ฌ๊ณ ๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

5. NAT ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ ์ œ์–ด (ํฌํŠธํฌ์›Œ๋“œ, UPnP ๋ฆด๋ ˆ์ด)

  • ๋Œ€์‹œ๋ณด๋“œ ์›๊ฒฉ ์Šค์œ„์น˜: ๊ณต์œ ๊ธฐ์˜ ํฌํŠธํฌ์›Œ๋”ฉ ๊ธฐ๋Šฅ ๋ฐ UPnP ๋ฆด๋ ˆ์ด ๊ธฐ๋Šฅ์˜ ํ™œ์„ฑํ™” ์Šค์œ„์น˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

6. WireGuard VPN ์„œ๋ฒ„ ์ œ์–ด

  • ์„œ๋ฒ„ ๋™์ž‘ ์ œ์–ด: ๋‚ด์žฅ WireGuard VPN ์„œ๋ฒ„์˜ ์‹คํ–‰ ์ƒํƒœ ์Šค์œ„์น˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • API ๊ทœ๊ฒฉ ์ค€์ˆ˜: ๊ณต์œ ๊ธฐ ํŽŒ์›จ์–ด JSON-RPC ์Šคํ‚ค๋งˆ๊ฐ€ ์š”๊ตฌํ•˜๋Š” ํ•„์ˆ˜ 5๋Œ€ ํ•„๋“œ(run, ip, subnet, port, nat)๋งŒ์„ ์ •์ œ ์ „์†กํ•˜์—ฌ ์ œ์–ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

7. ๋‚˜์ดํŠธ LED ๋ฐ ์ž๋™ ์žฌ๋ถ€ํŒ… ์„ค์ • ๋ณด์กด

  • ๋‚˜์ดํŠธ LED ๋ฐ ์ž๋™ ์žฌ๋ถ€ํŒ… ๊ด€๋ฆฌ: ์•ผ๊ฐ„ LED ๋ชจ๋“œ ์…€๋ ‰ํ„ฐ ๋ฐ ์ž๋™ ์žฌ๋ถ€ํŒ… ์š”์ผ ๋ณ€๊ฒฝ ์…€๋ ‰ํ„ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์Šค์ผ€์ค„ ๋ณด์กด (Memory Retention): ์˜ต์…˜ ์Šค์œ„์น˜๋ฅผ ์กฐ์ž‘ํ•  ๋•Œ, ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ์ž…๋ ฅํ•ด ๋‘์—ˆ๋˜ ์„ธ๋ถ€ ์‹œ๊ฐ(์žฌ๋ถ€ํŒ… ์‹œ๊ฐ/LED ์Šค์ผ€์ค„ ์‹œ์ž‘ ์‹œ๊ฐ„ ๋“ฑ) ์ •๋ณด๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๊ฐ•์ œ ๋ฆฌ์…‹๋˜์ง€ ์•Š๋„๋ก ์ธ์Šคํ„ด์Šค ๋‚ด์— ๊ธฐ์กด ์„ค์ •๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค.

8. ์Šค๋งˆํŠธ ์žฌ์‹ค ๊ฐ์ง€ & ์ž๋™ ์—”ํ‹ฐํ‹ฐ ํด๋ฆฐ์—…

  • ๊ธฐ๊ธฐ ๋ณด์กด: ์˜ต์…˜์—์„œ ๋ชจ๋“  ๊ธฐ๊ธฐ๋ฅผ ์ฒดํฌ ํ•ด์ œํ•˜๋”๋ผ๋„ ๊ธฐ์กด ๋“ฑ๋ก ๊ธฐ๊ธฐ ๋ฐ์ดํ„ฐ(MAC ๋ฐ ์ปค์Šคํ…€ ์ด๋ฆ„)๊ฐ€ ์œ ์‹ค๋˜์ง€ ์•Š๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ๋ณด์กด๋˜์–ด ์ถ”ํ›„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ถˆํ•„์š”ํ•œ ์—”ํ‹ฐํ‹ฐ ์‚ญ์ œ: ๊ตฌ์„ฑ ์˜ต์…˜์—์„œ ์ œ์™ธ(์ฒดํฌ ํ•ด์ œ)ํ•œ ๊ธฐ๊ธฐ๋Š” ํ™ˆ์–ด์‹œ์Šคํ„ดํŠธ Entity Registry ์ˆ˜์ค€์—์„œ ์ฆ‰์‹œ ์™„์ „ ์‚ญ์ œํ•˜์—ฌ ๋Œ€์‹œ๋ณด๋“œ ์ƒํƒœ๊ฐ€ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ˆ๋ฉ๋‹ˆ๋‹ค.

9. ์ด์›ํ™” ํด๋ง ์ˆ˜์ง‘ ๋ฐ ์Šค์บ” ์ฃผ๊ธฐ(scan_interval) ์ปค์Šคํ…€ํ™”

  • ์ดˆ ๋‹จ์œ„ ์Šค์บ” ์ฃผ๊ธฐ ์„ ํƒ: ๊ฐฑ์‹  ๋ฐ ์˜ต์…˜ ์ˆ˜์ • ํ™”๋ฉด์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์žฌ์‹ค ์Šค์บ” ์ฃผ๊ธฐ(์ดˆ)๋ฅผ ์ง์ ‘ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • 5์ดˆ ์ง€๋Šฅํ˜• ์Šค๋กœํ‹€๋Ÿฌ: ์Šค์บ” ์ฃผ๊ธฐ๋ฅผ 1~3์ดˆ๋กœ ํƒ€์ดํŠธํ•˜๊ฒŒ ๋‹จ์ถ•ํ•˜๋”๋ผ๋„, ๋ฌด๊ฒ๊ณ  ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฐ ์‹œ์Šคํ…œ/ํฌํŠธ/๋ฌด์„  ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์€ ์ตœ์†Œ 5์ดˆ ์ฃผ๊ธฐ๋กœ ์Šค๋กœํ‹€๋ง ์ž‘๋™ํ•˜๋„๋ก ๊ฒฉ๋ฆฌ ๋…๋ฆฝ์‹œ์ผœ ๊ณต์œ ๊ธฐ ๊ณผ๋ถ€ํ•˜๋ฅผ ์›์ฒœ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.
  • ์ œ์–ด 0์ดˆ ์‹ค์‹œ๊ฐ„ ๋ฐ˜์‘: 5์ดˆ ๋Œ€๊ธฐ ์Šค๋กœํ‹€์ด ๋Œ๊ณ  ์žˆ๋”๋ผ๋„, ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ€์‹œ๋ณด๋“œ ์Šค์œ„์น˜๋‚˜ ์˜ต์…˜์„ ์กฐ์ž‘ํ•˜๋ฉด ์ฆ‰๊ฐ์ ์œผ๋กœ ๊ฐ•์ œ ๋™๊ธฐํ™”๊ฐ€ ์ง„ํ–‰๋˜์–ด ์ตœ์ƒ์˜ ํ”ผ๋“œ๋ฐฑ ์†๋„๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

10. ๊ณต์œ ๊ธฐ ๋ฌผ๋ฆฌ ์œ ์„  ํฌํŠธ ๋งํฌ ๋‹จ์ ˆ/์—ฐ๊ฒฐ ์‹ค์‹œ๊ฐ„ ์ปค์Šคํ…€ ์ด๋ฒคํŠธ (1.0.3 ์‹ ์„ค)

  • ํฌํŠธ ์ƒํƒœ ์ฒœ์ด ๊ฐ์ง€: LAN 1~4 ๋ฐ WAN ๋ฌผ๋ฆฌ ํฌํŠธ์˜ ์ด๋”๋„ท ์ผ€์ด๋ธ” ํƒˆ์ฐฉ(Link Up / Down)์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์•Œ๋ฆผ ํญํƒ„ ๋ฐฉ์ง€: ๋‹จ์ˆœ ๋…ธํŠธ๋ถ ์žฌ๋ถ€ํŒ… ๋“ฑ์œผ๋กœ ์ˆ˜๋งŽ์€ ์•Œ๋ฆผ ํŒ์—…์ฐฝ์ด ๋œจ๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด, ์•Œ๋ฆผ ๋Œ€์‹  ์ง€๋Šฅํ˜• ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ปค์Šคํ…€ ์ด๋ฒคํŠธ(iptime_manager_port_connected, iptime_manager_port_disconnected)๋ฅผ ๋ฐฉ์ถœํ•ฉ๋‹ˆ๋‹ค.
  • ํ’๋ถ€ํ•œ ์ž๋™ํ™” ํŽ˜์ด๋กœ๋“œ: ํฌํŠธ ์ข…๋ฅ˜(lan/wan), ํฌํŠธ ๋ฒˆํ˜ธ, ํฌํŠธ ํ‘œ๊ธฐ๋ช…, ๊ฐ์ง€๋œ ๋งํฌ ์—ฐ๊ฒฐ ๋ฌผ๋ฆฌ ์†๋„(Gbps/Mbps) ๋“ฑ์„ ์ด๋ฒคํŠธ ๋ฐ์ดํ„ฐ์— ๋™๋ด‰ํ•˜์—ฌ ์ง€๋Šฅํ˜• ์Šค๋งˆํŠธํ™ˆ ๊ธฐ๊ธฐ ์ „์› ์ œ์–ด๋‚˜ ๊ฒฝ๋ณด ์ž๋™ํ™” ์—ฐ๋™์„ ์™„๋ฒฝํžˆ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ง€์› ์—”ํ‹ฐํ‹ฐ ์š”์•ฝ

ํ”Œ๋žซํผ ์ฃผ์š” ์ œ๊ณต ๊ธฐ๋Šฅ ๋ฐ ์—”ํ‹ฐํ‹ฐ
device_tracker ์ง€์ •ํ•œ MAC ์ฃผ์†Œ ๊ธฐ๊ธฐ์˜ ์‹ค์‹œ๊ฐ„ ์žฌ์‹ค(Home/Away) ๊ฐ์ง€ ์„ผ์„œ
sensor ๊ณต์œ ๊ธฐ Uptime, ๋ชจ๋ธ๋ช…, ํŽŒ์›จ์–ด ๋ฒ„์ „(์ตœ์‹  ๋ฒ„์ „ ๋น„๊ต ํฌํ•จ), WAN IP ๋ฐ MAC ์ฃผ์†Œ, DNS ์ •๋ณด, GeoIP ์ฐจ๋‹จ ๋ˆ„์  ์ˆ˜ ๋“ฑ
binary_sensor WAN ๋ฐ LAN 1~4 ํฌํŠธ ์ด๋”๋„ท ์ผ€์ด๋ธ” ๋ฌผ๋ฆฌ ์—ฐ๊ฒฐ ์ƒํƒœ (Connectivity ๋””๋ฐ”์ด์Šค ํด๋ž˜์Šค ์ง€์›)
switch Wi-Fi ๊ฐœ๋ณ„ SSID ์ œ์–ด, WireGuard ์„œ๋ฒ„ ์ œ์–ด, ์ž๋™ ์žฌ๋ถ€ํŒ… ๊ด€๋ฆฌ, ํฌํŠธํฌ์›Œ๋“œ ์ œ์–ด, UPnP ๋ฆด๋ ˆ์ด ์ œ์–ด, [๋ณด์•ˆ 8์ข…] ์›๊ฒฉ ๊ด€๋ฆฌ/CSRF/ARP Virus/Ping Block ๋“ฑ
select ๋‚˜์ดํŠธ LED ๋ชจ๋“œ ์„ค์ •, ์ž๋™ ์žฌ๋ถ€ํŒ… ์š”์ผ ์„ค์ •, GeoIP ์ •์ฑ… ์„ค์ •, [์‹ ์„ค] Wi-Fi ๋Œ€์—ญ๋ณ„ ์ฑ„๋„ ์„ค์ • ์„ ํƒ (select.iptime_wifi_channel_...)
button ๊ณต์œ ๊ธฐ ์ฆ‰์‹œ ์•ˆ์ „ ์žฌ๋ถ€ํŒ… (button.reboot)
Event Bus [์‹ ์„ค] ๋ฌผ๋ฆฌ ํฌํŠธ ์—ฐ๊ฒฐ/ํ•ด์ œ ์ด๋ฒคํŠธ (iptime_manager_port_connected / _disconnected), ๋ณด์•ˆ ๊ฒฝ๋ณด ์ด๋ฒคํŠธ (iptime_manager_security_alert), WAN ๋‹จ์„ /IP ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ (iptime_manager_wan_alert)

์•ˆ์ „ ์ œ์–ด ์„ค๊ณ„ ๊ธฐ์กฐ ์•ˆ๋‚ด

์Šค๋งˆํŠธํ™ˆ์˜ ์‹ฌ์žฅ์ธ ํ™ˆ ๋„คํŠธ์›Œํฌ์˜ ์•ˆ์ •์„ฑ์„ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๊ณ„๋ฅผ ๊ฐœํŽธํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ค์ • ๋ณ€๊ฒฝ ์‹œ ๊ณต์œ ๊ธฐ ํ•˜๋“œ์›จ์–ด ์นฉ์…‹์˜ ๋ฌผ๋ฆฌ์ ์ธ ์ฆ‰์‹œ ๊ฐ•์ œ ์žฌ๋ถ€ํŒ…์„ ์œ ๋ฐœํ•˜์—ฌ ์ง‘์•ˆ ์ „์ฒด ๋„คํŠธ์›Œํฌ ๋งˆ๋น„ ๋ฐ ์Šค๋งˆํŠธํ™ˆ ์—ฐ๋™ ๋‹จ์ ˆ์„ ์ดˆ๋ž˜ํ•˜๋Š” ๋‹ค์Œ ๋‘ ์—”ํ‹ฐํ‹ฐ๋Š” ์•ˆ์ „์„ ์œ„ํ•ด ์—”ํ‹ฐํ‹ฐ ๋ชฉ๋ก์—์„œ ์˜๊ตฌ์ ์œผ๋กœ ์ œ์™ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  1. IPTV ๋ชจ๋“œ ์ œ์–ด ์…€๋ ‰ํ„ฐ (select.iptime_iptv_mode ์˜๊ตฌ ์‚ญ์ œ)
  2. ์ธํ„ฐ๋„ท ๊ณต์œ ๊ธฐ๋Šฅ(NAT/Keep Connection) ์Šค์œ„์น˜ (switch.iptime_keep_connection ์˜๊ตฌ ์‚ญ์ œ)

Important

๋ณธ ์กฐ์น˜๋Š” ๊ณต์œ ๊ธฐ ํ•˜๋“œ์›จ์–ด์˜ ์„ค๊ณ„์  ํ•œ๊ณ„๋กœ ์ธํ•œ ์—ฐ๋™ ๋Š๊น€ ๋ฐ ๊ธฐ๊ธฐ ๋ฝ ํ˜„์ƒ์„ ์˜ˆ๋ฐฉํ•˜๊ธฐ ์œ„ํ•ด ์ทจํ•ด์ง„ ์•ˆ์ „ ์กฐ์น˜์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์„ค์ • ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜์‹  ๊ฒฝ์šฐ ๋ฐ˜๋“œ์‹œ ๊ณต์œ ๊ธฐ์˜ ์›น ๊ด€๋ฆฌ์ž ํ™”๋ฉด(192.168.0.1)์— ์ง์ ‘ ์ ‘์†ํ•˜์—ฌ ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.


์„ค์น˜ ๋ฐ ์„ค์ • ๊ฐ€์ด๋“œ

1. ์ž๋™ ์„ค์น˜ (์ถ”์ฒœ)

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

์œ„ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ HACS ์ €์žฅ์†Œ ์ถ”๊ฐ€ ํ›„ ipTIME Manager ์„ค์น˜ ํ›„ Home Assistant๋ฅผ ์žฌ์‹œ์ž‘ํ•ด ์ฃผ์„ธ์š”.

2. ์ˆ˜๋™ ์„ค์น˜

  1. HACS -> Integrations -> ์šฐ์ธก ์ƒ๋‹จ ๋ฉ”๋‰ด -> Custom repositories ์„ ํƒ
  2. https://github.com/plplaaa2/iptime_manager ์ถ”๊ฐ€ (Category: Integration)
  3. ipTIME Manager ์„ค์น˜ ํ›„ Home Assistant ์žฌ์‹œ์ž‘

3. ํ†ตํ•ฉ ๊ตฌ์„ฑ์š”์†Œ ์„ค์ • (Config Flow) ๋ฐ ์˜ต์…˜ ๋ณ€๊ฒฝ (Options Flow)

  • SNMP ์„ค์ • ๋ถˆํ•„์š”: ๋ณต์žกํ•œ SNMP ์„ค์ •์ด๋‚˜ ์ถ”๊ฐ€ ํŒจํ‚ค์ง€ ์„ค์น˜ ์—†์ด ์ฆ‰์‹œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ์ดˆ ๋“ฑ๋ก ๋‹จ๊ณ„ (Config Flow):
    • ๊ณต์œ ๊ธฐ ์ฃผ์†Œ(URL): ๊ณต์œ ๊ธฐ ์ ‘์† IP ์ฃผ์†Œ (์˜ˆ: http://192.168.0.1. ๋งŒ์•ฝ 80๋ฒˆ ํฌํŠธ๊ฐ€ ์•„๋‹Œ ์™ธ๋ถ€ ์›๊ฒฉ ๊ด€๋ฆฌ ํฌํŠธ๋ฅผ ์„ค์ •ํ•ด ๋‘์—ˆ๋‹ค๋ฉด http://192.168.0.1:8080๊ณผ ๊ฐ™์ด ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ž‘์„ฑ)
    • ๊ณ„์ • ์ •๋ณด: ๊ณต์œ ๊ธฐ ์›น ๊ด€๋ฆฌ์ž ๋กœ๊ทธ์ธ ์•„์ด๋”” ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ
    • ๊ฐ์ง€ ๊ฐ„๊ฒฉ (Scan Interval): ์žฌ์‹ค ๊ธฐ๊ธฐ ์ƒํƒœ๋ฅผ ์Šค์บ”ํ•  ์ฃผ๊ธฐ (๊ธฐ๋ณธ๊ฐ’ 5์ดˆ. ์ตœํ•˜ 1์ดˆ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์— ๋งž์ถฐ ์ž์œ ๋กญ๊ฒŒ ์กฐ์ ˆ ๊ฐ€๋Šฅ)
  • ์ƒ์„ธ ๊ตฌ์„ฑ ๋ณ€๊ฒฝ ๋‹จ๊ณ„ (Options Flow): ์—ฐ๋™ ์™„๋ฃŒ ํ›„ ์–ธ์ œ๋“ ์ง€ ์นด๋“œ ํ™”๋ฉด์˜ ์„ค์ •(Configure) ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์•„๋ž˜ ์„ค์ •์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์žฌ์‹ค ๊ฐ์ง€ ๋Œ€์ƒ ๋‹จ๋ง๊ธฐ ์„ ํƒ: ํ˜„์žฌ ๊ณต์œ ๊ธฐ์— ์ ‘์† ์ค‘์ด๊ฑฐ๋‚˜ ๋“ฑ๋ก๋œ ๋ฌด์„  ๋‹จ๋ง ๋ชฉ๋ก์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฒ€์ƒ‰๋˜์–ด ์ฒดํฌ๋ฐ•์Šค๋กœ ํ‘œ์‹œ๋˜๋ฉฐ, ์ถ”์ ์„ ์›ํ•˜๋Š” ๊ธฐ๊ธฐ๋ฅผ ์„ ํƒํ•ด device_tracker ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    • ์™ธ์ถœ(not_home) ํŒ๋‹จ ์ง€์—ฐ ์‹œ๊ฐ„: ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ๊ฐ€ ์ผ์‹œ์ ์œผ๋กœ Wi-Fi ์ ˆ์ „ ๋ชจ๋“œ๋‚˜ ์ˆ˜์‹ ์œจ ์ €ํ•˜๋กœ ์—ฐ๊ฒฐ์ด ๋Š์–ด์กŒ์„ ๋•Œ, ์žฌ์‹ค ์ƒํƒœ๊ฐ€ ์ฆ‰๊ฐ Away๋กœ ํ”Œ๋ž˜ํ•‘(Flapping) ์˜ค์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ์œ ์˜ˆํ•ด ์ฃผ๋Š” ๋Œ€๊ธฐ ์‹œ๊ฐ„ (์ดˆ ๋‹จ์œ„, ๊ธฐ๋ณธ๊ฐ’ 180์ดˆ ์ถ”์ฒœ).
    • RSSI ๊ธฐ์ค€์น˜ (RSSI Limit): ๋ฌด์„  ์‹ ํ˜ธ ๊ฐ๋„๊ฐ€ ์„ค์ •๋œ ์ž„๊ณ„๊ฐ’(dBm) ์ดํ•˜๋กœ ๋–จ์–ด์ง€๋ฉด ์ง‘์— ์—†๋Š” ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ•  ์ž„๊ณ„ ๊ฐ๋„ (๊ธฐ๋ณธ๊ฐ’ -90dBm).

ํ›„์›ํ•˜๊ธฐ

์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ๋„์›€์ด ๋˜์…จ๋‹ค๋ฉด ๋”ฐ๋œปํ•œ ์ปคํ”ผ ํ•œ ์ž”์œผ๋กœ ๊ฐœ๋ฐœ์ž๋ฅผ ์‘์›ํ•ด ์ฃผ์„ธ์š”!

Buy Me a Coffee at ko-fi.com


๋ผ์ด์„ ์Šค

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค๋ฅผ ๋”ฐ๋ฅด๋Š” ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. ๊ณต์œ ๊ธฐ ํŽŒ์›จ์–ด ์—ญ๊ณตํ•™ ๋ฐ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ API ํ†ต์‹  ๊ทœ์•ฝ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋ฒ•์ ์ด๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์ƒํ˜ธ์šด์šฉ์„ฑ์„ ํ™•๋ณดํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, ์‚ฌ์šฉ ์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ์œ„ํ—˜ ์š”์†Œ์— ๋Œ€ํ•ด ๋ผ์ด์„ ์Šค ๋ฉด์ฑ… ์กฐํ•ญ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

About

Comprehensive ipTIME router management for Home Assistant

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages