Ldfa Posté(e) le 30 décembre 2019 Partager Posté(e) le 30 décembre 2019 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. Grace a la domotique désormais, ce n’est plus qu’un mauvais souvenir ! Je vais vous proposer un script qui va permettre a 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 mesuré la consommation électrique de vos appareils, pensez à prendre une prise adapter a la consommation de l’appareil a surveillé. 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 FW 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çu 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 a 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. 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 Lave terminer') print('Conso Actuel du Lave Linge : ' ..washer_usage.. 'W') print('La machine a fini, il faut la vidée') 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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 --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 Lave terminer') print('Conso Actuel du Lave Linge : ' ..washer_usage.. 'W') print('La machine a fini, il faut la vidée') 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 ce 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. 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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 -- 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 a 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 a On. Grace a un Dash Button Amazon « Ariel » coller 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. [embedded content] Partager : Afficher l’article complet Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.