Aller au contenu

Hc2 & Hcl 4.082 Beta - 17/05/2016


jojo

Recommended Posts

Ton utilisation des VG en tant que compteurs expliquerait parfaitement pourquoi tu es celui qui a le plus de 503, et donc confirme un peu plus ma théorie.

Pour limiter les dégâts, tu peux déjà  remplacer ton setValue par un getValue() puis un "if" et enfin un setvalue().

 

Lzaer,

J'essaye d'avoir le code le plus rapide possible, car déjà  comme ça j'arrive à  un décallage de parfois 10s sur 60s.

Et passer par une variable locale, ça devrait être plus rapide, et je règlerais 2 problèmes en une fois ?

Lien vers le commentaire
Partager sur d’autres sites

Jojo non c'est pas ça.

Je comprends ton besoin d'avoir le code le plus rapide possible, car j'ai le même besoin.

Sauf que selon le contexte, la façon d'y arriver n'est pas la même.

 

Partons du postulat suivant :

- une écriture est 10 fois plus longue qu'une lecture (pour les chiffres exacts, se référer au benchmark de Steven, je n'ai plus les chiffres en tête)

- pour les calculs, on dira donc qu'une écriture prend 10 unités de temps, tandis qu'une lecture ne prend qu'une unité de temps

 

Prenons l'exemple suivant :

- une boucle tourne toutes les 10 secondes

 

Donc au bout de 1 minutes, j'ai fait 6 passages dans la boucle :

- Si la VG a été écrite à  chaque passage, j'ai donc consommé 10*6 = 60 unités de temps

- Si la VG est lue à  chaque passage, j'ai donc consommé 1*6 = 6 unités de temps (10 fois moins, c'est logique puisqu'on est parti du principe qu'une écriture est 10 fois plus longue qu'une lecture).

 

Maintenant pour optimiser son code, il faut savoir quelle est la fréquence (= quelle est la probabilité) que la nouvelle valeur de la VG soit différente à  chaque passage dans la boucle.

Si la probabilité = 100%, alors inutile de vérifier l'ancienne valeur de la VG, il vaut mieux écriture directement.

Si la valeur n'est modifiée qu'une seule fois durant un intervale de 1 minutes, alors il est intéressant de procéder à  la vérification préalable :

- 1 lecture de l'ancienne valeur de VG à  chaque passage de boucle => 1*6 = 6 unités de temps

- 1 seule écriture => 1*10 à  10 unités de temps

=> Soit un total de 6 + 10 = 16 unités de temps => gain de 60 - 16 = 44 unités de temps !!! C'est super intéressant en terme de performances, et ça limite l'usure de la Flash (1 écriture au lieu de 6), et on limite les risque de plantage du HCServer (error 503)

 

Je te laisse calculer le ratio exact de rentabilité à  partir duquel il devient intéressant de faire une vérification systématique de l'ancienne valeur de la VG (getValue) avant sa modification (setValue). Pour que le calcul soit exact, il faut prendre les résultats du benchmark de Steven pour avoir une estimation fiable de ce que j'ai appelé "l'unité de temps" dans cet exemple.

  • Upvote 4
Lien vers le commentaire
Partager sur d’autres sites

@Lazer,

Merci pour ton explication détaillée, PLEINE de bon sens.

Pour info, le workbench de Steven montre qu'on est 29 fois plus rapide en lecture, qu'en écriture. Tu faisait le postulat de 10 fois, et c'est donc encore plus important ce que tu viens d'expliquer.

Comme mes compteurs comptent le nbr de secondes par minute qu'un device est dans un certain état, chez moi c'est encore pire, car j'écris dans des VG toutes les secondes, puis toutes les min pour le compteur d'heure, et toutes les heures pour le compteur des jours.

(je soliicite donc la mémoire flash toutes les seconde => pas bon.)

La variable qui doit être mise àjour toutes les seconde, je vais la mettre en variable locale (au lieu de VG) et je vais laisser les autres en VG en rajoutant le test.

Lien vers le commentaire
Partager sur d’autres sites

C'est remarque de @lazer est aussi valable lorsque l'on actionne un relais je vérifie toujours avant l'état du relais cela prolonge ça duré de vie.

Si on veut pas ce prendre la tête on crée une fonction qui s'occupe de cela.

