Aller au contenu

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

  1. Commander le matériel (ESP32 + CC1101 ou alternative)
  2. Câbler CC1101 sur ESP32
  3. Souder antenne 17cm sur CC1101
  4. Flasher ESPHome sur ESP32
  5. Capturer les codes RF de la télécommande
  6. Mettre à jour piscine-rf.yaml avec les vrais codes
  7. Tester ON/OFF depuis Home Assistant
  8. Tester changement de couleur
  9. Installer dans boîtier IP65
  10. Placer dans local technique piscine
  11. Configurer les automatisations
  12. Ajouter la carte Lovelace

Ressources

Documentation ESPHome

Outils de capture RF

Seamaid