AI-Powered IoT Platform

Control Your Devices
With Intelligence

TasMind๋Š” Tasmota ํŽŒ์›จ์–ด๊ฐ€ ์„ค์น˜๋œ ๋ชจ๋“  ์žฅ์น˜๋ฅผ AI ๊ธฐ๋ฐ˜ ์ž์—ฐ์–ด๋ฅผ ํ†ตํ•ด ์ œ์–ด, ๊ด€๋ฆฌ, ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋ฉฐ, ๋ณต์žกํ•œ ์ž‘์—…์„ ์œ„ํ•œ ์›Œํฌํ”Œ๋กœ์šฐ์™€ ์‹œ๋‚˜๋ฆฌ์˜ค ์ƒ์„ฑ์„ ์ง€์›ํ•˜๋Š” ํ†ตํ•ฉ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์Šค๋งˆํŠธํ™ˆ, ์Šค๋งˆํŠธํŒœ, ์Šค๋งˆํŠธ๊ณต์žฅ, ์Šค๋งˆํŠธ๋นŒ๋”ฉ ๋“ฑ ๋‹ค์–‘ํ•œ ์˜์—ญ์—์„œ ๋‹จ์ผ ๊ธฐ๊ธฐ๋ถ€ํ„ฐ ๋‹ค์ค‘ ์žฅ์น˜๋“ค๊นŒ์ง€ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๊ธฐ๋ฐ˜ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

0+ AI Models
0% Open Source
0/7 Monitoring
Dashboard
๐Ÿ’ก
Living Room
ON
๐ŸŒก๏ธ
Temperature
23.5ยฐC
๐Ÿ’ง
Humidity
45%
๊ฑฐ์‹ค ์กฐ๋ช…์„ ์ผœ๊ณ  ์˜จ๋„๋ฅผ 24๋„๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ณ ๋งˆ์›Œ, ์—์–ด์ปจ๋„ ์ผœ์ค˜

๋‹น์‹ ์˜ ๋””๋ฐ”์ด์Šค ํ™˜๊ฒฝ์„ ์œ„ํ•œ
๋ชจ๋“  ๊ฒƒ์ด ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค

AI ์ž์—ฐ์–ด ์ œ์–ด, ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง, ๋ณต์žกํ•œ ์›Œํฌํ”Œ๋กœ์šฐ ๋ฐ ์‹œ๋‚˜๋ฆฌ์˜ค ์ƒ์„ฑ๊นŒ์ง€ โ€” ์Šค๋งˆํŠธํ™ˆ, ์Šค๋งˆํŠธํŒœ, ์Šค๋งˆํŠธ๊ณต์žฅ, ์Šค๋งˆํŠธ๋นŒ๋”ฉ์„ ํ†ตํ•ฉ ๊ด€๋ฆฌํ•˜์„ธ์š”.

AI ์ž์—ฐ์–ด ์ œ์–ด

"๊ฑฐ์‹ค ์ „๋“ฑ ์ผœ์ค˜", "์˜จ์‹ค ๊ธ‰์ˆ˜ ๋ฐธ๋ธŒ ์—ด์–ด์ค˜" โ€” ์ž์—ฐ์–ด๋กœ ๋ชจ๋“  Tasmota ๊ธฐ๊ธฐ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. Gemini, Qwen, Gemma, Llama, DeepSeek ๋“ฑ ๋‹ค์–‘ํ•œ LLM์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

์‹ค์‹œ๊ฐ„ ๋Œ€์‹œ๋ณด๋“œ

์˜จ๋„, ์Šต๋„, ์ „๋ ฅ๋Ÿ‰ ๋“ฑ ์„ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„ ์ฐจํŠธ๋กœ ํ™•์ธํ•˜๊ณ , SSE๋ฅผ ํ†ตํ•ด ๊ธฐ๊ธฐ ์ƒํƒœ ๋ณ€ํ™”๋ฅผ ์ฆ‰์‹œ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์Šค๋งˆํŠธ ์ž๋™ํ™”

AI๊ฐ€ ์‚ฌ์šฉ ํŒจํ„ด์„ ํ•™์Šตํ•˜์—ฌ ์ž๋™ํ™” ๊ทœ์น™์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. "ํ‡ด๊ทผ ์‹œ๊ฐ„์— ์กฐ๋ช… ์ž๋™ ์ผœ๊ธฐ" ๊ฐ™์€ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์‰ฝ๊ฒŒ ์„ค์ •ํ•˜์„ธ์š”.

๋ณด์•ˆ ์šฐ์„  ์„ค๊ณ„

Google OAuth ์ธ์ฆ, JWT ํ† ํฐ, ๋””๋ฐ”์ด์Šค๋ณ„ ACL, ๊ด€๋ฆฌ์ž 2FA, ๊ฐœ์ธ์ •๋ณด ๋น„์‹๋ณ„ํ™” โ€” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๋ณด์•ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Tasmota ๋„ค์ดํ‹ฐ๋ธŒ

MQTT ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด Tasmota ํŽŒ์›จ์–ด ๊ธฐ๊ธฐ์™€ ์ง์ ‘ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. Zigbee, Wi-Fi, ์…”ํ„ฐ, ์—๋„ˆ์ง€ ๋ฏธํ„ฐ ๋“ฑ ๋ชจ๋“  ๋””๋ฐ”์ด์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

Knowledge Graph

Neo4j ๊ธฐ๋ฐ˜ Knowledge Graph๋กœ ๊ธฐ๊ธฐ, ์„ผ์„œ, ์‚ฌ์šฉ์ž, ๊ทœ์น™ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์‹œ๊ฐํ™”ํ•˜๊ณ  AI์˜ ์ถ”๋ก  ์ •ํ™•๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

3๋‹จ๊ณ„๋กœ ์‹œ์ž‘ํ•˜๋Š”
์ง€๋Šฅํ˜• ์ œ์–ด ๊ฒฝํ—˜

01

Google๋กœ ๊ฐ€์ž…

Google ๊ณ„์ •์œผ๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ ๊ฐ€์ž…ํ•˜์„ธ์š”. ์ด์šฉ์•ฝ๊ด€๊ณผ ๊ณ ์œ  ์‹๋ณ„์ž ํ™œ์šฉ์— ๋™์˜ํ•˜๋ฉด ๊ฐ€์ž…์ด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๊ฐœ์ธ์ •๋ณด๋Š” ์ €์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Sign up with Google
02

๊ด€๋ฆฌ์ž ์Šน์ธ

๋ณด์•ˆ์„ ์œ„ํ•ด ๊ด€๋ฆฌ์ž๊ฐ€ ๊ฐ€์ž… ์š”์ฒญ์„ ๊ฒ€ํ† ํ•˜๊ณ  ์Šน์ธํ•ฉ๋‹ˆ๋‹ค. ์Šน์ธ์ด ์™„๋ฃŒ๋˜๋ฉด ์ด๋ฉ”์ผ ์—†์ด๋„ ๋ฐ”๋กœ ์•Œ๋ฆผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Pending
Approved
03

๋””๋ฐ”์ด์Šค ์—ฐ๊ฒฐ & ๋Œ€ํ™”

