Automatisation Home Assistant - Éclairage Piscine Seamaid¶
Objectif¶
Contrôler les spots piscine Seamaid RGB depuis Home Assistant : - Allumage/extinction via app mobile ou dashboard - Changement de couleurs et programmes - Automatisations (coucher de soleil, horaires, détection présence)
Pourquoi un émetteur dédié ?¶
| Équipement existant | Problème |
|---|---|
Sonoff RF Bridge (remote.sonoff_100139511a) |
Trop éloigné (>20m de la piscine) |
| RFLink (Somfy) | Fréquence 433.42 MHz ≠ 433.92 MHz Seamaid |
Solution : Un émetteur ESP32 + CC1101 placé dans le local technique piscine.
Matériel à acheter¶
Option recommandée : ESP32 + CC1101 (~15-20€)¶
| Composant | Prix | Liens |
|---|---|---|
| ESP32 DevKit V1 | ~8€ | AliExpress · Amazon.fr |
| CC1101 433MHz | ~5€ | AliExpress · Amazon.fr |
| Boîtier étanche IP65 | ~3€ | AliExpress · Amazon.fr |
| Alimentation USB 5V | ~5€ | Amazon.fr |
| Fil antenne 17cm | ~0€ | Fil électrique récupéré |
| Total | ~15-20€ |
Avantages ESP32 + CC1101¶
- Meilleure portée (antenne externe possible)
- ESPHome natif = intégration Home Assistant parfaite
- Mises à jour OTA (Over-The-Air)
- Extensible pour d'autres équipements 433MHz
Alternative : Sonoff RF Bridge (~15-20€)¶
| Composant | Prix | Liens |
|---|---|---|
| Sonoff RF Bridge R2 | ~15€ | AliExpress · Amazon.fr |
Prérequis Sonoff RF Bridge¶
- Flasher avec Tasmota (firmware stock limité)
- Antenne PCB intégrée = portée moindre que CC1101 avec antenne externe
- Placement identique requis (local technique)
Alternative clé en main : RFXCOM RFXtrx433XL (~100-120€)¶
| Composant | Prix | Liens |
|---|---|---|
| RFXCOM RFXtrx433XL | ~100-120€ | RFXCOM.com · Amazon.fr |
Avantages RFXCOM¶
- Plug & play USB
- Intégration native Home Assistant
- Supporte de nombreux protocoles 433MHz
- Pas de soudure ni configuration complexe
Câblage CC1101 → ESP32¶
CC1101 Pin → ESP32 Pin
─────────────────────────
VCC → 3.3V
GND → GND
CSN → GPIO5
SCK → GPIO18
MOSI → GPIO23
MISO → GPIO19
GDO0 → GPIO4 (TX)
GDO2 → GPIO2 (RX)
Schéma visuel¶
┌─────────────┐ ┌─────────────┐
│ CC1101 │ │ ESP32 │
│ │ │ │
│ VCC ───────┼─────────┼─── 3.3V │
│ GND ───────┼─────────┼─── GND │
│ CSN ───────┼─────────┼─── GPIO5 │
│ SCK ───────┼─────────┼─── GPIO18 │
│ MOSI ──────┼─────────┼─── GPIO23 │
│ MISO ──────┼─────────┼─── GPIO19 │
│ GDO0 ──────┼─────────┼─── GPIO4 │
│ GDO2 ──────┼─────────┼─── GPIO2 │
│ │ │ │
│ [ANTENNE] │ │ [USB] │
└─────────────┘ └─────────────┘
Antenne λ/4¶
Souder un fil de 17.3 cm sur le pad antenne du CC1101 pour une portée optimale.
Capture des codes RF¶
Avant de pouvoir contrôler les spots, il faut capturer les codes de la télécommande Seamaid.
Option 1 : RTL-SDR¶
# Installer rtl_433
sudo apt install rtl-433
# Écouter sur 433.92 MHz
rtl_433 -f 433920000 -R 0 -S all
# Appuyer sur chaque bouton de la télécommande
# Les codes bruts seront affichés
Option 2 : CC1101 en mode réception¶
Configurer temporairement l'ESP32 en mode sniff via ESPHome avec remote_receiver.
Option 3 : Analyseur logique¶
Sonder les pins du circuit émetteur de la télécommande avec un analyseur logique (Saleae, etc.).
Codes à capturer¶
- ON/OFF (toggle)
- Couleur suivante
- Programme suivant
- Luminosité +/- (si disponible)
Configuration ESPHome¶
Fichier : esphome/piscine-rf.yaml
esphome:
name: piscine-rf
friendly_name: "Piscine RF Controller"
esp32:
board: esp32dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
api:
encryption:
key: !secret api_encryption_key
ota:
- platform: esphome
password: !secret ota_password
# CC1101 RF Transmitter
remote_transmitter:
pin: GPIO4
carrier_duty_percent: 50%
button:
- platform: template
name: "Lumière ON/OFF"
icon: "mdi:lightbulb"
on_press:
- remote_transmitter.transmit_raw:
code: [XXX, XXX, XXX] # À REMPLACER après capture
carrier_frequency: 0
- platform: template
name: "Couleur Suivante"
icon: "mdi:palette"
on_press:
- remote_transmitter.transmit_raw:
code: [XXX, XXX, XXX] # À REMPLACER après capture
carrier_frequency: 0
- platform: template
name: "Programme Suivant"
icon: "mdi:animation"
on_press:
- remote_transmitter.transmit_raw:
code: [XXX, XXX, XXX] # À REMPLACER après capture
carrier_frequency: 0
switch:
- platform: template
name: "Éclairage Piscine"
icon: "mdi:pool"
optimistic: true
turn_on_action:
- button.press: piscine_toggle
turn_off_action:
- button.press: piscine_toggle
Entités Home Assistant¶
Une fois l'ESP32 configuré et connecté, les entités suivantes apparaissent :
| Entité | Type | Description |
|---|---|---|
button.piscine_rf_lumiere_on_off |
button | Toggle ON/OFF |
button.piscine_rf_couleur_suivante |
button | Couleur suivante |
button.piscine_rf_programme_suivant |
button | Programme suivant |
switch.piscine_rf_eclairage_piscine |
switch | État ON/OFF (optimistic) |
Note : L'état est "optimistic" car la communication RF est unidirectionnelle (pas de retour d'état des spots).
Automatisations¶
Fichier : homeassistant/examples/piscine-eclairage.yaml
Prérequis : Input Booleans¶
Ajouter dans configuration.yaml :
input_boolean:
piscine_mode_auto:
name: "Piscine - Mode Auto"
icon: mdi:robot
piscine_mode_soiree:
name: "Piscine - Mode Soirée"
icon: mdi:party-popper
Automatisation : Allumage au coucher du soleil¶
automation:
- id: piscine_lights_sunset
alias: "Piscine - Allumage au coucher du soleil"
trigger:
- platform: sun
event: sunset
offset: "+00:30:00"
condition:
- condition: state
entity_id: input_boolean.piscine_mode_auto
state: "on"
action:
- service: switch.turn_on
target:
entity_id: switch.piscine_rf_eclairage_piscine
Automatisation : Extinction à 23h¶
- id: piscine_lights_off_night
alias: "Piscine - Extinction à 23h"
trigger:
- platform: time
at: "23:00:00"
action:
- service: switch.turn_off
target:
entity_id: switch.piscine_rf_eclairage_piscine
Automatisation : Mode soirée¶
- id: piscine_lights_party_mode
alias: "Piscine - Mode soirée"
trigger:
- platform: state
entity_id: input_boolean.piscine_mode_soiree
to: "on"
action:
- service: switch.turn_on
target:
entity_id: switch.piscine_rf_eclairage_piscine
- delay: 1
- service: button.press
target:
entity_id: button.piscine_rf_programme_suivant
- delay: 1
- service: button.press
target:
entity_id: button.piscine_rf_programme_suivant
Dashboard Lovelace¶
Fichier : homeassistant/lovelace/piscine-eclairage-card.yaml
Carte Mushroom (recommandée)¶
type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: "🏊 Éclairage Piscine"
- type: custom:mushroom-light-card
entity: switch.piscine_rf_eclairage_piscine
name: Spots Piscine
icon: mdi:pool
tap_action:
action: toggle
- type: horizontal-stack
cards:
- type: custom:mushroom-template-card
primary: Couleur
icon: mdi:palette
tap_action:
action: call-service
service: button.press
target:
entity_id: button.piscine_rf_couleur_suivante
- type: custom:mushroom-template-card
primary: Programme
icon: mdi:animation
tap_action:
action: call-service
service: button.press
target:
entity_id: button.piscine_rf_programme_suivant
Installation physique¶
Emplacement recommandé¶
| Option | Distance | Recommandation |
|---|---|---|
| Local technique piscine | ~5m | ✅ Idéal |
| Garage / local proche | ~15m | ✅ Bon |
| Intérieur maison | >20m | ⚠️ Limite |
Protection¶
- Boîtier IP65 minimum (humidité local technique)
- Éviter exposition directe au soleil
- Alimentation via prise protégée ou câble USB étanche
Antenne¶
- Fil de 17.3 cm (λ/4 à 433 MHz)
- Positionner verticalement si possible
- Éviter proximité de structures métalliques
Checklist d'installation¶
- Commander le matériel (ESP32 + CC1101 ou alternative)
- Câbler CC1101 sur ESP32
- Souder antenne 17cm sur CC1101
- Flasher ESPHome sur ESP32
- Capturer les codes RF de la télécommande
- Mettre à jour
piscine-rf.yamlavec les vrais codes - Tester ON/OFF depuis Home Assistant
- Tester changement de couleur
- Installer dans boîtier IP65
- Placer dans local technique piscine
- Configurer les automatisations
- Ajouter la carte Lovelace
Ressources¶
Documentation ESPHome¶
Outils de capture RF¶
- rtl_433 - Décodeur RF universel
- Universal Radio Hacker - Analyse de signaux RF