Envoyé de mon SM-G900F en utilisant Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

Juste une questions, nos VD fonctionnaient très bien avec toutes le versions précédentes, et làil faudrait réécrire tout les VD. c'est ca l'evolution pour vous?

et la prochaine mise a jour ou devra revenir avec nos précédant script?

Lien vers le commentaire
Partager sur d’autres sites

Alors làles gars vous êtes très précis dans vos devs et je ne peux que vous féliciter.

Mais c'est flippant de vous lire, en fait vous avez acquis des boxes pour vous faciliter la vie ou pour vous tordre de réflexions ?

C'est bien d'un côté mais un peu fou de l'autre.

Pensez vous qu'un produit àce prix justifie autant de précautions ou faites vous trop peu confiance au produit ?

C'est un peu comme si vous faisiez vos vidanges tous les 1000 kilomètres.

C'est pas un reproche au contraire. Mais il est bien que vous ayez autant de temps àoffrir àvotre box pour le reste de la communauté. Faites vous autre chose ?

Ce que je pourrais comprendre si je n'étais pas un peu de la partie, c'est que ce produit n'est pas fini ou totalement inaccessible au grand public, alors que Fibaro souhaiterait le contraire.

Enfin je vous laisse échanger car cela profite aux autres...

  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

Je pense un peu comme toi cap'tain... je trouve que je passe déjàbeaucoup trop de temps pour ma domotique... qui est sensée au départ... me faciliter la vie.

Quand je vois que certains passent des heures et des heures àchercher partout, refaire leurs VD, juste pcq la 082 merde sur un truc... au lieu de faire un rollback et attendre la suivante "stable" ... je le demande où ils vont chercher tout ce temps et toute cette motivation...

Alors, ok on rigole, on s'amuse sur le forum, c chouette, je m'amuse aussi, mais quand même, àun certain moment 'fo lever la pédale...

Sent from my Note4

  • Upvote 3
Lien vers le commentaire
Partager sur d’autres sites

Sa n'a strictement rien avoir avec la box ce que évoque lazer.

Vous pouvez prendre n'importe quel serveur, un code pas optimiser finira toujours pas crasher à  un moment ou un autre.

Est-ce que même vous imaginez le nombre d'écriture sur le disque en une heure, sa va pas favoriser le long terme de la box?

 

Alors franchement une box à  600€ pour gérer différent des scripts made in maison et contrôlez une maison, vous m'excuserez mais oui sa justifierais de faire attention à  ce qu'on fait.

C'est pas comme si c'était un serveur à  2000€.

En plus je vois pas vraiment de solution de fibaro pour vérifier ce qu'un utilisateur effectue comme requête sur en écrite, à  moins de m'être des limitations d'accès au global.

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Juste une questions, nos VD fonctionnaient très bien avec toutes le versions précédentes, et là  il faudrait réécrire tout les VD. c'est ca l'evolution pour vous?

et la prochaine mise a jour ou devra revenir avec nos précédant script?

En réalité, nos VD ne fonctionnaient pas très bien.... les 503 ne sont pas nouveaux et datent des toutes premières v4.

