An open API service indexing awesome lists of open source software.

https://github.com/whoareyou-l/green_smart_install

Home Assistant custom integration for Green Smart greenhouse control
https://github.com/whoareyou-l/green_smart_install

custom-integration greenhouse hacs home-assistant modbus mqtt

Last synced: 11 days ago
JSON representation

Home Assistant custom integration for Green Smart greenhouse control

Awesome Lists containing this project

README

          

# 🌿 Green Smart

슀마트 μ˜¨μ‹€ 관리 μ‹œμŠ€ν…œ β€” Home Assistant 기반 μ˜¬μΈμ› Docker νŒ¨ν‚€μ§€

---

## 기술 μŠ€νƒ

| κ΅¬μ„±μš”μ†Œ | μ—­ν•  | λΉ„κ³  |
|---------|------|------|
| **Home Assistant** | IoT ν—ˆλΈŒ Β· λŒ€μ‹œλ³΄λ“œ Β· μžλ™ν™” μ—”μ§„ | ν•„μˆ˜ |
| **Green Smart** | μ˜¨μ‹€ μ „μš© νŒ¨λ„ Β· 기상청 날씨 연동 | 이 리포 |
| **Mosquitto** | MQTT 브둜컀 β€” μ„Όμ„œ 데이터 μˆ˜μ‹  | ν•„μˆ˜ |
| **ESPHome** | ESP32/ESP8266 μ„Όμ„œ νŽŒμ›¨μ–΄ 관리 | 선택 |
| **Node-RED** | λ³΅μž‘ν•œ μžλ™ν™” 둜직 | 선택 |

---

## μ΅œμ†Œ ν•˜λ“œμ›¨μ–΄ μš”κ΅¬μ‚¬ν•­

| ν•­λͺ© | μ΅œμ†Œ | ꢌμž₯ |
|------|------|------|
| CPU | 2μ½”μ–΄ x86_64 / ARM64 | 4μ½”μ–΄ |
| RAM | 2 GB | 4 GB |
| μ €μž₯μž₯치 | 32 GB | 64 GB SSD |
| OS | Debian 12 / Ubuntu 22.04 LTS | Debian 12 |
| λ„€νŠΈμ›Œν¬ | μœ μ„  LAN | μœ μ„  LAN |

> `network_mode: host` μ‚¬μš©μœΌλ‘œ **Linux μ „μš©**μž…λ‹ˆλ‹€.

---

## λΉ λ₯Έ μ‹œμž‘

### ⚑ μ™„μ „ μžλ™ (μƒˆ Linux λ―Έλ‹ˆ PC, 아무것도 μ—†λŠ” μƒνƒœ)

μ•„λž˜ λͺ…λ Ή ν•œ μ€„λ‘œ **apt μ—…λ°μ΄νŠΈ β†’ git μ„€μΉ˜ β†’ Docker μ„€μΉ˜ β†’ 클둠 β†’ μ‹€ν–‰**κΉŒμ§€ λͺ¨λ‘ μ²˜λ¦¬λ©λ‹ˆλ‹€.

```bash
curl -fsSL https://raw.githubusercontent.com/whoareyou-l/green_smart_install/main/scripts/bootstrap.sh | sudo bash
```

> `curl`도 μ—†λŠ” 경우: `sudo apt-get install -y curl` ν›„ μœ„ λͺ…λ Ή μ‹€ν–‰

μ„€μΉ˜ μ™„λ£Œ ν›„ λΈŒλΌμš°μ €μ—μ„œ 접속:
```
http://<λ―Έλ‹ˆPC-IP>:8123
```

---

### πŸ”§ μˆ˜λ™ μ„€μΉ˜ (git Β· Docker 이미 μžˆλŠ” 경우)

```bash
# 1. 클둠
git clone https://github.com/whoareyou-l/green_smart_install.git
cd green_smart_install

# 2. μ„€μΉ˜ 및 μ‹€ν–‰
bash scripts/setup.sh
```

---

### πŸ“‹ 단계별 μˆ˜λ™ μ‹€ν–‰

```bash
cp .env.example .env
docker compose up -d
docker compose ps
docker compose logs -f homeassistant
```

---

## 디렉토리 ꡬ쑰

