# Home Automation & Building Monitoring System — Draft Architecture (v1)
**Author:** [JP]
**Date:** [2025-10-16]
**Purpose:** Project draft of a full-stack monitoring and control system for building (200 m², two floors, gas heating)
**Status:** Initial design for internal review
---
## 1. System Overview
Celem systemu jest pełne monitorowanie i częściowa automatyzacja budynku z kotłownią gazową.
Zakres:
- zdalny podgląd stanu kotła (Viessmann Vitodens 100-W B1HG),
- analiza zużycia mediów (gaz, energia elektryczna, woda),
- monitoring temperatur, ciśnienia CO i warunków środowiskowych,
- alerty bezpieczeństwa (wyciek, zanik zasilania, przekroczenia progów),
- integracja z istniejącą infrastrukturą sieciową i kamerową,
- pełny dostęp zdalny (VPN / Tailscale),
- integracja w Home Assistant (RPi4).
System ma być **modularny** i **niezależny od chmury** (lokalne działanie + opcjonalny remote access).
---
## 2. Physical and Network Infrastructure
### 2.1 Hardware backbone
| Element | Model | Funkcja |
|----------|--------|---------|
| Router | MikroTik (RouterOS, CAPsMAN) | Główny router + VLAN Controller |
| Switch | Aruba L2 24x1G PoE+ | PoE dla urządzeń (kamery, ESP, Zigbee hub) |
| Access points | MikroTik CAP | Wi-Fi + VLAN tagging |
| NVR | Dahua WizSense AI serii 5000 | Rejestrator i analiza obrazu |
| Kamery IP | Dahua AI WizSense 2.0 (PoE) | Monitoring + event AI |
| RPi4 | Raspberry Pi 4 (4 GB RAM, SSD) | Serwer Home Assistant OS |
| Kocioł | Viessmann Vitodens 100-W B1HG | Jednofunkcyjny, 25 kW, z Wi-Fi |
| System ogrzewania | TECH SINUM (EH-01, PS-10m, CP-04m) | Sterowanie strefowe podłogówki (6 rozdzielaczy) |
### 2.2 Network segmentation (VLAN plan)
| VLAN | Nazwa | Zakres IP | Przeznaczenie |
|-------|--------|------------|----------------|
| 10 | MGMT | 192.168.10.0/24 | MikroTik, Aruba, HA, Viessmann, TECH |
| 20 | CAM | 192.168.20.0/24 | Dahua NVR + kamery |
| 30 | IOT | 192.168.30.0/24 | Shelly, Zigbee, ESPHome |
| 40 | OFFICE | 192.168.40.0/24 | Sieć biurowa (najemcy) |
| 50 | GUEST | 192.168.50.0/24 | Public Wi-Fi (izolowane) |
### 2.3 Access / Remote
- VPN (WireGuard / Tailscale) do HA i MGMT VLAN.
- HA nie wystawione publicznie — dostęp wyłącznie przez tunel VPN.
- Dahua event API dostępne przez MGMT VLAN (tylko read).
---
## 3. Functional Layers
### 3.1 Hardware / Sensors
| Kategoria | Urządzenie | Integracja | Funkcja |
|------------|-------------|-------------|----------|
| Energia | **Shelly Pro 3EM** | MQTT / native | Pomiar energii 3-fazowej (kotłownia + budynek) |
| Gaz | Gazomierz G4 + Shelly UNI | ESPHome / MQTT | Licznik gazu (impulsy) |
| Woda | Wodomierze Bmeters GSD8-R + Shelly UNI | MQTT | Pomiar zużycia CWU + ZWU |
| Ciśnienie CO | Sensor 0–6 bar + ESP32 | ESPHome | Pomiar ciśnienia instalacji CO |
| Temp./Wilg. (biura) | Aqara Zigbee T1 | Zigbee2MQTT | Komfort i analiza strat ciepła |
| Zalanie / Dym / CO | Shelly Flood / Aqara Smoke | Zigbee / Wi-Fi | Alerty bezpieczeństwa |
| UPS | APC Back-UPS 650 | USB / NUT integration | Zanik zasilania |
| Kamera | Dahua IP (ONVIF) | Native / MQTT events | Obraz i AI-trigger (np. wyciek, ruch) |
---
### 3.2 Software Stack
| Warstwa | Komponent | Funkcja |
|----------|------------|----------|
| OS | Home Assistant OS (na RPi4 SSD) | Core environment |
| Integracje | Viessmann ViCare | Kocioł: temp. zasilania, powrotu, CWU, status palnika |
| Integracje | Shelly, ESPHome, Zigbee2MQTT | Sensory i automatyzacja lokalna |
| Integracje | Dahua ONVIF / AI events | Wizualizacja i detekcje |
| Monitoring | Home Assistant Energy Dashboard | Analiza energii / gazu / wody |
| Alerty | HA Notifications / Telegram | Alarmy techniczne i systemowe |
| Backup | Google Drive Backup Add-on | Snapshoty automatyczne (codziennie) |
---
## 4. Automation & Intelligence Layer
### 4.1 Primary automations
- Auto shutdown heating when window opened.
- Alert → ciśnienie CO < 1.0 bar (Telegram + e-mail).
- Alert → gaz / energia > 120% normy dziennej.
- Motion + leak detection → automatyczny stop pompy.
- Zanik zasilania → wysyłka powiadomienia UPS + status kotła.
### 4.2 Analytics
- Dzienne zużycie: gaz / prąd / woda.
- Raport tygodniowy kosztów eksploatacji (PLN).
- Porównanie temperatur pomieszczeń vs. moc kotła.
- Historia pracy palnika / wykres modulacji.
- Energy balance (input vs. losses).
---
## 5. Security and Access
- MikroTik Firewall:
- blokada ruchu z VLAN GUEST / OFFICE → MGMT / IOT,
- tylko VPN dostęp do HA dashboardu,
- monitoring Syslog/Netwatch dla HA.
- HA user roles: readonly (najemcy), admin (owner).
- HTTPS przez reverse proxy (Caddy / NGINX) + auto Let's Encrypt.
- Offsite backup + lokalny snapshot (min. 7 dni retencji).
---
## 6. Roadmap
### Phase 1 (MVP)
- HA OS installation on RPi4 (SSD boot).
- ViCare integration.
- Shelly 3EM (main energy meter).
- Gas + water impulses integration.
- Basic dashboards (Kotłownia / Energia / Alerty).
### Phase 2
- Pressure sensor (CO), Zigbee sensors (biura).
- Alerts (ciśnienie, wyciek, UPS).
- Dahua ONVIF integration + AI event triggers.
- Energy Dashboard setup.
### Phase 3
- TECH SINUM deep integration (Modbus/REST).
- Multi-zone control via API.
- Predictive heating logic (HA automations).
- Grafana dashboards + InfluxDB data retention.
---
## 7. Open Questions / To Discuss
1. TECH SINUM API — dokumentacja lub sniffing Modbus?
2. Czy Viessmann API ViCare (free tier) zwraca realne zużycie gazu (czy tylko szacowane)?
3. Integracja Dahua AI → webhook vs. MQTT — co stabilniejsze?
4. HA → MikroTik log forwarding — syslog czy MQTT bridge?
5. Czy przenieść HA z RPi4 na NUC, czy wystarczy Pi z SSD?
---
## 8. Appendices
**A. Proposed sensor IDs & naming convention**
- `sensor.co_pressure_bar`
- `sensor.gas_consumption_m3`
- `sensor.energy_total_kwh`
- `sensor.water_cold_m3`
- `sensor.water_hot_m3`
- `binary_sensor.water_leak_kotlownia`
- `binary_sensor.power_loss`
- `climate.office_zone1`
**B. References**
- Viessmann ViCare API docs
- TECH SINUM system (EH-01 / PS-10m) manuals
- Shelly Pro 3EM MQTT documentation
- Zigbee2MQTT device list
- Dahua ONVIF event reference
---
*This is a working draft prepared for peer review.
Goal: validate architecture, integrations, and hardware logic before full deployment.*