Skip to content

About

Home Assistant custom climate integration for adaptive floor heating with learned predictive control

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

51 Commits

Folders and files

Repository files navigation

Adaptive Floor Heating Climate

hacs_badge version kofi

Home Assistant์šฉ ํ•™์Šตํ˜• ๋ฐ”๋‹ฅ๋‚œ๋ฐฉ Climate ์ปค์Šคํ…€ ํ†ตํ•ฉ์ž…๋‹ˆ๋‹ค. HEAT/AUTO ์šด์ „, ์žฌ์‹คยท์™ธ์ถœ ํ”„๋ฆฌ์…‹, ๊ธฐ๋ณธ ํžˆ์Šคํ…Œ๋ฆฌ์‹œ์Šค ์ œ์–ด, ์—ด ๋ฐ˜์‘ ๊ด€์ธก๊ณผ ํ•™์Šต ๊ธฐ๋ฐ˜ ์˜ˆ์ธก ON/OFF๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‹จ๋… ๋ฐ ๋ฐฉ๋ณ„ Climate, ์—ฌ๋Ÿฌ ๋ฐฉ์„ ํ•˜๋‚˜๋กœ ์ œ์–ดํ•˜๋Š” ํ†ตํ•ฉ Climate๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ์ƒํƒœ

  • ํ˜„์žฌ ์ž‘์—… ๋ธŒ๋žœ์น˜: dev
  • ํ†ตํ•ฉ ๋„๋ฉ”์ธ: adaptive_floor_heating
  • ํ†ตํ•ฉ manifest ๋ฒ„์ „: 0.1.0
  • ์„ค์น˜ ๊ฒฝ๋กœ: custom_components/adaptive_floor_heating/
  • ์„ค์ • ๋ฐฉ์‹: ๊ฐœ๋ณ„ ์ œ์–ด ๋˜๋Š” ๋ฉ€ํ‹ฐ๋ฃธ(ํ†ตํ•ฉ) ์„ ํƒ
  • ๊ฐœ๋ณ„ ์ œ์–ด: ํžˆํ„ฐ ์Šค์œ„์น˜ 1๊ฐœ + ํ•ด๋‹น ๊ณต๊ฐ„ ์‹ค๋‚ด ์˜จ๋„ ์„ผ์„œ 1๊ฐœ. ๋ฐฉ๋ณ„ ์ œ์–ด๋Š” ์ด ์„ค์ •์„ ๋ฐฉ๋งˆ๋‹ค ์ถ”๊ฐ€
  • ๋ฉ€ํ‹ฐ๋ฃธ(ํ†ตํ•ฉ): ๋ฐฉ ์ˆ˜(2~32), ๊ณต์šฉ ์‹ค๋‚ด ์˜จ๋„ ์„ผ์„œ 1๊ฐœ, ๋ฐฉ๋ณ„ ํžˆํ„ฐ ์Šค์œ„์น˜ ์„ ํƒ
  • ๊ฐ™์€ ์Šค์œ„์น˜์˜ ๋ฐฉ ๊ฐ„ยทํ†ตํ•ฉ ๊ฐ„ ์ค‘๋ณต ๋“ฑ๋ก ๋ฐฉ์ง€(์ง„ํ–‰ ์ค‘์ธ ์„ค์ • ํฌํ•จ)

๋ฐ”๋‹ฅ๋‚œ๋ฐฉ ์‚ฌ์ด๋“œ๋ฐ” (7๋‹จ๊ณ„)

ํ†ตํ•ฉ์„ ๋กœ๋“œํ•˜๋ฉด Home Assistant ์‚ฌ์ด๋“œ๋ฐ”์— ๋ฐ”๋‹ฅ๋‚œ๋ฐฉ ๋ฉ”๋‰ด๊ฐ€ ์ž๋™ ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค. HA ๋‚ด๋ถ€ ์›น ์„œ๋ฒ„์—์„œ ํ™”๋ฉด์„ ์ œ๊ณตํ•˜๋ฉฐ ๋ณ„๋„ ์„œ๋ฒ„ ์„ค์น˜๋‚˜ YAML ์„ค์ •์€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ƒ๋‹จ์—๋Š” ๋Œ€์‹œ๋ณด๋“œยท์šด์ „ ์ œ์–ดยทํ•™์Šต ๋ถ„์„ยท์šด์ „ ๊ธฐ๋ก ๋ฉ”๋‰ด๊ฐ€ ์žˆ๊ณ , ๋Œ€์‹œ๋ณด๋“œ๋Š” ์šด์ „ ์ค‘์‹ฌ ๋ ˆ์ด์•„์›ƒ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋ฐฉ/ํ†ตํ•ฉ์„ ์„ ํƒํ•˜๋ฉด ํ˜„์žฌยท๋ชฉํ‘œ ์˜จ๋„, OFF/HEAT/AUTO, ์žฌ์‹ค/์™ธ์ถœ, ํ•™์Šต ๋ชจ๋ธ, ํžˆํ„ฐ ํ™•์ธ ์ƒํƒœ, ON/OFF ๋ช…๋ น ํ™•์ธ ๋Œ€๊ธฐ, ์ œ์–ด ์ƒํƒœ์™€ ์˜ค๋ฅ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. HA ์—”ํ‹ฐํ‹ฐ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์ด ํ†ตํ•ฉ์˜ ํ™œ์„ฑยทํ‘œ์‹œ ๊ฐ€๋Šฅํ•œ Climate๋ฅผ ์‹๋ณ„ํ•˜๊ณ , HA๊ฐ€ ์ „๋‹ฌํ•˜๋Š” ์ƒํƒœ ๋ณ€๊ฒฝ์„ ํ™”๋ฉด์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฆ„๊ณผ ์—”ํ‹ฐํ‹ฐ ID๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ๊ณ ์œ  ID๋กœ ์„ ํƒ ํ•ญ๋ชฉ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์˜จ๋„ ๋‹จ์œ„๋Š” HA ์„ค์ •์„ ๋”ฐ๋ฅด๋ฉฐ ์—ฐ๊ฒฐ ๋Š๊น€ยทunavailableยท์œ ํšจํ•˜์ง€ ์•Š์€ ์˜จ๋„๋Š” ์‹ค์ œ ์˜จ๋„๋กœ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋Œ€์‹œ๋ณด๋“œ์™€ ์šด์ „ ์ œ์–ด ํƒญ์—๋Š” HA Climate ์ƒ์„ธ ๋ณด๊ธฐ ์Šคํƒ€์ผ์˜ ์˜จ๋„ ์•„ํฌ์™€ ์›ํ˜• ํ•ธ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„ํฌ๋ฅผ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ๋“œ๋ž˜๊ทธํ•œ ๋’ค ๋†“์œผ๋ฉด ๋ชฉํ‘œ์˜จ๋„๋ฅผ ํ•œ ๋ฒˆ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์กฐ์ž‘ ์ทจ์†Œ๋Š” ์ดˆ์•ˆ์„ ๋ณต๊ตฌํ•˜๋ฉฐ, ๋ฐฉยท์—ฐ๊ฒฐยท๋‹จ์œ„ ๋ณ€๊ฒฝ์ด๋‚˜ ์‚ฌ์šฉ ๋ถˆ๊ฐ€ ์ƒํƒœ์—์„œ๋Š” ์ด์ „ ์กฐ์ž‘์„ ์ „์†กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชฉํ‘œ์˜จ๋„๋Š” ์ฝ๊ธฐ ์ „์šฉ ์ˆซ์ž๋กœ ํ‘œ์‹œํ•˜๋ฉฐ +/โˆ’ ๋ฒ„ํŠผ์€ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค ์ฆ‰์‹œ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ์ฐฝ๊ณผ ์ ์šฉ ๋ฒ„ํŠผ์€ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. OFF/HEAT/AUTO ๋ฐ ์žฌ์‹ค/์™ธ์ถœ ๋ฒ„ํŠผ์€ ์„ ํƒํ•œ Climate์˜ ๊ธฐ์กด HA ์„œ๋น„์Šค๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ ๋ฒ”์œ„ยท๋‹จ์œ„ยท์ฆ๋ถ„์€ ํ•ด๋‹น Climate ์†์„ฑ๊ณผ HA ์„ค์ •์„ ๋”ฐ๋ฅด๋ฉฐ, ์š”์ฒญ ์ฒ˜๋ฆฌ ์ค‘์—๋Š” ์ค‘๋ณต ์š”์ฒญ๊ณผ ๋ฐฉ ์„ ํƒ์„ ์ž ๊ธ‰๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ํ•ญ๋ชฉ์€ ์ œ์–ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์„ฑ๊ณต์€ ์‹ค์ œ ํžˆํ„ฐ ์ „ํ™˜์„ ์˜๋ฏธํ•˜์ง€ ์•Š์œผ๋ฉฐ, ํ‘œ์‹œ๊ฐ’๊ณผ ์„ ํƒ ์ƒํƒœ๋Š” HA ๋ณด๊ณ ๊ฐ’์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์‹คํŒจ๋‚˜ 15์ดˆ ์‘๋‹ต ํ™•์ธ ์‹œ๊ฐ„ ์ดˆ๊ณผ ์‹œ ์•ˆ๋‚ดํ•˜๋ฉฐ ์ž๋™ ์žฌ์ „์†กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•™์Šตยท์˜ˆ์ธก ์„ค์ •์€ ์นด๋“œ ํ•˜๋‹จ์—์„œ ํŽผ์น˜๊ฑฐ๋‚˜ ์ ‘์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘ ํƒญ์˜ AUTO ํ•™์Šต ๋ชจ๋ธ๊ณผ ์˜ˆ์ธก ์šด์ „ ์„ ํƒ์€ ๊ฐ™์€ ์„ค์ • ํ•ญ๋ชฉ์˜ ๊ธฐ์กด Select ์—”ํ‹ฐํ‹ฐ์— select.select_option์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์„ค์ • ํ•ญ๋ชฉ IDยทํ†ตํ•ฉ ์†Œ์œ ๊ถŒยท๊ณ ์œ  ID๋กœ ๋Œ€์ƒ์„ ์ฐพ์œผ๋ฏ€๋กœ ์—”ํ‹ฐํ‹ฐ ID ๋ณ€๊ฒฝ์—๋„ ๋Œ€์‘ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ•™์Šต/5๋ถ„ ์ปค๋ธŒ ๋ฐ eco/balanced/comfort ์ค‘ ํ•ด๋‹น ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์ง€์›ํ•˜๋Š” ๊ฐ’๋งŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๋ฝยท์ˆจ๊น€ยท๋น„ํ™œ์„ฑยท์‚ฌ์šฉ ๋ถˆ๊ฐ€ ์—”ํ‹ฐํ‹ฐ๋Š” ์„ ํƒํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์„ฑ๊ณต ์ดํ›„์—๋„ HA๊ฐ€ ๋ณด๊ณ ํ•œ ์„ ํƒ๊ฐ’์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒ์€ AUTO์— ์ ์šฉ๋˜๊ณ  ๊ธฐ์กด ๋ชจ๋ธ์˜ ํ•™์Šตยท๋ณต์›ยท๋Œ€์ฒด ๋™์ž‘์€ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋ชจ๋ธ์ด๋‚˜ ์˜ˆ์ธก ์šด์ „ ๋ณ€๊ฒฝ์œผ๋กœ ์ž‘์„ฑ ์ค‘์ธ ๋ชฉํ‘œ์˜จ๋„ ์ž…๋ ฅ์„ ์ง€์šฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋Œ€์‹œ๋ณด๋“œ์™€ ์šด์ „ ๊ธฐ๋ก ํƒญ์—์„œ ์ตœ๊ทผ 6์‹œ๊ฐ„ยท24์‹œ๊ฐ„์˜ ์‹ค๋‚ด ์˜จ๋„, ๋ชฉํ‘œ์˜จ๋„์™€ ํžˆํ„ฐ ON ํ™•์ธ ๊ตฌ๊ฐ„์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. HA HistoryยทRecorder์— ํ•ด๋‹น Climate์˜ ์ƒํƒœยท์†์„ฑ์ด ๊ธฐ๋ก๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ™œ์„ฑ ๊ทธ๋ž˜ํ”„ ํ™”๋ฉด์€ 60์ดˆ๋งˆ๋‹ค ์กฐํšŒํ•˜๊ณ  ์ƒˆ๋กœ๊ณ ์นจ ๋ฒ„ํŠผ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฑฐ๋‚˜ ํ„ฐ์น˜ํ•˜๋ฉด ํ•ด๋‹น ์‹œ๊ฐ์˜ ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ๊ธฐ๋ก๊ฐ’์€ ๋‹ค์Œ ๋ณด๊ณ ๊นŒ์ง€ ์œ ์ง€ํ•ด ํ‘œ์‹œํ•˜๋ฉฐ unknown/unavailable ๊ตฌ๊ฐ„์€ ์˜จ๋„ ์„ ์„ ๋Š์Šต๋‹ˆ๋‹ค. ํžˆํ„ฐ ํ™•์ธ ์ƒํƒœ๋Š” ์‹ค์ œ ์—ด๊ณต๊ธ‰ ์ธก์ •๊ฐ’์ด ์•„๋‹™๋‹ˆ๋‹ค. ํ‘œ์‹œ ์‹œ๊ฐ„๋Œ€์™€ ๋‹จ์œ„๋Š” HA ์„ค์ •์„ ๋”ฐ๋ฅด๋ฉฐ ๊ณผ๊ฑฐ ๊ธฐ๋ก ์ค‘ ์˜จ๋„ ๋‹จ์œ„๋ฅผ ๋ณ€๊ฒฝํ•œ ๊ฒฝ์šฐ ์ €์žฅ๋œ Climate ๊ฐ’์˜ ๋‹จ์œ„๋ฅผ ๋”ฐ๋กœ ๋ณต๊ตฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—”ํ‹ฐํ‹ฐ ID ๋ณ€๊ฒฝ ์ด์ „์˜ ๋‹ค๋ฅธ ID์— ์ €์žฅ๋œ ๊ธฐ๋ก์€ ์ด๋ฒˆ ์กฐํšŒ์— ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ตœ๊ทผ ์™„๋ฃŒ ์‚ฌ์ดํด์—๋Š” ์‹ค์ œ ์ตœ๊ณ ์˜จ๋„, ๋‚œ๋ฐฉ OFFยท์‹ค์ œ ์ตœ๊ณ ์ ยท๊ด€์ธก ์™„๋ฃŒ ์‹œ๊ฐ, ๊ธฐ์กด/5๋ถ„ ์ปค๋ธŒ ๋ชจ๋ธ์˜ ์˜ˆ์ธก ์ตœ๊ณ ์˜จ๋„์™€ ์˜ค์ฐจ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์˜ค์ฐจ๋Š” ์˜ˆ์ธก โˆ’ ์‹ค์ œ์ด๋ฉฐ, ์˜ˆ์ธก์ด ์—†์—ˆ๋˜ ๋ชจ๋ธ์€ โ€”๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์™„๋ฃŒ ๊ฒฐ๊ณผ ์ž์ฒด์— ์ €์žฅ๋œ ์˜ˆ์ธกยท์˜ค์ฐจ๋งŒ ์‚ฌ์šฉํ•˜๊ณ , ์‹ ๋ขฐ๋„๋Š” ์ตœ๊ทผ OFF ๊ธฐ๋ก๊ณผ ์™„๋ฃŒ ๊ฒฐ๊ณผ์˜ OFF ์‹œ๊ฐ์ด ๊ฐ™์„ ๋•Œ๋งŒ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ OFF ๊ธฐ๋ก๊ณผ ์ด์ „ ์™„๋ฃŒ ๊ฒฐ๊ณผ๋ฅผ ์„ž์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ ์ •๋ณด๊ฐ€ ์—†๋Š” ๊ตฌํ˜• ์™„๋ฃŒ ๊ฒฐ๊ณผ๋„ ์˜จ๋„ ๋น„๊ต๋Š” ํ‘œ์‹œํ•˜๋ฉฐ, ํ•ญ๋ชฉ์ด unavailable์ด๋ฉด ๊ณผ๊ฑฐ ์™„๋ฃŒ ๊ฒฐ๊ณผ๋ผ๋Š” ์•ˆ๋‚ด๋ฅผ ๋ถ™์ž…๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ์ง„๋‹จ ์˜จ๋„๋Š” ์„ญ์”จ์ด๋ฏ€๋กœ ํ™”์”จ ์„ค์ •์—์„œ๋Š” ์ ˆ๋Œ€์˜จ๋„์™€ ์˜ค์ฐจ๋ฅผ ๊ฐ๊ฐ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์‹œ๋ณด๋“œ์™€ ํ•™์Šต ๋ถ„์„ ํƒญ์—์„œ ColdยทWarmยทPredictive WarmยทCooling ์ข…๋ฅ˜๋ฅผ ์„ ํƒํ•ด CurrentยทLong-term ์ปค๋ธŒ๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„๋Š” ๋ˆ„์  ์˜จ๋„๋‚˜ OFF ์‘๋‹ต ์˜ˆ์ธก ๊ถค์ ์ด ์•„๋‹ˆ๋ผ ๊ฐ 5๋ถ„ ๊ตฌ๊ฐ„์˜ ํ•™์Šต๋œ ์˜จ๋„ ๋ณ€ํ™”๋Ÿ‰์ž…๋‹ˆ๋‹ค. Heating ์ข…๋ฅ˜๋Š” ๋‚œ๋ฐฉ ON ์‹œ์ ๋ถ€ํ„ฐ, Cooling์€ ์ตœ๊ณ ์ ๋ถ€ํ„ฐ ๊ฒฝ๊ณผ์‹œ๊ฐ„์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. 0 ๋ณ€ํ™”๋Ÿ‰๋„ ๋ณด์กดํ•˜๊ณ  ๋ˆ„๋ฝ ๋ฒ„ํ‚ท์€ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์Šน์ธ/์ œ์™ธ ์‚ฌ์ดํด ์ˆ˜, ๋‘ ๊ณ„์ธต์˜ ์‹ ๋ขฐ๋„, ํฌ์ธํ„ฐยทํ„ฐ์น˜ ์‹œ ๋ฒ„ํ‚ท๋ณ„ ์ฆ๊ฑฐ ์ˆ˜์™€ ์Šน๊ฒฉ ํšŸ์ˆ˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Long-term ์ฆ๊ฑฐ ์ˆ˜๋Š” ์Šน๊ฒฉ๋œ Current์˜ ์ฆ๊ฑฐ๋ฅผ ์ด์–ด๋ฐ›์œผ๋ฉฐ ์Šน๊ฒฉ ํšŸ์ˆ˜๊ฐ€ ๋…๋ฆฝ ์‚ฌ์ดํด ์ˆ˜๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