Tasmota ๊ธฐ๊ธฐ๋ฅผ ๋“ฑ๋กํ•˜๊ณ , AI ์ฑ—๋ด‡๊ณผ ๋Œ€ํ™”ํ•˜๋ฉฐ ์Šค๋งˆํŠธํ™ˆ/์Šค๋งˆํŠธํŒœ/์Šค๋งˆํŠธ๊ณต์žฅ/์Šค๋งˆํŠธ๋นŒ๋”ฉ์„ ๊ด€๋ฆฌํ•˜์„ธ์š”. ์„ผ์„œ ๋ฐ์ดํ„ฐ, ์ž๋™ํ™” ์›Œํฌํ”Œ๋กœ์šฐ ๋ฐ ์‹œ๋‚˜๋ฆฌ์˜ค, ๋ช…๋ น ์ด๋ ฅ๊นŒ์ง€ ๋ชจ๋‘ ํ•œ ๊ณณ์—์„œ.

๐Ÿค– ์•ˆ๋…•ํ•˜์„ธ์š”! ๋ฌด์—‡์„ ๋„์™€๋“œ๋ฆด๊นŒ์š”?
๐Ÿ’ก ๊ฑฐ์‹ค ๋ถˆ ์ผœ์ค˜

ํ†ตํ•ฉ ์ œ์–ด ๋ฐ ์ž๋™ํ™”
๋ช…๋ น์–ด ๊ฐ€์ด๋“œ

์Šค๋งˆํŠธํ™ˆ, ์Šค๋งˆํŠธํŒœ, ์Šค๋งˆํŠธ๊ณต์žฅ, ์Šค๋งˆํŠธ๋นŒ๋”ฉ ๋“ฑ ๋‹ค์–‘ํ•œ ์˜์—ญ์—์„œ AI ๋น„์„œ์™€ ์ž์—ฐ์–ด๋กœ ๋Œ€ํ™”ํ•˜๋ฉฐ ๋‹จ์ผ ๋ฐ ๋‹ค์ค‘ ๊ธฐ๊ธฐ๋ฅผ ์ œ์–ดํ•˜๊ณ  ์ž๋™ํ™” ์›Œํฌํ”Œ๋กœ์šฐ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค.

๐Ÿ”Œ ๊ธฐ๊ธฐ ๋‹‰๋„ค์ž„ ์„ค์ • ๋ฐ ๊ฐ€์ƒ ๋…ธ๋“œ ๊ทธ๋ฃนํ™”

๊ธฐ๊ธฐ์˜ ๋ฆด๋ ˆ์ด ์Šค์œ„์น˜ ๋ฐ ์„ผ์„œ์˜ ํ•œ๊ธ€ ๋ณ„๋ช…์„ ์ง€์ •ํ•˜๊ณ , ์—ฌ๋Ÿฌ ๊ธฐ๊ธฐ๋ฅผ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด ํ•จ๊ป˜ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์ƒ ๋…ธ๋“œ ๊ด€๋ฆฌ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค.

์ด๋ฆ„(๋˜๋Š” ๋ณ„๋ช…)์ด ์ง€์ •๋˜์ง€ ์•Š์€ ์žฅ์น˜๋‚˜ ์Šค์œ„์น˜, ์„ผ์„œ๊ฐ€ ์žˆ์–ด?
ํ˜„์žฌ ์‹œ์Šคํ…œ์— ๋ณ„๋ช…์ด ์ง€์ •๋˜์ง€ ์•Š์€ ํ•ญ๋ชฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:
- tasmota_ai2์˜ AM2301-14 ์„ผ์„œ
- tasmota_ai2์˜ AM2301-04 ์„ผ์„œ
test_tasmota ์žฅ์น˜์— ์—ฐ๊ฒฐ๋œ AM2301-04 ์„ผ์„œ์˜ ์ด๋ฆ„์„ ์•ˆ๋ฐฉ์„ผ์„œ๋กœ ์ง€์ •ํ•ด์ค˜
์„ฑ๊ณต์ ์œผ๋กœ ์„ค์ • ์™„๋ฃŒ! ๐Ÿ 
์ด์ œ test_tasmota ๊ธฐ๊ธฐ์˜ AM2301-04 ์„ผ์„œ ์ •๋ณด๋Š” '์•ˆ๋ฐฉ์„ผ์„œ'๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์กฐํšŒํ•˜๊ณ  ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Homecontrol_VirtualNode ๋ผ๋Š” ์ด๋ฆ„์˜ ๊ฐ€์ƒ ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๊ณ  tasmota_ai2์™€ tasmota_ai4 ์žฅ์น˜๋ฅผ ์ถ”๊ฐ€ํ•ด์ค˜
๊ฐ€์ƒ ๋…ธ๋“œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
- ๋…ธ๋“œ๋ช…: Homecontrol_VirtualNode
- ์†Œ์† ์žฅ์น˜: tasmota_ai2, tasmota_ai4

๐Ÿ“š ํ•ต์‹ฌ ์šฉ์–ด ์ •๋ฆฌ

์žฅ์น˜ (Device) Tasmota ํŽŒ์›จ์–ด๊ฐ€ ํƒ‘์žฌ๋˜์–ด Wi-Fi ๋ฐ MQTT ๋ธŒ๋กœ์ปค์™€ ํ†ต์‹ ํ•˜๋Š” ๋ฌผ๋ฆฌ์ ์ธ ํ•˜๋“œ์›จ์–ด ์Šค๋งˆํŠธ ๊ธฐ๊ธฐ ๋ณธ์ฒด.
๋ณ„๋ช… (Nickname) ๋ณต์žกํ•œ ํ•˜๋“œ์›จ์–ด ID ๋Œ€์‹  ์‚ฌ์šฉ์ž๊ฐ€ ์ง๊ด€์ ์œผ๋กœ ๋ถ€๋ฅด๊ธฐ ์œ„ํ•ด ๊ธฐ๊ธฐ ๋ณธ์ฒด, ์Šค์œ„์น˜ ์ฑ„๋„, ์„ผ์„œ์— ์„ค์ •ํ•˜๋Š” ์นœ์ˆ™ํ•œ ํ•œ๊ธ€ ๋ช…์นญ.
๊ฐ€์ƒ ๋…ธ๋“œ (Virtual Node) ๋‹ค์ˆ˜์˜ ๋ฌผ๋ฆฌ ๊ธฐ๊ธฐ ๋ฐ ์„ผ์„œ๋“ค์„ ๋ฐฉ(๊ฑฐ์‹ค, ์˜จ์‹ค ๋“ฑ)์ด๋‚˜ ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ๋ฌถ์–ด ํ†ตํ•ฉ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ผ๊ด„ ์ œ์–ด๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฐ€์ƒ ๊ทธ๋ฃน.

