lolomail Posté(e) le 11 mars 2014 Signaler Posté(e) le 11 mars 2014 Le script de BenjyNet m'a donné un idée pour des rubans leds que j'ai chez moi au niveau de la télé, l'idée est de démarrer les leds quand il fait nuit et quand la télé marche donc tire du jus sur le wallplug ou elle est branchée. J'ai fais le script suivant: --[[ %% autostart %% properties %% globals --]] -- Allumage led fonction conso wallplug v 1.0.0 [03-2014] -- Copyright © 2014 lolomail local sourceTrigger = fibaro:getSourceTrigger(); local current_conso = 0; if ( (sourceTrigger["type"] == "autostart") and ( fibaro:getGlobalValue("Jour_Nuit") == "Jour" ) ) then while true do local current_conso = tonumber(fibaro:getValue(66, "valueSensor")); fibaro:debug("Conso wallplug " ..current_conso); if current_conso > 80 then fibaro:debug(os.date() .. " - Télé allumée"); fibaro:debug(os.date() .. " - LEDs allumées"); if ( tonumber(fibaro:getValue(132, "value")) < 1 ) then fibaro:call(132, "turnOn"); end if ( tonumber(fibaro:getValue(133, "value")) < 1 ) then fibaro:call(133, "turnOn"); end end if current_conso < 80 then fibaro:debug(os.date() .. " - Télévision éteinte"); fibaro:debug(os.date() .. " - LEDs éteintes"); if ( tonumber(fibaro:getValue(132, "value")) > 1 ) then fibaro:call(132, "turnOff"); end if ( tonumber(fibaro:getValue(133, "value")) > 1 ) then fibaro:call(133, "turnOff"); end fibaro:sleep(10*1000) end end end Il me démarre nickel les rubans quand la conso de la télé passe au delà de 80w mais quand j'éteins, il n'éteint pas les rubans. J'ai fais une coquille? Merci Laurent 1
i-magin Posté(e) le 11 mars 2014 Signaler Posté(e) le 11 mars 2014 Essaie de passer la valeur contrôlée (si lumière allumée) à zéro au lieu de 1, ce qui donne > 0 au lieu de > 1 NB : Et pour le contrôle si module éteint : == 0 (au lieu de < 1)
Shad Posté(e) le 11 mars 2014 Signaler Posté(e) le 11 mars 2014 Essaye sa --[[ %% properties 66 value %% globals --]] local sourceTrigger = fibaro:getSourceTrigger(); local current_conso = 0; local wallplug = 66; if ((sourceTrigger['type']=='property') and ( fibaro:getGlobalValue("Jour_Nuit") == "Jour" ) ) then if (startSource['deviceID']==tostring(wallplug)) then local current_conso = tonumber(fibaro:getValue(66, "valueSensor")); fibaro:debug("Conso wallplug " ..current_conso); if (current_conso > 80) then fibaro:debug(os.date() .. " - Télé allumée"); fibaro:debug(os.date() .. " - LEDs allumées"); if ( tonumber(fibaro:getValue(132, "value")) < 1 ) then fibaro:call(132, "turnOn"); end if ( tonumber(fibaro:getValue(133, "value")) < 1 ) then fibaro:call(133, "turnOn"); end elseif current_conso < 80 then fibaro:debug(os.date() .. " - Télévision éteinte"); fibaro:debug(os.date() .. " - LEDs éteintes"); if ( tonumber(fibaro:getValue(132, "value")) > 1 ) then fibaro:call(132, "turnOff"); end if ( tonumber(fibaro:getValue(133, "value")) > 1 ) then fibaro:call(133, "turnOff"); end end end fibaro:sleep(10*1000) end
lolomail Posté(e) le 11 mars 2014 Auteur Signaler Posté(e) le 11 mars 2014 Merci, je teste cela ce soir
Domodial Posté(e) le 11 mars 2014 Signaler Posté(e) le 11 mars 2014 Je pige pas, je fais la même chose àl'aide d'une scène journalière et une variable Jour/Nuit comme tu as mis d'ailleurs. Quand j'éteint la tv ça éteint tout, mais ça n'allume les leds et neon que s'il fait nuit. Qu'est ce qu'il fait de plus le script ?
Shad Posté(e) le 11 mars 2014 Signaler Posté(e) le 11 mars 2014 Post ton code avec ce qu'il veut que tu fasse que je regarde si tu veux.
guchtpi Posté(e) le 11 mars 2014 Signaler Posté(e) le 11 mars 2014 Euh ... je suis peut être un peu con ... mais à quoi servent les tests sur les modules 132 et 133 ? Pas besoin de connaitre leurs états initiaux... on les allume ... ou on les éteint ... non ? Donc... en simplifiant, on obtient: --[[ %% properties 66 value %% globals --]] local sourceTrigger = fibaro:getSourceTrigger(); local current_conso = 0; local wallplug = 66; if ((sourceTrigger['type']=='property') and ( fibaro:getGlobalValue("Jour_Nuit") == "Jour" )) then if (startSource['deviceID']==tostring(wallplug)) then local current_conso = tonumber(fibaro:getValue(66, "valueSensor")); fibaro:debug("Conso wallplug " ..current_conso); if (current_conso > 80) then fibaro:debug(os.date() .. " - Télé allumée"); fibaro:debug(os.date() .. " - LEDs allumées"); fibaro:call(132, "turnOn"); fibaro:call(133, "turnOn"); else fibaro:debug(os.date() .. " - Télévision éteinte"); fibaro:debug(os.date() .. " - LEDs éteintes"); fibaro:call(132, "turnOff"); fibaro:call(133, "turnOff"); end end fibaro:sleep(10*1000) end
lolomail Posté(e) le 12 mars 2014 Auteur Signaler Posté(e) le 12 mars 2014 Bon j'ai fais un test hier, le script de Shad ne marche pas . J'ai mis la scène en active, aucun message dans le debug, on dirait que le script n'est pas déclenché.
Shad Posté(e) le 12 mars 2014 Signaler Posté(e) le 12 mars 2014 Ok Xd, m'apprendra à me relire --[[ %% properties 66 value %% globals --]] local sourceTrigger = fibaro:getSourceTrigger(); local current_conso = 0; local wallplug = 66; if ((sourceTrigger['type']=='property') and ( fibaro:getGlobalValue("Jour_Nuit") == "Jour" )) then if (sourceTrigger['deviceID']==tostring(wallplug)) then local current_conso = tonumber(fibaro:getValue(66, "valueSensor")); fibaro:debug("Conso wallplug " ..current_conso); if (current_conso > 80) then fibaro:debug(os.date() .. " - Télé allumée"); fibaro:debug(os.date() .. " - LEDs allumées"); fibaro:call(132, "turnOn"); fibaro:call(133, "turnOn"); elseif (current_conso < 80) then fibaro:debug(os.date() .. " - Télévision éteinte"); fibaro:debug(os.date() .. " - LEDs éteintes"); fibaro:call(132, "turnOff"); fibaro:call(133, "turnOff"); end fibaro:sleep(10*1000) end end
i-magin Posté(e) le 12 mars 2014 Signaler Posté(e) le 12 mars 2014 Euh ... je suis peut être un peu con ... mais à quoi servent les tests sur les modules 132 et 133 ? Pas besoin de connaitre leurs états initiaux... on les allume ... ou on les éteint ... non ? Pour info, voir post de @petergebruers mardi 11 mars (19H35) sur forum officiel de Fibaro : ICI Il porte sur l'intérêt des tests d'état d'un module qui évitent d'adresser des commandes inutiles, surtout dans les boucles, @Shad, tu les a également supprimés dans ton dernier script ?
guchtpi Posté(e) le 12 mars 2014 Signaler Posté(e) le 12 mars 2014 @I-magin: Mouis... d'accord, je comprend le principe (bien qu'au niveau strictement programmatique, ça n'a aucun sens :-) ! ) ... par contre, ce n'est pas très rassurant quand à la robustesse de la HC ... si 4 commandes en 10s (inutiles ou pas) peuvent la 'planter' ... bof bof bof ... Mais merci pour l'info.
lolomail Posté(e) le 12 mars 2014 Auteur Signaler Posté(e) le 12 mars 2014 Ce n'est pas planté la HC2 mais overloader le réseau de communication qui ne sert a rien. Imagine si tu as des scènes de partout qui balance ce type de commande toutes les secondes...
lolomail Posté(e) le 12 mars 2014 Auteur Signaler Posté(e) le 12 mars 2014 Ce que j'ai oublie de préciser les modules 132 et 133 sont dies wallplug sur lesquels sont branches les alim des rubans LED
Shad Posté(e) le 12 mars 2014 Signaler Posté(e) le 12 mars 2014 Ah merde, j'ai copier coller le code d'avant j'avais pas vue que c'était pas le mien ^^ attend tiens --[[ %% properties 66 value %% globals --]] local sourceTrigger = fibaro:getSourceTrigger(); local current_conso = 0; local wallplug = 66; if ((sourceTrigger['type']=='property') and ( fibaro:getGlobalValue("Jour_Nuit") == "Jour" )) then if (sourceTrigger['deviceID']==tostring(wallplug)) then local current_conso = tonumber(fibaro:getValue(66, "valueSensor")); fibaro:debug("Conso wallplug " ..current_conso); if (current_conso > 80) then fibaro:debug(os.date() .. " - Télé allumée"); fibaro:debug(os.date() .. " - LEDs allumées"); if ( tonumber(fibaro:getValue(132, "value")) < 1 ) then fibaro:call(132, "turnOn"); end if ( tonumber(fibaro:getValue(133, "value")) < 1 ) then fibaro:call(133, "turnOn"); end elseif (current_conso < 80) then fibaro:debug(os.date() .. " - Télévision éteinte"); fibaro:debug(os.date() .. " - LEDs éteintes"); if ( tonumber(fibaro:getValue(132, "value")) > 1 ) then fibaro:call(132, "turnOff"); end if ( tonumber(fibaro:getValue(133, "value")) > 1 ) then fibaro:call(133, "turnOff"); end end fibaro:sleep(10*1000) end end
guchtpi Posté(e) le 12 mars 2014 Signaler Posté(e) le 12 mars 2014 Ce n'est pas planté la HC2 mais overloader le réseau de communication qui ne sert a rien. Imagine si tu as des scènes de partout qui balance ce type de commande toutes les secondes... Je cite wikipedia: Le protocole radio Z-Wave est optimisé pour des échanges à faible bande passante (entre 9 et 40 kbps) et des appareils sur pile ou alimentés électriquement, par opposition au Wi-Fi par exemple, qui est prévu pour des échanges à haut débit et sur des appareils alimentés électriquement uniquement. Donc, bande passante minimum: 9kps ... faut déjà pas mal de modules pour 'overloader' le réseau, même à 1 commande par seconde et par module ...
i-magin Posté(e) le 12 mars 2014 Signaler Posté(e) le 12 mars 2014 Je renouvelle ma suggestion : avant les "turnOff", remplacer le test "value" > 1 par > 0 Comme ce sont des wallplug, et si tu veux tester la conso au lieu de ON ou OFF, il faut utiliser "valueSensor"
lolomail Posté(e) le 12 mars 2014 Auteur Signaler Posté(e) le 12 mars 2014 Bon je teste tout cela ce soir et je vous fais un retour
guchtpi Posté(e) le 12 mars 2014 Signaler Posté(e) le 12 mars 2014 Oui ... revenons au vrai problème ! Si j'ai bien compris ... les LEDs s'allument correctement avec la TV mais ne s'éteignent pas ... Ne serait-ce pas à cause de ce test ... qui n'est TRUE que pendant la journée ... donc le soir ou la nuit ... bein ... le reste du code n'est plus exécuté ... if ((sourceTrigger['type']=='property') and ( fibaro:getGlobalValue("Jour_Nuit") == "Jour" )) then
lolomail Posté(e) le 12 mars 2014 Auteur Signaler Posté(e) le 12 mars 2014 Hier lors des test j'avais modifier "jour" en "nuit" et pas de réaction . Shad a fait un modif sur une des premières lignes de détection de la conso, je test asap
guchtpi Posté(e) le 12 mars 2014 Signaler Posté(e) le 12 mars 2014 Sinon, tu vires le test 'Jour/Nuit' pour l'instant, histoire d'isoler les problèmes ...
lolomail Posté(e) le 12 mars 2014 Auteur Signaler Posté(e) le 12 mars 2014 Bon j'ai fais les tests: - Le script de Shad, avec et sans check de la variable jour, que dalle cela ne marche pas - Mon script, j'ai viré les check pour vérifier les wallplug lors du off, cela a marché la premiere fois puis encombrement du reseau Z-wave j'ai du faire 2-3 reset et supprimer la scène, depuis cela va nickel. En meme temps apres enclenchement de la scène allumage / extenction le wallplug de la télé reporté 45w avec la télé allume quand normalement je tourne autour des 90w. J'avais déjà remarqué un relevé vizarre de conso lors des précédents test, puis celui ci devenait normal dès que je désactivé la scène. On dirait que quelque chose mets le souc. Bon je sens que je vais laisser poser quelques jours pour revenir plus tard dessus. 1
Shad Posté(e) le 12 mars 2014 Signaler Posté(e) le 12 mars 2014 Mon code marche pas ??? je ferais des tests demain. Promis je te rend sa fonctionnelle ^^
lolomail Posté(e) le 13 mars 2014 Auteur Signaler Posté(e) le 13 mars 2014 Nope il en fonctionne pas, j'ai aucun des messages de débug qui apparaisent même si je tire plus de 100W Milles merci Shad pour ton aide
guchtpi Posté(e) le 13 mars 2014 Signaler Posté(e) le 13 mars 2014 @Shad: Si comme le dit lolomail, aucun message n'apparait, c'est qu'il y a clairement un problème avec ton premier test: if ((sourceTrigger['type']=='property') and ( fibaro:getGlobalValue("Jour_Nuit") == "Jour" )) then D'alleurs, à quoi sert exactement la première expression ?
Shad Posté(e) le 13 mars 2014 Signaler Posté(e) le 13 mars 2014 Oui le problème c'est qu'il ne doit pas relever la consommation comme un trigger, je pense que le problème vient de sa. Mais j'ai pas eu assez de temps pour joué avec le wallplug, je vais testé dans la journée pour voir.
Messages recommandés