์ปค๋ธŒ๋Š” HA ๋กœ๊ทธ์ธ ์„ธ์…˜์˜ ์ฝ๊ธฐ ๊ถŒํ•œ์„ ๊ฒ€์‚ฌํ•˜๋Š” ์ „์šฉ WebSocket API๋กœ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•™์Šต ์ €์žฅ ๊ฒฐ๊ณผ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. ์กฐํšŒ๋Š” ๋ชจ๋ธ ํ•™์Šตยท์˜ˆ์ธกยทํžˆํ„ฐ ์ œ์–ด๋‚˜ SQLite ์“ฐ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 60์ดˆ ๊ฐฑ์‹ ๊ณผ ์ƒˆ๋กœ๊ณ ์นจ์„ ์ง€์›ํ•˜๋ฉฐ, ์ €์žฅ์†Œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€ยทํ•™์Šต ๋ฒ„ํ‚ท ์—†์Œยท์กฐํšŒ ์‹คํŒจ๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ํ™”์”จ ์„ค์ •์—์„œ๋Š” ์˜จ๋„์ฐจ์— ๋ฐฐ์œจ๋งŒ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ•™์Šต ๋ถ„์„ ํƒญ์€ ์‚ฌ์ดํด ์ค‘์‹ฌ ํ™”๋ฉด์ž…๋‹ˆ๋‹ค. ์ƒ๋‹จ์—์„œ 4์ข… ์ปค๋ธŒ์˜ ๋ˆ„์  ์Šน์ธ/์ œ์™ธ์™€ CurrentยทLong-term ์‹ ๋ขฐ๋„๋ฅผ ํ™•์ธํ•˜๊ณ , ์ข…๋ฅ˜ยท์Šน์ธ/์ œ์™ธ ํ•„ํ„ฐ๋กœ ์ตœ๊ทผ 30๊ฑด ๋˜๋Š” 100๊ฑด์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. ๊ด€์ธก ์ข…๋ฃŒ ์ตœ์‹ ์ˆœ ๋ชฉ๋ก์—์„œ ๊ธฐ๋ก์„ ์„ ํƒํ•˜๋ฉด ONยทOFFยท์‹ค์ œ ์ตœ๊ณ ์ ยท๊ด€์ธก ์ข…๋ฃŒ ์‹œ๊ฐ, ์‹œ์ž‘/์ •์ง€/์ข…๋ฃŒ ์‚ฌ์œ ์™€ ์ตœ์ข… ํ’ˆ์งˆ ํŒ์ •์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. Heating๊ณผ Cooling์€ ๊ฐ™์€ ์šด์ „์—์„œ๋„ ๋ณ„๋„ ๊ธฐ๋ก์ด๋ฉฐ ์ง„ํ–‰ ์ค‘์ธ ์‚ฌ์ดํด์€ ์ข…๋ฃŒ ํ›„ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋Œ€์‹œ๋ณด๋“œ์˜ ์ตœ๊ทผ ์™„๋ฃŒ ์‚ฌ์ดํด ๋น„๊ต๋Š” ์ด ์ œ์™ธ ๊ธฐ๋ก ๋ชฉ๋ก๊ณผ ๋ณ„๋„์ž…๋‹ˆ๋‹ค.

์ƒˆ๋กœ ์ €์žฅ๋˜๋Š” ๊ธฐ๋ก์—๋Š” ์‹œ์ž‘/OFF/์ตœ๊ณ ์˜จ๋„, OFF ์‹œ ๋ณ€ํ™”์œจ, ๋‚œ๋ฐฉ ์ง€์†์‹œ๊ฐ„, ์ตœ๊ณ ์  ์ง€์—ฐ, ์ž”์—ด ์ƒ์Šน๋Ÿ‰๊ณผ ๋ฒ„ํ‚ท ์ˆ˜๋ฅผ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค. ํ’ˆ์งˆ ๊ฒ€์‚ฌ ํ‘œ๋Š” ์‹ค์ œ ์ธก์ •๊ฐ’๊ณผ ๋‹น์‹œ ํ—ˆ์šฉ ๊ธฐ์ค€์„ ํ•จ๊ป˜ ๋ณด์—ฌ์ฃผ๋ฉฐ, ์Šน์ธ๋œ ๊ธฐ๋ก์€ Current ๋ฒ„ํ‚ท ๋ฐ˜์˜ ์ „ํ›„ยท์ฆ๊ฑฐ ์ˆ˜ยท์ €์žฅ ์‹œ์ ์˜ ์‹ ๋ขฐ๋„ ๋ณ€ํ™”ยทLong-term ์Šน๊ฒฉ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›๋ณธ 5๋ถ„ ๋ฒ„ํ‚ท์€ ๊ทธ๋ž˜ํ”„์™€ ํŽผ์นจ ํ‘œ๋กœ ํ‘œ์‹œํ•˜๊ณ  ๊ธฐ์กด ํ•™์Šต ์ปค๋ธŒ ๋น„๊ต๋Š” ํ•˜๋‹จ์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์‹ ๋ขฐ๋„์™€ ์Šน์ธ/์ œ์™ธ ํ’ˆ์งˆ ํŒ์ •์€ ๋ณ„๊ฐœ์ž…๋‹ˆ๋‹ค. ์ตœ๊ณ ์  ํ™•์ • ์กฐ๊ฑด์—๋Š” ๋‹น์‹œ ์ฒซ ํ•˜๋ฝยท๋‹ค์Œ ๋ณด๊ณ ์˜ ์ถ”๊ฐ€ ํ•˜๋ฝ ๊ธฐ์ค€๊ณผ ํ™•์ธ๊ฐ’, ๊ด€์ธก ์ƒํ•œ์„ ํ‘œ์‹œํ•˜๋ฉฐ ๊ณผ๊ฑฐ ๊ธฐ๋ก์— ์ƒˆ ๊ธฐ์ค€์„ ๋ฎ์–ด์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

SQLite ์ปค๋ธŒ ์ €์žฅ์†Œ๋Š” schema 5๋กœ ์ž๋™ ์ด์ „ํ•˜๋ฉฐ ๊ธฐ์กด ์Šน์ธยท์ œ์™ธ ์‚ฌ์œ ๋ฅผ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ ๊ธฐ๋ก์˜ ๋ˆ„๋ฝ๋œ ์ธก์ •๊ฐ’ยทํŒ์ • ๊ธฐ์ค€ยทํ•™์Šต ๋ฐ˜์˜ ์ „ํ›„๋Š” ์ถ”์ •ํ•˜์ง€ ์•Š๊ณ  ๊ธฐ๋ก ์—†์Œ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์›๋ณธ ๋ฒ„ํ‚ท์€ 7์ผ ๋’ค ์ •๋ฆฌ๋˜์ง€๋งŒ ์‚ฌ์ดํด metadata์™€ ์ƒˆ ๋ถ„์„ ์ •๋ณด๋Š” ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ํ™•์ธ๋œ ๋ณด์กด๊ธฐ๊ฐ„ ๋งŒ๋ฃŒ์™€ ๊ตฌํ˜• ๊ธฐ๋ก์˜ ์›๋ณธ ์—†์Œ์€ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. adaptive_floor_heating/curve_cycles๋Š” ์—”ํ‹ฐํ‹ฐ ์ฝ๊ธฐ ๊ถŒํ•œ์„ ๊ฒ€์‚ฌํ•˜๊ณ  ์ฝ๊ธฐ ์ „์šฉ SQLite ์กฐํšŒ๋งŒ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ํ™”๋ฉด์€ 60์ดˆ ๊ฐฑ์‹ ยท์ƒˆ๋กœ๊ณ ์นจยท๋ฐฉ/ํ•„ํ„ฐ ๋ณ€๊ฒฝ ์‹œ ๋Šฆ์€ ์‘๋‹ต ๋ฌด์‹œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์••์ถ•๋œ HA ์ด๋ ฅ์—์„œ ์ƒ๋žต๋œ ์ƒํƒœยท์†์„ฑ๋„ ์ด์ „ ๊ฐ’์„ ์œ ์ง€ํ•ด ํžˆํ„ฐ ON ํ™•์ธ ๊ตฌ๊ฐ„์˜ ๋ˆ„๋ฝ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

