Lazer 8 457 Signaler ce message Posté(e) 3 juin 2022 HC3 & HC3L - 5.111.48 - BETA - 03/06/2022 Thank you for using our gateway! Be sure to update to the latest version to enjoy new features and improvements. Main features: 1. Completely new and redesigned process of first gateway configuration in WebUi. 2. Added possibility to test newly added Z-Wave devices during first configuration. What's new: Dashboard Added possibility to use Hold (start move) and Release (stop move) actions on buttons in sidebar for roller shutters. Devices Device roles now visible on the Settings/Devices page. Added missing support for devices which works on HC2/HCL platforms. Added channel designation in the target device selector in Z-Wave association configuration. Slider for level change for roller shutter with role "Device without positioning" removed from control dialog in mobile application. Parameter names are now displayed for Z-Wave devices.** Improved virtual power consumption algorithm for Color Controllers. Elero* Improvements in pairing process. JA Pulse device support added. Nice* Changed default devices names to be more understandable. Improved calibration mechanism for BiDi-Shutter and BiDi-Awning. Improved error handling during pairing processes. UI improvements. Improved removal of disconnected devices. Other Device location (room) added to e-mail and push notifications templates. Updated system packages for performance and stability. Profiles Improved saving for actions in profiles. Quick Apps Added support for Headers in Websocket connections. Scenes Added possibility to rename scenes from within the open editor. Safeguards have been added to prevent incorrect values being entered in Scenarios conditions. Performance improvements related to loading elements in Block Scenes. Added translations for modes and actions for thermostats. Z-Wave Added background polling for sleeping devices**. Improved devices adding process. Updated SDK to v7.17.2 for Yubii Home and Home Center 3 Lite. Performance improvements. Bug fixes: Dashboard Redirection to specific device settings not always works correctly. Elero* Issue with controlling Awnings in some cases (reversed states and/or actions). Energy Wrong rounding up the percentage of summary consumption for devices list in Savings tab. Issue with "Rest" graph in Detailed Consumption graph in General Tab if main energy meter is set. Gateway Connection Empty Z-Wave device templates after downloading them from Slave gateway. Network Listing available networks not always works correctly if the currently connected network has poor quality. Nice* Added device summary shows default names instead of configured ones. It is impossible to control old revision of Era Fit BD and Next Fit BD devices. Inconsistent device renaming during adding wizard in case of different protocols. Other Duplicated scrollbar in WiFi search window. Every logging into the system using mobile application generates redundant events to History. Profiles Wrong unit for Sprinklers watering time. Rooms Drag and drop the rooms not always works correctly. Quick Apps Slider ignores min/max values from the API. Scenes Impossible to edit or create scenes using thermostats in Czech language in some cases. Missing favorite positions condition and trigger for Elero devices. Z-Wave ZW300 devices update fails in some cases. Global polling not always works correctly. Known issues: Z-Wave Engine 3.0 Some Z-Wave devices are not fully compatible with the new version of Z-Wave engine. Gateway connection is not available in the new Z-Wave engine version. * - does not apply to HC3L (Home Center 3 Lite) ** - applies only to Z-Wave Engine 3.0 3 1 Partager ce message Lien à poster Partager sur d’autres sites
ericl78 72 Signaler ce message Posté(e) 4 juin 2022 (modifié) Bon, courage, Mise à jour lancée :=) Mise à jour terminée RAS à l'exception d'un download firmware absolument lent Modifié 4 juin 2022 par ericl78 Partager ce message Lien à poster Partager sur d’autres sites
Lazer 8 457 Signaler ce message Posté(e) 4 juin 2022 Aucun souci pour ma part sur ma HC3 de test. J'ai presque envie de l'installer en production, car il y a un bug résolu qui m'embêtait pour les QuickApps : "Slider ignores min/max values from the API" Cette amélioration : "Z-Wave : Improved devices adding process" pourrait être intéressante pour l'inclusion des modules Qubino Fil Pilote... sait-on jamais, c'est à tester. Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 598 Signaler ce message Posté(e) 4 juin 2022 RAS pour le moment. Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 598 Signaler ce message Posté(e) 4 juin 2022 ah si ! les QA ne se rafraîchissent plus quand on clique sur leurs boutons (webUI et mobile). Mais l'action est réalisée. ça a déjà été relevé sur le forum officiel... Partager ce message Lien à poster Partager sur d’autres sites
ericl78 72 Signaler ce message Posté(e) 4 juin 2022 Il y a 5 heures, jjacques68 a dit : ah si ! les QA ne se rafraîchissent plus quand on clique sur leurs boutons (webUI et mobile). Mais l'action est réalisée. ça a déjà été relevé sur le forum officiel... Oui, la même chose chez moi, tu as raison Et si tu n'es pas admin, chez moi, il n'affiche plus les QA sur mon iPhone Partager ce message Lien à poster Partager sur d’autres sites
RHODITIS 12 Signaler ce message Posté(e) 4 juin 2022 Excellente surprise à la faveur de cette mise à jour : mes vieux thermostats SRT321 que j'utilisais de manière très satisfaisante avec la HCL, viennent de se remettre miraculeusement à retourner la température sur la HC3. Tout ce que j'étais parvenu à faire c'était de les faire fonctionner bien sûr mais la température retournée était celle du moment de l'inclusion, puis plus rien... Partager ce message Lien à poster Partager sur d’autres sites
Lazer 8 457 Signaler ce message Posté(e) 4 juin 2022 Il a toujours parfaitement fonctionné le SRT321 chez moi, c'est étrange ton comportement, l'inclusion s'était peut être mal passée ? @ericl78 ça par contre c'est très embêtant :( Du coup pas de mise à jour en prod, merci pour l'avertissement. Tu l'as bien remonté à Fibaro sur le forum ? Partager ce message Lien à poster Partager sur d’autres sites
RHODITIS 12 Signaler ce message Posté(e) 4 juin 2022 Trois SRT321, plusieurs inclusions avec toujours le même résultat : température immuable... En plus je n'ai rien dû faire pour qu'ils se remettent à vivre. Enfin tout est bien qui finit bien. Partager ce message Lien à poster Partager sur d’autres sites
Lazer 8 457 Signaler ce message Posté(e) 4 juin 2022 OK.... ça reste un grand mystère alors. En tout cas c'est résolu Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 598 Signaler ce message Posté(e) 4 juin 2022 (modifié) y a des trucs bizarre avec cette mise à jour un QA qui me posait jamais de soucis jusqu'à maintenant, et là : pas plus de détails, super... ... Modifié 4 juin 2022 par jjacques68 Partager ce message Lien à poster Partager sur d’autres sites
Lazer 8 457 Signaler ce message Posté(e) 4 juin 2022 Tu as bien protégé toutes les fonctions à risque avec un pcall() ? httpClient, json, etc 1 Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 598 Signaler ce message Posté(e) 4 juin 2022 bien vu @Lazer ! pas dans ce QA justement... et y a du HTTP y a plus cas... Partager ce message Lien à poster Partager sur d’autres sites
ericl78 72 Signaler ce message Posté(e) 17 juin 2022 Le 04/06/2022 à 13:27, jjacques68 a dit : ah si ! les QA ne se rafraîchissent plus quand on clique sur leurs boutons (webUI et mobile). Mais l'action est réalisée. ça a déjà été relevé sur le forum officiel... oui constaté aussi Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 598 Signaler ce message Posté(e) 18 juin 2022 (modifié) Le 04/06/2022 à 20:47, Lazer a dit : Tu as bien protégé toutes les fonctions à risque avec un pcall() ? je viens donner des news... ça fait donc 14 jours que j'ai protégé mon code avec des pcall(), mais visiblement ça plante, de temps en temps seulement, mais toujours sur la requête HTTP, et le pcall() ne fait rien ?? A moins que je m'y prenne mal, mais je pense pas, j'ai suivi ton tuto @Lazer... Ci-dessous ma fonction synthétisée pour l'exemple : function QuickApp:MaFonction() local status, err = pcall(function() self.http:request("http://...", { options={...}, success = function(response) fibaro.setTimeout(... MaFonction()) end, --appel en boucle tous les x minutes error = function(error) fibaro.setTimeout(... MaFonction()) end }) end) if not status then self:warning('error: ' .. json.encode(error)) end end et quand le QA crash, j'ai pas de message warning avec l'erreur. J'ai toujours : une idée ?? Modifié 18 juin 2022 par jjacques68 Partager ce message Lien à poster Partager sur d’autres sites
Nico 2 148 Signaler ce message Posté(e) 18 juin 2022 Migrer sur HC2 ? Partager ce message Lien à poster Partager sur d’autres sites
jang 225 Signaler ce message Posté(e) 19 juin 2022 (modifié) Il y a 17 heures, jjacques68 a dit : I come to give news... So it's been 14 days since I protected my code with pcall(), but obviously it crashes, from time to time only, but always on the HTTP request, and the pcall() does nothing?? Unless I'm doing it wrong, but I don't think so, I followed your tutorial@Lazer... Below is my synthesized function for the example : and when the QA crashes, I have no warning message with the error. I always have : an idea ?? Remove your pcalls and add this as a separate file in your QA do local function perror(...) fibaro.error(__TAG,...) end function copy(obj) if type(obj) == 'table' then local res = {} for k,v in pairs(obj) do res[k] = copy(v) end return res else return obj end end local httpClient = net.HTTPClient -- protect success/error with pcall and print error function net.HTTPClient(args) local http = httpClient() return { request = function(_,url,opts) opts = copy(opts) local success,err = opts.success,opts.error if opts then opts.timeout = opts.timeout or args and args.timeout end if success then opts.success=function(res) local stat,r=pcall(success,res) if not stat then perror(r) end end end if err then opts.error=function(res) local stat,r=pcall(err,res) if not stat then perror(r) end end end return http:request(url,opts) end } end local settimeout, setinterval, encode, decode = -- gives us a better error messages setTimeout, setInterval, json.encode, json.decode function setTimeout(fun,ms) return settimeout(function() local stat,res = pcall(fun) if not stat then perror(res) end end,ms) end fibaro.setTimeout = function(ms,fun) return setTimeout(fun,ms) end function setInterval(fun,ms) return setinterval(function() local stat,res = pcall(fun) if not stat then perror(res) end end,ms) end fibaro.setInterval = function(ms,fun) return setInterval(fun,ms) end function json.decode(...) local stat,res = pcall(decode,...) if not stat then error(res,2) else return res end end function json.encode(...) local stat,res = pcall(encode,...) if not stat then error(res,2) else return res end end end do local function perror(...) fibaro.error(__TAG,...) end local httpClient = net.HTTPClient -- protect success/error with pcall and print error function net.HTTPClient(args) local http = httpClient() return { request = function(_,url,opts) opts = copy(opts) local success,err = opts.success,opts.error if opts then opts.timeout = opts.timeout or args and args.timeout end if success then opts.success=function(res) local stat,r=pcall(success,res) if not stat then perror(r) end end end if err then opts.error=function(res) local stat,r=pcall(err,res) if not stat then perror(r) end end end return http:request(url,opts) end } end local settimeout, setinterval, encode, decode = -- gives us a better error messages setTimeout, setInterval, json.encode, json.decode function setTimeout(fun,ms) return settimeout(function() local stat,res = pcall(fun) if not stat then perror(res) end end,ms) end fibaro.setTimeout = function(ms,fun) return setTimeout(fun,ms) end function setInterval(fun,ms) return setinterval(function() local stat,res = pcall(fun) if not stat then perror(res) end end,ms) end fibaro.setInterval = function(ms,fun) return setInterval(fun,ms) end function json.decode(...) local stat,res = pcall(decode,...) if not stat then error(res,2) else return res end end function json.encode(...) local stat,res = pcall(encode,...) if not stat then error(res,2) else return res end end end Modifié 19 juin 2022 par jang 2 Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 598 Signaler ce message Posté(e) 19 juin 2022 @jang thanks I understand, but it's complicated for my basic original little function I will try this. Partager ce message Lien à poster Partager sur d’autres sites
Lazer 8 457 Signaler ce message Posté(e) 19 juin 2022 C'est assez simple (et génial) en fait ce que @jang te propose. Il redéfinie toutes les fonctions "à risque" de Fibaro dans un nouveau fichier du QuickApp. Donc à l'utilisation, ça ne change rien, tu continues à utiliser les fonctions normalement (sans t'embêter avec les pcall(), mais elles seront protégées par des pcall() quand même) Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 598 Signaler ce message Posté(e) 19 juin 2022 oui tout à fait ! L'idée est très bien ! c'est juste que si on commence a redéfinir les fonctions existantes, ça commence à faire compliqué Même si dans la réalité, le code original ne change pas... par contre ce que je comprends pas, c'est pourquoi les redéfinitions sont encadrées par un do end dans le fichier supplémentaire ? Partager ce message Lien à poster Partager sur d’autres sites
Lazer 8 457 Signaler ce message Posté(e) 19 juin 2022 En fait c'est plus simple. Puisque justement le code original ne change pas. Pour le do end, je suppose que ça sert à créer une closure pour limiter la portée des variables locales à cette closure (dès fois que ce code soit dans un fichier qui comprend plein d'autres choses) 1 Partager ce message Lien à poster Partager sur d’autres sites
jang 225 Signaler ce message Posté(e) 19 juin 2022 Forgot a 'copy' function in original post - added. 1 Partager ce message Lien à poster Partager sur d’autres sites
jang 225 Signaler ce message Posté(e) 19 juin 2022 Instead of do : end do local debug = true if debug then : end and set it to false when you found the bug 1 1 Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 598 Signaler ce message Posté(e) 19 juin 2022 (modifié) oulalala !! ça me donne plein d'idées ça Modifié 19 juin 2022 par jjacques68 Partager ce message Lien à poster Partager sur d’autres sites
henri-allauch 205 Signaler ce message Posté(e) 20 juin 2022 (modifié) J'avais lu qu'il était conseillé d'utiliser pcall avec json.encode, json.decode, httpClient ( c'est ce que je fait ) Mais j'ignorais pour setTimeout et setTimer Ils sont aussi dangereux ces deux là ? La solution de @jang semble bien Modifié 20 juin 2022 par henri-allauch Partager ce message Lien à poster Partager sur d’autres sites