BenjyNet 1 200 Signaler ce message Posté(e) 7 mars 2014 (modifié) Si comme moi vous avez votre sèche-linge à l'autre bout de la maison et que vous désirez savoir à quel moment il est terminé, voici un petit script utilisant un wallplug pour vérifier la consommation de ce dernier. Bien sur il faudra adapter en fonction du votre. En cadeau des petits icônes pour les 5 états : Tout d'abord un petit relevé des consommations, nous obtenons ceci pour un cycle complet de chauffage : Un peu plus en détail sur le défoulement à la fin : Reste plus qu'à repérer les différentes phases en fonction de la consommation de la machine à l'aide d'un script sans prétention : --[[ %% autostart %% properties %% globals --]] -- Tumble dryer - scene process check v 1.0.3 [03-2015] -- Copyright © 2014 BenjyNet local sourceTrigger = fibaro:getSourceTrigger(); local id_wallplug = 42; local current_conso = 0; local power = 0; if (sourceTrigger["type"] == "autostart") then fibaro:debug("Script sèche-linge démarré"); while true do local flag = 0; current_conso = tonumber(fibaro:getValue(id_wallplug, "power")); if current_conso > 500 then power = 1; fibaro:debug(os.date() .. " - Start tumble dryer"); fibaro:debug(os.date() .. " - PHASE 1"); fibaro:sleep(5*60*1000); -- wait 5 min while current_conso > 500 do fibaro:sleep(2*60*1000); -- check conso every 2 min current_conso = tonumber(fibaro:getValue(id_wallplug, "power")); end fibaro:debug(os.date() .. " - PHASE 2"); while current_conso > 100 do fibaro:sleep(1*60*1000); -- check conso every min current_conso = tonumber(fibaro:getValue(id_wallplug, "power")); end fibaro:debug(os.date() .. " - PHASE 3"); while (current_conso > 2 and flag < 149) do if current_conso > 100 then flag = 0; current_conso = tonumber(fibaro:getValue(id_wallplug, "power")); else flag = flag + 1; current_conso = tonumber(fibaro:getValue(id_wallplug, "power")); end -- fibaro:debug(flag); fibaro:sleep(2*1000); -- check conso every 2s end fibaro:debug(os.date() .. " - Tumble dryer process terminated - flag : " .. flag .. " conso : " .. current_conso); -- Send notification to cellphone here fibaro:call(9, "sendEmail", "Sèche-linge", "Processus terminé"); fibaro:call(101, "sendPush", "Le sèche-linge est terminé"); end if current_conso > 2 then power = 1; fibaro:debug(os.date() .. " - Tumble dryer power ON - Please power OFF"); --fibaro:call(10, "setProperty", "currentIcon", 1009); current_conso = tonumber(fibaro:getValue(id_wallplug, "power")); end if (current_conso == 0 and power == 1) then power = 0; fibaro:debug(os.date() .. " - Tumble dryer power OFF"); --fibaro:call(10, "setProperty", "currentIcon", 1008); end fibaro:sleep(5*60*1000); -- check if tumbler dryer is ON every 5 min end end Modifié 27 mars 2015 par BenjyNet 6 Partager ce message Lien à poster Partager sur d’autres sites
Shad 315 Signaler ce message Posté(e) 7 mars 2014 BIen, va falloir que je me refasse un stock de wall plug moi Partager ce message Lien à poster Partager sur d’autres sites
Moicphil 1 117 Signaler ce message Posté(e) 7 mars 2014 Merci pour le partage Ben ! Partager ce message Lien à poster Partager sur d’autres sites
lolomail 51 Signaler ce message Posté(e) 7 mars 2014 Mis en place pour le lave linge et le sèche linge, y a plus qu'a tester Partager ce message Lien à poster Partager sur d’autres sites
lolomail 51 Signaler ce message Posté(e) 7 mars 2014 Question, j'ai un doute , faut cocher "scène active" ou pas? Partager ce message Lien à poster Partager sur d’autres sites
BenjyNet 1 200 Signaler ce message Posté(e) 7 mars 2014 A ton avis ? Bon juste pour info ça marche impec... Partager ce message Lien à poster Partager sur d’autres sites
lolomail 51 Signaler ce message Posté(e) 7 mars 2014 Je dirais oui ? Partager ce message Lien à poster Partager sur d’autres sites
BenjyNet 1 200 Signaler ce message Posté(e) 7 mars 2014 Vi et démarrer avec le HC2. Partager ce message Lien à poster Partager sur d’autres sites
lolomail 51 Signaler ce message Posté(e) 7 mars 2014 Bizarre sur cette scène je n'ai pas "démarrer avec HC2" après j'ai %%autostart, cela ne la lancera pas au démarrage? Partager ce message Lien à poster Partager sur d’autres sites
Shad 315 Signaler ce message Posté(e) 7 mars 2014 oui c'est bon Partager ce message Lien à poster Partager sur d’autres sites
lolomail 51 Signaler ce message Posté(e) 7 mars 2014 Cool merci Je testerais surement demain Partager ce message Lien à poster Partager sur d’autres sites
darklite44 53 Signaler ce message Posté(e) 8 mars 2014 Parfait, je voulais fait exactement ça ! Merci Ben. Partager ce message Lien à poster Partager sur d’autres sites
BenjyNet 1 200 Signaler ce message Posté(e) 8 mars 2014 Ahah ma femme est une blagueuse Elle m'a remis une nouvelle machine, juste derrière la précédente sans éteindre le seche-linge. Résultat, je suis bloqué dans ma boucle qui regarde si elle l'a éteint ! Une petite modification s'impose ! Je vois ça et vous le post sur le 1er post dès que c'est fait. Partager ce message Lien à poster Partager sur d’autres sites
BenjyNet 1 200 Signaler ce message Posté(e) 8 mars 2014 Bon je viens de modifier mon script, mais les pros, est-ce que vous savez si on peut modifier les icones à la volée comme dans les VD ? J'ai essayé avec fibaro:call(scene_id,"setProperty","currentIcon",1008); mais ça ne marche pas. Partager ce message Lien à poster Partager sur d’autres sites
Shad 315 Signaler ce message Posté(e) 8 mars 2014 Oui mais en utilisant l'api. Partager ce message Lien à poster Partager sur d’autres sites
BenjyNet 1 200 Signaler ce message Posté(e) 8 mars 2014 Hum.. c'est àdire Shad ? Partager ce message Lien à poster Partager sur d’autres sites
Krikroff 1 924 Signaler ce message Posté(e) 8 mars 2014 je fais cela pour changer le label d'un bouton dans un vd, il faut l'adapter pour ton besoin mais le principe reste le même local deviceToEdit = fibaro:getSelfId(); local ID = "btnOnOffAllScenes"; --Block all scenes execution --Unblock scenes execution HC2 = Net.FHttp("192.168.1.220",80); HC2:setBasicAuthentication("admin", "admin"); --get the device to change response ,status, errorCode = HC2:GET("/api/virtualDevices?id="..deviceToEdit) if (tonumber(status) == 200) then jsonTable = json.decode(response); for key,value in pairs(jsonTable.properties.rows) do name = jsonTable.properties.rows[key].elements[1].name; --fibaro:debug(name); if(name==ID) then n = key; match = true; caption = jsonTable.properties.rows[n].elements[1].caption; fibaro:debug(caption); break; end end -- if (match) then fibaro:debug(name .." found, caption is [".. caption .."]"); jsonTable.properties.rows[n].elements[1].caption = "Unblock scenes execution" -- send back json = json.encode(jsonTable); response2 ,status2, errorCode2 = HC2:PUT("/api/virtualDevices?id="..deviceToEdit, json); if (tonumber(errorCode2)==0) then fibaro:debug("Edit complete text set "..status2) else fibaro:debug("Error update "..errorCode2) end else fibaro:debug(ID .. " not found!") end else fibaro:debug("error"); end Partager ce message Lien à poster Partager sur d’autres sites
Shad 315 Signaler ce message Posté(e) 8 mars 2014 Voilàen utilisant l'api (json quoi ^^) Partager ce message Lien à poster Partager sur d’autres sites
BenjyNet 1 200 Signaler ce message Posté(e) 8 mars 2014 Oh con le truc de malade pour changer un icone ! Partager ce message Lien à poster Partager sur d’autres sites
Shad 315 Signaler ce message Posté(e) 8 mars 2014 Non tu peux faire plus simple ^^. Il te monte juste le système. Partager ce message Lien à poster Partager sur d’autres sites
BenjyNet 1 200 Signaler ce message Posté(e) 10 mars 2014 Bon en utilisant l'api si j'ai bien compris je dois d'abord récupérer une table json - json.decode avec un HC2:GET puis je dois modifier cette table et la replacer avec un json.encode et un HC2:PUT. Et est-ce que faire ça permet de rafraîchir la page et donc de voir le changement d'icone ? ou faudra-t-il faire F5 àla mano ? Partager ce message Lien à poster Partager sur d’autres sites
BenjyNet 1 200 Signaler ce message Posté(e) 12 mars 2014 Oups j'ai fait une boulette dans le script, j'ai corrigé. Partager ce message Lien à poster Partager sur d’autres sites
lolomail 51 Signaler ce message Posté(e) 16 mars 2014 Tu avais fais quoi comme boulette? Partager ce message Lien à poster Partager sur d’autres sites
BenjyNet 1 200 Signaler ce message Posté(e) 16 mars 2014 Je remettais pas à0 ma variable flag. Donc au bout de quelques machines le script ne rentrait plus dans la phase 3 et disait machine terminé alors que non ! C'est corrigé dans le post initial. Faudra que je le fasse evoluer pour modifier les icones en fonction du cycle, j'aime le côté visuel et en plus c'est tres waf Partager ce message Lien à poster Partager sur d’autres sites
lolomail 51 Signaler ce message Posté(e) 16 mars 2014 Ok je viens de regarder les deux et j'ai vu que tu as déplacé le flag mais je préférais avoir la confirmation. Bon je vais faire la modif sur mes deux scripts Pour les icônes cela pourrait être sympa. Partager ce message Lien à poster Partager sur d’autres sites