ํŒจ๋„์€ HA์—์„œ ํ†ตํ•ฉ์ด ๋กœ๋“œ๋œ ๋™์•ˆ ์œ ์ง€๋˜๋ฉฐ, ๋งˆ์ง€๋ง‰ ์„ค์ • ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•ด๋„ ์žฌ์‹œ์ž‘ ์ „๊นŒ์ง€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Windows์—์„œ 203๊ฐœ Python ํ…Œ์ŠคํŠธ์™€ ๋„ค ๊ฐœ Edge ๊ฒ€์ฆ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ƒํƒœยท์ œ์–ดยท์ด๋ ฅยท์™„๋ฃŒ ์‚ฌ์ดํดยทํ•™์Šต ์ปค๋ธŒ๋ฅผ ๊ฒ€์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ปค๋ธŒ ๊ฒ€์ฆ์—๋Š” ์ฝ๊ธฐ ๊ถŒํ•œยท์†Œ์œ  ํ†ตํ•ฉ ํ™•์ธ, ์กฐํšŒ ๋น„๋ณ€๊ฒฝ์„ฑ, 4์ข… ์ปค๋ธŒยท0/๋ˆ„๋ฝ ๋ฒ„ํ‚ทยทLong-term๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ, ๊ณ„์ธต๋ณ„ ์‹ ๋ขฐ๋„, ์˜จ๋„์ฐจ ๋‹จ์œ„ ๋ณ€ํ™˜, ๋ฐฉ ๋ณ€๊ฒฝ ์‹œ ๋Šฆ์€ ์‘๋‹ต ๋ฌด์‹œ์™€ ๋ชจ๋ฐ”์ผ ๋ฐฐ์น˜๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ๊ฒ€์ฆ์€ HA ์ธํ„ฐํŽ˜์ด์Šค ๋Œ€์—ญ์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์‹ค์ œ HA APIยทRecorderยท์‚ฌ์ด๋“œ๋ฐ”ยท๋‚œ๋ฐฉ ์ œ์–ด ๊ฒ€์ฆ์€ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ธก๊ณผ ์šด์ „ ์นด๋“œ์—๋Š” ํ•ด๋‹น ๋ฐฉ์˜ ์ง„๋‹จ ์„ผ์„œ ๊ฐ’(์˜จ๋„ ๋ณ€ํ™”์œจ, ํ•™์Šต ๋ฐ˜์‘ยท์ตœ๊ณ ์  ์ง€์—ฐ, ์ž”์—ด ์ƒ์Šน๋Ÿ‰, ๋‘ ๋ชจ๋ธ์˜ ์˜ˆ์ƒ ์ตœ๊ณ ์˜จ๋„, ์˜ˆ์ธก ์‹ ๋ขฐ๋„)์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์„ผ์„œ๊ฐ€ ๋น„ํ™œ์„ฑยท์ˆจ๊น€ยท์‚ฌ์šฉ ๋ถˆ๊ฐ€์ด๊ฑฐ๋‚˜ ํ•™์Šต๊ฐ’์ด ์—†์œผ๋ฉด โ€”์ž…๋‹ˆ๋‹ค. ์„ผ์„œ ์ž์ฒด์˜ HA ๋ณด๊ณ  ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ํ˜„์žฌ Climate ์˜จ๋„ ๋‹จ์œ„๋กœ ์ž„์˜ ๋ณ€ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜๋‹จ์˜ ์ง„๋‹จ ์„ผ์„œ ์ด๋ ฅ์€ ์…€๋ ‰ํ„ฐ๋กœ ์„ผ์„œ๋ฅผ ์„ ํƒํ•˜๊ณ  ์ตœ๊ทผ 6์‹œ๊ฐ„/24์‹œ๊ฐ„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ์„ค์ • ํ•ญ๋ชฉ์˜ ํ™œ์„ฑ ์ˆซ์žํ˜• ์„ผ์„œ ์ค‘ ์„ ํƒ ๊ธฐ๊ฐ„์— ์œ ํšจํ•œ ์ˆซ์ž ์ด๋ ฅ์ด ์žˆ๋Š” ์„ผ์„œ๋งŒ ๋ชฉ๋ก์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์žํ˜• ์ƒํƒœ ์„ผ์„œ์™€ ์ด๋ ฅ ์—†๋Š” ์„ผ์„œ๋Š” ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. Recorder ๊ธฐ๋ก์ด ํ•„์š”ํ•˜๋ฉฐ, ๋ณด๊ณ ๊ฐ’์„ ๋‹ค์Œ ๋ณด๊ณ ๊นŒ์ง€ ์œ ์ง€ํ•˜๊ณ  unknown/unavailableยท๋‹จ์œ„ ๋ณ€๊ฒฝ ๊ตฌ๊ฐ„์€ ๋Š์Šต๋‹ˆ๋‹ค. 60์ดˆ ๊ฐฑ์‹ ยท์ƒˆ๋กœ๊ณ ์นจยทํฌ์ธํ„ฐ/ํ„ฐ์น˜ ๊ฐ’ ํ™•์ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์˜จ๋„์™€ ๋‚œ๋ฐฉ ์šด์ „ ๊ทธ๋ž˜ํ”„์—๋Š” ์‹ค์ œ ํžˆํ„ฐ ON ํ™•์ธยท์‹ค์ œ ์˜ˆ์ธก ๋ชจ๋ธ์˜ ์œ ํšจ ํ•™์Šต ์‚ฌ์ดํด 1๊ฐœ ์ด์ƒยท์œ ํšจํ•œ ์ตœ์‹  ์˜ˆ์ธก ๊ถค์ ์ด ๋ชจ๋‘ ์žˆ์„ ๋•Œ ์ง€๊ธˆ OFF ์‹œ ์ž”์—ด ์˜ˆ์ธก ์ ์„ ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ์ด ๊ณ„์‚ฐํ•œ ์‹œ๊ฐ„๋ณ„ ์ƒ๋Œ€ ์˜จ๋„ ๊ถค์ ์„ ์˜ˆ์ธก ์ƒ์„ฑ ์‹œ๊ฐยท์‹ค๋‚ด ์˜จ๋„์— ์—ฐ๊ฒฐํ•˜๋ฉฐ, ์˜ˆ์ƒ ์ตœ๊ณ ์˜จ๋„์™€ ์‹ ๋ขฐ๋„๋ฅผ ํ•จ๊ป˜ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‚œ๋ฐฉ์„ ๊ณ„์† ์ผฐ์„ ๋•Œ์˜ ์˜ˆ์ธก์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ชจ๋ธ๊ณผ ์ปค๋ธŒ ๋Œ€์ฒด ๋ชจ๋ธ๋„ ์‹ค์ œ ์‚ฌ์šฉํ•œ ๋ชจ๋ธ ๊ธฐ์ค€์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. OFFยท์‚ฌ์šฉ ๋ถˆ๊ฐ€ยท์˜ˆ์ธก ์—†์Œยท์ƒ์„ฑ ํ›„ 15๋ถ„ ์ดˆ๊ณผ ์‹œ ์ˆจ๊ธฐ๋ฉฐ, ์ตœ์†Œ ON ์‹œ๊ฐ„์ด๋‚˜ ํ•™์Šต ํ’ˆ์งˆ ์กฐ๊ฑด ๋•Œ๋ฌธ์— ์‹œ์ž‘ ์งํ›„์—๋Š” ํ‘œ์‹œ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ธก ์„ ์€ ์กฐํšŒ ์ข…๋ฃŒ ์‹œ๊ฐ๊นŒ์ง€๋งŒ ํ‘œ์‹œํ•˜๊ณ  ์ดํ›„ ๊ตฌ๊ฐ„์—๋Š” ์˜ˆ์ธก๋งŒ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์›น UI ๋ชจ๋“ˆ URL์—๋Š” ํŒŒ์ผ ๋‚ด์šฉ ๊ธฐ๋ฐ˜ ์บ์‹œ ๋ฒ„์ „์ด ์ž๋™์œผ๋กœ ๋ถ™์Šต๋‹ˆ๋‹ค. UI ํŒŒ์ผ ๊ฐฑ์‹  ํ›„ HA๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๊ณ  ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด ๋ณ€๊ฒฝ๋œ URL๋กœ ์ตœ์‹  ๋ชจ๋“ˆ์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค. ํ†ตํ•ฉ์˜ ์™ธ๋ถ€ ๋ฒ„์ „๊ณผ ๋ณ„๋„๋กœ ๊ด€๋ฆฌ๋˜๋ฏ€๋กœ UI ๋ณ€๊ฒฝ ๋•Œ ์ˆ˜๋™์œผ๋กœ ์บ์‹œ ๋ฒ„์ „์„ ์˜ฌ๋ฆด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์˜จ๋„ยทํ•™์Šต ์ปค๋ธŒยท์ง„๋‹จ ์„ผ์„œ ๊ทธ๋ž˜ํ”„๋Š” ์ฃผ๊ธฐ์  ์กฐํšŒ ์ค‘ ๊ธฐ์กด ๊ทธ๋ž˜ํ”„๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ ์‘๋‹ต ํ›„ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค. ํ‘œ์‹œ ๋ฐ์ดํ„ฐ์™€ ๊ทธ๋ž˜ํ”„ ํฌ๊ธฐ๊ฐ€ ๊ฐ™์œผ๋ฉด ๊ธฐ์กด ๊ทธ๋ž˜ํ”„ ์š”์†Œ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ๊ด€๋ จ ์—†๋Š” HA ์ƒํƒœ ๋ณ€๊ฒฝ์— ๋”ฐ๋ฅธ ๊นœ๋นก์ž„์„ ์ค„์ž…๋‹ˆ๋‹ค. ๋ฐฉยท์กฐํšŒ ๊ธฐ๊ฐ„ ๋ณ€๊ฒฝ, ์—ฐ๊ฒฐ ๋Š๊น€๊ณผ ์กฐํšŒ ์‹คํŒจ ์‹œ์—๋Š” ๊ธฐ์กด ์ •๋ฆฌ ๋™์ž‘์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์„ค์ • ํ๋ฆ„

Home Assistant์—์„œ ํ†ตํ•ฉ ์ถ”๊ฐ€ โ†’ Adaptive Floor Heating Climate โ†’ ์ œ์–ด ๋ฐฉ์‹์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ์ œ์–ด ํ•ญ๋ชฉ์„ ๋ฐฉ๋งˆ๋‹ค ์ถ”๊ฐ€ํ•˜๋ฉด ๊ฐ ๋ฐฉ๋งˆ๋‹ค Climate์™€ ํ•™์Šต ๋ฐ์ดํ„ฐ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ๋ฃธ(ํ†ตํ•ฉ)์€ ๋ฐฉ ์ˆ˜, ๊ณต์šฉ ์‹ค๋‚ด ์˜จ๋„ ์„ผ์„œ, ๋ฐฉ๋ณ„ ์Šค์œ„์น˜๋ฅผ ๋จผ์ € ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ ๋‘ ๋ฐฉ์‹ ๋ชจ๋‘ ๋‚œ๋ฐฉ ์„ค์ • โ†’ ์žฌ์‹ค/์™ธ์ถœ ํ”„๋ฆฌ์…‹ ์˜จ๋„ โ†’ ์ถ”๊ฐ€ ์˜จ๋„ ์„ผ์„œ โ†’ ์„ค์ • ํ™•์ธ ์ˆœ์„œ๋กœ ์ง„ํ–‰ํ•˜๊ณ , ๋งˆ์ง€๋ง‰ ํ™•์ธ์„ ๋ˆŒ๋ €์„ ๋•Œ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ทจ์†Œํ•œ ์„ค์ •์€ ์ €์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ํ•ญ๋ชฉ์˜ ์˜ต์…˜ ํŽธ์ง‘๋„ ๊ฐ™์€ ์ˆœ์„œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