```
green_smart_install/
β”œβ”€β”€ docker-compose.yml # μ„œλΉ„μŠ€ μ •μ˜
β”œβ”€β”€ .env.example # ν™˜κ²½λ³€μˆ˜ ν…œν”Œλ¦Ώ
β”œβ”€β”€ scripts/
β”‚ β”œβ”€β”€ setup.sh # 졜초 μ„€μΉ˜ 슀크립트
β”‚ └── update.sh # μ—…λ°μ΄νŠΈ 슀크립트
β”œβ”€β”€ custom_components/
β”‚ └── green_smart/ # HA μ»€μŠ€ν…€ 톡합
β”‚ β”œβ”€β”€ __init__.py
β”‚ β”œβ”€β”€ manifest.json
β”‚ β”œβ”€β”€ weather_api.py # 기상청 API
β”‚ β”œβ”€β”€ weather_views.py # REST μ—”λ“œν¬μΈνŠΈ
β”‚ β”œβ”€β”€ kma_grid.py # 격자 μ’Œν‘œ λ§€ν•‘
β”‚ └── panel/
β”‚ └── green-smart-panel.js # ν”„λ‘ νŠΈμ—”λ“œ
β”œβ”€β”€ ha-config/ # Home Assistant μ„€μ •
β”‚ β”œβ”€β”€ configuration.yaml
β”‚ β”œβ”€β”€ automations.yaml
β”‚ β”œβ”€β”€ scripts.yaml
β”‚ └── scenes.yaml
└── mosquitto/
└── config/
└── mosquitto.conf # MQTT 브둜컀 μ„€μ •
```

---

## Green Smart μ„€μ •

1. `http://:8123` 접속 ν›„ HA 계정 생성
2. **μ„€μ • β†’ ν†΅ν•©κ΅¬μ„±μš”μ†Œ β†’ μΆ”κ°€** β†’ `Green Smart` 검색 ν›„ μ„€μΉ˜
3. Green Smart μ‚¬μ΄λ“œλ°” νŒ¨λ„ β†’ **μ„€μ •** νƒ­
4. 기상청 API ν‚€ μž…λ ₯ (μ•„λž˜ λ°œκΈ‰ 방법 μ°Έκ³ )

### 기상청 API ν‚€ λ°œκΈ‰

1. [곡곡데이터포털](https://www.data.go.kr) νšŒμ›κ°€μž…
2. **기상청_λ‹¨κΈ°μ˜ˆλ³΄ ((ꡬ)λ™λ„€μ˜ˆλ³΄) μ‘°νšŒμ„œλΉ„μŠ€** μ‹ μ²­ β†’ λ‹¨κΈ°μ˜ˆλ³΄ API ν‚€
3. **기상청_μ€‘κΈ°μ˜ˆλ³΄ μ‘°νšŒμ„œλΉ„μŠ€** μ‹ μ²­ β†’ μ€‘κΈ°μ˜ˆλ³΄ API ν‚€
4. 승인 ν›„ (보톡 μ¦‰μ‹œ) Green Smart μ„€μ • ν™”λ©΄μ—μ„œ μž…λ ₯

---

## 선택적 μ„œλΉ„μŠ€

### ESPHome (ESP32 μ„Όμ„œ 관리)

```bash
docker compose --profile sensors up -d
# 접속: http://:6052
```

### Node-RED (μžλ™ν™” 둜직)

```bash
docker compose --profile advanced up -d
# 접속: http://:1880
```

### 전체 μ„œλΉ„μŠ€ λ™μ‹œ μ‹€ν–‰

```bash
docker compose --profile sensors --profile advanced up -d
```

---

## MQTT μ„Όμ„œ 연동

Mosquitto 브둜컀 접속 정보:

| ν•­λͺ© | κ°’ |
|------|-----|
| 호슀트 | `<λ―Έλ‹ˆPC-IP>` |
| 포트 | `1883` |
| WebSocket | `9001` |
| 인증 | μ—†μŒ (내뢀망 κΈ°λ³Έκ°’) |

ESPHome μ„Όμ„œ μ˜ˆμ‹œ (μ˜¨λ„Β·μŠ΅λ„):

```yaml
# esphome/greenhouse-zone1.yaml
mqtt:
broker: 192.168.1.100 # λ―Έλ‹ˆPC IP
topic_prefix: green_smart/zone1

sensor:
- platform: dht
pin: GPIO4
temperature:
name: "Zone 1 μ˜¨λ„"
humidity:
name: "Zone 1 μŠ΅λ„"
update_interval: 60s
```

---

## μ—…λ°μ΄νŠΈ

```bash
bash scripts/update.sh
```

---

## μ„œλΉ„μŠ€ 관리

```bash
# μƒνƒœ 확인
docker compose ps

# 둜그 확인
docker compose logs -f homeassistant
docker compose logs -f mosquitto

# μž¬μ‹œμž‘
docker compose restart homeassistant

# 쀑지
docker compose down

# μ™„μ „ μ΄ˆκΈ°ν™” (데이터 포함 μ‚­μ œ)
docker compose down -v
```

---

## 포트 정보

| μ„œλΉ„μŠ€ | 포트 | μš©λ„ |
|--------|------|------|
| Home Assistant | `8123` | μ›Ή λŒ€μ‹œλ³΄λ“œ |
| MQTT | `1883` | μ„Όμ„œ 데이터 |
| MQTT WebSocket | `9001` | λΈŒλΌμš°μ € MQTT |
| ESPHome | `6052` | νŽŒμ›¨μ–΄ 관리 (선택) |
| Node-RED | `1880` | μžλ™ν™” (선택) |

---

## λΌμ΄μ„ μŠ€

MIT License