first
This commit is contained in:
@@ -10,10 +10,11 @@ Ce projet est une **infrastructure domotique opérationnelle** tournant 24/7 sur
|
||||
|
||||
**Usages principaux :**
|
||||
|
||||
- Surveillance et sécurisation du logement (alarme, vidéo)
|
||||
- Automatisation du quotidien (chauffage, présence, éclairage)
|
||||
- Surveillance et sécurisation du logement (alarme, vidéo, détection fuite)
|
||||
- Automatisation du quotidien (chauffage, présence, éclairage, ventilation)
|
||||
- Optimisation énergétique (suivi Enedis, pilotage des radiateurs)
|
||||
- Expérimentation IoT maîtrisée (capteurs custom ESPHome/ESP32)
|
||||
- Expérimentation IoT maîtrisée (capteurs custom ESPHome/ESP32, IR blaster)
|
||||
- Notifications en temps réel via **bot Telegram**
|
||||
|
||||
---
|
||||
|
||||
@@ -28,27 +29,44 @@ Ce projet est une **infrastructure domotique opérationnelle** tournant 24/7 sur
|
||||
│
|
||||
┌──────────────────────┼───────────────────────┐
|
||||
│ │ │
|
||||
┌────────▼────────┐ ┌────────▼────────┐ ┌─────────▼────────┐
|
||||
│ Sécurité │ │ IoT & Protocoles│ │ Accès & Admin │
|
||||
│ │ │ │ │ │
|
||||
│ • Alarmo │ │ • Zigbee2MQTT │ │ • Cloudflared │
|
||||
│ • Frigate (NVR) │ │ • ESPHome / ESP32│ │ (CF Tunnel) │
|
||||
│ • Détection IA │ │ • Heatzy │ │ • WireGuard VPN │
|
||||
│ • Notifications │ │ • Enedis │ │ • SSH / Samba │
|
||||
└─────────────────┘ └──────────────────┘ └──────────────────┘
|
||||
┌────────▼────────┐ ┌────────▼─────────┐ ┌────────▼─────────┐
|
||||
│ Sécurité │ │ IoT & Protocoles │ │ Accès & Admin │
|
||||
│ │ │ │ │ │
|
||||
│ • Alarmo │ │ • Zigbee2MQTT │ │ • Cloudflared │
|
||||
│ • Frigate (NVR) │ │ • ESPHome / ESP32 │ │ (CF Tunnel) │
|
||||
│ • Détection IA │ │ • Heatzy │ │ • WireGuard VPN │
|
||||
│ • Bot Telegram │ │ • Enedis │ │ • SSH / Samba │
|
||||
│ • Clavier Frient│ │ • IR Blaster │ │ │
|
||||
└─────────────────┘ └───────────────────┘ └──────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🖥️ Infrastructure matérielle
|
||||
|
||||
| Composant | Détail |
|
||||
| -------------- | ----------------------------------- |
|
||||
| Machine | Mini-PC dédié |
|
||||
| Stockage | SSD (fiabilité & performances) |
|
||||
| Hyperviseur | Home Assistant OS (natif) |
|
||||
| Coordinateur | Sonoff Zigbee USB Dongle |
|
||||
| Fonctionnement | 24/7, environnement isolé |
|
||||
| Composant | Détail |
|
||||
| -------------- | ----------------------------------------------- |
|
||||
| Machine | Mini-PC dédié |
|
||||
| Stockage | SSD (fiabilité & performances) |
|
||||
| Hyperviseur | Home Assistant OS (natif) |
|
||||
| Coordinateur | Sonoff Zigbee 3.0 USB Dongle Plus V2 (ember) |
|
||||
| Fonctionnement | 24/7, environnement isolé |
|
||||
|
||||
---
|
||||
|
||||
## 📡 Équipements Zigbee supervisés
|
||||
|
||||
| Nom | Type | Usage |
|
||||
| --------------- | ---------------------- | ----------------------------------- |
|
||||
| ir blaster 1 | Blaster IR | Pilotage ventilateur & diffuseur |
|
||||
| ir blaster 2 | Blaster IR | Réserve / extension |
|
||||
| sirene zigbee 1 | Sirène | Alarme intrusion (mode burglar) |
|
||||
| capteur fuite 1 | Capteur d'eau | Détection fuite salle de bain |
|
||||
| Lampe rouge | Ampoule connectée | Signalisation |
|
||||
| Bouton entree | Bouton Zigbee | Toggle lampadaire entrée |
|
||||
| Clavier frient | Clavier à code | Armement/désarmement alarme physique|
|
||||
| Lampesdb1/2 | Ampoule connectée | Éclairage salle de bain |
|
||||
| bouton sdb | Bouton Zigbee | Toggle lumières salle de bain |
|
||||
|
||||
---
|
||||
|
||||
@@ -66,11 +84,11 @@ Accès HTTPS distant sans exposition de port sur le routeur.
|
||||
|
||||
#### WireGuard VPN
|
||||
|
||||
Accès administration sécurisé réservé au tunnel privé.
|
||||
Accès administration via le serveur WireGuard hébergé sur le Proxmox (LXC dédié — cf. `pve-project`).
|
||||
|
||||
- SSH restreint au VPN
|
||||
- Partage Samba limité au LAN
|
||||
- Aucun port d'administration exposé sur le WAN
|
||||
- SSH et interfaces admin (Zigbee2MQTT, Frigate) accessibles via VPN uniquement
|
||||
- Le seul port WAN ouvert (UDP 51820) est sur le Proxmox, pas sur HAOS
|
||||
- HAOS ne fait tourner aucun serveur VPN
|
||||
|
||||
---
|
||||
|
||||
@@ -78,32 +96,46 @@ Accès administration sécurisé réservé au tunnel privé.
|
||||
|
||||
#### Alarmo – Système d'alarme personnalisé
|
||||
|
||||
Extension d'alarme intégrée nativement à Home Assistant.
|
||||
Extension d'alarme intégrée nativement à Home Assistant, pilotée via Telegram et clavier physique.
|
||||
|
||||
- Armement / désarmement (présence, mode nuit, absence)
|
||||
- Détection d'intrusion avec notifications instantanées
|
||||
- Scénarios conditionnels selon les occupants
|
||||
- Armement / désarmement (présence, mode nuit, absence, vacances)
|
||||
- Clavier à code physique **Frient** pour armement/désarmement local
|
||||
- Détection d'intrusion avec notifications instantanées via Telegram
|
||||
- Snapshots et vidéos automatiques (caméras) envoyés sur déclenchement
|
||||
- Extinction automatique des lumières à l'armement
|
||||
- Activation de la lumière d'entrée au retour (désarmement)
|
||||
- Activation Frigate détection uniquement quand alarme armée
|
||||
|
||||
#### Frigate – NVR intelligent local
|
||||
|
||||
Vidéosurveillance avec détection d'objets par intelligence artificielle.
|
||||
|
||||
- Traitement local (aucun cloud vidéo)
|
||||
- Caméras : principales et secondaires (avec mode privacy)
|
||||
- Réduction des faux positifs par reconnaissance d'objets
|
||||
- Enregistrements internes et déclenchement automatique d'alertes
|
||||
- Détection activée/désactivée automatiquement selon l'état de l'alarme
|
||||
- Preuves vidéo locales en cas d'incident
|
||||
|
||||
#### Bot Telegram – Notifications & télécommande
|
||||
|
||||
Intégration Telegram bidirectionnelle pour la supervision et le contrôle à distance.
|
||||
|
||||
- Alertes instantanées : déclenchement alarme, fuite d'eau, armement/désarmement
|
||||
- Envoi de photos et vidéos des caméras sur événement
|
||||
- Commande `/garde_alarme` : envoi en boucle de snapshots (caméras)
|
||||
- Commande `/desactive_alarme` : désarmement à distance
|
||||
|
||||
---
|
||||
|
||||
### 🌡️ Confort & Énergie
|
||||
|
||||
#### Heatzy – Gestion du chauffage
|
||||
|
||||
Pilotage dynamique de radiateurs électriques connectés selon présence et horaires.
|
||||
Pilotage dynamique de radiateurs électriques connectés selon des plages horaires fixes.
|
||||
|
||||
- Programmation horaire et adaptation à la présence
|
||||
- Optimisation de la température pièce par pièce
|
||||
- Réduction directe de la consommation énergétique
|
||||
- Chauffe matin : 06h00 → 07h40 (mode heat)
|
||||
- Chauffe soir : 18h00 → 21h00 (mode heat)
|
||||
- Retour en mode `auto` hors plages
|
||||
|
||||
#### Enedis – Suivi énergétique intelligent
|
||||
|
||||
@@ -115,6 +147,37 @@ Intégration officielle du compteur Linky via l'API Enedis.
|
||||
|
||||
---
|
||||
|
||||
### 💡 Éclairage & Automatisations ambiantes
|
||||
|
||||
- **Lumière automatique** : allumage automatique sur détection de mouvement (PIR), extinction après 5 min
|
||||
- **Lampadaire entrée** : toggle via bouton Zigbee + allumage automatique au retour
|
||||
- **Lumières SDB** : toggle via bouton Zigbee dédié
|
||||
- **Suspension** : allumage à 07h00, extinction à 22h00
|
||||
- **Plantes (photosynthèse)** : lumières à 100% de luminosité quand alarme armée + 5 min (éclairage absent)
|
||||
- **Lampes off à l'armement** : extinction de toutes les lumières au départ
|
||||
|
||||
#### Scènes lumières avancées
|
||||
|
||||
- **Sunset lamp** : scène lumière couchant de soleil via IR blaster (on/off)
|
||||
- **LED bar** : pilotage barre LED décorative via IR (on/off)
|
||||
|
||||
---
|
||||
|
||||
### 🌬️ Ventilation & Domotique IR
|
||||
|
||||
Pilotage d'un ventilateur via **IR Blaster Zigbee** avec codes IR personnalisés.
|
||||
|
||||
- Toggle on/off
|
||||
- Contrôle de la puissance (mode)
|
||||
- Rotation automatique
|
||||
- Intégration dans le script `toggle_ventilo`
|
||||
|
||||
#### Diffuseur d'huiles essentielles
|
||||
|
||||
Pilotage via IR Blaster avec séquences de codes pour allumage/arrêt.
|
||||
|
||||
---
|
||||
|
||||
### 🌿 IoT personnalisé – ESPHome
|
||||
|
||||
#### Capteur d'humidité (ESP32)
|
||||
@@ -130,10 +193,11 @@ Capteur de sol développé sur mesure via ESPHome sur microcontrôleur ESP32.
|
||||
|
||||
### 📡 Réseau Zigbee local
|
||||
|
||||
Coordinateur : **Sonoff Zigbee USB Dongle** — géré via **Zigbee2MQTT**.
|
||||
Coordinateur : **Sonoff Zigbee 3.0 USB Dongle Plus V2** — géré via **Zigbee2MQTT** (adaptateur `ember`, canal 11).
|
||||
|
||||
- Aucun cloud tiers — données traitées localement
|
||||
- Maîtrise complète des 15 équipements Zigbee supervisés
|
||||
- Broker MQTT : **Mosquitto** (add-on natif HAOS)
|
||||
- Proxy HTTP configuré pour Cloudflare (`trusted_proxies: 172.30.33.0/24`)
|
||||
- Protocole ouvert, compatible multi-fabricants
|
||||
|
||||
---
|
||||
@@ -150,6 +214,7 @@ Coordinateur : **Sonoff Zigbee USB Dongle** — géré via **Zigbee2MQTT**.
|
||||
| Traitement local des données | Vidéo (Frigate), Zigbee et capteurs ESPHome traités en local |
|
||||
| Principe du moindre privilège | Services limités au strict nécessaire |
|
||||
| Surveillance continue | Logs réguliers, mises à jour et sauvegardes automatisées |
|
||||
| Privacy caméra | Switch dédié pour activer/désactiver le mode privacy de la caméra |
|
||||
|
||||
### Architecture Zero-Trust domestique
|
||||
|
||||
@@ -167,13 +232,66 @@ Coordinateur : **Sonoff Zigbee USB Dongle** — géré via **Zigbee2MQTT**.
|
||||
|
||||
## ⚡ Automatisations
|
||||
|
||||
Plus de **50 automatisations conditionnelles** actives, couvrant :
|
||||
Les automatisations sont organisées par domaine fonctionnel :
|
||||
|
||||
- Gestion de la présence (arrivée / départ)
|
||||
- Scénarios d'alarme et notifications contextuelles
|
||||
- Pilotage du chauffage selon horaires et occupants
|
||||
- Alertes IoT (plantes, énergie, caméras)
|
||||
- Scènes d'éclairage et routines quotidiennes
|
||||
### 🚨 Alarme & Sécurité
|
||||
|
||||
| Alias | Déclencheur | Action principale |
|
||||
| ---------------------------- | ------------------------------------ | ---------------------------------------------- |
|
||||
| Alarme vacances | Alarme déclenchée (mode vacances) | Notification mobile (famille) |
|
||||
| Question alarme | Alarme déclenchée | Message Telegram avec bouton désactivation |
|
||||
| Snapshots caméra principale | Alarme déclenchée | 3 photos caméra principale + vidéo 10s → Telegram |
|
||||
| Snapshots caméra secondaire | Alarme déclenchée | 3 photos caméra secondaire + vidéo 10s → Telegram |
|
||||
| Surveillance à distance | Commande `/garde_alarme` | Photos toutes caméras en boucle → Telegram |
|
||||
| Message telegram amorçage | Alarme armée (away) | Message de confirmation Telegram |
|
||||
| Notif alarme désactivée | Alarme désarmée | Notification Telegram |
|
||||
| desactive alarme telegram | Commande `/desactive_alarme` | Désarmement Alarmo |
|
||||
| button arm | Commande Telegram | Armement mode vacances |
|
||||
| Alarme zigbee start/stop | `input_boolean.sirene_meian` | Publication MQTT sirène (burglar/stop) |
|
||||
| Contrôle Sirène Meian | État `input_boolean.sirene_meian` | Toggle sirène via MQTT (template) |
|
||||
| Clavier physique avec Alarmo | Clavier physique Frient | Armement/désarmement avec code PIN |
|
||||
| toggle detect frigate | État alarme | Active/désactive détection Frigate |
|
||||
| lampes off amorcage | Alarme → arming | Extinction de toutes les lumières |
|
||||
|
||||
### 💡 Éclairage
|
||||
|
||||
| Alias | Déclencheur | Action principale |
|
||||
| --------------------- | ------------------------------- | --------------------------------------- |
|
||||
| Lumière automatique auto | Détection mouvement PIR | Allumage switch + extinction après 5min |
|
||||
| Bouton lampadaire | Action bouton entrée (MQTT) | Toggle lampadaire entrée |
|
||||
| Lampe entrée auto | Alarme désarmée (retour) | Allumage lampadaire entrée |
|
||||
| Bouton lampes sdb | Action bouton SDB (MQTT) | Toggle lumières salle de bain (x2) |
|
||||
| Suspension on/off | Heure (07:00 / 22:00) | On/Off lumière suspension |
|
||||
| Plantes photosynthèse | Alarme armed_away + 5min | Lumières plantes à 100% |
|
||||
| sunset lamp | `input_boolean.sunset_switch` | Scène lumière couchant de soleil (IR) |
|
||||
| led bar | `input_boolean.led_bar_switch` | Toggle barre LED (IR) |
|
||||
|
||||
### 🌡️ Chauffage
|
||||
|
||||
| Alias | Déclencheur | Action |
|
||||
| ------------------ | -------------- | ----------------------------- |
|
||||
| start chauffe matin | 06:00 | Radiateurs → mode heat |
|
||||
| stop chauffe matin | 07:40 | Radiateurs → mode auto |
|
||||
| start chauffe soir | 18:00 | Radiateurs → mode heat |
|
||||
| stop chauffe soir | 21:00 | Radiateurs → mode auto |
|
||||
|
||||
### 🌬️ Ventilation & IR
|
||||
|
||||
| Alias | Déclencheur | Action |
|
||||
| -------------- | --------------------------------- | -------------------------- |
|
||||
| ventilo | `input_boolean.ventilo_switch` | Script toggle ventilateur |
|
||||
| ventilo toggle | Manuel | Code IR toggle |
|
||||
| ventilo power | Manuel | Code IR power |
|
||||
| ventilo rotate | Manuel | Code IR rotation |
|
||||
| ventilo mode | Manuel | Code IR changement mode |
|
||||
|
||||
### 🛁 Capteurs & Sécurité passive
|
||||
|
||||
| Alias | Déclencheur | Action |
|
||||
| --------------------------- | ---------------------------- | ------------------------------- |
|
||||
| fuite sdb | Capteur humidité (20s moist) | Alerte Telegram fuite d'eau |
|
||||
| Privacy caméra | `input_boolean.camera_privacy_switch` | Toggle mode privacy caméra |
|
||||
| diffuseur huiles essentielles | `input_boolean.diffuseur_switch` | Séquence IR on/off diffuseur |
|
||||
|
||||
---
|
||||
|
||||
@@ -182,21 +300,25 @@ Plus de **50 automatisations conditionnelles** actives, couvrant :
|
||||
```text
|
||||
haos-project/
|
||||
│
|
||||
├── readme.md # Ce fichier
|
||||
├── readme.md # Ce fichier
|
||||
│
|
||||
├── docs/
|
||||
│ ├── architecture.md # Schémas et choix d'architecture
|
||||
│ ├── network-diagram.md # Plan réseau (segments IoT, VPN, tunnel)
|
||||
│ ├── automations-overview.md # Vue d'ensemble des automatisations
|
||||
│ └── security-policy.md # Politique de sécurité appliquée
|
||||
│ ├── architecture.md # Schémas et choix d'architecture
|
||||
│ ├── network-diagram.md # Plan réseau (segments IoT, VPN, tunnel)
|
||||
│ ├── automations-overview.md # Vue d'ensemble des automatisations
|
||||
│ └── security-policy.md # Politique de sécurité appliquée
|
||||
│
|
||||
└── configs/
|
||||
├── homeassistant/
|
||||
│ └── configuration.yaml.example # Config principale HAOS (anonymisée)
|
||||
├── zigbee2mqtt/
|
||||
│ └── configuration.yaml.example # Template config Zigbee2MQTT
|
||||
│ └── configuration.yaml.example # Config Zigbee2MQTT (anonymisée)
|
||||
├── alarmo/
|
||||
│ └── automations-alarm.yaml # Automatisations alarme (anonymisées)
|
||||
├── esphome/
|
||||
│ └── humidity-sensor.yaml # Config capteur ESP32 (anonymisée)
|
||||
│ └── humidity-sensor.yaml # Config capteur ESP32 humidité
|
||||
└── frigate/
|
||||
└── config.yaml.example # Template config Frigate NVR
|
||||
└── config.yaml.example # Template config Frigate NVR
|
||||
```
|
||||
|
||||
---
|
||||
@@ -208,7 +330,8 @@ haos-project/
|
||||
- Hébergement auto-géré sur matériel dédié (Home Assistant OS natif)
|
||||
- Mise en place VPN WireGuard et tunnel sortant Cloudflared
|
||||
- Administration distante sécurisée sans exposition WAN
|
||||
- Gestion multi-protocoles (Zigbee, Wi-Fi, HTTP, MQTT)
|
||||
- Gestion multi-protocoles (Zigbee, Wi-Fi, HTTP, MQTT, IR)
|
||||
- Configuration Mosquitto MQTT broker et Zigbee2MQTT
|
||||
|
||||
**Cybersécurité**
|
||||
|
||||
@@ -216,19 +339,21 @@ haos-project/
|
||||
- Suppression des dépendances cloud sur les données sensibles (vidéo, capteurs)
|
||||
- Segmentation logique des équipements IoT
|
||||
- Réduction de la surface d'attaque (aucun port WAN, moindre privilège)
|
||||
- Privacy caméra avec switch dédié
|
||||
|
||||
**Développement & Automatisation**
|
||||
|
||||
- Développement de capteurs custom avec ESPHome / ESP32
|
||||
- Conception de plus de 50 automatisations conditionnelles
|
||||
- Intégrations API officielles (Enedis, Heatzy)
|
||||
- Pilotage énergétique et optimisation des usages
|
||||
- Conception d'automatisations complexes (conditionnelles, répétitions, délais, templates Jinja2)
|
||||
- Intégrations API officielles (Enedis, Heatzy, Telegram Bot)
|
||||
- Pilotage IR avancé (ventilateur, diffuseur, éclairage ambiant)
|
||||
- Blueprint Zigbee (Clavier physique avec Alarmo)
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Sécurité du dépôt
|
||||
|
||||
> Ce dépôt est **public**. Aucune clé privée, token, mot de passe, adresse IP réelle ou information sensible n'est commitée. Les fichiers de configuration sont systématiquement **anonymisés ou fournis sous forme de templates**.
|
||||
> Ce dépôt est **public**. Aucune clé privée, token, mot de passe, adresse IP réelle, clé réseau Zigbee ou identifiant sensible n'est commitée. Les fichiers de configuration sont systématiquement **anonymisés ou fournis sous forme de templates**.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user