Config Flow ์ž์ฒด๋Š” ์žฅ์น˜๋ฅผ ์ผœ๊ฑฐ๋‚˜ ๋„์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„ค์ •์„ ์ €์žฅํ•˜๋ฉด Climate, ์˜ˆ์ธก ์šด์ „ ์…€๋ ‰ํ„ฐ์™€ ์ง„๋‹จ ์„ผ์„œ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๊ธฐ๋ณธ ์šด์ „ ๋ชจ๋“œ๋Š” OFF์ž…๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ๋ฃธ(ํ†ตํ•ฉ)์€ ํ•˜๋‚˜์˜ Climate์™€ ํ•™์Šต ๋ชจ๋ธ๋กœ ๋ชจ๋“  ๋ฐฉ ์Šค์œ„์น˜๋ฅผ ํ•จ๊ป˜ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์Šค์œ„์น˜๊ฐ€ ๋ชจ๋‘ ON ๋˜๋Š” ๋ชจ๋‘ OFF๋กœ ํ™•์ธ๋˜์–ด์•ผ ๊ทธ๋ฃน ์ƒํƒœ๋ฅผ ํ™•์ •ํ•ฉ๋‹ˆ๋‹ค. ํ˜ผํ•ฉยท๋ถˆ๋ช… ์ƒํƒœ์—์„œ๋Š” ์•ˆ์ „ ์ž ๊ธˆ ํ›„ ์ „์ฒด OFF๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด์— ์ €์žฅํ•œ ๊ตฌํ˜• multi_zone ํ•ญ๋ชฉ์€ ์ž๋™ ๋ณ€ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜• ์„ค์ •์—๋Š” ๋ฐฉ๋ณ„ ์„ผ์„œ๊ฐ€ ๋“ค์–ด ์žˆ์–ด ๊ณต์šฉ ์„ผ์„œ๋ฅผ ์ž„์˜๋กœ ์„ ํƒํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ์ƒˆ ๋ฉ€ํ‹ฐ๋ฃธ(ํ†ตํ•ฉ) ์„ค์ •์„ ๋งŒ๋“ค๊ณ  ๊ธฐ์กด ํ•ญ๋ชฉ์„ ์ •๋ฆฌํ•˜์„ธ์š”.

Climate ์‚ฌ์šฉ

๊ธฐ์กด ๋‹จ๋… ์„ค์ •์„ ์‚ญ์ œํ•  ํ•„์š” ์—†์ด ํ†ตํ•ฉ ํŒŒ์ผ์„ ๊ฐฑ์‹ ํ•˜๊ณ  Home Assistant๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๋ฉด Climate๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์„ค์ • โ†’ ๊ธฐ๊ธฐ ๋ฐ ์„œ๋น„์Šค โ†’ ํ•ด๋‹น ํ†ตํ•ฉ์˜ ์—”ํ‹ฐํ‹ฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ๋… ์˜จ๋„์กฐ์ ˆ๊ธฐ๋Š” ์„œ๋น„์Šคํ˜• ๊ธฐ๊ธฐ๋กœ ๋“ฑ๋ก๋˜๋ฉฐ, Climate๋Š” ํ•ด๋‹น ๊ธฐ๊ธฐ์˜ ์ฃผ ์—”ํ‹ฐํ‹ฐ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์„ค์ • โ†’ ๊ธฐ๊ธฐ ๋ฐ ์„œ๋น„์Šค โ†’ ๊ธฐ๊ธฐ์—์„œ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด Climate์˜ ๊ณ ์œ  ์‹๋ณ„์ž๋Š” ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐํ•œ ํžˆํ„ฐ์™€ ์˜จ๋„ ์„ผ์„œ๋Š” ์›๋ž˜ ํ†ตํ•ฉ ์†Œ์†์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๊ธฐ ๋“ฑ๋ก์€ ๊ณต์‹ Device Registry ๋ฌธ์„œ์˜ DeviceInfo ๋ฐฉ์‹์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์ƒˆ๋กœ ์ƒ์„ฑ๋˜๋Š” ์—”ํ‹ฐํ‹ฐ ID๋Š” ์„ค์ • ํ•ญ๋ชฉ์ด ํ•˜๋‚˜์ผ ๋•Œ climate.adaptive_heating_climate, sensor.adaptive_heating_climate_temperature_slope์ฒ˜๋Ÿผ ์งง๊ฒŒ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์„ค์ • ํ•ญ๋ชฉ์ด ๋‘˜ ์ด์ƒ์ด๋ฉด ์„ค์ • ์ˆœ์„œ๋Œ€๋กœ room_1, room_2๋ฅผ ๋ถ™์—ฌ climate.adaptive_heating_climate_room_1, sensor.adaptive_heating_climate_room_2_temperature_slope ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์…€๋ ‰ํ„ฐ๋„ ๊ฐ™์€ ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์„ค์ • ์ œ๋ชฉ์—๋Š” ํžˆํ„ฐ ์Šค์œ„์น˜ ์—”ํ‹ฐํ‹ฐ ID๋ฅผ ๋„ฃ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž๋™ํ™”์—์„œ ๊ธฐ์กด ์—”ํ‹ฐํ‹ฐ ID๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋ฉด ๋ณ€๊ฒฝ ํ›„ ํ™•์ธํ•˜์„ธ์š”.

  • Climate ์šด์ „ ๋ชจ๋“œ๋Š” OFF, HEAT, AUTO์ž…๋‹ˆ๋‹ค. HEAT๋Š” ๊ธฐ๋ณธ ํžˆ์Šคํ…Œ๋ฆฌ์‹œ์Šค ์ œ์–ด, AUTO๋Š” ํ•™์Šต ๊ธฐ๋ฐ˜ ์˜ˆ์ธก ์ œ์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. OFF์—์„œ๋Š” ์ž๋™ ์ œ์–ด๋ฅผ ํ•˜์ง€ ์•Š๊ณ  ์™ธ๋ถ€ ํžˆํ„ฐ ๋™์ž‘์„ ๊ด€์ธกยทํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณ„๋„ ์˜ˆ์ธก ์šด์ „ ๋ชจ๋“œ ์…€๋ ‰ํ„ฐ๋Š” AUTO์˜ ์˜ˆ์ธก ON ๊ฐ•๋„๋ฅผ ๊ณ ๋ฆ…๋‹ˆ๋‹ค. eco๋Š” ์˜ˆ์ธก ON์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , balanced๋Š” ํ•™์Šต๋œ ๋ฐ˜์‘ ์ง€์—ฐ์˜ ์ ˆ๋ฐ˜๋งŒ ๋ฐ˜์˜ํ•˜๋ฉฐ, comfort๋Š” ์ „์ฒด๋ฅผ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์„ธ ๋‹จ๊ณ„ ๋ชจ๋‘ ๋‚œ๋ฐฉ ์ค‘ ์ž”์—ด ๊ธฐ๋ฐ˜ ์˜ˆ์ธก OFF๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ balanced์ด๋ฉฐ ์„ ํƒ๊ฐ’์€ ์žฌ์‹œ์ž‘ ํ›„ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ์ €์žฅ๋œ ์„ ํƒ๊ฐ’์€ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. HEAT/OFF ์šด์ „์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • AUTO ํ•™์Šต ๋ชจ๋ธ ์…€๋ ‰ํ„ฐ๋Š” ๊ธฐ๋ณธ ํ•™์Šต๊ณผ 5๋ถ„ ์ปค๋ธŒ ํ•™์Šต ์ค‘ AUTO๊ฐ€ ์‚ฌ์šฉํ•  ๋ชจ๋ธ์„ ๊ณ ๋ฆ…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ๊ธฐ๋ณธ ํ•™์Šต์ด๋ฉฐ ์„ ํƒ๊ฐ’์€ ์žฌ์‹œ์ž‘ ํ›„ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค. ์ปค๋ธŒ ํ‘œ๋ณธ์ด ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉด ๊ธฐ๋ณธ ํ•™์Šต์œผ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ ๋ณ€๊ฒฝ์€ ์ง„ํ–‰ ์ค‘์ธ ๋‚œ๋ฐฉ์„ ๊ฐ•์ œ๋กœ ์ค‘๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • HOME/AWAY ํ”„๋ฆฌ์…‹์€ ๊ฐ๊ฐ ๊ธฐ๋ณธ 23ยฐC/18ยฐC์ด๋ฉฐ, ํ†ตํ•ฉ ์˜ต์…˜์—์„œ 18~30ยฐC ๋ฒ”์œ„๋กœ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋ฆฌ์…‹์„ ์„ ํƒํ•˜๋ฉด ๊ทธ ์˜จ๋„๊ฐ€ ๋ชฉํ‘œ์˜จ๋„์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ต์…˜์—์„œ ํ”„๋ฆฌ์…‹ ์˜จ๋„๋ฅผ ๋ฐ”๊พธ๋ฉด ํ•ด๋‹น ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉ ์ค‘์ธ ๋ชฉํ‘œ์˜จ๋„๋„ ์žฌ๋กœ๋“œ ํ›„ ๊ฐฑ์‹ ํ•˜๋ฉฐ, Climate์—์„œ ์ง์ ‘ ์กฐ์ •ํ•œ ๋ชฉํ‘œ์˜จ๋„๋Š” ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹œ์ž‘ ํŽธ์ฐจ ๊ธฐ๋ณธ๊ฐ’์€ 0.5ยฐC์ž…๋‹ˆ๋‹ค. HEAT๋Š” ๋ชฉํ‘œ์˜จ๋„์— ๋„๋‹ฌํ•˜๋ฉด ์ •์ง€ํ•˜๊ณ , AUTO์˜ ๊ธฐ๋ณธ ์ •์ง€ ํŽธ์ฐจ๋Š” 0.5ยฐC์ž…๋‹ˆ๋‹ค. ๋ชฉํ‘œ 23ยฐC๋ผ๋ฉด ๋‘ ๋ชจ๋“œ ๋ชจ๋‘ 22.5ยฐC ์ดํ•˜์—์„œ ์‹œ์ž‘ํ•˜๋ฉฐ, HEAT๋Š” 23ยฐC, AUTO๋Š” 23.5ยฐC์—์„œ ๊ธฐ๋ณธ ์ •์ง€ ๊ธฐ์ค€์— ๋„๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ํ†ตํ•ฉ ์˜ต์…˜์—์„œ ์‹œ์ž‘ ํŽธ์ฐจ์™€ ๋‘ ๋ชจ๋“œ์˜ ์ •์ง€ ํŽธ์ฐจ๋ฅผ ๊ฐ๊ฐ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ตœ์†Œ ON์€ 15๋ถ„, ์ตœ์†Œ OFF๋Š” 10๋ถ„์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž OFF, ์„ผ์„œ ์˜ค๋ฅ˜์™€ ๊ณผ์—ด ์ •์ง€๋Š” ์ตœ์†Œ ON๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ์žฌ์‹œ์ž‘ ์‹œ ์„ผ์„œ์— ๊ธฐ์กด ์œ ํšจ ์˜จ๋„๊ฐ€ ์žˆ์œผ๋ฉด ์ฆ‰์‹œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„ผ์„œ๊ฐ’์ด unknown/unavailable์ด๊ฑฐ๋‚˜ ์œ ํšจํ•œ ์˜จ๋„๊ฐ€ ์•„๋‹ˆ๋ฉด ์ œ์–ด๋ฅผ ๋ณด๋ฅ˜ํ•˜๊ณ  Climate๋ฅผ unavailable๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ํžˆํ„ฐ OFF ํ™•์ธ๊ณผ ์ตœ์†Œ OFF ์‹œ๊ฐ„์€ ๋ณ„๋„๋กœ ์ง€ํ‚ต๋‹ˆ๋‹ค.
  • ํ†ตํ•ฉ์˜ ๊ตฌ์„ฑ/์˜ต์…˜์—์„œ ์˜จ๋„ ํŽธ์ฐจ, ์ตœ์†Œ ON/OFF ์‹œ๊ฐ„, ํ•™์Šต ๊ด€์ธก ์˜จ๋„ ๋ณด๊ณ  ๊ฐ„๊ฒฉ ํ•œ๋„(๊ธฐ๋ณธ 15๋ถ„)๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์žฅ ์‹œ ์•ˆ์ „ ์ •์ง€ ํ›„ ์žฌ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  • ํ˜„์žฌ ๋ชฉํ‘œ์˜จ๋„, ์š”์ฒญ ๋ชจ๋“œ, ์˜ˆ์ธก ์šด์ „ ์…€๋ ‰ํ„ฐ ๊ฐ’, ์„ ํƒ ํ”„๋ฆฌ์…‹๊ณผ ์˜ค๋ฅ˜ ์ž ๊ธˆ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์žฌ์‹œ์ž‘ ํ›„ ํ™œ์„ฑ ๋ชจ๋“œ๋ฅผ ๋ณต์›ํ•ด๋„ ์œ„ ์‹œ์ž‘ ์กฐ๊ฑด์„ ๋‹ค์‹œ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ์ž๋™ ์ œ์–ด ์Šค์œ„์น˜ ON๊ณผ HEAT ์กฐํ•ฉ์€ AUTO๋กœ ์ด์ „ํ•ฉ๋‹ˆ๋‹ค.

