Quand la Domotique vous aide dans votre blanchisserie
Je ne sais pas pour vous mais nous avions un problème récurrent : Le linge oublié dans le lave linge ou le sèche linge.
Grâce à la domotique désormais, ce n’est plus qu’un mauvais souvenir !
Je vais vous proposer un script qui va permettre à votre domotique que savoir quand votre appareil a fini son cycle et ainsi vous envoyer une notification pour vous prévenir.
Pour réaliser ce tuto, il va vous falloir de quoi mesurer la consommation électrique de vos appareils, pensez à prendre une prise adaptée à la consommation de l’appareil à surveiller.
Dans mon cas j’ai fait le choix d’une prise en 433 Mhz de marque Otio modele EHS 5050
Vous trouverez ce pack a 80€ chez ManoMano, en promo de vide stock dans certains Casino ou chez Castorama.
Elles acceptent jusqu’à une consommation de 3600w, largement suffisant pour un lave linge ou un sèche linge.
Elles sont compatibles RFXTRXE en choisissant le bon firmware ou avec RFlink.
Une caractéristique importante, elles sont bavardes, très bavardes, très très très bavardes, elles émettent toute les 10 secondes, les 4 en même temps peuvent empêcher d’autre modules en 433mhz d’être reçus par votre système.
Je n’en ai que deux en place, et aucun soucis.
Dans Domoticz cela donne ceci :
Les pics que vous pouvez voir correspondent a la consommation de mon lave linge sur un cycle « normal », et c’est ceci qui va nous servir, pensez à bien analyser cette courbe, et le widget de la prise en direct sur un début de cycle et une fin de cycle, vous avez besoin d’être précis.
Le script
Il vous faut créer quelques éléments :
Un Inter Virtuel : Lave Linge il va vous donner l’état du lave linge, et c’est grâce à lui que vous pourrez envoyer une notification
Une variable utilisateur de type entier avec 0 en valeur : washingmachine_status
Une seconde variable utilisateur de type entier avec 0 en valeur : washingmachine_counter elle vous sert à compter les cycles de votre appareil, on va s’en servir pour faciliter l’entretien.
Voici enfin le script :
script_time_finlavelinge.lua
--Ce script surveille la consommation d'un appareil
--Il va compter le temps ou la consommation est en dessous de la limite basse et depuis combien de temps. Cela veut dire que le cycle est fini
--Quand le script pense que le lave linge a fini, il va vous envoyer une notification
--Changer les valeurs si dessous pour qu'elles correspondent a votre cas
local switch_washingmachine = 'Lave Linge' --Nom de votre interrupteur Virtuel qui va vous indiquer l'etat de l'appareil
local washer_status_uservar = 'washingmachine_status' -- Nom de la variable utilisateur a créer
local energy_consumption = 'Conso Lave Linge' --Nom de la prise qui mesure la consommation electrique de votre appareil en watts
local washer_counter_uservar = 'washingmachine_counter' --Nom de la variable utilisateur qui compte les cycles
local idle_minutes = 2 --Nombre de minutes ou la consommation doit rester en dessous de la limite basse
local consumption_upper = 40 --Si la consommation est au dessus de cette valeur cela veut dire que le cycle a commencé (en watts)
local consumption_lower = 25 --Si la consommation est en dessous de cette valeurs, durant le temps defini precedement, cela veut dire que la machine a fini
sWatt, sTotalkWh = otherdevices_svalues[energy_consumption]:match("([^;]+);([^;]+)")
washer_usage = tonumber(sWatt)
commandArray = {}
--L'inter Virtuel est OFF, mais la consommation est au dessus de la valeur haute configré precedement, donc un cycle commence
if (washer_usage > consumption_upper) and uservariables[washer_status_uservar] == 0 then
commandArray[switch_washingmachine]='On'
commandArray['Variable:' .. washer_status_uservar]='1'
print('La conso du Lave Linge est de (' ..washer_usage.. 'W) c est au dessus de (' ..consumption_upper.. 'W), donc un cycle de lavage vient de commencer')
commandArray['Variable:' .. washer_counter_uservar]=tostring(idle_minutes)
end
if (washer_usage < consumption_lower) and uservariables[washer_status_uservar] == 1 then --Le Lave linge n'utilise pas suffisement d'energie, on soustrait le compteur
commandArray['Variable:' .. washer_counter_uservar]=tostring(math.max(tonumber(uservariables[washer_counter_uservar]) - 1, 0))
print('La conso du Lave Linge est de (' ..washer_usage.. 'W) c est au dessous de (' ..consumption_lower.. 'W), donc un cycle de lavage vient de ce terminer')
end
--Le Cycle est fini
if ((uservariables[washer_status_uservar] == 1) and uservariables[washer_counter_uservar] == 0) then
print('Cycle de Lavage terminé')
print('Conso Actuel du Lave Linge : ' ..washer_usage.. 'W')
print('La machine a fini, il faut la vider')
commandArray[switch_washingmachine]='Off' -- remise a OFF de l'interrupteur Lave Linge
commandArray['Variable:' .. washer_status_uservar]='0' -- remise a 0 de la variable utilisateur 'etat de la machine'
runcommand = "curl http://192.168.0.201:8888/?tts=aller%20hop%20La%20machine%20a%20fini%20il%20faut%20sortir%20le%20linge"; -- ma commande pour faire parler Sarah
os.execute(runcommand);
end
return commandArray
Il va vous falloir affiner les conso mini de fin de cycle et le temps, chaque appareil a ses caractéristiques.
Et voila, fini le linge oublié dans la machine, fini le linge sec qui va se froisser car la buanderie est au sous sol, petite astuce pour vous messieurs, lors de vos tests excluez madame des receveurs, il se peut que des notifications partent alors que le cycle n’est pas fini, et vous risquez de ne pas être pris au sérieux.
Chez moi, la maison envoie des sms pour nous prévenir en plus de la notif vocal de Sarah, ce script est installé pour le lave linge et le sèche linge, après deux notifications, la maison a reçu un sms de ma compagne :
Très bien maison, maintenant tu peux repasser le linge.
Et l’entretien ?
Bon fini de rire, passons à l’autre parti de la démarche : votre domotique va vous aider à entretenir vos appareils.
Lors d’un changement d’appareil, nous avons lu, pour la seul et unique fois de sa vie, le mode d’emploi, il y est indiqué qu’il faut réaliser un cycle d’entretien tout les 40 cycles.
Nous allons donc créer un script qui va compter combien de fois l’interrupteur ‘Lave Linge’ est passé a OFF, et faire le nécessaire pour être prévenu.
Il vous faut créer :
Un compteur virtuel de type général et incrémental : Cycle du Lave Linge et noter son idx, chez moi 2211
Un interrupteur virtuel ON/OFF : Entretien Lave Linge
Une variable utilisateur : var Cycle Lave Linge de type entier avec une valeur a 0
Le script :
script_device_cyclelavelinge.lua
-- script_device_cyclelavelinge.lua
-- 28/10/16 par Deennoo et Olie
-- ce script device a pour but de compter les cycles de fonctionnements d un lave Linge
-- a chaque fois qu'un interrupteur dummy lave linge passe a OFF il ajout un cycle a une variable et a un compteur incremental associer
-- au bout de 40 cycles il allume un dummy on/off Entretien Lave Linge, ce dummy peut servir a envoyer des notifications
-- fonctionne aussi avec un seche linge...
-- necessite d'avoir en place un script qui verifie si un appareil est en route via sa conso electrique
-- cree une variable utilisateur entier : var Cycle Lave linge
-- cree un dummy on/off : Entretien Lave Linge
commandArray = {}
if (devicechanged['Lave Linge'] == 'Off') then
commandArray['Variable:var Cycle Lave Linge']= tostring(uservariables["var Cycle Lave Linge"] +1)
Valeur_Compteur = tostring(uservariables["var Cycle Lave Linge"])
-- Envoi de la valeur dans le compteur "Cycle du Lave Linge" --
commandArray['UpdateDevice'] = 2211 .. '|0|' .. tostring(Valeur_Compteur)
if ((Valeur_Compteur % 40) == 0) then
commandArray['Entretien Lave Linge']='On'
end
end
Quand la variable utilisateur Var Cycle Lave Linge arrive à un multiple de 40, cela met à On l’interrupteur Entretien Lave Linge.
J’ai mis en place une notification sur cet inter virtuel qui m’envoie un SMS et une notif vocal via Sarah lorsqu’il passe à On.
Grace a un Dash Button Amazon « Ariel » collé sur un appareil et son script, je remets a Off l’interrupteur Entretien lave linge ou sèche linge, une fois que tout est clean.