๐Ÿ’ฌ ์ž์—ฐ์–ด ๋ช…๋ น์–ด ์˜ˆ์‹œ ๋ชฉ๋ก

  • ํ˜„์žฌ ๋“ฑ๋ก๋œ ๊ธฐ๊ธฐ ์ค‘์—์„œ ๋‹‰๋„ค์ž„์ด ์—†๋Š” ๊ฒƒ๋“ค์„ ๋ชจ๋‘ ์ฐพ์•„์ค˜
  • ์ด๋ฆ„(๋˜๋Š” ๋ณ„๋ช…)์ด ์ง€์ •๋˜์ง€ ์•Š์€ ์žฅ์น˜๋‚˜ ์Šค์œ„์น˜, ์„ผ์„œ๊ฐ€ ์žˆ์–ด?
  • ์žฅ์น˜ ID 'test_device'์˜ ์ด๋ฆ„์€ '2์ธต'์œผ๋กœ ์ง€์ • ํ•ด์ค˜
  • test_tasmota์žฅ์น˜์— ์—ฐ๊ฒฐ๋œ power4 ์Šค์œ„์น˜์˜ ์ด๋ฆ„์„ ์ถœ์ž…๊ตฌ๋“ฑ์œผ๋กœ ์ง€์ •ํ•ด์ค˜
  • test_tasmota ์žฅ์น˜์— ์—ฐ๊ฒฐ๋œ AM2301-04 ์„ผ์„œ์˜ ์ด๋ฆ„์„ ์•ˆ๋ฐฉ์„ผ์„œ๋กœ ์ง€์ •ํ•ด์ค˜
  • ํ•˜์šฐ์Šค1์— ์—ฐ๊ฒฐ๋œ AM2301-04์„ผ์„œ์˜ ์ด๋ฆ„์„ ๊ฑฐ์‹ค์„ผ์„œ๋กœ ๋ณ€๊ฒฝํ•ด์ค˜
  • ํ•˜์šฐ์Šค1์— ์—ฐ๊ฒฐ๋œ ์Šค์œ„์น˜ ์ด๋ฆ„ ์ฃผ๋ฐฉ๋“ฑ์„ ์•ˆ๋ฐฉ๋“ฑ ์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ค˜
  • ์˜ค๋ž˜๋œ ์„ผ์„œ ์ •๋ฆฌํ•ด ์ค˜ (์œ ๋ น ๋…ธ๋“œ ์ œ๊ฑฐ)
  • 5๋ถ„ ์ด์ƒ ํ†ต์‹ ์ด ๋Š๊ธด ์˜ค๋ž˜๋œ ์„ผ์„œ์™€ ์žฅ์น˜ ์‚ญ์ œํ•ด์ค˜
  • 10๋ถ„ ์ด์ƒ ํ†ต์‹ ์ด ๋Š๊ธด ์˜ค๋ž˜๋œ ์„ผ์„œ์™€ ์žฅ์น˜ ์‚ญ์ œํ•ด์ค˜

๐Ÿ’ก ๊ธฐ๊ธฐ ๊ธฐ๋ณธ ์ œ์–ด & ๋ฐฑ๋กœ๊ทธ(Backlog) ์—ฐ๋™

๊ธฐ๊ธฐ์˜ ์ผœ์ง/๊บผ์ง ์ œ์–ด์™€ ๋”๋ถˆ์–ด ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ ์ „์†ก ์ฃผ๊ธฐ(TelePeriod) ์„ค์ •, ์ •์ „ ํ›„ ๋ณต๊ตฌ ๋ชจ๋“œ(PowerOnState) ๋ณ€๊ฒฝ, ๊ทธ๋ฆฌ๊ณ  ํƒ€์ด๋จธ ์„ค์ • ๋ฐ ๋”œ๋ ˆ์ด๊ฐ€ ์กฐํ•ฉ๋œ Backlog ๋‹ค์ค‘ ์‹คํ–‰ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

ํ•˜์šฐ์Šค1์— ์—ฐ๊ฒฐ๋œ ๊ฑฐ์‹ค๋“ฑ ์Šค์œ„์น˜ ์ผœ์ค˜
๊ฑฐ์‹ค๋“ฑ์„ ์ผฐ์Šต๋‹ˆ๋‹ค. ๐Ÿ’ก
cmnd/ํ•˜์šฐ์Šค1/POWER1 = ON (๊ธฐ๊ธฐ ์‘๋‹ต: {"POWER1":"ON"})
์žฅ์น˜ ํ•˜์šฐ์Šค1์˜ ์ƒํƒœ ๋ณด๊ณ (Telemetry) ์ฃผ๊ธฐ๋ฅผ 5๋ถ„์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ค˜
ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ ์ „์†ก ์ฃผ๊ธฐ๋ฅผ 5๋ถ„(300์ดˆ)์œผ๋กœ ๋ณ€๊ฒฝ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.
cmnd/ํ•˜์šฐ์Šค1/TelePeriod = 300
PulseTime ์ ˆ๋Œ€ ์“ฐ์ง€ ๋ง๊ณ , ๋ฐ˜๋“œ์‹œ Delay ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•˜์šฐ์Šค1์˜ ์ „์›1์„ ์ผœ๊ณ , 10์ดˆ ๋Œ€๊ธฐํ•œ ๋‹ค์Œ ์ „์›1์„ ๋‹ค์‹œ ๋„๋Š” ๋ช…๋ น์„ ๋ฐฑ๋กœ๊ทธ(Backlog)๋กœ ํ•œ ๋ฒˆ์— ๋ณด๋‚ด์ค˜
์š”์ฒญํ•˜์‹  ๋Œ€๋กœ Delay๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐฑ๋กœ๊ทธ ์ฒด์ธ ๋ช…๋ น์„ ์ผ๊ด„ ์ „์†กํ–ˆ์Šต๋‹ˆ๋‹ค.
cmnd/ํ•˜์šฐ์Šค1/Backlog = Power1 ON; Delay 100; Power1 OFF

๐Ÿ“š ํ•ต์‹ฌ ์šฉ์–ด ์ •๋ฆฌ

๋ฐฑ๋กœ๊ทธ (Backlog) ์„ธ๋ฏธ์ฝœ๋ก (;)์œผ๋กœ ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๋ฅผ ์—ฎ์–ด ๋‹จ ํ•˜๋‚˜์˜ MQTT ํŒจํ‚ท์œผ๋กœ ์ˆœ์ฐจ ์‹คํ–‰ํ•˜๋„๋ก ๋ช…๋ น์„ ๋ฌถ์–ด ๋ณด๋‚ด๋Š” ๊ณ ๊ธ‰ ์—ฐ๊ฒฐ ๊ธฐ๋Šฅ.
๋”œ๋ ˆ์ด (Delay) ๋ฐฑ๋กœ๊ทธ ๊ตฌ๋ฌธ ๋‚ด๋ถ€์—์„œ ๋‹ค์Œ ๋‹จ๊ณ„์˜ ์ œ์–ด ๋ช…๋ น์œผ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „ ์ผ์ • ์‹œ๊ฐ„(0.1์ดˆ ๋‹จ์œ„, ์˜ˆ: 100 = 10์ดˆ) ๋™์•ˆ ๋Œ€๊ธฐํ•˜๋Š” ๋ช…๋ น์–ด.
์ธํ„ฐ๋ก (Interlock) ๋‹ค์ค‘ ๋ฆด๋ ˆ์ด ์Šค์œ„์น˜๊ฐ€ ํ•œ ๋ฒˆ์— ์ผœ์งˆ ๋•Œ์˜ ๊ณผ๋ถ€ํ•˜/์ „๊ธฐ ์‚ฌ๊ณ ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด, ํ•˜๋‚˜์˜ ์ฑ„๋„์ด ์ผœ์ง€๋ฉด ๋ฐ˜๋Œ€ ์ฑ„๋„์„ ๊ฐ•์ œ๋กœ ์ž๋™ ์ „์› ์ฐจ๋‹จํ•˜๋Š” ์ƒํ˜ธ ์ž ๊ธˆ.
ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ (Telemetry) Tasmota ๊ธฐ๊ธฐ๊ฐ€ ์ˆ˜์ง‘๋œ ์˜จ์Šต๋„, ์กฐ๋„ ๋“ฑ์˜ ์ตœ์‹  ์„ผ์„œ ๋ฐ์ดํ„ฐ์™€ ๋„คํŠธ์›Œํฌ ์ง„๋‹จ ์ •๋ณด๋ฅผ ์„œ๋ฒ„๋กœ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ž๋™ ๋ณด๊ณ ํ•˜๋Š” ์ƒํƒœ ์‹ ํ˜ธ(TelePeriod).