์ œ์–ด ํ‰๊ฐ€ ์‹œ HA์— ๋“ฑ๋ก๋œ ์„ผ์„œ์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค. ์ˆซ์ž ์˜จ๋„๊ฐ’์ด ์œ ํšจํ•˜๋ฉด ๋งˆ์ง€๋ง‰ ๋ณด๊ณ  ์‹œ๊ฐ๊ณผ ๊ด€๊ณ„์—†์ด ์‚ฌ์šฉํ•˜๋ฉฐ, unknown/unavailable ๋˜๋Š” ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฐ’์ผ ๋•Œ ๋‚œ๋ฐฉ์„ ์ •์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋ณด๊ณ  ๊ฐ„๊ฒฉ ํ•œ๋„๋Š” ์—ด ํ•™์Šต ์ด๋ ฅ์˜ ์—ฐ์†์„ฑ๋งŒ ํŒ๋‹จํ•˜๋ฉฐ, ์˜ค๋ž˜ ๋ณด๊ณ ๋˜์ง€ ์•Š์€ ๊ฐ’์„ ์ƒˆ ํ•™์Šต ํ‘œ๋ณธ์œผ๋กœ ๋งŒ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 35ยฐC ์ด์ƒ ๊ณผ์—ด, ํžˆํ„ฐ ํ†ต์‹ ยท๋ช…๋ น ์˜ค๋ฅ˜ ๋˜๋Š” ์™ธ๋ถ€ ์Šค์œ„์น˜ ์กฐ์ž‘์€ ์˜ค๋ฅ˜ ์ž ๊ธˆ์„ ์œ ์ง€ํ•˜๋ฉฐ, ์›์ธ ํ•ด์†ŒยทOFF ํ™•์ธยท์ตœ์†Œ OFF ์‹œ๊ฐ„ ์ดํ›„ HEAT ๋˜๋Š” AUTO๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ ํƒํ•ด ์žฌ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ๊ณผ์—ด ์ž ๊ธˆ์€ 34ยฐC ์ดํ•˜์—์„œ ํ•ด์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๊ธฐ์—๋Š” ์ง„๋‹จ ๋ฒ”์ฃผ์˜ ์—ด ๊ด€์ธกยทํ•™์Šต ์„ผ์„œ๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์ง€์—ฐ ์‹œ๊ฐ„์€ duration, ์ž”์—ด ์ƒ์Šน์€ temperature delta device class๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋ˆ„์  ์‚ฌ์ดํดยท์ œ์™ธ ๊ฑด์ˆ˜๋Š” total-increasing ํ†ต๊ณ„๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์„ผ์„œ์—๋Š” ์ง€ํ‘œ ์˜๋ฏธ์— ๋งž๋Š” ์•„์ด์ฝ˜์ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๋ณ€ํ™”์œจยท๊ฐ€์—ด๋ฅ ยท์‹ ๋ขฐ๋„๋Š” ์˜๋ฏธ์— ๋งž๋Š” ํ‘œ์ค€ device class๊ฐ€ ์—†์–ด ์ง€์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜จ๋„ ๊ธฐ์šธ๊ธฐ๋Š” ์ตœ๋Œ€ 24์‹œ๊ฐ„/4,096๊ฐœ ๋ณด๊ณ ๋ฅผ ๋ณด๊ด€ํ•˜๊ณ  ๋งˆ์ง€๋ง‰ ๋‘ ๋ณด๊ณ  ๊ฐ„๊ฒฉ์ด 5๋ถ„ ์ด๋‚ด์ด๋ฉด ์ตœ๊ทผ 45๋ถ„, 5๋ถ„์„ ์ดˆ๊ณผํ•˜๋ฉด ์ตœ๊ทผ 5๊ฐœ ์œ ํšจ ๋ณด๊ณ ๋กœ ํšŒ๊ท€ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ๋ณด๊ณ  ์‹œ๊ฐ ์ฐจ์ด๋กœ ยฐC/h๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉฐ ์ตœ์†Œ 3๊ฐœ ๋ณด๊ณ ์™€ 10๋ถ„์˜ ์‹œ๊ฐ„ ๋ฒ”์œ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ ๋ณ€ํ™”์œจ ์„ผ์„œ์™€ AUTO ์˜ˆ์ธก ON์— ์ ์šฉํ•˜๋ฉฐ, ์‚ฌ์ดํด๋ณ„ ํ•™์Šต ํšŒ๊ท€๋Š” ๊ธฐ์กด ์‹œ๊ฐ„ ๊ตฌ๊ฐ„์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋‚œ๋ฐฉ ๋ฐ˜์‘ยท์ž”์—ด ๊ฐ’์€ ํ™•์ธ๋œ ์Šค์œ„์น˜ ์ „ํ™˜๊ณผ ์™„๊ฒฐ๋œ ๊ด€์ธก๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Phase 2 ๊ด€์ธก์€ ์ œ์–ด ๊ฒฐ์ •๊ณผ ํžˆํ„ฐ ๋ช…๋ น์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉฐ, ์žฌ์‹œ์ž‘ ์‹œ ์ง„ํ–‰ ์ค‘์ธ ์ด๋ ฅยท์‚ฌ์ดํด์„ ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.

์™„๊ฒฐ๋œ ๊ด€์ธก ์‚ฌ์ดํด์€ ๋‚œ๋ฐฉ ๋ฐ˜์‘ ์ง€์—ฐ, ๊ฐ€์—ด๋ฅ , ์ •์ง€ ํ›„ ์ถ”๊ฐ€ ์ƒ์Šน๋Ÿ‰, ์ตœ๊ณ ์  ์ง€์—ฐ์„ ๊ฐ๊ฐ EWMA(alpha 0.2)๋กœ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ชจ๋ธ๊ณผ ์ปค๋ธŒ ๋ชจ๋ธ์€ ์…€๋ ‰ํ„ฐ ์„ ํƒ๊ณผ ๊ด€๊ณ„์—†์ด ๊ฐ๊ฐ ํ•™์Šตํ•˜๊ณ , AUTO ์ œ์–ด์—๋Š” ์„ ํƒํ•œ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ชจ๋ธ์˜ ์˜ˆ์ธก ON์€ ์‹ค์ธก ๋ƒ‰๊ฐ ๊ธฐ์šธ๊ธฐ์™€ ํ•™์Šต ๋ฐ˜์‘ ์ง€์—ฐ์„ ์‚ฌ์šฉํ•˜๋ฉฐ, OFF ์ดํ›„์— ์ฒ˜์Œ ๋‚˜ํƒ€๋‚˜๋Š” ์ƒ์Šน๋„ ๋ฐ˜์‘ ์ง€์—ฐ์œผ๋กœ ๊ด€์ธกํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ธก OFF๋Š” ์ƒ์Šน ์ค‘์—๋Š” ๋“ฑ๊ฐ€ ๋ฐ˜์‘ ์‹œ๊ฐ„๊ณผ ํ˜„์žฌ ์†๋„๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ƒ์Šน ์ „์—๋Š” ์œ ์‚ฌํ•œ ๊ฐ€๋™์‹œ๊ฐ„ยท์‹œ์ž‘ ์˜จ๋„ยทON ์ค‘ ์˜จ๋„ ๋ณ€ํ™”ยท์‹œ์ž‘ ์ „ ๊ธฐ์šธ๊ธฐยท์ด์ „ OFF ๊ฒฝ๊ณผ์‹œ๊ฐ„์˜ ์‹ค์ œ ์ถ”๊ฐ€ ์ƒ์Šน๋Ÿ‰์„ ์ง์ ‘ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ •์ƒ ์˜ˆ์ธก ์ •์ง€๋Š” ์ตœ์†Œ ON ์‹œ๊ฐ„์„ ์ง€ํ‚ค๋ฉฐ, ๋น„๊ต ๊ฐ€๋Šฅํ•œ ํ•™์Šต์ด ๋ถ€์กฑํ•˜๋ฉด ๊ธฐ๋ณธ ํžˆ์Šคํ…Œ๋ฆฌ์‹œ์Šค๋กœ ์šด์ „ํ•ฉ๋‹ˆ๋‹ค. Peak ํŒ๋‹จ ์ƒํ•œ์€ ์„ค์ •์˜จ๋„ + AUTO ์ •์ง€ ํŽธ์ฐจ์ž…๋‹ˆ๋‹ค(๊ธฐ๋ณธ ์„ค์ •: 23ยฐC + 0.5ยฐC = 23.5ยฐC). ์‹ค์ œ ๋„๋‹ฌ ์˜จ๋„๋ฅผ ๋ณด์žฅํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

