Aller au contenu

Lazer

Administrateur
  • Compteur de contenus

    25 849
  • Inscription

  • Dernière visite

  • Jours gagnés

    1 254

Tout ce qui a été posté par Lazer

  1. Lazer

    Bug MAJ slider

    @Franco268 j'ai bien compris ce que tu voulais faire, mais après une étude plus attentive de ton screenshot, et en fait surtout grâce au second, je me suis rendu compte qu'il est complètement foireux ton screenshot. Pardon, mais je ne sais pas comment le dire autrement. Car il montre clairement le slider sélectionné, avec la zone à droite qui est censée être les propriétés du slider, mais en fait non, puisque tu as fait un montage pour le mettre à gauche, avec les propriétés du boutons qui sont recollées par dessus à droite. De quoi devenir fou !! Du coup tu peux suivre les indications de @jang
  2. Lazer

    Icone FGCD-001

    Ceux fournis par Fibaro sont en 192x192 pixels, mais ceux chargés par les utilisateurs sont toujours limités à 128x128, va comprendre la logique...
  3. Lazer

    Icone FGCD-001

    OK, alors voici Mais ce sont les icônes de la HC3, légèrement différentes de celles sur HC2.
  4. Lazer

    Icone FGCD-001

    Clic droit => ouvrir l'image dans un nouvel onglet, puis tu l'enregistres sur ton disque. Encore plus simple, l'enregistrement directement depuis le menu contextuel :
  5. Lazer

    Fronius

    Si tu veux faire une opération mathématique, il y a plus simple, il suffit de mettre le signe - devant, encore plus efficace que la multiplication. Mais ces 2 solutions ne sont pas bonnes, car si le nombre est positif, ça donnera un nombre négatif en sortie. C'est donc bien math.abs() qui renvoie la valeur absolue, donc un nombre positif, en toutes circonstances. Ou bien si on ne veut pas appeler une fonction externe, on peut le faire avec un simple if pour tester si le nombre est négatif, alors renvoyer -nombre, else renvoyer nombre.
  6. Lazer

    Fronius

    En LUA avec la fonction math.abs()
  7. Lazer

    Fronius

    Oui OK. Sinon c'est un détail ici, mais en PV, le taux d'autoconsommation et le taux d'autonomie sont 2 statistiques bien distinctes.
  8. Lazer

    Bug MAJ slider

    Oui tout est possible. Ce que je dis, c'est que ce que tu as partagé au 1er post ne peut pas fonctionner, il faut appeler le slider par son vrai nom. On dirait que tu confonds le bouton et le slider... car c'est pas normal d'appeler ton slider "A" : D'ailleurs il y a un autre problème, dans ton message précédent du parles du clique sur le bouton, et dans le screenshot on voit que la fonction OnReleased est appelée par le slider, pas par le bouton.
  9. Lazer

    Fronius

    Un multilevelsensor avec la propriété unit configurée sur % par exemple Ou alors, tu exploites la propriété batterylevel de l'un des QA existants (parent ou enfant), mais ça ne sera pas très juste, puisque cette propriété, bien que contenant un pourcentage, est censée contenir un niveau de batterie, pas d'autre chose.
  10. Non, seulement les variables globales en sein du code LUA. Par opposition aux variables de type "local" et définies comme telles dans le code LUA, et dont la portée est la fonction ou la boucle en cours d'exécution. Revoir ce bon vieux tuto : Et pour voir un exemple pratique d'utilisation de _G :
  11. Attention à la confusion des termes, _G c'est la super variable globale de type table, mais qui n'indexe que les variables globales en LUA ! Dans ce cas, "globale" s'entend sur la portée (scope) du code LUA en cours d'exécution. La demande de @TitiXsi concerne les variables globales de la HC3 qui sont accessibles avec les fonction getGlobalVariable et setGlobalVariable, et stockées de façon persistantes dans la DB. Une astuce qu'on utilise depuis la HC2, c'est de stocker un JSON dans la variable globale, donc tu peux utiliser json.encode et json.decode avant/après l'écriture et la lecture de la VG. Il y a quelques exemples sur le forum. Ou alors, tu stockes simplement tes ID de portage dans une VG, séparés par des virgules, puis tu utilises une fonction split() pour décomposer la string en une table.... seul souci, la fonction split n'existe pas en LUA, mais tu trouveras des exemples sur le forum, sur Internet, ou bien dans ma librairie tools qui est intégrée à quasiment tous mes Quickapps.
  12. Lazer

    Bug MAJ slider

    C'est quand même étonnant, je viens de faire le test avec l'un de mes QuickApps MusicCast, et le slider fonctionne bien dans la vue Web, ainsi que dans l'application mobile Yubii (qui affiche également la même vue Web, car c'est littéralement une Webview) Tu dois avoir un autre bug quelque part !?! D'ailleurs, si c'est ton code LUA du 1er post associé à ta capture d'écran, c'est normal, car tu appelles la fonction sur l'élément "slider" alors que ta capture d'écran montre qu'il s'appelle "A".
  13. Lazer

    Bug MAJ slider

    étonnant, en tout cas ça fonctionnait bien "avant" comme ça, avec le correctif proposé. "avant" = quand je faisais du développement sur la HC3. Les sliders, j'en ai uniquement dans mes QA Kodi, MusicCast, et Roborock, et ça fonctionnait bien. Pas testé récemment, car en pratique je n'utilise pas les sliders, une télécommande pour controler le volume c'est quand même plus ergonomie que de chercher son téléphone, le déverrouiller, se faire éblouir, perdre le fil du film en cours, et enfin changer le volume. Question d'usage
  14. Lazer

    Bug MAJ slider

    Il y avait bien un bug pour le slider il y a 3 ans, peut être est-ce toujours le cas : https://forum.fibaro.com/topic/49113-hc3-quickapps-coding-tips-and-tricks/page/19/?tab=comments#comment-206686 Dans ce cas, ce n'est pas être pas un bug, mais un comportement voulu. Il faut donc faire le updateView dans le code LUA de la fonction onReleased.
  15. L'aventure continue
  16. Effectivement ça doit être super long de tresser tous les brins de cuivre souple un par un avant de les mettre sous gaine Elles sont coudées tes fiches bananes à l'arrière de l'ampli ? Je ne savais même pas que ça existait, mais c'est top.
  17. Lazer

    Z-Wave Engine 3.0 ou 2.0

    QA = QuickApp
  18. Lazer

    Z-Wave Engine 3.0 ou 2.0

    Je pense que c'est le "retour aux paramètres d'usine" qui permettra de déclencher le recovery... comme une box neuve, tu devrais ensuite avoir l'assistant de configuration d'une nouvelle installation. Et à un moment donné, il faudra choisir le moteur v2.... désolé je n'ai jamais vu cet écran (n'existait pas encore quand j'ai eu ma box), et je n'ai jamais vu de screenshot non plus... D'ailleurs tu pourras en faire un si tu veux bien
  19. ça a fait le tour du Web cette news Moi j'aime bien la dernière conclusion. Après y'a autre chose aussi, c'est en Allemagne, pas sûr que ça puisse passer en France : - si c'est fixé > 1,80m => demande de travaux - la plupart des copro refusent la modification de la façade => accord syndic - la loi interdit les pots de fleurs suspendus au dessus du vide => panneaux à fixer de l'autre coté de la rambarde, du mauvais coté par rapport au soleil quoi
  20. Vous vous êtes donc bien donné le mot pour autant de syncho dans la demande (à 4 minutes près, était-ce nécessaire de créer 2 topics distincts ?) Du coup je renvoie ici car @flacon030 a été plus rapide :
  21. Lazer

    Z-Wave Engine 3.0 ou 2.0

    Voir ce message : Impossible de basculer d'une version à une autre, obligé de passer par un recovery complet, ré-inclusion de tous les modules, recréation des scènes, adaptation des ID des modules, etc. Bref, une installation neuve.
  22. Lazer

    Les tableaux de variables

    Oui et .... non ! Ce qu'il a fait est très bien, le code LUA du bouton "décode" le nom du bouton, pour en extraire l'info utile et appeler un tableau de fonction. Sa logique est bonne, c'est sur la mise en oeuvre qu'il a fait une faute de syntaxe (et globalement sa gestion des tableaux est perfectible) C'est la technique que j'ai employé dans certains de mes QA (Kodi et MusicCast je crois) afin de factoriser le code et ne pas multiplier les codes LUA répétés dans les boutons.
  23. Lazer

    Les tableaux de variables

    Dans le code de ton premier message, je pense que c'est plutôt un truc comme ça que tu voulais faire : hub.setGlobalVariable(_G[name].ValeurVoletFraicheur, tostring(value)) Même si je ne suis pas fan de l'utilisation d'un tableau déclaré en variable globale, c'est un détail... Tu ne pouvais pas simplement utiliser name comme un tableau, puisque c'est une chaine de caractère, donc indexer son élément ValeurVoletFraicheur est impossible. Du coup name qui doit servir d'index à _G, qui est la super variable globale de type tableau qui contient toutes les variables globales de ton code.
  24. Tu n'es pas obligé de suivre mon tuto à la lettre, disons que j'ai partagé tel que je l'utilise chez moi, ça me convient en tout cas. En pratique, comme dit, même si la HC3 demande l'arrêt de l'enregistrement forcé, SS peut très bien décider de continuer à enregistrer malgré tout, selon sa propre logique interne (dépendante de la façon dont on l'a configuré et des événements qui se produisent devant la caméra)... sachant en plus que la détection de mouvement peut être effectué par la caméra elle-même (si supporté) ou bien par SS lui même par analyse d'image. En plus j'ai une veille version de SS, je ne serai pas surpris qu'il y ai de nombreuses nouveautés dans les versions plus récentes. En ce qui concerne la syntaxe de GEA, normalement ça se passe sur le topic dédié. Heureusement, les value "0" et "1" n'existent plus sur HC3, c'était un truc tout pourri codé à l'arrache par Fibaro sur la HC2. Maintenant les devices prennent des valeurs qui respectent les standard du JSON, donc true ou false (booléen) dans le cas d'un détecteur binaire (ce que sont les modules enfants créés par ce QA, chaque module enfant représente l'état d'enregistrement d'une caméra) C'est donc "Value", "true" ou "false" que dois utiliser dans les conditions de GEA. Ce sujet a été maintes fois abordé tant il a perturbé les utilisateurs venant de la HC2 et ayant pris les mauvaises habitudes (encore une fois, à cause de Fibaro...)
  25. ta ligne GEA est bizarre... déjà mettre un "turnOn" dans les conditions, ce n'est pas très "humainement" lisible, car pas logique du coup. C'est une action normalement... Tu veux faire quoi en fait ? En ce qui concerne l'enregistrement forcé, il faut bien comprendre la logique de fonctionnement de Surveillance Station. Quand j'écris ceci : fibaro.call(ID, "turnOff") => Stoppe l'enregistrement forcé d'une caméra ça veut dire ce que ça veut dire, c'est à dire que ça stoppe l'enregistrement forcé. Je le met en gras pour appuyer l'importance du mot. Donc ça ne veut pas dire que ça stoppe inconditionnellement l'enregistrement de la caméra, car SS peut très bien décider de continuer l'enregistrement si par exemple l'algorithme a détecté un mouvement et qu'il est configuré pour enregistrer en cas de détection de mouvement. Donc tout dépend du paramétrage effectué dans SS.
×
×
  • Créer...