๐Ÿ’ฌ ์ž์—ฐ์–ด ๋ช…๋ น์–ด ์˜ˆ์‹œ ๋ชฉ๋ก

  • ํ•˜์šฐ์Šค1์— ์—ฐ๊ฒฐ๋œ ๊ฑฐ์‹ค๋“ฑ ์Šค์œ„์น˜ ์ผœ์ค˜ / ๊บผ์ค˜
  • ํ•˜์šฐ์Šค1์— ์—ฐ๊ฒฐ๋œ ์ฃผ๋ฐฉ๋“ฑ ์Šค์œ„์น˜ ๊บผ์ค˜
  • ์žฅ์น˜ ํ•˜์šฐ์Šค1์˜ ์ƒํƒœ ๋ณด๊ณ (Telemetry) ์ฃผ๊ธฐ๋ฅผ 10๋ถ„์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ค˜
  • ์žฅ์น˜ ํ•˜์šฐ์Šค1์˜ ์ƒํƒœ ๋ณด๊ณ (Telemetry) ์ฃผ๊ธฐ๋Š” ์–ผ๋งˆ์ธ๊ฐ€?
  • ์žฅ์น˜ test_agent์˜ ์ƒํƒœ ๋ณด๊ณ (Telemetry) ์ฃผ๊ธฐ๋Š” ์–ผ๋งˆ์ธ๊ฐ€?
  • ์žฅ์น˜ ํ•˜์šฐ์Šค1์˜ ์ •์ „ ํ›„ ์ „์› ์ผœ์ง ์ƒํƒœ๋ฅผ '์ด์ „ ์ƒํƒœ ๊ธฐ์–ต'์œผ๋กœ ์„ค์ •ํ•ด ์ค˜
  • ์žฅ์น˜ ํ•˜์šฐ์Šค1์˜ ๊ฑฐ์‹ค๋“ฑ์„ ์ผœ๋ฉด 30์ดˆ ๋’ค์— ์ž๋™์œผ๋กœ ๊บผ์ง€๋„๋ก ํƒ€์ด๋จธ๋ฅผ ์„ค์ •ํ•ด ์ค˜ (3์ดˆ/300์ดˆ ๊ฐ€๋Šฅ)
  • ํ•˜์šฐ์Šค1์˜ ๊ฑฐ์‹ค๋“ฑ์„ ์ผœ๋ฉด ์ž๋™์œผ๋กœ ๊บผ์ง€๋Š” ํƒ€์ด๋จธ๋ฅผ ํ•ด์ œํ•ด์ค˜
  • ์žฅ์น˜ ํ•˜์šฐ์Šค1์˜ power1, power2, power3, power4์„ ์„œ๋กœ Interlock(์ƒํ˜ธ ์ž ๊ธˆ)์œผ๋กœ ์„ค์ •ํ•ด ์ค˜
  • ํ•˜์šฐ์Šค1์˜ [power1, power2], [power3, power4] ๊ฐ๊ฐ ์ธํ„ฐ๋ก์œผ๋กœ ์„ค์ •ํ•ด ์ค˜
  • ํ•˜์šฐ์Šค1์˜ ์ „์›1์„ ์ผœ๊ณ , 10์ดˆ ๋Œ€๊ธฐํ•œ ๋‹ค์Œ ์ „์›1์„ ๋‹ค์‹œ ๋„๋Š” ๋ช…๋ น์„ ๋ฐฑ๋กœ๊ทธ(Backlog)๋กœ ๋ณด๋‚ด์ค˜

๐ŸชŸ ์ฐฝ๋ฌธ ๋ธ”๋ผ์ธ๋“œ ๋ฐ ์…”ํ„ฐ ์ œ์–ด

์Šค๋งˆํŠธ ๋ธ”๋ผ์ธ๋“œ ๋ฆด๋ ˆ์ด ์ œ์–ด ์„ค์ •, ์ฐจ๊ณ ๋ฌธ ์ „์šฉ ๋ชจ๋“œ ์ ์šฉ, ์™„์ „ํžˆ ์—ด๋ฆฌ๊ณ  ๋‹ซํžˆ๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹ค๊ตฌ๋™ ๋ชจํ„ฐ ์ž‘๋™ ์‹œ๊ฐ„ ๊ต์ • ๋ฐ ์ •๋ฐ€ ๊ฐœ๋ฐฉ์œจ ์ œ์–ด์ž…๋‹ˆ๋‹ค.

ํ•˜์šฐ์Šค1์˜ ๋ธ”๋ผ์ธ๋“œ(์…”ํ„ฐ) ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๊ณ , ์…”ํ„ฐ1์˜ ์ œ์–ด ๋ฆด๋ ˆ์ด๋ฅผ 1๋ฒˆ์œผ๋กœ ์ง€์ •ํ•ด์ค˜. ๋ฐฑ๋กœ๊ทธ๋กœ ์ฒ˜๋ฆฌํ•ด์ค˜
๋ธ”๋ผ์ธ๋“œ ๊ธฐ๋Šฅ ํ™œ์„ฑํ™” ๋ฐ ๋ฆด๋ ˆ์ด ๋งคํ•‘ ๋ช…๋ น์„ ์ผ๊ด„ ์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
cmnd/ํ•˜์šฐ์Šค1/Backlog = SetOption80 1; ShutterRelay1 1
ํ•˜์šฐ์Šค1์˜ ์…”ํ„ฐ1์ด ์™„์ „ํžˆ ์—ฌ๋Š” ๋ฐ 12.5์ดˆ, ์™„์ „ํžˆ ๋‹ซ๋Š” ๋ฐ 11.2์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๋„๋ก ๋งž์ถฐ์ค˜
์…”ํ„ฐ ๊ฐœํ ์†Œ์š” ์‹œ๊ฐ„์„ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจํ„ฐ ์ˆ˜๋ช…์„ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ฐ€ ์ž‘๋™ ์‹œ๊ฐ„์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
- ์—ด๋ฆผ ์†Œ์š”์‹œ๊ฐ„: 12.5์ดˆ (ShutterOpenDuration1 12.5)
- ๋‹ซํž˜ ์†Œ์š”์‹œ๊ฐ„: 11.2์ดˆ (ShutterCloseDuration1 11.2)

๐Ÿ“š ํ•ต์‹ฌ ์šฉ์–ด ์ •๋ฆฌ