์ปค๋ธŒ ๋ชจ๋ธ์˜ ์˜ˆ์ธก OFF๋Š” ํ˜„์žฌ ๊ฐ€๋™์‹œ๊ฐ„ยท์ƒ์Šน ์†๋„์™€ ์—ด์ƒํƒœ๊ฐ€ ์œ ์‚ฌํ•œ OFF ์กฐ๊ฑด์˜ Current/Long-term ์˜จ๋„ ๊ถค์ ์„ ์„ ํƒยทํ˜ผํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ์ •์ฒดยท์†Œํญ ํ•˜๋ฝยท๋’ค๋Šฆ์€ ์ƒ์Šน๋„ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ ON ๊ตฌ๊ฐ„์„ ์ง€๊ธˆ OFFํ•œ ์ดํ›„์˜ ๋ฐ˜์‘์œผ๋กœ ์—ฐ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์œ ํšจํ•œ ์‹ค์ธก ํ‘œ๋ณธ์ด ์ตœ์†Œ 3๊ฐœ์ด๊ณ  ์‹ ๋ขฐ๋„๊ฐ€ ์ถฉ๋ถ„ํ•ด์•ผ ์˜ˆ์ธก์„ ์ ์šฉํ•˜๋ฉฐ, ๋ถ€์กฑํ•˜๋ฉด ๊ธฐ๋ณธ ๋ชจ๋ธ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ์ƒ์Šน ์ „ ์˜ˆ์ธก์€ ์—ด์ƒํƒœ ๊ธฐ๋ก์ด ํ•„์š”ํ•˜๋ฉฐ ๋ถˆ๋ช… ์กฐ๊ฑด๊ณผ ์ƒํƒœ ์ฐจ์ด๋Š” ์‹ ๋ขฐ๋„๋ฅผ ๋‚ฎ์ถฅ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ชจ๋ธ schema 5๋Š” schema 14๋ฅผ, ์ปค๋ธŒ SQLite schema 4๋Š” schema 13์„ ๋ณด์กดํ•ด ์ด์ „ํ•ฉ๋‹ˆ๋‹ค. Climate ์†์„ฑ off_prediction์€ ์˜ˆ์ƒ Peak์™€ ์‹ค์ œ ์‚ฌ์šฉํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธตยทCurrent ๋น„์ค‘์„, last_peak_comparison์€ ๋‘ ๋ชจ๋ธ์˜ ์˜ˆ์ƒ Peak์™€ ์‹ค์ธก ์˜ค์ฐจ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ปค๋ธŒ ์ข…๋ฅ˜๋ณ„ Current๋Š” ์ƒˆ ์œ ํšจ ์‚ฌ์ดํด์„ 20% ๋ฐ˜์˜ํ•˜๋ฉฐ, ์ถฉ๋ถ„ํ•œ ํ‘œ๋ณธยท๋‚ฎ์€ ๋ถ„์‚ฐยท์—ฐ์† ๊ตฌ๊ฐ„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ Current๋งŒ Long-term์— 2%์”ฉ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ณ„์ธต ๋ชจ๋‘ ์ €์žฅํ•˜๋ฉฐ Raw 7์ผ ์ •๋ฆฌ๋กœ ์‚ญ์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Current์˜ ์ตœ์‹ ์„ฑ ๋น„์ค‘์€ ๊ฐฑ์‹  ํ›„ 30์ผ์— ๊ฑธ์ณ ๊ฐ์†Œํ•˜์ง€๋งŒ Long-term์€ ๋‚œ๋ฐฉ ๋น„์ˆ˜๊ธฐ์—๋„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ์˜ˆ์ธก์€ Current ์‹ ๋ขฐ๋„์— ๋”ฐ๋ผ ํ˜ผํ•ฉํ•˜๊ณ , Current๊ฐ€ ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ์˜ค๋ž˜๋˜๋ฉด Long-term์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ตฌ์กฐ๋Š” ๋‚œ๋ฐฉ ๋ฐ˜์‘ ์ง€์—ฐ, Cooling ์˜ˆ์ธก ON๊ณผ OFF ์‘๋‹ต์— ๋ชจ๋‘ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. curve_memory ์†์„ฑ์—์„œ ์ปค๋ธŒ๋ณ„ ์‹ ๋ขฐ๋„ยท์Šน๊ฒฉ ํšŸ์ˆ˜ยท์žฅ๊ธฐ ๊ฐฑ์‹  ์‹œ๊ฐ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปค๋ธŒ ํ•™์Šต์€ Cold, Warm, Predictive Warm, Cooling์„ ๊ฐ๊ฐ ๋…๋ฆฝ๋œ 5๋ถ„ ๋ณ€ํ™”๋Ÿ‰ ํ‘œ์ค€์œผ๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. AWAY๊ฐ€ ์—ฐ์† 3์‹œ๊ฐ„ ์ด์ƒ ์ง€์†๋œ ๋’ค HOME์œผ๋กœ ๋ณต๊ท€ํ•˜๋ฉด ์ฒซ ์œ ํšจ ๋‚œ๋ฐฉ์„ Cold๋กœ ํ•™์Šตํ•˜๋ฉฐ, ํ•ด๋‹น ์‚ฌ์ดํด์ด ํ•™์Šต์— ๋ฐ˜์˜๋˜๊ธฐ ์ „ ์ค‘๋‹จ๋˜๋ฉด Cold ๋Œ€๊ธฐ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. HOME์—์„œ ํžˆํ„ฐ๊ฐ€ ์˜ค๋ž˜ ๊บผ์ ธ ์žˆ๋‹ค๋Š” ์ด์œ ๋งŒ์œผ๋กœ Cold๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. AWAY ์‚ฌ์ดํด์€ ์ปค๋ธŒ ํ‘œ์ค€ ํ•™์Šต์—์„œ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ๋ณ€ํ™”๊ฐ€ ์—†๋Š” ์œ ํšจ ๊ตฌ๊ฐ„๋„ 0 ๋ฒ„ํ‚ท์œผ๋กœ ๋ณด์กดํ•˜๋ฉฐ ์œ ํšจ ์‚ฌ์ดํด์„ ๊ธฐ์กด ํ‘œ์ค€ 80%์™€ ์ƒˆ ์‚ฌ์ดํด 20%๋กœ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ชจ๋ธ์€ ๋‚œ๋ฐฉ ๋ฐ˜์‘ ํ™•์ธ ํ›„ ๊ด€์ธก ์ตœ๊ณ ์˜จ๋„์—์„œ 0.2ยฐC ์ด์ƒ ๋‚ด๋ ค๊ฐ„ ์‹ค์ œ ๋ณด๊ณ ๋ฅผ ํ™•์ธํ•˜๊ณ , ๋‹ค์Œ ๋ณด๊ณ ๊ฐ€ ๊ทธ ๊ฐ’๋ณด๋‹ค 0.1ยฐC ์ด์ƒ ๋” ๋‚ด๋ ค๊ฐ€๋ฉด Peak๋ฅผ ํ™•์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ตœ๊ณ ์˜จ๋„ 26.6ยฐC์—์„œ 26.4โ†’26.3ยฐC์ด๋ฉด ํ™•์ •ํ•˜๊ณ , 26.4ยฐC๊ฐ€ ๋ฐ˜๋ณต๋˜๊ฑฐ๋‚˜ 0.1~0.2ยฐC๋งŒ ๋“ฑ๋ฝํ•˜๋ฉด ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. ์‹ค์ œ ์ตœ๊ณ ์˜จ๋„์˜ ๋งˆ์ง€๋ง‰ ๋ณด๊ณ  ์‹œ๊ฐ๊ณผ ํ™•์ธ ์‹œ๊ฐ์€ ๋ถ„๋ฆฌํ•˜๋ฉฐ ์ดˆ๊ธฐ ํ•˜๋ฝยทํ•œ ๋ฒˆ์˜ ํ•˜๋ฝยท์ค‘๋ณต ๋ณด๊ณ ยทํƒ€์ด๋จธ๋งŒ์œผ๋กœ ๋๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Peak ๋Œ€๊ธฐ๋Š” OFF๋ถ€ํ„ฐ ์ตœ๋Œ€ 4์‹œ๊ฐ„, ๋ƒ‰๊ฐ ๊ด€์ธก์€ Peak๋ถ€ํ„ฐ ์ตœ๋Œ€ 3์‹œ๊ฐ„์„ ํ•œ๋„๋กœ ํ•˜๋ฉฐ ๋‹ค์Œ ON์ด๋‚˜ ์ง€์† ์ƒ์Šน์—์„œ๋„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. OFF ์‘๋‹ต ํ’ˆ์งˆ ํŒ์ •ยท์ €์žฅ ๋ณต์›ยท์˜ˆ์ธก์˜ ์ตœ๊ณ ์  ์ง€์—ฐ ๋ฒ”์œ„๋„ 240๋ถ„์œผ๋กœ ๋งž์ถฅ๋‹ˆ๋‹ค. ๋ฐ˜์‘ ์—†์ด ์ œํ•œ์— ๋„๋‹ฌํ•œ ๊ธฐ๋ก์€ ์ •์ƒ Peak๋กœ ํ•™์Šตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์›์‹œ ๋ฒ„ํ‚ท์€ 7์ผ ๋’ค ์ •๋ฆฌํ•˜์ง€๋งŒ ํ•™์Šต ํ‘œ์ค€๊ณผ ์ตœ๋Œ€ 24๊ฐœ์˜ OFF ์‘๋‹ต์€ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ธก ON์—๋Š” ์—ฐ์† ๊ตฌ๊ฐ„์ด ์ถฉ๋ถ„ํ•œ Cooling ์ปค๋ธŒ์™€ ํ•™์Šตํ•œ ๋‚œ๋ฐฉ ๋ฐ˜์‘ ์ง€์—ฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„ผ์„œ ์˜ค๋ฅ˜ยท์ˆ˜๋™ ๊ฐœ์ž…ยทํฐ ์ปค๋ธŒ ์ดํƒˆยท์‹ ๋ขฐ๋„์™€ ์ œ์–ด ์•ˆ์ „ ๊ธฐ์ค€์€ ์œ ์ง€ํ•˜๋ฉฐ ํ˜„์žฅ ๊ฒ€์ฆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Climate ์†์„ฑ์˜ control_state, faults, heater_confirmed_on, heater_command_pending์œผ๋กœ ๋Œ€๊ธฐยท์˜ค๋ฅ˜ยท๋ช…๋ น ํ™•์ธ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. hvac_action์€ ํ™•์ธ๋œ ์Šค์œ„์น˜ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋Œ€๋ฆฌ ์ง€ํ‘œ๋กœ, ์‹ค์ œ ๋ฒ„๋„ˆ ์ ํ™”๋‚˜ ์—ด๊ณต๊ธ‰ ์ธก์ •๊ฐ’์€ ์•„๋‹™๋‹ˆ๋‹ค. HA์˜ ์„ผ์„œ ๋ณด๊ณ  ์‹œ๊ฐ๊ณผ ๋‚™๊ด€์  ์Šค์œ„์น˜ ์ƒํƒœ๋Š” ๋ฌผ๋ฆฌ์  ์žฅ์น˜์˜ ์ธก์ •ยท๋™์ž‘์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚œ๋ฐฉ ํ•™์Šต ๋ฐ AUTO ON/OFF ์ œ์–ด ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๋ณ„๋„ ๋ฌธ์„œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 5๋ถ„ ์ปค๋ธŒ ํ•™์Šต ๊ตฌํ˜„ ๊ทœ์น™์—๋Š” ์ปค๋ธŒ ๊ฒฝ๊ณ„, ํ’ˆ์งˆ ํŒ์ •, ์ €์žฅ ๋ฐ ๋ชจ๋ธ ๋Œ€์ฒด ๊ฒฝ๋กœ๋ฅผ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋ธ๋ณ„ ์ž‘๋™ ๋กœ์ง์—๋Š” ๊ธฐ๋ณธ/์ปค๋ธŒ ๋ชจ๋ธ์˜ ํ•™์Šต, ON/OFF ์˜ˆ์ธก๊ณผ ๊ณ„์‚ฐ ๊ธฐ์ค€์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ธก ๊ทธ๋ž˜ํ”„์šฉ ์„ผ์„œ ๊ตฌ์„ฑ์—๋Š” ํ•ต์‹ฌยท์ƒ์„ธยท์‹œํ—˜ ์„ผ์„œ์™€ ๊ถŒ์žฅ ๊ทธ๋ž˜ํ”„ ๋ฐฐ์น˜๋ฅผ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ผ์„œ 42๊ฐœ ์ค‘ ์ƒˆ ์„ค์น˜์—์„œ๋Š” ํ•ต์‹ฌ 15๊ฐœ๋ฅผ ๊ธฐ๋ณธ ํ™œ์„ฑ์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. OFF ๋‹น์‹œ ๊ธฐ๋ณธ/์ปค๋ธŒ ์˜ˆ์ธก ์ตœ๊ณ  ์˜จ๋„, ์‹ค์ œ ์ตœ๊ณ ์ , ๊ฐ ๋ชจ๋ธ ์˜ค์ฐจ, ํ•ด๋‹น ์˜ˆ์ธก ์‹ ๋ขฐ๋„์™€ ๊ด€์ธกยท์˜ˆ์ธก ์ƒํƒœ๋ฅผ ๊ทธ๋ž˜ํ”„๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ OFF ์˜ˆ์ธก๊ณผ ์™„๊ฒฐ๋œ ์‹ค์ œ ๊ฒฐ๊ณผ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํšŒ์ฐจ์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ off_at ์†์„ฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ์—”ํ‹ฐํ‹ฐ ID์™€ ํ™œ์„ฑ ์„ค์ •์€ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์˜ ์‚ฌํ•ญ

  • HA๊ฐ€ ๋‚œ๋ฐฉ ON ์ค‘์ด๊ฑฐ๋‚˜ OFF ํ›„ ์ตœ๊ณ ์˜จ๋„๋ฅผ ๊ด€์ธกํ•˜๋Š” ์ค‘์— ์žฌ์‹œ์ž‘ํ•˜๋ฉด ํ•ด๋‹น ์ง„ํ–‰ ์ค‘ ์‚ฌ์ดํด๊ณผ ๋ฉ”๋ชจ๋ฆฌ์˜ ์˜จ๋„ ์ด๋ ฅ์€ ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ์žฌ์‹œ์ž‘ ์ „ํ›„์˜ ๊ธฐ๋ก์„ ์ด์–ด ๋ถ™์—ฌ ํ•™์Šตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฒซ ์‚ฌ์ดํด์ด ์™„๊ฒฐ๋˜๊ธฐ ์ „์— ์žฌ์‹œ์ž‘ํ–ˆ๋‹ค๋ฉด ๊ทธ ์‚ฌ์ดํด์€ ํ•™์Šต๊ฐ’์— ๋ฐ˜์˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์žฌ์‹œ์ž‘ ์ „์— ์™„๊ฒฐ๋˜์–ด ์ €์žฅ๋œ ํ•™์Šต ์ง€ํ‘œ์™€ ์‘๋‹ต๊ณก์„ ์€ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค. AUTO ๋ชจ๋“œ์™€ ๋ชฉํ‘œ์˜จ๋„๋„ ๋ณต์›ํ•˜์ง€๋งŒ, ํ˜„์žฌ ํžˆํ„ฐ ์ƒํƒœ๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•˜๊ณ  ํ•„์š”ํ•œ ๊ฒฝ์šฐ OFF๋กœ ์ „ํ™˜ํ•œ ๋’ค ์ตœ์†Œ OFF ์‹œ๊ฐ„์„ ์ง€์ผœ ์ œ์–ด๋ฅผ ์žฌ๊ฐœํ•ฉ๋‹ˆ๋‹ค.
  • ์ •์ƒ ์ข…๋ฃŒยท์žฌ๋กœ๋“œ์—์„œ๋Š” ํ•™์Šต ๋ชจ๋ธ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ •์ „์ด๋‚˜ ๊ฐ•์ œ ์ข…๋ฃŒ ์ง์ „์— ์™„๋ฃŒ๋œ ์‚ฌ์ดํด์€ ์ €์žฅ ๋Œ€๊ธฐ ์ค‘์ด์—ˆ๋‹ค๋ฉด ์œ ์‹ค๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HA ๊ฐ•์ œ ์ข…๋ฃŒยท์ •์ „ยทํ†ต์‹  ๋‹จ์ ˆ์—์„œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด OFF๋„ ๋ณด์žฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ •์ƒ ์žฌ๋กœ๋“œยท์ œ๊ฑฐ์—์„œ๋Š” OFF ํ™•์ธ ์‹คํŒจ ์‹œ ๊ฐ์‹œ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ํ•ด์ œ๋ฅผ ์‹คํŒจ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

