Publié le Laisser un commentaire

Comment domotiser sa machine à laver avec une prise connectée : Le guide complet

Votre machine à laver n’est pas connectée ? Pas de panique ! Avec une simple prise connectée à 15€ et Home Assistant, vous pouvez transformer n’importe quelle machine en appareil intelligent. Ce guide complet vous explique comment créer un système de monitoring avancé pour suivre vos cycles de lavage, recevoir des notifications et optimiser votre consommation.

Pourquoi domotiser sa machine à laver ?

Les avantages sont nombreux :

  • Notifications intelligentes : Plus jamais de linge oublié dans la machine
  • Suivi de consommation : Connaître précisément le coût de chaque cycle
  • Historique des cycles : Analyser les performances et l’usage

Matériel nécessaire

La prise connectée : le cœur du système

Pour ce projet, vous aurez besoin d’une prise connectée avec mesure de consommation. Voici les critères essentiels :

  • Protocole : Zigbee ou Wi-Fi (Zigbee recommandé pour la fiabilité)
  • Mesure de puissance : Précision au Watt près indispensable
  • Charge maximale : Minimum 16A (3600W) pour une machine à laver
  • Compatibilité : Home Assistant native ou via intégrations

Prises recommandées :

  • Nous Zigbee (~15€) : Très précise, excellente fiabilité

Voir le produit sur Amazon

Voir le produit sur Domadoo

  • Aqara Smart Plug (~20€) : Bonne précision, intégration parfaite

Voir le produit sur Amazon

Voir le produit sur Domadoo

Prérequis logiciels

  • Home Assistant installé et configuré
  • Zigbee2MQTT ou ZHA pour les prises Zigbee
  • Application Home Assistant Companion sur votre smartphone
  • Accès au File Editor (module complémentaire)

Installation et configuration de la prise

Étape 1 : Installation physique

  1. Débranchez votre machine à laver
  2. Branchez la prise connectée sur la prise murale
  3. Connectez la machine à la prise intelligente
  4. Vérifiez que la puissance maximale est respectée

⚠️ Sécurité : Assurez-vous que la prise supporte la puissance de votre machine (généralement 2000-3000W).

Étape 2 : Intégration dans Home Assistant

Pour Zigbee2MQTT :

# La prise apparaît automatiquement avec ses entités :
# - sensor.machine_a_laver_power (puissance instantanée)
# - sensor.machine_a_laver_energy (énergie cumulée)  
# - switch.machine_a_laver (contrôle marche/arrêt)

Pour les prises Wi-Fi :

  • Suivez la procédure d’appairage du fabricant
  • Ajoutez l’intégration correspondante dans Home Assistant
  • Vérifiez que les capteurs de puissance sont disponibles

Phase d’apprentissage : comprendre votre machine

Avant de créer les automatisations, il est crucial d’analyser le comportement de votre machine.

Lancement du cycle d’apprentissage

  1. Lancez un cycle complet avec la prise connectée
  2. Surveillez la consommation dans Home Assistant
  3. Notez les seuils clés :
    • Consommation de veille (généralement 1-3W)
    • Pics de consommation (chauffage, essorage)
    • Durée totale du cycle

Exemple d’analyse typique

# Profil de consommation observé :
# Veille : 2W
# Démarrage : 5-10W (remplissage)
# Chauffage : 2000-2500W (15-20min)
# Lavage : 50-200W (cycles variables)
# Essorage : 300-800W (pics courts)
# Fin de cycle : retour à 2W

Points critiques à identifier :

  • Seuil de démarrage : Puissance au-dessus de laquelle la machine démarre
  • Seuil d’arrêt : Puissance sous laquelle on considère la machine terminée
  • Durées de confirmation : Temps pour éviter les faux positifs

Configuration des entités Helper

Dans Paramètres → Appareils et services → Helpers, créez :

Input Select : État de la machine

Nom : "État Lave Linge"  
Options : Arrêté, En marche, Terminé
Icône : mdi:washing-machine

Input DateTime : Horodatage des cycles

# Début de cycle
Nom : "Début Machine"
Format : Date et heure
Icône : mdi:washing-machine-alert

# Fin de cycle  
Nom : "Fin Machine"
Format : Date et heure
Icône : mdi:washing-machine-off

Input Number : Stockage des valeurs

# Consommation de début
Nom : "Puissance Machine Début" 
Min : 0, Max : 999999, Pas : 0.1
Unité : kWh

# Temps dernière machine
Nom : "Temps Dernière Machine"
Format : Date et heure

Création des capteurs template

Ajoutez dans configuration.yaml ou templates.yaml :

Capteur binaire : État de fonctionnement

template:
  - binary_sensor:
      - name: "Lave Linge En Marche"
        device_class: running
        delay_on:
          minutes: 1
        delay_off:
          minutes: 5
        state: >
          {{ states('sensor.machine_a_laver_power')|float(0) > 5 }}
        icon: mdi:washing-machine

Capteur : Durée du dernier cycle

  - sensor:
      - name: "Durée Dernière Machine"
        state: >
          {% set debut = states('input_datetime.debut_machine') %}
          {% set fin = states('input_datetime.fin_machine') %}
          {% if debut != 'unknown' and fin != 'unknown' %}
            {% set debut_ts = as_timestamp(debut) %}
            {% set fin_ts = as_timestamp(fin) %}
            {% if fin_ts > debut_ts %}
              {% set duree = (fin_ts - debut_ts) / 60 %}
              {{ duree | round(0) }} min
            {% else %}
              En cours
            {% endif %}
          {% else %}
            Inconnu
          {% endif %}
        icon: mdi:timer

Capteur : Consommation du cycle

      - name: "Consommation Dernier Cycle"
        state: >
          {% set debut = states('input_number.puissance_machine_debut') | float(0) %}
          {% set fin = states('sensor.machine_a_laver_energy') | float(0) %}
          {% set cycle = fin - debut %}
          {{ (cycle * 1000) | round(0) }} Wh
        unit_of_measurement: "Wh"
        icon: mdi:flash

Les automatisations intelligentes

Automatisation 1 : Détection du démarrage

alias: "Machine à Laver - Démarrage"
description: "Détecte le début d'un cycle de lavage"
mode: single

trigger:
  - platform: numeric_state
    entity_id: sensor.machine_a_laver_power
    above: 10  # Ajustez selon votre machine
    for:
      minutes: 2

condition:
  - condition: state
    entity_id: input_select.etat_lave_linge
    state: "Arrêté"

action:
  # Mise à jour de l'état
  - service: input_select.select_option
    target:
      entity_id: input_select.etat_lave_linge
    data:
      option: "En marche"
      
  # Enregistrement heure de début
  - service: input_datetime.set_datetime
    target:
      entity_id: input_datetime.debut_machine
    data:
      datetime: "{{ now() }}"
      
  # Sauvegarde consommation de début
  - service: input_number.set_value
    target:
      entity_id: input_number.puissance_machine_debut
    data:
      value: "{{ states('sensor.machine_a_laver_energy') | float }}"
      
  # Notification optionnelle
  - service: notify.mobile_app_votre_telephone
    data:
      title: "🧺 Lave-linge"
      message: "Cycle démarré à {{ now().strftime('%H:%M') }}"
      data:
        tag: "lave_linge"

Automatisation 2 : Détection de fin de cycle

alias: "Machine à Laver - Fin de cycle"  
description: "Détecte la fin du cycle et envoie les notifications"
mode: restart

trigger:
  - platform: numeric_state
    entity_id: sensor.machine_a_laver_power
    below: 3  # Ajustez selon votre machine
    for:
      minutes: 10  # Temps de confirmation

condition:
  - condition: state
    entity_id: input_select.etat_lave_linge
    state: "En marche"

action:
  # Mise à jour de l'état
  - service: input_select.select_option
    target:
      entity_id: input_select.etat_lave_linge
    data:
      option: "Terminé"
      
  # Enregistrement heure de fin
  - service: input_datetime.set_datetime
    target:
      entity_id: input_datetime.fin_machine
    data:
      datetime: "{{ now() }}"
      
  # Calcul de la durée
  - variables:
      debut_cycle: "{{ states('input_datetime.debut_machine') }}"
      duree_minutes: >
        {{ ((now() - strptime(debut_cycle, '%Y-%m-%d %H:%M:%S')).total_seconds() / 60) | round }}
      consommation: >
        {{ (states('sensor.machine_a_laver_energy') | float - 
            states('input_number.puissance_machine_debut') | float) * 1000 }}
      
  # Notification principale
  - service: notify.mobile_app_votre_telephone
    data:
      title: "✅ Lave-linge terminé !"
      message: >
        Cycle terminé en {{ duree_minutes }} minutes
        Consommation : {{ consommation | round }} Wh
      data:
        tag: "lave_linge"
        actions:
          - action: "CONFIRM_LINGE_RETIRE"
            title: "Linge retiré"
          - action: "RAPPEL_10MIN"
            title: "Rappel dans 10min"
            
  # Programmation du rappel automatique
  - delay: "00:30:00"
  - condition: state
    entity_id: input_select.etat_lave_linge
    state: "Terminé"
    
  - service: notify.mobile_app_votre_telephone
    data:
      title: "🔔 Rappel lave-linge"
      message: "N'oubliez pas de vider la machine !"
      data:
        tag: "lave_linge_rappel"

Automatisation 3 : Gestion des actions

alias: "Machine à Laver - Actions notifications"
description: "Gestion des réponses aux notifications"
mode: single

trigger:
  - platform: event
    event_type: mobile_app_notification_action
    event_data:
      action: "CONFIRM_LINGE_RETIRE"
  - platform: event  
    event_type: mobile_app_notification_action
    event_data:
      action: "RAPPEL_10MIN"

action:
  - choose:
      # Confirmation linge retiré
      - conditions:
          - condition: template
            value_template: "{{ trigger.event.data.action == 'CONFIRM_LINGE_RETIRE' }}"
        sequence:
          - service: input_select.select_option
            target:
              entity_id: input_select.etat_lave_linge
            data:
              option: "Arrêté"
          - service: notify.mobile_app_votre_telephone
            data:
              title: "👍 Confirmé"
              message: "Linge retiré, cycle terminé"
              
      # Programmation rappel
      - conditions:
          - condition: template
            value_template: "{{ trigger.event.data.action == 'RAPPEL_10MIN' }}"
        sequence:
          - delay: "00:10:00"
          - condition: state
            entity_id: input_select.etat_lave_linge
            state: "Terminé"
          - service: notify.mobile_app_votre_telephone
            data:
              title: "🔔 Rappel programmé"
              message: "Pensez à vider la machine !"

Création du dashboard avancé

Configuration des cartes

# Dans votre dashboard, ajoutez :
type: vertical-stack
cards:
  # Statut principal
  - type: entities
    title: "Machine à Laver"
    entities:
      - entity: input_select.etat_lave_linge
        name: "État"
      - entity: sensor.machine_a_laver_power
        name: "Puissance actuelle"
      - entity: binary_sensor.lave_linge_en_marche
        name: "En fonctionnement"
        
  # Informations du cycle
  - type: entities
    title: "Dernier Cycle"
    entities:
      - entity: input_datetime.debut_machine
        name: "Début"
      - entity: input_datetime.fin_machine  
        name: "Fin"
      - entity: sensor.duree_derniere_machine
        name: "Durée"
      - entity: sensor.consommation_dernier_cycle
        name: "Consommation"
        
  # Graphique de puissance
  - type: history-graph
    title: "Consommation dernières 24h"
    entities:
      - sensor.machine_a_laver_power
    hours_to_show: 24

Fonctionnalités avancées

Détection de cycles spécifiques

# Template pour identifier le type de cycle
- sensor:
    name: "Type Cycle Lave Linge"
    state: >
      {% set max_power = state_attr('sensor.machine_a_laver_power', 'max_value') | float(0) %}
      {% set duration = states('sensor.duree_derniere_machine') | int(0) %}
      {% if max_power > 2000 and duration > 120 %}
        Coton chaud
      {% elif max_power < 500 and duration < 60 %}
        Rinçage
      {% elif duration > 180 %}
        Programme long
      {% else %}
        Programme standard
      {% endif %}

Suivi des coûts

# Calcul du coût du cycle (prix kWh à adapter)
- sensor:
    name: "Coût Dernier Cycle"
    state: >
      {% set conso = states('sensor.consommation_dernier_cycle') | float(0) / 1000 %}
      {% set prix_kwh = 0.2276 %}  # Prix en €/kWh
      {{ (conso * prix_kwh) | round(3) }}
    unit_of_measurement: "€"

Programmation heures creuses

# Automatisation pour démarrage en heures creuses
alias: "Démarrage Automatique HC"
trigger:
  - platform: time
    at: "22:30:00"  # Début heures creuses
condition:
  - condition: state
    entity_id: input_boolean.programme_hc  # Helper à créer
    state: "on"
action:
  - service: switch.turn_on
    target:
      entity_id: switch.machine_a_laver
  - service: notify.mobile_app_votre_telephone
    data:
      title: "⚡ Démarrage HC"
      message: "Machine lancée en heures creuses"

Optimisation et dépannage

Ajustement des seuils

Les seuils de puissance varient selon les machines :

Machines classiques :

  • Seuil démarrage : 5-15W
  • Seuil arrêt : 1-5W
  • Confirmation : 2-5 minutes

Machines récentes (efficaces) :

  • Seuil démarrage : 10-25W
  • Seuil arrêt : 2-8W
  • Confirmation : 5-10 minutes

Problèmes fréquents

Faux positifs (notifications avant la fin) :

  • Augmentez la durée de confirmation
  • Vérifiez les cycles de pause de votre machine
  • Ajustez le seuil d’arrêt vers le bas

Notifications manquées :

  • Diminuez le seuil d’arrêt
  • Vérifiez la précision de la prise
  • Analysez les données avec l’historique

Template errors :

  • Vérifiez l’indentation YAML
  • Validez la configuration avant redémarrage
  • Utilisez les outils de développement pour tester

Maintenance

# Script de reset mensuel (à programmer)
alias: "Reset Compteurs Lave Linge"
sequence:
  - service: input_number.set_value
    target:
      entity_id: input_number.puissance_machine_debut
    data:
      value: 0
  - service: input_select.select_option
    target:
      entity_id: input_select.etat_lave_linge
    data:
      option: "Arrêté"

Extensions possibles

Intégration avec d’autres systèmes

Assistant vocal :

# Annonce vocale de fin de cycle
- service: tts.speak
  data:
    entity_id: media_player.salon
    message: "Le cycle de lavage est terminé"

Détection de fuites :

  • Ajoutez un capteur d’eau Zigbee sous la machine
  • Créez une alerte en cas de détection d’humidité

Suivi énergétique global :

  • Intégrez dans le dashboard énergie HA
  • Créez des statistiques de consommation mensuelle

Applications pour autres appareils

Ce système s’adapte facilement à :

  • Lave-vaisselle (seuils différents)
  • Sèche-linge (consommation plus élevée)
  • Four (pics de température + consommation)

Conclusion

Avec une prise connectée à 15€ et “quelques” lignes de code, vous disposez maintenant d’un système de monitoring complet pour votre machine à laver. Ce projet démontre la puissance de Home Assistant pour transformer des appareils “muets” en équipements intelligents.

Les bénéfices immédiats :

  • Plus de linge oublié grâce aux notifications intelligentes
  • Suivi précis de la consommation et des coûts
  • Optimisation des cycles avec la programmation automatique
  • Détection précoce de dysfonctionnements

Pour aller plus loin :

  • Reproduisez le système sur d’autres électroménagers
  • Intégrez la météo pour optimiser le séchage
  • Créez des statistiques d’usage familiales
  • Développez des alertes de maintenance préventive

La domotique accessible commence par des projets simples comme celui-ci. Avec le temps, vous développerez un véritable écosystème connecté qui simplifiera votre quotidien !


Ce guide est évolutif. N’hésitez pas à l’adapter selon votre matériel et vos besoins spécifiques. La communauté Home Assistant regorge de ressources pour vous accompagner dans vos projets.

Publié le Laisser un commentaire

Bienvenue dans l’Univers de MakerNix : Domotique, DIY et Innovation !

Salut à tous les passionnés de technologie intelligente ! Je suis Nicolas, alias MakerNix, votre guide dans le monde fascinant de la domotique et du DIY.

Ma Passion : Home Assistant et Au-Delà

Depuis plus d’un an, ma chaîne YouTube est le carrefour de tous les amoureux de Home Assistant. J’ai partagé avec vous :

  • Tutoriels détaillés : De l’installation de base aux configurations avancées.
  • Automatisations créatives : Pour rendre votre maison vraiment intelligente.
  • Intégrations innovantes : Découvrez comment connecter tous vos appareils.
  • Astuces d’optimisation : Pour un système fluide et performant.

Home Assistant n’a (presque) plus de secrets pour nous !

Nouveaux Horizons : L’Aventure Continue

Mais l’univers de la domotique ne s’arrête pas là. Voici ce qui vous attend dans les prochains mois :

  • Tests de Produits : Je déniche et j’analyse pour vous les dernières innovations.
  • Visites de FabLabs : Plongez avec moi dans ces temples de la création.
  • Projets DIY Avancés : Créons ensemble des gadgets domotiques uniques.

Pourquoi Me Suivre ?

  • Expertise Home Assistant : Un an de contenu spécialisé à votre disposition.
  • Approche Pratique : Du concret, du réalisable, du quotidien.
  • Communauté Engagée : Partagez, apprenez, et grandissez avec des passionnés.
  • Innovation Constante : Toujours à l’affût des dernières tendances.

Ma Mission

Je crois en une domotique accessible, fun et utile. Mon but ? Vous donner les clés pour transformer votre maison en un espace intelligent qui vous ressemble, sans vous ruiner et en vous amusant.

Rejoignez l’Aventure !

Que vous soyez un pro de Home Assistant ou un curieux de la domotique, il y a une place pour vous ici. Abonnez-vous à ma chaîne YouTube, suivez-moi sur les réseaux sociaux, et plongeons ensemble dans le futur de la maison connectée !

Prêt à rendre votre maison plus intelligente que jamais ? C’est parti !