-
Compteur de contenus
4 189 -
Inscription
-
Dernière visite
-
Jours gagnés
85
Tout ce qui a été posté par sebcbien
-
oui je les ai modifiés (le vd pour analyser les logs entre autres, je crois que tu connais ) J'ai corrigé, merci
-
voici ma réponse: ça ne peut pas faire de mal ;-) http://www.domotique-fibaro.fr/index.php/topic/6408-mise-%C3%A0-jour-rapide-des-virtual-devices-mais-faible-charge-sur-la-hc2/
-
Cet après midi, j'ai eu le support Fibaro qui s'est connecté sur ma box pour voir pourquoi elle plantait une fois par semaine.... "Coup de bol" elle a planté pendant que ils étaient occupé à regarder... Diagnostic: trop de requètes... Ah bon, cà d ? Vous avez trois Virtual device qui font du polling. Ah bon, lesquels ? les 1322 1458 et 1856 font des requêtes toutes les 3 secondes... Heuu... et c'est trop ? Essayez de diminuer pour voir... Bon, on va pas discuter de ça ici mais je me suis donc mis en tête de diminuer les requêtes. Effectivement on n'en a besoin que lorsque l'on regarde le VD, le reste du temps... ça tourne pour rien. J'ai donc cherché un moyen de pouvoir mélanger en même temps l'update rapide quand on regarde et l'update lent quand il dort. Pour l'update rapide, j'ai bricolé un truc avec un slider, qui me permet de demander un update unique ou de décider facilement d'une durée de mise à jour. - si on clique sur le slider entre 0 et 10, ça fait une mise à jour unique - si on clique sur le slider entre 10 et 99, ça lance une série de 89 updates à une fréquence définie dans le script du slider - Si 89 updates ne suffisent pas, il y a un "multiplicateur" qui permet de multiplier les 89 updates par ce que l'on veut. 10 donne 890 updates... - Si on change le nombre d'updates automatiques, ou que l'on passe en manuel, l'instance s'arrête et une autre commence avec les nouvelles valeurs. Votre code à rafraîchir lors de chaque loop est à mettre dans la fonction refresh_datas à la ligne 20 Pour l'update lent, via mainloop, j'utilise un bout de code de @steven (encore lui) ;-) qui me semble être particulièrement bien foutu et qui ne charge pas la box. le main loop simule un clic sur le slider en position 1. mais cela ne perturbe pas le décompte automatique s'il y en avait un en cours. Voici à quoi ça ressemble: Je vous ai même concocté tout ça dans un vfib rien que pour ne pas vous fatiguer V1.1: Fast_Updates V1.1.vfib Et voici les scripts: Script du slider: local selfId = fibaro:getSelfId() local ValeurSlider = _sliderValue_ --fibaro:getValue(selfId, "ui.Slider1.value") local sleepAndcheckslider, ValeurSliderBeforeSleep, ValeurSliderSleep, multiplier_loop, lastCheck, position local multiplier = 4 -- number of slider value (10 to 99) so 89 values max. To have 356 loops, set multiplier to 4 local sleepBetweenUpdates = 200 -- 1000 = +- 1 second waiting time between each refresh_datas -- Put your refresh code in the function refresh_datas (line 84) sleepBetweenUpdates = sleepBetweenUpdates/50 function getSlider() ValeurSliderfunct = fibaro:getValue(selfId, "ui.updateauto.value") return tonumber(ValeurSliderfunct) end function setSlider(position) fibaro:call(selfId, "setProperty", "ui.updateauto.value", position) -- fibaro:call(selfId, "setSlider", 25, position) -- set and execute return getSlider() end function refresh_datas() ------------------------------------ YOUR CODE HERE ----------------------------------------- fibaro:call(selfId, "setProperty", "ui.example.value", os.date("%d/%m/%y %H:%M:%S")) ----------------------------------- END OF YOUR CODE ---------------------------------------- end if ValeurSlider == 1 then -- Main loop refresh refresh_datas() fibaro:debug("Main loop refresh at "..os.date("%d/%m/%y %H:%M:%S")) lastCheck = "Last Update: " ..os.date("%d/%m/%y %H:%M:%S") fibaro:call(selfId, "setProperty", "ui.updateStatus.value", lastCheck) end if (ValeurSlider < 10 and ValeurSlider > 1) or (ValeurSlider == 0) then -- Manual refresh ValeurSlider = setSlider(0) fibaro:call(selfId, "setProperty", "ui.updateStatus.value", "Updating Once") fibaro:debug("Manual refresh at "..os.date("%d/%m/%y %H:%M:%S")) refresh_datas() lastCheck = "Last Update: " ..os.date("%d/%m/%y %H:%M:%S") fibaro:sleep(1000) fibaro:call(selfId, "setProperty", "ui.updateStatus.value", lastCheck) fibaro:sleep(1000) end ValeurSlider = getSlider() while ValeurSlider > 10 do -- Automatic refresh setSlider(ValeurSlider) multiplier_loop = 0 while multiplier_loop < multiplier do refresh_datas() multiplier_loop = multiplier_loop + 1 fibaro:call(selfId, "setProperty", "ui.updateStatus.value", "Updates left: "..((ValeurSlider*multiplier)-(10*multiplier))) sleepAndcheckslider = 0 ValeurSliderBeforeSleep = ValeurSlider --fibaro:debug("Silder Value before sleep: " .. ValeurSliderBeforeSleep) while sleepAndcheckslider <= 50 do fibaro:sleep(sleepBetweenUpdates) ValeurSliderSleep = getSlider() if ValeurSliderSleep == 1 then -- if it's the VD main loop pushing the slider, ignore and set value before ValeurSlider = ValeurSliderBeforeSleep setSlider(ValeurSlider) end if ValeurSliderSleep ~= ValeurSliderBeforeSleep then multiplier_loop = multiplier ValeurSlider = 1 end -- chack if slider value not changer between wait (to avoid multiple instances) sleepAndcheckslider = sleepAndcheckslider+1 end end ValeurSlider = ValeurSlider - 1 if ValeurSlider == 10 -- 3600 = 2h then fibaro:debug("End of automatic refresh at "..os.date("%d/%m/%y %H:%M:%S")) ValeurSlider = setSlider(0) lastCheck = 'Last Update: ' ..os.date("%d/%m/%y %H:%M:%S") fibaro:call(selfId, "setProperty", "ui.updateStatus.value", lastCheck) end end Script main loop: -- FAST UPDATES by sjauquet -- V1.1 13/11/2015 --local Verification = fibaro:get(selfId,"TCPPort") -- 1ère fois que le main loop s'exécute, on crée une variable nommée "instance" car elle n'existe pas. Elle existera au 2ème passage donc ne sera pas recrée. if (not instance) then -- on indique la fréquence d'execution souhaitée (en minutes) instance = { lastrun = 0, every = 1 } fibaro:debug("first run") end -- on vérifie la différence entre cette exéction et la dernière (stocké dans instance.lastrun) diff = os.date("*t", os.difftime(os.time(), instance.lastrun)) -- si la différence en minutes et supérieure ou égale à la fréquence souhaitée (instance.every) if (diff.min >= instance.every) then -- TON CODE --- local selfId = fibaro:getSelfId(); local position = 1; fibaro:call(selfId, "setSlider", 2, position); -- set and execute -- FIN DE TON CODE --- -- on stock l'heure de la nouvelle exécution instance.lastrun = os.time() fibaro:debug("executed") end
-
Tu dois d'abord apprendre ce que c'est gea... Tu ne peux pas mettre ta ligne comme ça n'importe où. Regarde dans ma signature, showroom gea et de la tu trouvera des exemples et un lien vers le fil du support gea. Sent from my Note4
-
C'est la faute de fibaro, une update qui n'est pas trop foireuse, on s'ennuye... et ça part en Coui**es
-
On l'appelle IKÉA 1) Elle est suédoise. 2) Elle est bon marché. 3) Tu peux la ramener chez toi de suite. 4) Et tu peux la monter en 10 min... :-)
-
Très facile avec gea avec les options {time,...,...} Sinon en.mode block je ne pense pas que l'on peut envoyer le contenu d'une vg via un push Sent from my Note4
-
Et moi je suis mieux que benjynet. Et mon papa il est gendarme ! Na ! :-p Sent from my Note4
-
cool :-)
-
PresentState me permet de savoir dans quel mode est ma maison et de l'utiliser un peu partout, par exemple dans gea: http://www.domotique-fibaro.fr/index.php/topic/2143-showroom-configs-gea/#entry27457 Mais ce sont mes etats, pour mes besoins... A toi de définir les iens, comment les nommer et les utiliser. ici le derner script ça me permet de savoir quel est l'état actuel de la maison et l'état précédent. je peux donc pousser la météo sur les smartphone uniquement au réveil quand on désactive l'alarme.C'est un plus, ce n'est pas obligatoire.
-
Moi je veux bien un bon retour objectif sur lifedomus d'un ex de fibaro. Y a t'il gea par exemple ? Nan je rigole, mais au moins tu sais ce qu'est gea...
-
voici la réponse de fibaro... Je m'en doutais un peu que ce sont surtout les requètes externes et ces vérification trop fréquentes que la box aime pas. Ca ne devrait pas mais bon, j'espère qu'ils vont améliorer ça dans le futur... Dear Sir, The reason of 503 error may be a few. Mostly the cause is to much traffic in the Z-wave network. Please check the following things: - LUA scenes, the most important are infinity loops in scenes. The infinity loop should perform for example every minute - Virtual devices, the same situation as in LUA scenes - frequency of sending reports from devices to the Home Center, for example temperature reports, energy reports, etc - polling time intervals, wake up time intervals Please check virtual devices, scenes and modules parameters and reduce move in your network Best regards
-
edit: OK my bad, il y a une boucle if then de plus heuu le lua se fout royalement des tabulations... dans lepremier script le break est juste après fibaro:call(jsonTable[device].id, "turnOff") end break mais dans le 2e il est un end plus loin... fibaro:call(selfID, "setProperty", "ui.Lum"..compteurLumieres..".value", jsonTable[device].name .. " ("..jsonTable[device].id..")") end end break
-
il est bien placé là pour toi lazer ? pcq jojo l'aplacé à deux endroits différents dans "analyse" et "tout éteindre" moi si je le met là : il ne m'éteint que les wall plug et fgs (or jojo n'a que ça et ne sais pas tester les dimmer...) if jsonTable[device].interfaces[interface] == "light" then local DeviceValue = tonumber(jsonTable[device].properties.value) if (DeviceValue and DeviceValue > 0) or (jsonTable[device].properties.value == "true") then --fibaro:debug(" id: "..jsonTable[device].id.." is "..jsonTable[device].name.." type: "..jsonTable[device].interfaces[interface]) --fibaro:debug(" value: "..jsonTable[device].properties.value..". Turning Off") fibaro:call(jsonTable[device].id, "turnOff") end end break end end ... si je le met là , tout s'éteint, même les dimmer, mais l'utilité me semble très réduite if jsonTable[device].interfaces[interface] == "light" then local DeviceValue = tonumber(jsonTable[device].properties.value) if (DeviceValue and DeviceValue > 0) or (jsonTable[device].properties.value == "true") then --fibaro:debug(" id: "..jsonTable[device].id.." is "..jsonTable[device].name.." type: "..jsonTable[device].interfaces[interface]) --fibaro:debug(" value: "..jsonTable[device].properties.value..". Turning Off") fibaro:call(jsonTable[device].id, "turnOff") end break end end end
-
@Sakkhho, pour comprendre ce qu'il y a de nouveau, c'est ici: http://www.domotique-fibaro.fr/index.php/topic/4251-voir-si-une-lumi%C3%A8re-est-allum%C3%A9e-et-tout-%C3%A9tindre/page-10#entry95115
-
@jojo , tu as laissé le break exactement au même endroit que moi, il y a juste des tabs en moins ;-)
-
Tout marche nickel pour moi. Je n'ai pas essayé les VG. Merci lazer !! Sent from my Note4
- 228 réponses
-
Constaté quoi? Sent from my Note4
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
moi depuis que je suis en V4, ma box plante +- 1 fois par semaine, aléatoirement Quand je vais voir la box, aussi, les 3 leds sont là quand j'essaye de me connecter sur la page login, il me met "password or login error" Si je vais direct dans une page (devices ou maintenance par exemple) Jai la page qui s'affiche, le layout etc mais tout est vide, même le boton restart me met un avertissement si je clique dessus mais derrière rien ne se passe un firebug me donne ces deux erreurs: info and loginStatus returned a 502 error je clique sur le bouton derrière la hc2 , toutes les leds s'allument puis il reste une lampe (la 2e je crois, puis plus rien) ça commence à me casser les C.... adieu la stabilité de ma 3.6
-
Note pour plus tard: A la réflexion, le break là ou je l'ai mis n'a pas beaucoup de sens et à mon avis ne sert pas à grand chose. Là ou Lazer l'a mis c'est plus logique, ... mais ça ne fonctionne pas... (chez moi en tt cas) Moi j'ai fini pour aujourd'hui avec la domotique, demain c la rentrée A creuser donc...
-
oui j'ai appris quelque chose avec ce break ok le break ! (petit rappel pour ceux qui on connu la CB )
-
Topic unique Thermostat Netatmo
sebcbien a répondu à un(e) sujet de Domodial dans Périphériques et matériels autres
je crois qu'il faut prendre le user limit, soit 500 mais ça me semble encore beaucoup. -
Topic unique Thermostat Netatmo
sebcbien a répondu à un(e) sujet de Domodial dans Périphériques et matériels autres
2000 ?? Je me souviens de bcp moins. Si c 2000 oui il y a de la marge. De tout façon les données ne sont mises àjour que toutes les 5 minutes... Ça ne sert àrien de "poller" toutes les 30s. Et même avec 5 min j'arrivais àdépasser la limite. Bizarre Sent from my Note4 -
Topic unique Thermostat Netatmo
sebcbien a répondu à un(e) sujet de Domodial dans Périphériques et matériels autres
Oui je me souviens avoir diminué la fréquence du plugin netatmo de fibaro (j'ai deux thermostats et une station météo )... Ça faisait beaucoup et netatmo refuse ensuite les connections pendant 1h Sent from my Note4