AUTO๋ฅผ ๋‹ค์‹œ ์„ ํƒํ•ด๋„ ์ง„ํ–‰ ์ค‘ ๋‚œ๋ฐฉ์€ ์ค‘๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. HOME/AWAY๋ฅผ ๋‹ค์‹œ ์„ ํƒํ•˜๋ฉด ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•œ ๋ชฉํ‘œ์˜จ๋„ ๋Œ€์‹  ํ•ด๋‹น ํ”„๋ฆฌ์…‹์˜ ์„ค์ • ์˜จ๋„๋ฅผ ๋‹ค์‹œ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž”์—ด์— ์˜ํ•œ ์žฌ๊ฐ€๋™ ๋Œ€๊ธฐ๋Š” ์‹ค์ œ ๋‚œ๋ฐฉ ์ •์ง€ ํ›„ ๊ด€์ธก ๊ตฌ๊ฐ„์—์„œ๋งŒ ์ ์šฉํ•˜๋ฉฐ, ์ •์ง€ ์‹œ ์˜จ๋„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ˆ์ธกํ•˜๊ณ  ํ•™์Šต๋œ ์ตœ๊ณ ์  ๋„๋‹ฌ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค.

ON ๋ช…๋ น์„ ๊ธฐ๋‹ค๋ฆฌ๋‹ค๊ฐ€ OFF๋กœ ์ „ํ™˜ํ•œ ๊ฒฝ์šฐ, ๊ฐ™์€ OFF ๊ฐ’์˜ ์žฌ๋ณด๊ณ ๋กœ ์ง€์—ฐ ON ๋ณดํ˜ธ๋ฅผ ํ•ด์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ONโ†’OFF ์ „ํ™˜์ด ํ™•์ธ๋˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ HEAT/AUTO๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ ํƒํ•  ๋•Œ๊นŒ์ง€ ๋ณดํ˜ธ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ€ํ‹ฐ๋ฃธ(ํ†ตํ•ฉ) ๋™์ž‘

ํ†ตํ•ฉ Climate ํ•˜๋‚˜๊ฐ€ ์„ ํƒํ•œ ๊ณต์šฉ ์‹ค๋‚ด ์˜จ๋„๋กœ ํ•™์Šตํ•˜๊ณ  ๋ฐฉ๋ณ„ ์Šค์œ„์น˜ ๋ชฉ๋ก์— ๋™์ผํ•œ ON/OFF ๋ช…๋ น์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ทธ๋ฃน ์ƒํƒœ์™€ ๋‚œ๋ฐฉ ๊ด€์ธก์€ ๋ชจ๋“  ์Šค์œ„์น˜๊ฐ€ ๊ฐ™์€ ์ƒํƒœ๋ฅผ ๋ณด๊ณ ํ•  ๋•Œ๋งŒ ํ™•์ •ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘ ์‹œ ์Šค์œ„์น˜ ์ƒํƒœ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๊ฑฐ๋‚˜ ์–ด๋А ํ•˜๋‚˜๋ผ๋„ unavailable์ด๋ฉด ์ „์ฒด OFF๋ฅผ ์š”์ฒญํ•˜๊ณ  ์˜ค๋ฅ˜ ์ž ๊ธˆ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์Šค์œ„์น˜๋Š” ์ด ํ†ตํ•ฉ ํ•ญ๋ชฉ์ด ๋…์  ์†Œ์œ ํ•˜๋ฉฐ ๋‹ค๋ฅธ ํ•ญ๋ชฉ์—์„œ ์ค‘๋ณต ์„ ํƒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์‹ค์™ธ ์˜จ๋„, ๋‚œ๋ฐฉ ๊ณต๊ธ‰ ์˜จ๋„, ํ™˜์ˆ˜ ์˜จ๋„ ์„ผ์„œ๋Š” ์ถ”๊ฐ€ ์„ค์ • ํ™”๋ฉด์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์™ธ ์„ผ์„œ๋Š” ๋‚œ๋ฐฉ ์ข…๋ฃŒ ํ›„ ์‹ค๋‚ด์™ธ ์˜จ๋„์ฐจ๋กœ ์ •๊ทœํ™”ํ•œ ์—ด์†์‹ค๋ฅ (1/h) ํ•™์Šต์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ธ‰ยทํ™˜์ˆ˜ ์„ผ์„œ๋ฅผ ์„ ํƒํ•˜๋ฉด ํ•ด๋‹น ์˜จ๋„๊ฐ€ ์‹ค๋‚ด ์˜จ๋„ ์ดํ•˜์ธ์ง€ ํ™•์ธํ•ด ์ž”์—ด ์˜ํ–ฅ์„ ๊ฑฐ๋ฅด๋Š” ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‹ค์™ธ ์„ผ์„œ๊ฐ€ ์—†๊ฑฐ๋‚˜ ํ•„์š”ํ•œ ์„ผ์„œ๊ฐ’์ด ์œ ํšจํ•˜์ง€ ์•Š์œผ๋ฉด ์—ด์†์‹ค๋ฅ  ํ‘œ๋ณธ์„ ๋งŒ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•™์Šต๋œ ์—ด์†์‹ค๋ฅ ์€ ์ง„๋‹จ์šฉ์ด๋ฉฐ ํ˜„์žฌ HEAT/AUTO ์ œ์–ด์—๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋กœ์ปฌ ์„ค์น˜ ๊ฒฝ๋กœ

๊ฐœ๋ฐœ ์ค‘์ธ ํ†ตํ•ฉ ํด๋”๋ฅผ Home Assistant ์„ค์ • ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ custom_components/adaptive_floor_heating/์— ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ๋งํฌํ•œ ๋’ค Home Assistant๋ฅผ ์žฌ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ๋‹จ๋… Config Flow๋Š” ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์—์„œ ๋™์ž‘์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. Climateยท๋‚œ๋ฐฉ ๋Ÿฐํƒ€์ž„์˜ ์‹ค์ œ HA ๊ฒ€์ฆ์€ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows ๊ฐœ๋ฐœ ๊ฒ€์ฆ

๋ฐฐ๊ด€ ์‹œํ—˜์šฉ ์ง„๋‹จ ์„ผ์„œ 12๊ฐœ๋„ ๊ธฐ๋ณธ ๋น„ํ™œ์„ฑํ™”๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๊ณต๊ธ‰/ํ™˜์ˆ˜ ์˜จ๋„, ๊ณต๊ธ‰โˆ’ํ™˜์ˆ˜ยท๊ณต๊ธ‰โˆ’์‹ค๋‚ดยทํ™˜์ˆ˜โˆ’์‹ค๋‚ด ์˜จ๋„์ฐจ, ๊ณต๊ธ‰/ํ™˜์ˆ˜ ๋ณ€ํ™”์œจ, ์™„๊ฒฐ ์‚ฌ์ดํด์˜ ์ •์ง€ ์‹œ ๊ณต๊ธ‰/ํ™˜์ˆ˜ ์˜จ๋„, ์ •์ง€ ํ›„ ์‹ค๋‚ด ์ตœ๊ณ  ์ƒ์Šน๋Ÿ‰ยท์ตœ๊ณ ์  ์ง€์—ฐ, ๋ฐฐ๊ด€ ๊ด€์ธก ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ๋ณด๊ณ ๋ฅผ ๋ฐ›์€ ํ›„ ๊ฐ’์ด ์ƒ์„ฑ๋˜๋ฉฐ AUTO ์ œ์–ด์™€ ๊ธฐ๋ณธ ํ•™์Šต ๋ชจ๋ธ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์œ ํšจ ๊ธฐ๊ฐ„์€ ์„ค์ •๋œ ๋ณด๊ณ  ๊ฐ„๊ฒฉ ํ•œ๋„๋ฅผ ๋”ฐ๋ฅด๊ณ , ๋‘ ์ž…๋ ฅ์˜ ๋ณด๊ณ  ์‹œ๊ฐ ์ฐจ์ด๊ฐ€ 5๋ถ„์„ ์ดˆ๊ณผํ•˜๋ฉด ์˜จ๋„์ฐจ๋ฅผ ๊ณ„์‚ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„ผ์„œ ํ•˜๋‚˜๋งŒ ์„ค์ •ํ•ด๋„ ๊ฐ€๋Šฅํ•œ ํ•ญ๋ชฉ์€ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ •์ง€ ์‹œ ์˜จ๋„์™€ ์ž”์—ด ๊ฒฐ๊ณผ ๋„ค ํ•ญ๋ชฉ์€ ๊ฐ™์€ ์‚ฌ์ดํด์ด ์™„๊ฒฐ๋  ๋•Œ ํ•จ๊ป˜ ๊ฐฑ์‹ ํ•˜์—ฌ ๋‹ค์Œ ์œ ํšจ ๊ฒฐ๊ณผ๊นŒ์ง€ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์žฌ์‹œ์ž‘ ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€์ธก์€ ์ดˆ๊ธฐํ™”ํ•˜์ง€๋งŒ Recorder์— ๊ธฐ๋ก๋œ ์ด๋ ฅ์€ ๋ณ„๊ฐœ์ž…๋‹ˆ๋‹ค. ๋ฐฐ๊ด€ ์ƒํƒœ not_configured, missing_input, heating, observing_residual, completed, waiting์€ ๊ฐ๊ฐ ๋ฏธ์„ค์ •, ์ž…๋ ฅ ๋ถ€์กฑ/๋งŒ๋ฃŒ, ๋‚œ๋ฐฉ ์ค‘, ์ž”์—ด ๊ด€์ธก, ์™„๊ฒฐ ๊ฒฐ๊ณผ ์žˆ์Œ, ๋Œ€๊ธฐ๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ๊ด€ ์˜จ๋„์ฐจ๋Š” ์‹ค์ œ ๊ณต๊ธ‰ ์—ด๋Ÿ‰์ด๋‚˜ ๋ฐ”๋‹ฅ ์ถ•์—ด๋Ÿ‰์„ ์˜๋ฏธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹œํ—˜์šฉ ์™ธ๊ธฐ ๋ณด์ • ์˜ˆ์ธก์€ ์‹ค์ธก/์™ธ๊ธฐ ๊ธฐ๋ฐ˜/ํ˜ผํ•ฉ ๋ƒ‰๊ฐ์†๋„, ์™ธ๊ธฐ ๋ณด์ • ๋น„์ค‘, ๊ธฐ์กด/์™ธ๊ธฐ ๋ณด์ • ์˜ˆ์ธก ์˜จ๋„, ๊ณ„์‚ฐ ์ƒํƒœ์˜ ๊ฐœ๋ณ„ ์ง„๋‹จ ์„ผ์„œ 7๊ฐœ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋น„ํ™œ์„ฑํ™”์ด๋ฉฐ ์—”ํ‹ฐํ‹ฐ ์„ค์ •์—์„œ ํ•„์š”ํ•œ ์„ผ์„œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด Recorder ์„ค์ •์— ๋”ฐ๋ผ ์ด๋ ฅ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ธก ์˜จ๋„๋Š” ํ˜„์žฌ๋ถ€ํ„ฐ ์‹ ๋ขฐ๋„ ๋ณด์ •๋œ ๋‚œ๋ฐฉ ๋ฐ˜์‘ ์ง€์—ฐ ํ›„์˜ ์˜จ๋„์ด๋ฉฐ, ๊ธฐ์กด ๋ฐฉ์‹๊ณผ ๊ฐ™์€ ์‹œ๊ฐ„ ๋ฒ”์œ„๋กœ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ AUTO ์ œ์–ดยท๋ชจ๋ธ ์ €์žฅ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹œํ—˜์šฉ ์™ธ๊ธฐ ๋น„์ค‘์€ ์—ด์†์‹ค ํ•™์Šต ์‹ ๋ขฐ๋„์™€ ๋‘ ๋ƒ‰๊ฐ์†๋„์˜ ์ผ์น˜๋„๋ฅผ ๊ณฑํ•ด ์ตœ๋Œ€ 50%๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฒ€์ฆ๋œ ์˜ˆ์ธก ์ •ํ™•๋„๊ฐ€ ์•„๋‹Œ ์‹œํ—˜์šฉ ํ˜ผํ•ฉ ๊ทœ์น™์ž…๋‹ˆ๋‹ค. ๋‚œ๋ฐฉ ์ค‘ยท์ž”์—ด ๊ด€์ธก ์ค‘ยท์ž…๋ ฅ ๋˜๋Š” ํ•™์Šต ๋ถ€์กฑ ์‹œ ๋ณด์ • ์˜ˆ์ธก์€ ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค๋‚ด ๋ณด๊ณ  ์œ ํšจ ๊ธฐ๊ฐ„์€ ๋งˆ์ง€๋ง‰ ๊ฐ„๊ฒฉ์˜ ๋‘ ๋ฐฐ(์ตœ์†Œ 15๋ถ„, ์ตœ๋Œ€ 60๋ถ„)์ด๋ฉฐ, ์‹ค์™ธ ๋ณด๊ณ ๋Š” ์„ค์ •๋œ ๋ณด๊ณ  ๊ฐ„๊ฒฉ ํ•œ๋„๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๊ณ„์‚ฐ ์ƒํƒœ ์ฝ”๋“œ ready๋Š” ๊ณ„์‚ฐ ๊ฐ€๋Šฅ, observing_residual์€ ์ž”์—ด ๊ด€์ธก, stale_indoor๋Š” ์‹ค๋‚ด ๋ณด๊ณ  ๋งŒ๋ฃŒ, missing_outdoor๋Š” ์œ ํšจ ์‹ค์™ธ ์ž…๋ ฅ ์—†์Œ, missing_heat_loss_model/missing_response_model์€ ํ•™์Šต ๋ถ€์กฑ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. inactive, invalid_indoor, insufficient_reports, heater_not_off, not_cooling, insufficient_temperature_difference๋Š” ๊ฐ๊ฐ ๋Ÿฐํƒ€์ž„ ์ค‘์ง€, ์‹ค๋‚ด ์ž…๋ ฅ ์˜ค๋ฅ˜, ํ‘œ๋ณธ ๋ถ€์กฑ, ํžˆํ„ฐ ์ •์ง€ ๋ฏธํ™•์ธ, ๋ƒ‰๊ฐ ๋ฏธํ™•์ธ, ์‹ค๋‚ด์™ธ ์˜จ๋„์ฐจ ๋ถ€์กฑ์ž…๋‹ˆ๋‹ค.

