Bonjour à tous,
Je vais ici vous présenter comment simplement domotiser une machine à lavée avec seulement une prise et avoir un rendu comme ceci :
Attention ce tutoriel sera amené à évoluer ainsi que certaines copies d’écrans changées au fur et à mesure des corrections éventuelles de bugs ou ajout de fonctionnalités ![]()
Le changelog sera dispo en fin de tutoriel
Je mettrai pas mal de copies d’écrans sans forcement l’accompagner de texte mais si vous avez des questions/remarques/suggestions n’hésitez pas ![]()
Je me suis fortement inspiré du tutoriel sur Domo-Blog que l’on retrouve ici :
https://www.domo-blog.fr/comment-connecter-et-monitorer-la-machine-a-laver-sous-la-domotique-home-assistant/
Pré-requis :
- Intégration MQTT
- Intégration Zigbee2Mqtt
- Une prise connecté Zigbee (Dans mon cas celle-ci)
- Avoir intégré sa prise connecté Zigbee à l’intégration Zigbee2Mqtt
1. Création de l’appareil lave linge sur l’intégration MQTT :
2. Création des fonctionnalités sur l’appareil MQTT lave linge :
3. Création de l’appareil edf sur l’intégration MQTT :
1. Création de l’appareil pour récupérer le dernier jour du mois :
4. Création de la fonctionnalité sur l’appareil MQTT edf :
5. Création de la scène pour edf afin d’indiquer le coût de votre abonnement :
Vous pouvez automatiser cette tâche avec le tutoriel suivant :
https://community.gladysassistant.com/t/tuto-recuperer-le-prix-de-son-abonnement-delectricite-via-le-site-data-gouv-fr/8838

Exécutez cette scène une fois manuellement et les prochaines fois que votre tarif changera si vous n’utilisez pas l’automatisation ![]()
6. Création de la scène lave linge en fonctionnement :


7. Création de la scène lave linge arrêté :








8. Création de la scène reset des valeurs mensuel :

9. Création de la scène refresh des valeurs statiques :
Si vous ne faites pas tourner votre machine pendant 48h certaines valeurs n’apparaissent plus sur le Dashboard, cette valeur est trouvable dans Paramètres → Système de Gladys :

J’ai donc créé une scène qui met à jour les valeurs par les mêmes valeurs toutes les 24h à un horaire ou je sais que ma machine ne tournera pas ![]()


10. Création de la scène refresh des valeurs annuelles :
Petite précision sur cette scène, il faudra modifier cette date chaque année



