jojo Posté(e) le 6 septembre 2016 Signaler Posté(e) le 6 septembre 2016 alors tu fais le contraire : tu testes si conso > 500W, alors ON et si < 500 W, elle est OFF
FANDOMOTIQUE Posté(e) le 8 septembre 2016 Auteur Signaler Posté(e) le 8 septembre 2016 En réalité, un cycle se décompose comme ceci : Situation de départ : WallPlug en stop Mise en route d'un cycle : WallPlug en On et la première partie du cycle consiste à chauffer l'eau, ce qui consomme environ 2000 watts de manière constante En cours de cycle : Une fois l'eau chaude, la consommatation redescent environ entre 0 et 150 Watts mais change toutes les 2 ou 3 secondes en passant par 0. A la fin d'un cycle : La consommation redevient constant à 4.6 - 4.7 Watt. En gros, j'aimerai que pour considérer le cycle terminé, il faut que la conso soit inférieur à 5 w pendant 2 minutes par exemple et au bout de 5 min, on met le WallPlug à OFF Pour la mise en service, ça peut être si le WallPlug est ON pendant 1 min, alors début d'un cycle. Possible à votre avis ?
jojo Posté(e) le 8 septembre 2016 Signaler Posté(e) le 8 septembre 2016 je suis maintenant devenu un FAN de GEA, et c'est un excellent exemple pour commencer àapréhender l'outil. Il te faudra l'apprivoiser, puis ce sera parti
FANDOMOTIQUE Posté(e) le 8 septembre 2016 Auteur Signaler Posté(e) le 8 septembre 2016 Ok, je me met en quête de GEA pour les nuls
jojo Posté(e) le 8 septembre 2016 Signaler Posté(e) le 8 septembre 2016 je te promets que tu fais le bon chois
FANDOMOTIQUE Posté(e) le 9 septembre 2016 Auteur Signaler Posté(e) le 9 septembre 2016 Bien, alors voilà où j'en suis : J'ai mis en service le GEA de base sur ma HC2. J'ai modifié le GEA de base en y ajoutant les ID de l'ensemble de mes périphériques. Si j'ai bien compris, maintenant je vais essayer de créer des événements... Je continue de vous tenir au courant pour l'analyse de la machine à laver
FANDOMOTIQUE Posté(e) le 10 septembre 2016 Auteur Signaler Posté(e) le 10 septembre 2016 Vu la complexité du truc et le peu de temps que j'ai ày accorder, je clos cette conversation pour créer un sujet dédié àmon projet global GEA, qui me servira en même temps de pense bête et aidera peut être d'autres personnes du forum.
Steven Posté(e) le 12 septembre 2016 Signaler Posté(e) le 12 septembre 2016 J'ai pas la possibilité de tester mais si quelqu'un a le courage : --[[ % properties 120 value --]] local smartphone = 504 -- identifiant du smartphone pour recevoir les push local wallplug = 120 -- identifiant de wallplug du lave-linge local autoOff = true -- true si le wallplug doit être éteint àla fin des cycles -- --------------------------------------- -- Paramétrage des cycles de lavage -- respecter l'ordre -- ---------------------------------------- local cycles = { {name="Preparation", watts={min=0, max=5.0}, push="En attente de démarrage"}, {name="Chauffage", watts={min=500, max=5000}, push="Chauffage en cours"}, {name="Lavage", watts={min=0,max=500}, push="Lavage détecté"}, {name="Fin", watts={min=0, max=5.0}, push="Fin du programme"} } -- ======================================== -- NE PAS TOUCHER -- ======================================== function getConso(seconds) local fin = os.time() local t = os.date("*t", fin) t.sec = t.sec - seconds local debut = os.time{year=t.year, month=t.month, day=t.day, hour=t.hour, min=t.min, sec=t.sec} local res = api.get("/energy/"..debut.."/"..fin.."/compare/devices/power/"..wallplug) return res[1].min, res[1].max, res[1].avg end local estAllume = tonumber(fibaro:getValue(wallplug, "value")) > 0 function check() -- Si le module est allumé if (tonumber(fibaro:getValue(wallplug, "value")) > 0 ) then -- on regarde la conso des 5 dernières secondes local min,max = getConso(5) local prochaine = cycles[1] if (min >= prochaine.watts.min and max <= prochaine.watts.max) then -- si c'est la bonne, on envoi un push print(prochaine.name) fibaro:call(smartphone, "sendPush", prochaine.push) --fibaro:setGlobal("Pushbullet", prochaine.push) table.remove(cycles, 1) end --print(min .. " " .. max) -- si toutes les étapes n'ont pas encore été consumée, on relance la contrôle dans 5 secondes if (#cycles > 0) then setTimeout(function() check() end, 5000) else if (autoOff) then fibaro:call(wallplug, "turnOff") end end end end if (estAllume) then print("Wallplug .. [" .. wallplug .. "] allumé") check() else print("Wallplug .. [" .. wallplug .. "] éteint") end
FANDOMOTIQUE Posté(e) le 13 septembre 2016 Auteur Signaler Posté(e) le 13 septembre 2016 Merci Steven, Je viens de mettre le script à l'essai et je devrais être fixé ce soir. Je vous tiens au courant.
Steven Posté(e) le 13 septembre 2016 Signaler Posté(e) le 13 septembre 2016 Volontiers car j'ai déjàfait toute la lessive ce weekend donc pour tester il faudra attendre encore un peu :-) 2
FANDOMOTIQUE Posté(e) le 15 septembre 2016 Auteur Signaler Posté(e) le 15 septembre 2016 Bon, je reviens vers vous un peu tard... pas mal de boulot. Verdict : Il ne se passe rien. curieusement aucune notification et les ID des périphériques (Wallplug et Smartphone OK). Dans l'écran sous le scenario : [DEBUG] 12:51:16: Wallplug .. [137] éteint Une idée ? Peut-être une variable à créer ?
Steven Posté(e) le 15 septembre 2016 Signaler Posté(e) le 15 septembre 2016 J'ai pu testé et c'est la même chose chez moi...rien. J'analyse et testé comme il faut ce week-end et je reviens avec un script qui fonctionne. 1
Nico Posté(e) le 15 septembre 2016 Signaler Posté(e) le 15 septembre 2016 Vos femmes doivent vous aimer tous les 2 à vous battre à faire des machines :) Sinon le script ci dessus, il va juste y avoir un souci, c'est que moi il peut enchainer avec un séchage... Et là c'est le drame pour le script ! 1
Moicphil Posté(e) le 16 septembre 2016 Signaler Posté(e) le 16 septembre 2016 Salut Si ca peut vous aider, perso pour etre notifié quand ma machine est finie. J'utilise 2 variables et ce script. ca fonctionne à tous les coups --[[ %% autostart %% properties 212 power %% globals --]] local Heure = os.date("%H:%M", os.time()) local power_socket = 212 local powerlive = fibaro:getValue(power_socket, "power") fibaro:debug("Puissance = "..powerlive.." Watt") if (fibaro:countScenes()>1) then fibaro:abort(); end local run = 0 local power_socket = 212 local currentDate = os.date("*t"); local power = fibaro:getValue(power_socket, "power") local counter = 0 if ( tonumber(fibaro:getValue(power_socket, "power")) > 35 ) and run == 0 then local start = (os.time()) fibaro:debug("Machine en route") fibaro:debug("Puissance = "..power.." Watt") run = 1 end while run == 1 do if ( tonumber(fibaro:getValue(power_socket, "power")) < 4.4) then counter = counter + 1 local power2 = fibaro:getValue(power_socket, "power") fibaro:debug('counter = ' ..counter.. " : "..power2.."Watt") end if ( tonumber(fibaro:getValue(power_socket, "power")) > 4.4 ) then counter = 0 end if ( tonumber(fibaro:getValue(power_socket, "power")) < 4.4) and counter > 60 then fibaro:debug("Machine finie.") local Heure = os.date("%H:%M", os.time()) local power3 = fibaro:getValue(power_socket, "power") fibaro:debug("Puissance 3 = "..power3.." Watt") fibaro:setGlobal("SMS", "La machine est finie, il est : " .. Heure) -- fibaro:setGlobal("TTS", "La machine à laver est finie") fibaro:setGlobal("pushover", "La machine est finie, il est : " .. Heure) -- fibaro:sleep(2000) -- fibaro:startScene(27) -- tts fibaro:call(36, "pressButton", "1") --sms lua fibaro:call(36, "pressButton", "2") --sms lua fibaro:call(11, "pressButton", "4") --pushover lua fibaro:call(105, "setColor", "255", "0", "255", "0") --rgb salon fibaro:call(119, "setColor", "255", "0", "255", "0") --rgb cuisine fibaro:sleep(12*1000) fibaro:call(105, "turnOff") fibaro:call(119, "turnOff") run = 0 end fibaro:sleep(1*1000) end 1
Steven Posté(e) le 16 septembre 2016 Signaler Posté(e) le 16 septembre 2016 Merci @moicphil Je cherche un script plus générique avec la possibilité de tracer toutes les cycles d'une machine à laver, chauffe-eau, ... et un peu moins coà»tant en terme de ressources CPU. Pour l'instant, l'avantage du tien est QU'IL FONCTIONNE mais j'ai bon espoir que le mien aussi dans pas longtemps Bon, quand je regarde le script que j'ai fourni, cela prouve que je suis capable de fournir de la m... j'ai pas encore testé mais en tout cas, le 1er bug est déjà à la 2ème ligne ... et oui, j'ai oublié un % ... dans l'entête, il doit toujours y avoir %%. 1
Nico Posté(e) le 16 septembre 2016 Signaler Posté(e) le 16 septembre 2016 Steven, me plait bien au final, MoicPhil aussi, et comme ça un trucs de geek en plus pour Mme :)
FANDOMOTIQUE Posté(e) le 16 septembre 2016 Auteur Signaler Posté(e) le 16 septembre 2016 @NICO : En vrai macho qui se respecte, je n'arrête pas de demander à ma compagne de procéder au lavage du linge @MoicPhil : Beau boulot @Steven : J'ai ajouté le % et j'avoue que je ne l'avais pas vu non plus ! Malheureusement, j'ai modifié le script avec une machine qui fonctionnait et l'ordre n'a donc pas fonctionné mais j'ai quand même eu une notification. Je teste sur la prochaine machine. Petit défi supplémentaire, j'aimerai en plus de la notification que mon Sonos Play 1 indique "La machine est terminée"...
FANDOMOTIQUE Posté(e) le 17 septembre 2016 Auteur Signaler Posté(e) le 17 septembre 2016 Nouvelle machine, il semble que cela fonctionne en ajoutant le % Merci Steven
jojo Posté(e) le 18 septembre 2016 Signaler Posté(e) le 18 septembre 2016 pour la notif sur le sonos, regarde le VD de Krikroff pour gérer le Sonos, et ce sera super facile àfaire
BenjyNet Posté(e) le 18 septembre 2016 Signaler Posté(e) le 18 septembre 2016 Arf, c'est nettement plus chiadé que mon pauvre script
BenjyNet Posté(e) le 18 septembre 2016 Signaler Posté(e) le 18 septembre 2016 Hum alors, ça marche peut être avec la machine àlaver, mais pas du tout avec mon seche-linge
FANDOMOTIQUE Posté(e) le 25 septembre 2016 Auteur Signaler Posté(e) le 25 septembre 2016 Bon, avec le recul, ça ne marche pas àchaque fois, il semble qu'il arrive au script de couper l'alimentation du WallPlug avant la fin du cycle...
jojo Posté(e) le 25 septembre 2016 Signaler Posté(e) le 25 septembre 2016 ça en effet, ça ne doit pas faire plaisir àMadame ... 1
Messages recommandés