python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements-test.txt
.\.venv\Scripts\python.exe -m unittest discover -s tests/components/adaptive_floor_heating -p "test_*.py" -v

2026-09-29 ๋กœ์ปฌ Windows ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ 122๊ฐœ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆœ์ˆ˜ ์—ด ๊ด€์ธกยทํ•™์Šตยท์ œ์–ด ๋กœ์ง, ์‹ค์ œ voluptuous, HA ์ธํ„ฐํŽ˜์ด์Šค ๋Œ€์—ญ๊ณผ ์‹œํ—˜์šฉ ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•ด ์„ค์ • ์ˆœ์„œยท์ตœ์ข… ํ™•์ธยท์„ผ์„œ ์„ ํƒยท์‹œ๊ฐ„ ๊ฒฝ๊ณ„ยท๊ทธ๋ฃน ์Šค์œ„์น˜ ๋ช…๋ นยท์‹คํŒจ ๋ณต๊ตฌยท์ €์žฅยท์žฌ๋กœ๋“œ๋ฅผ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. HA ๋Ÿฐํƒ€์ž„๊ณผ ํ”„๋ŸฐํŠธ์—”๋“œ์˜ ํ†ตํ•ฉ ๊ฒ€์ฆ์„ ๋Œ€์ฒดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„ ์‹œ ์ฐธ์กฐํ•œ API ๊ธฐ์ค€์€ Home Assistant 2026.9.3์ด๋ฉฐ ์ง€์› ์ตœ์†Œ ๋ฒ„์ „์€ ์‹ค์ œ HA ๊ฒ€์ฆ ํ›„ ํ™•์ •ํ•ฉ๋‹ˆ๋‹ค. 2026-10-01์—๋Š” ์ปค๋ธŒ ๋ฒ„ํ‚ทยทSQLite ์ค‘๋ณต ๋ฐ˜์˜ยท7์ผ ์ •๋ฆฌยท๋ชจ๋ธ ์„ ํƒ ๋Œ€์ฒด ๊ฒฝ๋กœยทAUTO ์ •์ง€ ํŽธ์ฐจยท์ €์žฅ ์‹คํŒจ ๋Œ€์ฒด ๊ฒฝ๋กœ๋ฅผ ํฌํ•จํ•œ 134๊ฐœ ๋กœ์ปฌ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ Home Assistant์™€ ๋‚œ๋ฐฉ ์žฅ์น˜์—์„œ ์ƒˆ ์ปค๋ธŒ ๋ชจ๋ธ์˜ ๋™์ž‘๊ณผ ๊ธฐ์ค€ ์ดํƒˆ๊ฐ’์€ ์•„์ง ๊ฒ€์ฆํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 2026-10-03 ์ƒ์Šน ์ „ OFF ์ง€์—ฐ ๋ฐ˜์‘, ์—ด์ƒํƒœ ๋น„๊ต, ์ง€์† ํ•˜๊ฐ• Peak ํ™•์ธ, 0 ์ž”์—ด๊ณผ Current/Long-term ์Šน๊ฒฉยทํ˜ผํ•ฉ์„ ํฌํ•จํ•œ 194๊ฐœ Windows ๋กœ์ปฌ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ชจ๋ธ์˜ 30๋ถ„ ์ •์ฒด ๊ฐ€๋™์— ๋Œ€ํ•œ AUTO OFFยท์žฌ๊ฐ€๋™ ๋Œ€๊ธฐ ๋ช…๋ น ๊ฒฝ๋กœ, ๋น„์ˆ˜๊ธฐ ํ›„ ์žฅ๊ธฐ ๊ธฐ์–ต ์‚ฌ์šฉ, ์žฌ์‹œ์ž‘ยท์ €์žฅ ์ด์ „ยท์žฅ๊ธฐ ๋ฐ์ดํ„ฐ ์†์ƒยทDB ์‹คํŒจ์™€ ์›์‹œ ๋ฐ์ดํ„ฐ ์ •๋ฆฌ๋„ ๊ฒ€์ฆํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ์„ผ์„œ์˜ ์ฝ๊ธฐ ์ „์šฉ ๋™์ž‘, ์˜ˆ์ธก ์—†๋Š” ์‹ค์ œ ์ตœ๊ณ ์ ์˜ ๊ธฐ๋ก, ๊ณผ๊ฑฐ ์˜ˆ์ธก๊ณผ ์ƒˆ ํšŒ์ฐจ์˜ ์˜ค์ฐจ ๋ถ„๋ฆฌ, OFF ์ง„๋‹จ ๋ณด์กด๊ณผ ์†์ƒ๋œ ์„ ํƒ ์ง„๋‹จ ๋ฐ์ดํ„ฐ์˜ ๊ฒฉ๋ฆฌ๋„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ๋‚œ๋ฐฉ ํ™˜๊ฒฝ์—์„œ ์˜ˆ์ธก ์ •ํ™•๋„์™€ ํ’ˆ์งˆ ์ž„๊ณ„๊ฐ’์€ ์•„์ง ๊ฒ€์ฆํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ, ์ง€์†์ ์ธ ํ™˜๊ฒฝ ๋ณ€ํ™”์™€ ์ด์ƒ์น˜ ๊ตฌ๋ถ„์€ ๋ณ„๋„ ์—ฐ๊ตฌ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค. 2026-10-06์—๋Š” 207๊ฐœ Python ํ…Œ์ŠคํŠธ์™€ 6๊ฐœ Edge ๋ธŒ๋ผ์šฐ์ € ๊ฒ€์ฆ์„ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ดํด ์กฐํšŒ ๊ถŒํ•œยทํ•„ํ„ฐยท์ฝ๊ธฐ ์ „์šฉ์„ฑ, schema 4 ์ด์ „, ์ œ์™ธ ์ธก์ •๊ฐ’๊ณผ ์ž„๊ณ„๊ฐ’, ์Šน์ธ ์ „ํ›„ยท์Šน๊ฒฉยท์ค‘๋ณต ์ €์žฅ, ์›๋ณธ ๋ณด์กด๊ธฐ๊ฐ„ ๋งŒ๋ฃŒ, ์‹œ๊ฐ„๋Œ€ยทํ™”์”จ ๋ณ€ํ™˜ยท๋ชจ๋ฐ”์ผ ๋ฐฐ์น˜ยท๋Šฆ์€ ์‘๋‹ตยท์—ฐ๊ฒฐ ์ข…๋ฃŒ์™€ ์••์ถ• ์ด๋ ฅ ์†์„ฑ/์ƒํƒœ ์œ ์ง€๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ๊ฒ€์ฆ์€ HA ์ธํ„ฐํŽ˜์ด์Šค ๋Œ€์—ญ์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์‹ค์ œ HA ์—…๋ฐ์ดํŠธ ํ›„ ๊ธฐ์กด Warm ์ œ์™ธ ๊ธฐ๋ก์˜ ์‚ฌ์œ  ํ™•์ธ์€ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ๋‚  ์ตœ๊ณ ์  ์กฐ๊ฑด์„ 0.3ยฐC ํ•˜๋ฝ ํ›„ ๋‹ค์Œ ์‹ค์ œ ๋ณด๊ณ ์˜ ์ถ”๊ฐ€ 0.1ยฐC ํ•˜๋ฝ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  OFF ๊ด€์ธก ์ƒํ•œ์„ 4์‹œ๊ฐ„์œผ๋กœ ๋งž์ท„์Šต๋‹ˆ๋‹ค. 217๊ฐœ Python ํ…Œ์ŠคํŠธ๋กœ ํ‰ํƒ„ยท๋ฏธ์„ธ๋“ฑ๋ฝยท๋ฐ˜๋ณต๊ฐ’ยท์ค‘๋ณต/์—ญ์ˆœ ๋ณด๊ณ ยท์žฌ์ƒ์Šนยท๊ฒฝ๊ณ„ ์ˆ˜์น˜, ๊ทธ๋ž˜ํ”„ ๊ทผ์‚ฌ ์ž…๋ ฅ์˜ ์–‘์ชฝ ๋ชจ๋ธ ์™„๋ฃŒ, ์žฅ์‹œ๊ฐ„ ๋ฒ„ํ‚ท ๋ณด์กด, 180๋ถ„ ์ดํ›„ ์ตœ๊ณ ์ ์˜ ์ €์žฅ/๋ณต์›/์˜ˆ์ธก์„ ๊ฒ€์ฆํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ Edge ๊ฒ€์ฆ์—์„œ๋Š” ์ƒˆ ์ตœ๊ณ ์  ๊ทผ๊ฑฐ ํ‘œ์‹œ์™€ ์˜จ๋„์ฐจ์˜ ํ™”์”จ ๋ณ€ํ™˜์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ ์ œ์™ธ ๊ธฐ๋ก์€ ์žฌํ•™์Šตํ•˜์ง€ ์•Š์œผ๋ฉฐ ์‹ค์ œ ๋‚œ๋ฐฉ ํ™˜๊ฒฝ์—์„œ ์ƒˆ ์กฐ๊ฑด์˜ ์„ฑ๊ณตยท์ œ์™ธ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ตœ๊ณ ์  ์ฒซ ํ•˜๋ฝ ๊ธฐ์ค€์„ ์ดํ›„ 0.2ยฐC๋กœ ์™„ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ณ ์˜จ๋„ 26.6ยฐC์—์„œ 26.4 โ†’ 26.3ยฐC์˜ ์—ฐ์† ์‹ค์ œ ๋ณด๊ณ ๋กœ ํ™•์ •ํ•˜๋ฉฐ ์ถ”๊ฐ€ 0.1ยฐC ํ•˜๋ฝ๊ณผ OFF ํ›„ 4์‹œ๊ฐ„ ์ œํ•œ์€ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ๊ทผ์‚ฌ ์ž…๋ ฅ์—์„œ๋Š” ๋‘ ๋ชจ๋ธ ๋ชจ๋‘ ๊ธฐ์กด๋ณด๋‹ค 10๋ถ„ ๋น ๋ฅด๊ฒŒ ํ™•์ •ํ–ˆ๊ณ , 217๊ฐœ Python ํ…Œ์ŠคํŠธ์™€ ํ•™์Šต๋ถ„์„ Edge ๊ฒ€์ฆ์„ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค.

HACS ์„ค์น˜ ๋ฐ ๋ฐฐํฌ ์ƒํƒœ

๊ณต๊ฐœ ์ €์žฅ์†Œ: plplaaa2/adapted_climate

HACS์—์„œ ์•„์ง ๊ธฐ๋ณธ ์ €์žฅ์†Œ๋กœ ๊ฒ€์ƒ‰๋˜์ง€ ์•Š๋Š” ๋™์•ˆ์—๋Š” HACS โ†’ ํ†ตํ•ฉ โ†’ ์šฐ์ธก ์ƒ๋‹จ ๋ฉ”๋‰ด โ†’ ์‚ฌ์šฉ์ž ์ง€์ • ์ €์žฅ์†Œ์—์„œ ์œ„ ์ €์žฅ์†Œ ์ฃผ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์œ ํ˜•์„ **ํ†ตํ•ฉ(Integration)**์œผ๋กœ ์„ ํƒํ•ด ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ ํ›„ Home Assistant๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๊ณ  ํ†ตํ•ฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ €์žฅ์†Œ์—๋Š” HACS์šฉ hacs.json, ํ†ตํ•ฉ manifest ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ, ๋ธŒ๋žœ๋“œ ์•„์ด์ฝ˜์„ ํฌํ•จํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €์žฅ์†Œ์˜ HACS ๊ธฐ๋ณธ ๋ชฉ๋ก ๋“ฑ๋ก ์—ฌ๋ถ€๋Š” ๋ณ„๋„๋กœ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ๋ฃธ ํ†ตํ•ฉ Climate์˜ ์‹ค์ œ HA ๊ฒ€์ฆ์€ ์•„์ง ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

About

Home Assistant custom climate integration for adaptive floor heating with learned predictive control

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages