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