11. Création du flux Node-Red pour récupérer le dernier jour du mois :
[
{
"id": "b7191a33c07d23e0",
"type": "tab",
"label": "Vérif dernier jour mois en cours",
"disabled": false,
"info": "",
"env": []
},
{
"id": "d0e045cb.9f4ef",
"type": "http request",
"z": "b7191a33c07d23e0",
"name": "WorldTime API",
"method": "GET",
"ret": "obj",
"paytoqs": "ignore",
"url": "http://worldtimeapi.org/api/ip",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"x": 260,
"y": 200,
"wires": [
[
"91df43f4.81a518"
]
]
},
{
"id": "91df43f4.81a518",
"type": "function",
"z": "b7191a33c07d23e0",
"name": "Extract Month",
"func": "var mois_actuel = msg.payload.datetime.substring(5, 7);\nmsg.mois_actuel = parseInt(mois_actuel);\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"x": 430,
"y": 260,
"wires": [
[
"7894f4e2.dcb4f4"
]
]
},
{
"id": "7894f4e2.dcb4f4",
"type": "function",
"z": "b7191a33c07d23e0",
"name": "Determine Last Day of Month",
"func": "var mois_30_jours = [4, 6, 9, 11];\nvar mois_31_jours = [1, 3, 5, 7, 8, 10, 12];\n\nif (mois_30_jours.includes(msg.mois_actuel)) {\n msg.payload = 30;\n} else if (mois_31_jours.includes(msg.mois_actuel)) {\n msg.payload = 31;\n} else {\n var annee_actuelle = parseInt(msg.payload.datetime.substring(0, 4));\n if ((annee_actuelle % 4 == 0 && annee_actuelle % 100 != 0) || annee_actuelle % 400 == 0) {\n msg.payload = 29; // Année bissextile\n } else {\n msg.payload = 28;\n }\n}\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"x": 640,
"y": 320,
"wires": [
[
"b55312bdd26f4bda"
]
]
},
{
"id": "fbac43b9673078da",
"type": "mqtt out",
"z": "b7191a33c07d23e0",
"name": "",
"topic": "gladys/master/device/mqtt:datetime/feature/mqtt:dernier-jour-moisencours/text",
"qos": "2",
"retain": "true",
"respTopic": "",
"contentType": "",
"userProps": "",
"correl": "",
"expiry": "",
"broker": "0ee77e0f90aa9681",
"x": 1220,
"y": 440,
"wires": []
},
{
"id": "b55312bdd26f4bda",
"type": "function",
"z": "b7191a33c07d23e0",
"name": "Extraction jour",
"func": "const payload = msg.payload;\nmsg.payload = payload;\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 860,
"y": 380,
"wires": [
[
"fbac43b9673078da"
]
]
},
{
"id": "65287af29bc457b9",
"type": "cronplus",
"z": "b7191a33c07d23e0",
"name": "",
"outputField": "payload",
"timeZone": "",
"storeName": "",
"commandResponseMsgOutput": "output1",
"defaultLocation": "",
"defaultLocationType": "default",
"outputs": 1,
"options": [
{
"name": "schedule1",
"topic": "topic1",
"payloadType": "default",
"payload": "",
"expressionType": "cron",
"expression": "30 00 1 * *",
"location": "",
"offset": "0",
"solarType": "all",
"solarEvents": "sunrise,sunset"
}
],
"x": 100,
"y": 160,
"wires": [
[
"d0e045cb.9f4ef"
]
]
},
{
"id": "0ee77e0f90aa9681",
"type": "mqtt-broker",
"name": "Gladys",
"broker": "mqtt://192.168.0.248",
"port": "1883",
"clientid": "",
"autoConnect": true,
"usetls": false,
"protocolVersion": "4",
"keepalive": "60",
"cleansession": true,
"autoUnsubscribe": true,
"birthTopic": "",
"birthQos": "0",
"birthRetain": "false",
"birthPayload": "",
"birthMsg": {},
"closeTopic": "",
"closeQos": "0",
"closeRetain": "false",
"closePayload": "",
"closeMsg": {},
"willTopic": "",
"willQos": "0",
"willRetain": "false",
"willPayload": "",
"willMsg": {},
"userProps": "",
"sessionExpiry": ""
}
]
12. Création de la scène pour le cout par mois graphique si la fin du mois est le 30 :


13. Création de la scène pour le cout par mois graphique si la fin du mois est le 31 :


14. Graphique sur le dashboard pour suivre mois par mois :
Juste une petite précision pour l’attente de 2 minutes sur la scène lave linge arrêté, j’ai du faire ceci car même à 1 minute avec mon lave ligne la scène se déclenchait car il devait avoir un moment où le lave linge passait à 0W et après 1 minute était à 0W, en tout cas je l’explique comme ceci… ^^
J’ai n’ai plus eu de problème après l’avoir passé à 2 minutes
Changelog à venir :
- Aucun (A vos commentaires
)
Edit 10/04/2024 :
- Modification de la valeur de déclenchement (Puissance prise) pour prendre en compte le départ différé
- Ajout du calcul pour le coût sur 1 mois
Edit 12/04/2024 :
- Correction de plusieurs bugs
Edit 16/04/2024 :
- Ajout du lien pour automatisation récupération tarif électricité
- Bug détecté et en cours de tentative de résolution concernant la scène « Lave linge arrêté » qui s’exécute plusieurs fois notamment en fin de cycle

Edit 21/04/2024 :
- Correction du bug sur la scène lave linge arrêté qui s’exécutait plusieurs fois en fin de cycle
- Ajout d’une scène pour que les valeurs soit tout le temps affichées sur le Dashboard en fonction du paramètre « Délai avant expiration d’un état »
- Mise en place de l’arrondi à 2 décimales sur le coût + 3 décimales sur la consommation dernière lessive
- Ajout coût année
Edit 22/04/2024 :
- Mea culpa, le bug n’était pas du tout corrigé, c’est chose faite maintenant

- Optimisation de la scène « Lave linge arrêté »
Edit 03/05/2024 :
- Ajout d’un graphique pour suivre mois par mois le coût















