Sauf que la nouveauté introduite dans cette nouvelle version (suppression du process Router, et simplification de l'architecture) apporte du bon (meilleures performances, fin des fuites mémoires), mais a des effets de bord.... le principal étant d'amplifier encore plus qu'avant les 503. Mais je le répète, ce n'est pas nouveau.

Maintenant on est quasiment certain de l'origine (ou devrais dire d'une des origines possibles, jusqu'à  ce que Fibaro la corrige et qu'on en découvre d'autres.... :( ) sont des races conditions, c'est à  dire 2 process qui viennent modifier simultanément la même donnée.

 

Et à  lire les retours d'expériences des uns et des autres, cela confirme de plus en plus ce que je pensais et avait déjà  déclaré sur le forum : la qualité de notre code a une importance considérable sur notre box.

Et à  celui qui va me dire que c'est pas normal que notre box soit si "fragile" et ne sache pas traiter les cas d'erreurs, je suis bien d'accord, et le premier à  le dire depuis longtemps sur ce forum. Les devs de Fibaro sont des gros nuls, c'est un fait :(

Mais il faut faire avec, et adapter son code pour limiter les plantages, donc à  nous de coder le plus proprement possible. Cette remarque serait valable pour n'importe quel développement, et l'histoire de l'informatique montre bien que la qualité d'un code fait la stabilité d'une machine toute entière (souvenez vous les vieilles versions de Windows, qui plantaient lamentablement quand un seul programme bugguait. Heureusement cette période est révolue, mais elle a durée très longtemps (jusqu'à  l'apparition des noyaux NT pour les connaisseurs, que l'on a retrouvé sur les versions grand public à  partir de Windows 2000). Idem avec les premières versions d'Android d'ailleurs.

 

Ou alors on va voir ailleurs => de plus en plus de monde visiblement, vous avez surement raison :rolleyes:

Quand je vois Sebcbien qui a passé un temps fou également sur HC2, et qui passe maintenant (avec succès) sur Jeedom, j'admire sa motivation ;)

 

Alors là  les gars vous êtes très précis dans vos devs et je ne peux que vous féliciter.

Mais c'est flippant de vous lire, en fait vous avez acquis des boxes pour vous faciliter la vie ou pour vous tordre de réflexions ?

C'est bien d'un côté mais un peu fou de l'autre.

Pensez vous qu'un produit à  ce prix justifie autant de précautions ou faites vous trop peu confiance au produit ?

C'est un peu comme si vous faisiez vos vidanges tous les 1000 kilomètres.

C'est pas un reproche au contraire. Mais il est bien que vous ayez autant de temps à  offrir à  votre box pour le reste de la communauté. Faites vous autre chose ?

Ce que je pourrais comprendre si je n'étais pas un peu de la partie, c'est que ce produit n'est pas fini ou totalement inaccessible au grand public, alors que Fibaro souhaiterait le contraire.

Enfin je vous laisse échanger car cela profite aux autres...

Seb je suis globalement d'accord avec tout ce que tu dis.

J'ai choisi la HC2 car à  l'époque c'était la seule qui vendait du rêve (et surtout l'absence de cloud), mais la réalité est tout autre, comme tu le dis le produit n'est pas fini, et totalement inaccessible au grand public (mais ce dernier adjectif est valable pour la domotique tout entière, car ce n'est pas Jeedom ni Lifedomus ni <insérer ici votre box préférée> qui changent la donne)

Ce n'est pas la première fois que je dis que si je devais refaire une install domotique je partirais sur autre chose aujourd'hui.

 

Sinon oui je fais autre chose, et d'ailleurs je passe du temps sur le forum, mais je ne touche plus à  ma box depuis plusieurs mois (un ou 2 modules inclus récemment, mais aucun dev LUA depuis cet hiver). Et comme mon code est relativement propre, je n'ai pas besoin d'y toucher, ma box résiste assez bien à  ses propres bugs internes.

Tout au plus j'ai ajouté quelques lignes dans GEA pour affiner mes scénarios, liés aux nouveaux modules inclus ou à  nos habitudes de vie.

Au contraire, je profite plutôt bien de ma box domotique, par exemple il y a peu, un clic sur un bouton de VD a suffit pour passer en mode été et couper le chauffage (radiateurs électriques, pompe à  chaleur), donc c'est plutôt appréciable.

 

Bref, pas le courage pour l'instant d'aller voir ailleurs, car il faudrait tout refaire, et j'ai justement envie de profiter un peu de ma domotique et surtout j'ai autre chose à  faire en ce moment :)

 

Tiens... nouveauté de cette version, les scènes "non active" ne peuvent plus être exécutées manuellement (ou via GEA)...

En effet, ça avait été remonté par Fredric je crois, encore une nouveauté qui n'était pas dans le changelog....

  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

Sa n'a strictement rien avoir avec la box ce que évoque lazer.

Vous pouvez prendre n'importe quel serveur, un code pas optimiser finira toujours pas crasher à  un moment ou un autre.

Est-ce que même vous imaginez le nombre d'écriture sur le disque en une heure, sa va pas favoriser le long terme de la box?

 

Alors franchement une box à  600€ pour gérer différent des scripts made in maison et contrôlez une maison, vous m'excuserez mais oui sa justifierais de faire attention à  ce qu'on fait.

C'est pas comme si c'était un serveur à  2000€.

En plus je vois pas vraiment de solution de fibaro pour vérifier ce qu'un utilisateur effectue comme requête sur en écrite, à  moins de m'être des limitations d'accès au global.