์…”ํ„ฐ/๋ธ”๋ผ์ธ๋“œ (Shutter) Tasmota ๊ธฐ๊ธฐ๋ฅผ ํ™œ์šฉํ•ด ๋กค๋Ÿฌ ์…”ํ„ฐ, ์ „๋™ ์ปคํŠผ, ๋ธ”๋ผ์ธ๋“œ ๋ชจํ„ฐ ๋ชจ๋“ˆ์„ ์ œ์–ดํ•˜๊ณ  ์—ฐ๋™ํ•˜๋Š” ์ œ์–ด ๊ธฐ๋Šฅ.
์…”ํ„ฐ ๋ฆด๋ ˆ์ด (ShutterRelay) ์…”ํ„ฐ๋ฅผ ์ œ์–ดํ•˜๋Š” ๊ธฐ๊ธฐ ๋‚ด ๋ชจํ„ฐ ์ž‘๋™์šฉ ์ „์› ๋ฆด๋ ˆ์ด ์ฑ„๋„ ๋ฒˆํ˜ธ๋ฅผ ๋งคํ•‘ํ•˜๋Š” ๋ช…๋ น์–ด. (์˜ˆ: ์ •๋ฐฉํ–ฅ/์—ญ๋ฐฉํ–ฅ ์ง€์ •)
์…”ํ„ฐ ๋ชจ๋“œ (ShutterMode) ๋™์ž‘ ํŒจํ„ด ์„ค์ •. 1๊ฐœ์˜ ๋ฆด๋ ˆ์ด์™€ ๋ฆฌ๋ฏธํŠธ ์Šค์œ„์น˜๋ฅผ ํ˜ผ์šฉํ•˜๋Š” ์ฐจ๊ณ ๋ฌธ ๋ชจ๋“œ(one relay garage mode) ๋˜๋Š” ๋”๋ธ” ๋ฆด๋ ˆ์ด ํ‘œ์ค€ํ˜• ๋“ฑ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ฐœ๋ฐฉ ์œ„์น˜ (Position) 0%(์™„์ „ ๋‹ซํž˜)์—์„œ 100%(์™„์ „ ๊ฐœ๋ฐฉ) ๋ฒ”์œ„ of ์ •๋ฐ€ํ•œ ๋ชฉํ‘œ ์ž‘๋™ ๋น„์œจ ์œ„์น˜๋กœ ์…”ํ„ฐ๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ช…๋ น.

๐Ÿ’ฌ ์ž์—ฐ์–ด ๋ช…๋ น์–ด ์˜ˆ์‹œ ๋ชฉ๋ก

  • ํ•˜์šฐ์Šค1์˜ ๋ธ”๋ผ์ธ๋“œ(์…”ํ„ฐ) ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๊ณ , ์…”ํ„ฐ1์˜ ์ œ์–ด ๋ฆด๋ ˆ์ด๋ฅผ 1๋ฒˆ์œผ๋กœ ์ง€์ •ํ•ด์ค˜
  • ์…”ํ„ฐ2์˜ ์ œ์–ด ๋ฆด๋ ˆ์ด๋ฅผ 3๋ฒˆ์œผ๋กœ ์ง€์ •ํ•ด์ค˜
  • ํ•˜์šฐ์Šค1์˜ ์…”ํ„ฐ๋ฆด๋ ˆ์ด2๋ฅผ ์ „์›3๋ฒˆ์œผ๋กœ ์ง€์ •ํ•ด์ค˜
  • ํ•˜์šฐ์Šค1์˜ ์…”ํ„ฐ ๋™์ž‘ ๋ชจ๋“œ๋ฅผ '์ฐจ๊ณ ๋ฌธ ๋ชจ๋“œ(one relay garage mode)'๋กœ ๋ณ€๊ฒฝํ•ด์ค˜
  • ํ•˜์šฐ์Šค1์˜ ์…”ํ„ฐ ๋™์ž‘ ๋ชจ๋“œ๋ฅผ 1 ๋กœ ๋ณ€๊ฒฝํ•ด์ค˜
  • ํ•˜์šฐ์Šค1์˜ ์…”ํ„ฐ1์ด ์™„์ „ํžˆ ์—ด๋ฆฌ๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์€ 12.5์ดˆ๋กœ, ์™„์ „ํžˆ ๋‹ซํžˆ๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์€ 11.2์ดˆ๋กœ ์„ค์ •ํ•ด์ค˜
  • ํ•˜์šฐ์Šค1์˜ ์…”ํ„ฐ1์„ ์ ˆ๋ฐ˜๋งŒ ์—ด๋ฆฌ๊ฒŒ 50% ์œ„์น˜๋กœ ์ด๋™์‹œ์ผœ ์ค˜

โš™๏ธ ์‹œ๋‚˜๋ฆฌ์˜ค ์ž๋™ํ™” & ๊ธฐ๊ธฐ ๋ฃฐ(Rule) ๋นŒ๋”

๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ์˜ ์˜จ์Šต๋„ ๋ฐ ์‹œ๊ฐ„ ์กฐ๊ฑด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž๋™ํ™” ์ •์ฑ…(DSL)์„ ์„ค๊ณ„/๋“ฑ๋กํ•˜๊ณ , ์‹ค์ œ ๊ธฐ๊ธฐ๋“ค์— ๋ฐ”์ธ๋”ฉํ•˜์—ฌ ๋ฐฑ์—”๋“œ ๋˜๋Š” Tasmota ๊ธฐ๊ธฐ ๋กœ์ปฌ ๋ฃฐ๋กœ ์ปดํŒŒ์ผํ•˜๋Š” ๋‹ค๋ชฉ์  ์ œ์–ด ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

์Šค๋งˆํŠธํ™ˆ ๋„๋ฉ”์ธ์— '์พŒ์  ํ™ˆ ๊ฐ€๋™ ์‹œ๋‚˜๋ฆฌ์˜ค' ํ…œํ”Œ๋ฆฟ์„ ๋“ฑ๋กํ•ด์ค˜.
- ์—ญํ• : temperature_sensor, humidity_sensor, living_room_light, kitchen_light, fan_actuator, aircon_actuator
- ํŒŒ๋ผ๋ฏธํ„ฐ: temp_max(๊ธฐ๋ณธ 28), humi_max(๊ธฐ๋ณธ 60)
- ๊ทœ์น™: ์˜จ๋„ >= temp_max AND ์Šต๋„ <= humi_max ์ด๋ฉด ์กฐ๋ช…๊ณผ ํ™˜ํ’๊ธฐ ์ผœ๊ณ  ์—์–ด์ปจ ๊บผ์ค˜. ์กฐ๊ฑด ํ•ด์ œ ์‹œ ๋ฐ˜๋Œ€๋กœ ๋ณต์›. (์‹คํ–‰ ๋ชจ๋“œ: toggle)
์‹œ๋‚˜๋ฆฌ์˜ค DSL ํ…œํ”Œ๋ฆฟ ๊ฒ€์ฆ ์™„๋ฃŒ ๋ฐ ์—…๋กœ๋“œ ์„ฑ๊ณต! ๐Ÿš€
- ๋“ฑ๋ก๋œ ์‹œ๋‚˜๋ฆฌ์˜ค ID: sc_09f2c9e6
- ๋„๋ฉ”์ธ: ์Šค๋งˆํŠธํ™ˆ
- ์‹คํ–‰ ๋ชจ๋“œ: toggle (์กฐ๊ฑด ๋งŒ์กฑ ์‹œ ON, ํ•ด์ œ ์‹œ OFF ์ž๋™ ์ „ํ™˜)
์‹œ๋‚˜๋ฆฌ์˜ค sc_09f2c9e6์„ ๋‚ด ํ™˜๊ฒฝ(Homecontrol_VirtualNode)์— ์ ์šฉํ•ด์ค˜.
- ๋ฐ”์ธ๋”ฉ: ์„ผ์„œ๋Š” tasmota_ai2์˜ am2301, ์ œ์–ด๋Š” tasmota_ai2์˜ ๊ฑฐ์‹ค๋“ฑ/์ฃผ๋ฐฉ๋“ฑ, tasmota_ai5์˜ ํ™˜ํ’๊ธฐ/์—์–ด์ปจ
์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ฐ€์ƒ ๋…ธ๋“œ ๋‚ด ์‹ค์ œ ๋ฌผ๋ฆฌ ๋””๋ฐ”์ด์Šค์— ์—ฐ๊ฒฐ ์ ์šฉ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.
- tasmota_ai2์— ๋ฌผ๋ฆฌ ๋ฃฐ ์ ์šฉ (system#boot ๋ณ€์ˆ˜ ๋ฆฌ์…‹ ๋ฐ ์˜จ์Šต๋„ ๊ฐ์ง€)
- tasmota_ai5์— ๋ฌผ๋ฆฌ ๋ฃฐ ์ ์šฉ (ํฌ๋กœ์Šค ๋””๋ฐ”์ด์Šค ์—ฐ๋™ ๋ฆด๋ ˆ์ด ์ผœ์ง/๊บผ์ง ๋งคํ•‘)
- Tasmota ๊ธฐ๊ธฐ ๋กœ์ปฌ ๋ฃฐ์— ์ฆ‰์‹œ ํƒ‘์žฌ๋˜์–ด ์˜คํ”„๋ผ์ธ ํ™˜๊ฒฝ์—์„œ๋„ ์•ˆ์ „ํ•˜๊ฒŒ ๊ตฌ๋™๋ฉ๋‹ˆ๋‹ค.
์‹œ๋‚˜๋ฆฌ์˜ค์— ์˜ํ•ด ์ ์šฉ๋œ ๋ฃฐ ๊ทœ์น™ ๋ฆฌ์ŠคํŠธ ๋ณด์—ฌ์ค˜
ํ˜„์žฌ ์‹œ๋‚˜๋ฆฌ์˜ค์— ์˜ํ•ด ๊ธฐ๊ธฐ์— ์ ์šฉ๋œ ๋ฃฐ ๊ทœ์น™ ๋ฆฌ์ŠคํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:
- tasmota_ai2
- ์ƒํƒœ: ๐ŸŸข ํ™œ์„ฑ (์Šฌ๋กฏ: Rule1, Rule2 ์‚ฌ์šฉ ์ค‘)
- tasmota_ai5
- ์ƒํƒœ: ๐ŸŸข ํ™œ์„ฑ (์Šฌ๋กฏ: Rule1, Rule2 ์‚ฌ์šฉ ์ค‘)
์‹œ๋‚˜๋ฆฌ์˜ค์— ์˜ํ•ด ์ ์šฉ๋œ ๋ฃฐ ๊ทœ์น™ ๋ชจ๋‘ ์‚ญ์ œํ•˜๊ณ , tasmota_ai2 ๊ธฐ๊ธฐ์˜ Rule ์Šฌ๋กฏ๋„ ์ดˆ๊ธฐํ™”ํ•ด์ค˜
์‚ญ์ œ ์ž‘์—…์„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿงน
- DB์˜ ๋ชจ๋“  ํ™œ์„ฑ ๋ฃฐ ๊ด€๊ณ„ ์‚ญ์ œ ์™„๋ฃŒ
- tasmota_ai2 ๊ธฐ๊ธฐ์— ๋น„ํ™œ์„ฑ MQTT ์ „์†ก: cmnd/tasmota_ai2/Rule1 "", Rule2 ""

๐Ÿ“š ํ•ต์‹ฌ ์šฉ์–ด ์ •๋ฆฌ

์‹œ๋‚˜๋ฆฌ์˜ค (Scenario) ํŠน์ • ํ•˜๋“œ์›จ์–ด ID๊ฐ€ ์•„๋‹Œ ์ถ”์ƒํ™”๋œ ์†Œ๋ฌธ์ž ์Šค๋„ค์ดํฌ ์—ญํ• (device_roles)๊ณผ ๋…ผ๋ฆฌ ์กฐ๊ฑด์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์Šค๋งˆํŠธ ์ž๋™ํ™” ์„ค๊ณ„ ๋„์•ˆ(DSL).
์‹œ์Šคํ…œ ๋ฃฐ (System Rule) ์„œ๋ฒ„(๋ฐฑ์—”๋“œ ์—”์ง„) ์ƒ์—์„œ ๊ตฌ๋™๋˜์–ด ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฑฐ์ณ 10์ดˆ ๋‹จ์œ„ ๋“ฑ์œผ๋กœ ์ฃผ๊ธฐ์ ์œผ๋กœ ์กฐ๊ฑด์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด ์‹คํ–‰ํ•˜๋Š” ๋ฃฐ.
Tasmota ๋ฌผ๋ฆฌ Rule Tasmota ์žฅ์น˜์˜ Rule1~3 ์Šฌ๋กฏ ๋ฉ”๋ชจ๋ฆฌ์— MQTT๋กœ ์ง์ ‘ ๊ตฌ๋ฌธ์„ ์—…๋กœ๋“œํ•˜์—ฌ, ๊ธฐ๊ธฐ ์ž์ฒด CPU๊ฐ€ ์ธํ„ฐ๋„ท ๋‹จ์ ˆ ์ƒํƒœ์—์„œ๋„ ์ž์œจ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋„๋ก ์ œ์–ดํ•˜๋Š” ๋ฌผ๋ฆฌ ๋ฃฐ.
์‹คํ–‰ ๋ชจ๋“œ (Execution Mode) ๋ฃฐ ๋ฐœ๋™ ํŒจํ„ด ์„ค์ •. repeat (์กฐ๊ฑด ๋งŒ์กฑ ์‹œ ์ง€์† ์ œ์–ด ์ „์†ก), once (1ํšŒ ์ž‘๋™ ํ›„ ๋ฃฐ ๋Œ€๊ธฐ), toggle (์ฐธ์ผ ๋•Œ ๊ฐ€๋™, ๊ฑฐ์ง“์œผ๋กœ ํ•ด์ œ ์‹œ ์›์ƒํƒœ ๋ณต์› ๋กค๋ฐฑ)์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ฌ ์ž์—ฐ์–ด ๋ช…๋ น์–ด ์˜ˆ์‹œ ๋ชฉ๋ก

  • ์Šค๋งˆํŠธํ™ˆ ๋„๋ฉ”์ธ์— ์ƒˆ๋กœ์šด ์ž๋™ํ™” ์‹œ๋‚˜๋ฆฌ์˜ค ํ…œํ”Œ๋ฆฟ์„ ๋“ฑ๋กํ•ด์ค˜
  • ์‹œ๋‚˜๋ฆฌ์˜ค sc_09f2c9e6์˜ ์˜จ์Šต๋„ ์„ผ์„œ๋Š” tasmota_ai2์˜ am2301์„ ์ ์šฉํ•˜๊ณ  ๊ฑฐ์‹ค๋“ฑ, ์ฃผ๋ฐฉ๋“ฑ๊ณผ ํ™˜ํ’๊ธฐ, ์—์–ด์ปจ๋“ค์„ ๊ฐ€์ƒ ๋…ธ๋“œ์— ๋งคํ•‘ํ•ด ์ ์šฉํ•ด์ค˜. ์‹คํ–‰ ๋ชจ๋“œ๋Š” toggle๋กœ ์„ค์ •ํ•ด์ค˜
  • ์‹œ๋‚˜๋ฆฌ์˜ค sc_09f2c9e6์˜ ์˜จ์Šต๋„ ์„ผ์„œ๋Š” tasmota_ai2์˜ am2301์„ ์ ์šฉํ•˜๊ณ  ์•ก์ถ”์—์ดํ„ฐ๋“ค์„ ํ™ˆ์ปจํŠธ๋กค ๊ฐ€์ƒ ๋…ธ๋“œ์— ๋‹ค์‹œ ๋งคํ•‘ํ•ด์„œ ์ ์šฉํ•ด์ค˜. ์‹คํ–‰ ๋ชจ๋“œ๋Š” once๋กœ ์„ค์ •ํ•ด์ค˜
  • ์พŒ์  ํ™ˆ ๊ฐ€๋™ ์‹œ๋‚˜๋ฆฌ์˜ค์— ์ƒ์„ฑ๋œ ๊ทœ์น™์„ toggle ๋ชจ๋“œ์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ค˜
  • ํ•˜์šฐ์Šค1์˜ Rule1์„ ํ™œ์„ฑํ™”ํ•ด์ค˜ / ๊บผ์ค˜
  • ํ•˜์šฐ์Šค1์˜ Rule1 ๋ช…๋ น์„ ON Switch1#State DO Power2 ON ENDON๋กœ ๋ณ€๊ฒฝํ•ด์ค˜
  • ํ•˜์šฐ์Šค1์˜ Rule1 ๋ช…๋ น์„ ON Switch1#State DO Power1 ON ENDON๋กœ ์„ค์ •ํ•ด์ค˜
  • tasmota_ai2 ์žฅ์น˜์˜ Rule1, Rule2, Rule3๋ฅผ ๋ชจ๋‘ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์‚ญ์ œํ•ด์ค˜
  • ์‹œ๋‚˜๋ฆฌ์˜ค์— ์˜ํ•ด ์ ์šฉ๋œ ๋ฃฐ ๊ทœ์น™ ๋ฆฌ์ŠคํŠธ ๋ณด์—ฌ์ค˜ / ๋ชจ๋‘ ์‚ญ์ œํ•ด์ค˜
  • ์Šต๋„ ๊ด€๋ จ ์‹œ๋‚˜๋ฆฌ์˜ค ๊ฒ€์ƒ‰ํ•ด์„œ ์•Œ๋ ค์ค˜
  • ์˜ค์ „ 4์‹œ~11์‹œ ์‚ฌ์ด์— ์˜จ๋„๊ฐ€ 28๋„ ์ด์ƒ์ด๊ณ  ์Šต๋„๊ฐ€ 50% ์ดํ•˜์ด๋ฉด ๋ถ„๋ฌด๊ธฐ๋ฅผ ์ผœ๊ณ , 22๋„ ์ดํ•˜๊ฑฐ๋‚˜ ์Šต๋„๊ฐ€ 75% ์ด์ƒ์ด๋ฉด ๋ถ„๋ฌด๊ธฐ๋ฅผ ๋„๋Š” ์Šค๋งˆํŠธํŒœ ์˜จ์Šต๋„ ๋ถ„๋ฌด ์ œ์–ด ์‹œ์Šคํ…œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋งŒ๋“ค์–ด์ค˜

โš ๏ธ ํ†ตํ•ฉ ์Šค๋งˆํŠธ ์ œ์–ด ์‹œ ํ•„์ˆ˜ ์ค€์ˆ˜ ์‚ฌํ•ญ ๋ฐ ๊ธˆ์ง€ ์กฐํ•ญ

Tasmota ํŽŒ์›จ์–ด ๊ธฐ๊ธฐ์˜ ์˜ค์ž‘๋™์„ ํ”ผํ•˜๊ณ , ๋ฃฐ ์—”์ง„ ๋นŒ๋“œ ์‹œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผ์š” ์žฅ์•  ๋ฐ ๋ฌผ๋ฆฌ์  ๋ถ€ํ’ˆ ์†์ƒ์„ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ์ง€์ผœ์•ผ ํ•  ๊ฐ€์ด๋“œ๋ผ์ธ์ž…๋‹ˆ๋‹ค.

โŒ

Backlog ์ฒด์ธ ๋‚ด๋ถ€์˜ ์žฆ์€ PulseTime ์‚ฌ์šฉ ๊ธˆ์ง€

๋ฐฑ๋กœ๊ทธ ๋‹ค์ค‘ ๊ฒฐํ•ฉ ์ „์†ก(์˜ˆ: ์ผœ๊ณ  ์ผ์ • ์‹œ๊ฐ„ ๋’ค ๋„๊ธฐ)์„ ๊ตฌํ˜„ํ•  ๋•Œ๋Š” PulseTime์˜ ๋ณต์žกํ•œ ๊ณต์‹ ๋Œ€์‹  **๋ฐ˜๋“œ์‹œ `Delay` ๋ช…๋ น์–ด(0.1์ดˆ ๋‹จ์œ„)**๋ฅผ ์‚ฌ์šฉํ•ด ์ˆ˜์‹ ๋ณ€ํ™˜ ์˜ค๋ฅ˜๋ฅผ ์›์ฒœ ์ฐจ๋‹จํ•˜์„ธ์š”.
- ์˜ฌ๋ฐ”๋ฅธ ์˜ˆ: Backlog Power1 ON; Delay 100; Power1 OFF (10์ดˆ ๋Œ€๊ธฐ ํ›„ ์•ˆ์ „ ์ข…๋ฃŒ)

โš ๏ธ

์‹œ๋‚˜๋ฆฌ์˜ค ๋ณตํ•ฉ ์กฐ๊ฑด ์„ค๊ณ„ ์‹œ ๋ฐ˜๋“œ์‹œ 'and' ๊ทธ๋ฃนํ™”

์‹œ๊ฐ„ ์กฐ๊ฑด(์˜ˆ: 04:00~11:00)๊ณผ ์„ผ์„œ ์ž„๊ณ„๊ฐ’(์˜ˆ: ์˜จ๋„ 28๋„ ์ด์ƒ)์ด ๊ฒฐํ•ฉ๋œ ์‹œ๋‚˜๋ฆฌ์˜ค ์„ค๊ณ„ ์‹œ, ์ด๋ฅผ ๊ฐœ๋ณ„ step ์กฐ๊ฑด์œผ๋กœ ์ชผ๊ฐœ์„œ ๋งŒ๋“ค๋ฉด ๋ฃฐ ์—”์ง„์ด ์กฐ๊ฑด๋“ค์„ ๊ฐ๊ฐ ํ‰๊ฐ€ํ•˜์—ฌ "์›์น˜ ์•Š๋Š” ๋ฐค ์‹œ๊ฐ„์—๋„ ๋ถ„๋ฌด๊ธฐ๊ฐ€ ๋„๋Š”" ์˜ค์ž‘๋™์ด ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.
๋ฐ˜๋“œ์‹œ ๋‹จ์ผ step ๋‚ด์— **"and": [ {์กฐ๊ฑด1}, {์กฐ๊ฑด2} ] ๊ตฌ์กฐ๋กœ ๋ฌถ์–ด์„œ** ๋‹จ์ผ ๋ธ”๋ก์œผ๋กœ ํ‰๊ฐ€๋˜๋„๋ก ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”’

๋ชจํ„ฐ/์…”ํ„ฐ ๋ฆด๋ ˆ์ด ๋™์ž‘ ์‹œ ์ƒํ˜ธ ์ž ๊ธˆ(Interlock) ์„ค์ • ๊ฐ•์ œํ™”

๋ธ”๋ผ์ธ๋“œ, ์…”ํ„ฐ ๋“ฑ ๋ชจํ„ฐ๋กœ ๊ตฌ๋™๋˜๋Š” ๋ถ€ํ’ˆ์€ ์ •๋ฐฉํ–ฅ(์˜ฌ๋ฆผ)๊ณผ ์—ญ๋ฐฉํ–ฅ(๋‚ด๋ฆผ) ์ œ์–ด ๋ฆด๋ ˆ์ด์— ๋™์‹œ์— ์ „์›์ด ๊ณต๊ธ‰๋  ๊ฒฝ์šฐ **๋ชจํ„ฐ ๋ชจ๋“ˆ์ด ๋ฌผ๋ฆฌ์ ์œผ๋กœ ํƒ€๋ฒ„๋ฆด ์œ„ํ—˜**์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์–ด ๋ฆด๋ ˆ์ด๋ฅผ ๋งคํ•‘ํ•˜๊ธฐ ์ „์— ๋‘ ์ฑ„๋„์„ **์ธํ„ฐ๋ก์œผ๋กœ ๋ฐ˜๋“œ์‹œ ๋ฌถ์–ด๋‘์–ด์•ผ** ํ•ฉ๋‹ˆ๋‹ค.
- ์„ค์ • ์˜ˆ์‹œ: Interlock 1,2 (1๋ฒˆ๊ณผ 2๋ฒˆ ๋ฆด๋ ˆ์ด์˜ ์ƒํ˜ธ ์ž ๊ธˆ ํ™œ์„ฑํ™”)

โš™๏ธ

Tasmota ๋ฌผ๋ฆฌ ๋ฃฐ ์Šฌ๋กฏ ์šฉ๋Ÿ‰ ์ œํ•œ (Rule1 ~ Rule3) ๋ฐ ์‹œ๊ณ„์—ด ๋ถ„์„ ์ฃผ์˜

Tasmota ๋ฌผ๋ฆฌ ๊ธฐ๊ธฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ€์ง€๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ทœ์น™์€ ์ตœ๋Œ€ 3๊ฐœ(๊ฐ ์Šฌ๋กฏ๋‹น 511์ž ์ดํ•˜)์ž…๋‹ˆ๋‹ค. ์‹œ๋‚˜๋ฆฌ์˜ค ์ปดํŒŒ์ผ ์‹œ ์Šฌ๋กฏ ํ•œ๊ณ„๋ฅผ ๋„˜๋Š” ๋ฃฐ๋“ค์€ ์ž๋™์œผ๋กœ **์„œ๋ฒ„ ๋ฃฐ ์—”์ง„(TimescaleDB ๊ธฐ๋ฐ˜) ํด๋ฐฑ**์œผ๋กœ ๋„˜์–ด๊ฐ€๋ฉฐ, ์ด ๊ฒฝ์šฐ ๊ฒŒ์ดํŠธ์›จ์ด ์„œ๋ฒ„์˜ ๋„คํŠธ์›Œํฌ๊ฐ€ ์ฐจ๋‹จ๋˜๋ฉด ์ดˆ๊ณผ ๋ฃฐ์€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Š ์‹œ๊ณ„์—ด ๋ถ„์„ ํƒ€์ž„์กด ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ์ง€์นจ
analytics_query ๋˜๋Š” analytics_anomaly ๋ถ„์„ ๋ฐ์ดํ„ฐ ์กฐํšŒ ์‹œ, ์„œ๋ฒ„์™€ ๊ธฐ๊ธฐ ๊ฐ„์˜ ํƒ€์ž„์กด ๋ถˆ์ผ์น˜(์˜ˆ: Berlin vs Seoul)๋กœ ์ธํ•ด ์‘๋‹ต ์‹œ๊ฐ„์ด "ํ˜„์žฌ๋ณด๋‹ค ๋ฏธ๋ž˜ ์‹œ๊ฐ„"์œผ๋กœ ํฌ๋งทํŒ…๋˜๋”๋ผ๋„, ์ด๋Š” ํƒ€์ž„์กด ์˜คํ”„์…‹์— ์˜ํ•œ ์—ฐ์‚ฐ์ƒ์˜ ์ •์ƒ ์ƒํƒœ์ด๋ฏ€๋กœ ๋ถ„์„์„ ๊ฑฐ๋ถ€ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ
์ตœ์šฐ์„ ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค

TasMind๋Š” ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๊ฑฐ๋‚˜ ์ €์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๐Ÿ”’

๋น„์‹๋ณ„ ์ €์žฅ

์ด๋ฉ”์ผ, ์ด๋ฆ„ ๋“ฑ ๊ฐœ์ธ์ •๋ณด๋Š” ์„œ๋ฒ„์— ์ €์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ณ ์œ  ์‹๋ณ„์ž์˜ ํ•ด์‹œ๊ฐ’๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ›ก๏ธ

๊ด€๋ฆฌ์ž ์Šน์ธ์ œ

๊ฐ€์ž… ํ›„ ๊ด€๋ฆฌ์ž์˜ ์Šน์ธ์ด ์žˆ์–ด์•ผ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์–ด, ๋ฌด๋ถ„๋ณ„ํ•œ ์ ‘๊ทผ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”

2FA ์ธ์ฆ

๊ด€๋ฆฌ์ž ๊ณ„์ •์€ Google Authenticator ๊ธฐ๋ฐ˜ 2๋‹จ๊ณ„ ์ธ์ฆ์„ ์ ์šฉํ•˜์—ฌ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“œ

ํˆฌ๋ช…ํ•œ ์•ฝ๊ด€

์ตœ์†Œํ•œ์˜ ์ด์šฉ์•ฝ๊ด€๊ณผ ๊ณ ์œ  ์‹๋ณ„์ž ํ™œ์šฉ ๋™์˜๋งŒ ์š”๊ตฌํ•˜๋ฉฐ, ์–ธ์ œ๋“  ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ ์‹œ์ž‘ํ•˜์„ธ์š”

Google ๊ณ„์ • ํ•˜๋‚˜๋กœ AI ๊ธฐ๋ฐ˜ ์ž์—ฐ์–ด ์ œ์–ด ๋ฐ ์‹œ๋‚˜๋ฆฌ์˜ค ์ž๋™ํ™”์˜ ์„ธ๊ณ„์— ์ž…์žฅํ•˜์„ธ์š”.

๋ฌด๋ฃŒ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