Gros +1

 

C'est là  qu'on voit la valeur ajoutée d'un informaticien de métier.

Enfin surtout d'un développeur. Je ne suis pas développeur, mais j'en ai fait sufisament pour avoir les bases (et aussi savoir que je ne voulais pas en faire mon métier). Mais moi je fais de l'admin système+stockage, et je vois bien les systèmes qui fonctionnent mal, à  cause des applications mal codées (même sur des serveurs à  > 100k€ unitaire)

Pour une fois que la déformation professionnelle est utile.... :)

 

C'est un peu triste, mais aujourd'hui la domotique c'est une très grosse majorité d'informatique, et un tout petit peu d'électricité.

C'est le chalenge des constructeurs de proposer une offre domotique permettant de masquer totalement l'aspect informatique. Comme Apple a sur le faire avec ses iPhone. (vous savez que je n'aime pas leurs produits, mais ils ont apporté beaucoup pour le grand public non-informaticien).

En tout cas Fibaro en est très très très très loin, malgré un marketing d'enfer.

  • Upvote 3
Lien vers le commentaire
Partager sur d’autres sites

ca va quand même laisser des traces tout ca parce qu'ils commencent à  pas mal cumuler les conneries !!!

 

Je serais curieux de voir si cela a un impact sur leurs ventes (je l'espère en tout cas)

 

J'espère aussi qu'ils ont les reins assez solides financièrement parce que nous ne serions pas dans la m.... sinon !!!!

 

Quand j'achète un produit, je regarde d'abord sur les forums officiels du produit... je ne vois pas comment un nouvel acheteur pourrait se lancer sur cette boite en tout cas !!!

 

Moi qui suis en 4.070, je ne peux plus inclure de nouveaux modules en plus de mes soucis de latence. J'ai contacté le support. A suivre...

Lien vers le commentaire
Partager sur d’autres sites

Il semble (sans chiffres officiel à  donner) que les ventes de box Fibaro ont très fortement chuté, en tout cas en France.

Je suis persuadé que notre forum a fortement bénéficié à  Fibaro qui a vendu beaucoup de box grâce à  l'aide et les tutos qu'on y trouve.

Et je pense aussi que les plaintes d'utilisateurs leur nuisent. Je n'ai aucun problème avec ça, c'est à  Fibaro d'y remédier.

 

Ne t'inquiète pas pour leur santé financière, ils font leur marge sur les quantités astronomiques de modules Z-Wave.

 

Je m'inquièterais plutôt pour Connected Objects, qui risque de ne plus vendre beaucoup de box avec la concurrence de Jeedom. Ca pourrait bien finir comme Zodianet.

Lien vers le commentaire
Partager sur d’autres sites

Invité chris6783

Après mes travaux je pensais me relancer dans le dev de VD et autres intégrations pour faire plus que du basic.... Mais voilàma deuxième box gagnée sur le forum est toujours sous blister et je n'ai aucune envie de passer du temps a chercher comment contourner toutes les lacunes des dev polonais et éviter les champs de mines qu'ils produisent àchaque version (bêta ou non, même combat).

Je passe du temps sur les sites jeedom et lifedomus pour prendre du recul... Mais mon installation est en stand-by.... Environs 90 modules en prod et autant dans les cartons..... Va falloir réfléchir avant de décider où aller

Lien vers le commentaire
Partager sur d’autres sites

Mais j'ai pas compris Jojo, au final tu fais quoi exactement avec ça ? C'est pour gérer ?

@Nico, Ces compteurs (chaudière, circulateurs, pompe solaire) me permettent de grapher (min par minute) sur EmonCMS leur fonctionnement

post-1320-0-47966100-1464213375_thumb.jpg

@Chris6783, si tu veux t'en débarasser, je la veux bien, et je paye les fdp :D

Lien vers le commentaire
Partager sur d’autres sites

Je suis persuadé que notre forum a fortement bénéficié à  Fibaro qui a vendu beaucoup de box grâce à  l'aide et les tutos qu'on y trouve.

 

J'en suis tout aussi persuadé : imaginez quelques secondes que ce forum n'existe plus... où trouver les tutos, les VD, les toolkits, les conseils, les dépannages ? Pas chez Fibaro en tout cas ! (avec leur plugin Sonos à  pleurer)

 

Bon, il y aurait toujours les boutiques partenaires ....

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

@lazer je sais pas je parlerais sans info mais Connected Objects mais je vois bien une v3 cloudless ou un truc approchant.

Le point faible pour moi comme d'autres le cpu et la ram (matériel), aprèsdi côté software, oui le cloud assure une tranquillité pour certains la ou d'autres broie du noir et j'ai pas de pb avec ça j'ai eu les 2 solutions domotiques en prod total.

Apres eux comme jeedom font un gros travail d'intégration toutes normes et sur les modules en balance jeedom discute avec la communauté làoù Connected les as quelque peu abandonné (youhou fibaro).

Je suis comme toi au final la domotique grand public, mouais..

Et j'ai le même background que toi pour le côté métier.

Les produit vendus tout fait et fermés au possible genre somfy ou orange certes sont stables et encore! Ouf! mais monsieur et madame Michu feront pas le 1/4 de ce dont on discute ici.

Bref j'ai pas de boule de Crystal ni même la science infuse, mais la domotique c'est quand même un truc de passionnés et je vois pas le shift actuellement vers le tout public.

De l'eau va encore couler sous les ponts et des versions software et hardware aussi pour tous les constructeurs....

Envoyé de mon iPhone en utilisant Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

Jayce74 clairement, on est des pionniers, des défricheurs.

Comme ceux qui faisaient de l'informatique dans les années 80. Il a fallu attendre 20 ans pour que Mme Michu achète un ordinateur à  pas cher qui fonctionne bien du premier coup (euh.... c'est faux ce que je dis, les netbook à  pas cher des années 2000 c'était de la vraie m....)

 

Alors certes tout va plus vite aujourd'hui dans les nouvelles technos, donc il faudra peut être attendre moins de 20 ans avant que ça ne se démocratise, mais il est certain que le marché va être bouleversé par rapport à  ce que l'on connait.

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Bah oui les mecs, je ne cesse de le répeter : Ici c'est du powerusers !

Si vous vouliez le truc idéal, stable, propre etc, bah fallait prendre une box Somfy tout simplement !!! Et clairement, ici, cela aurait limité du monde. Mais 90% des personnes mettant en place de la domotique ne font pas plus que ce qu'une box Tahoma sait parfaitement faire aujourd'hui.

 

Dans tous les cas, pour en revenir à  notre sujet, s'ils règlent le souci du 503, cette version sera plutôt top !

Lien vers le commentaire
Partager sur d’autres sites

Bah pourquoi tu passe par des VG ? Pourquoi tu ne pousse pas direct sur emoncms ??

Je passe dans des VG pour comptabiliser le nbr de sec par min, le nbr de min par hr et le nbr d'hr par jour. Et min, hr, jour, je les pousse vers EmonCMS.

L'avantage de la VG, est qu'il autorise un arrêt de la scène ou de la box.

Je vais donc continuer à  travailler avec des VG pour le nbr de min par hr et le nbr d'hr par jour et avec des variables locales pour le nbr de sec par min.

 

Dans tous les cas, pour en revenir à  notre sujet, s'ils règlent le souci du 503, cette version sera plutôt top !

Si le problème du 503 est lié à  mes erreurs de programmation, quand je les aurai corrigées, ce sera en effet une excellent version de firmware pour moi. Je suis content de ces erreurs 503 qui ont permis de mettre en évidence mes non optimisations de mes codes (mais je ne suis pas développeur, très loin de là )

Lien vers le commentaire
Partager sur d’autres sites

En faite quand tu codes tu as quelque règles de base.

- faire le minimum de requête possible

- préférer le cache aux écritures dans la bdd (plus rapide, utilisation du disque réduite)

- une bonne indentation

- Commenté le code

- Encore Commenté le code

 

Donc en plus clair si tu codes, si tu dois sauvegarder des données dans des variables globales c'est à  la fin du code et on vérifie les valeurs avant, si ton code est dans une boucle c'est dans une locale que tu met à  jour.

Si tu dois faire des requêtes sur un équipement externe, essayer de n'en faire que une seule et vérifier les données que tu reçois.

Et commandé chaque portion de code.

 

Si déjà  tu appliques ces recommandations ce sera un bon début.

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...