Aller au contenu
Lazer

Quick App - GCE Electronics IPX800 v4 et EcoDevice RT2

Recommended Posts

Oui pareil, j'ai vu ce n'est plus possible... J'ai ouvert un sujet sur le forum officiel, mais la réponse apportée pour l'instant ne laisse que peu d'espoir....


Va encore falloir modifier le code du QA... J'espère que tu n'es pas pressé...

Partager ce message


Lien à poster
Partager sur d’autres sites

non je ne suis pas pressé, c'est déjà super que des personnes comme vous fasse le nécessaire pour que cela puisse fonctionner.

Je serais bien mal placer pour me plaindre

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

Je me (re)greffe à ce sujet car je vais probablement investir dans un kit photovoltaique afin de faire de l'autoconsommation, et souhaite optimiser ma consommation à l'aide de mon RT2 et box fibaro, mais avant tout j'ai quelques questions et aimerais votre avis éclairé!

Ma première concerne ce qui se passe côté RT2 :

image.png.505b4aeda054f0c257c7337975840e30.png

1°/ Je suis étonné que la valeur sous le TIC compteur soit exprimé en W, alors qu'il s'agit sur mon linky de KVA dans la catégorie PUISS APP SOUTIR (avez-vous ce "léger" problème ou me suis-je trompé dans la configuration du GCE? En revanche, le tarif de ma consommation (ici 2,01) semble bon puisque calculé depuis mon index téléinfo. Dans le QA développé par Lazer, j'ai bien le retour de la puissance apparente (value), éventuellement utilisable pour du délestage, et la puissance en W : est-ce que cette dernière est calculée depuis l'index de la téléinformation / temps de rafraichissement? En d'autres termes, est-elle une valeur fiable sur laquelle s'appuyer pour optimiser à l'avenir ma consommation / production?

 

2°/ Côté RT2, autre point fâcheux : j'ai des tores de mesures (pas sur tous les circuits de la maison mais presque..), et la puissance affichée ici (909W) est sensé prendre en compte le cos phi, mais visiblement il applique un cos phi "moyen" mesuré au niveau du linky, et l'applique sur les tores en question. Il en résulte que cette puissance est très approximative (ex de ma plaque induction qui retourne une puissance de 150w en veille...), d'ailleurs le tarif (2,35€) est supérieur à celui calculé au dessus, alors qu'encore une fois tous les circuits ne sont pas mesurés.. Avez-vous ces mêmes aberrations? Est-il possible de corriger ce point car je compte m'appuyer également sur 1 tore pour mesurer ma production future (à moins qu'il y ait une autre solution?)?

 

3°/ Enfin, côté QA Fibaro : mon Total energy use est figé à 22,6kWh, une idée de comment résoudre ce problème?

 

Merci d'avance pour ces réponses!

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour tes différentes questions sur l'utilisation et la configuration de l'Eco Devices RT2, le mieux est surement de poser la question sur le forum officiel, il y a quelques experts qui maitrisent très bien l'engin.

 

Dans mon QA, si tu remontes la téléinfo, je te confirme que le QA calcule bien les "vrais" Watts, c'est à dire la puissance active, et qu'il stocke la valeur dans la propriété "power" du QuickApp.

La propriété "value" contient la puissante apparente en VA remontée par le Linky, effectivement peu utile car non facturée, sauf si on veut faire du délestage.

Et la propriété "energy" contient le cumul des index (base, HC, HP, etc si tu as un tarif modulé), il ne cesse de croitre avec le temps.


Cependant, je vais devoir changer ça... voir discussion avec @flacon030 justement, suite au nouveau firmware Fibaro, il va falloir s'adapter à la nouvelle façon qu'à la box de gérer les modules qui remontent une consommation électrique, en liaison avec le panneau d'énergie.

Je n'ai pas encore pris le temps de réfléchir à comment réorganiser les informations remontées.

 

3/ Je n'ai pas compris cette question ?!?

Partager ce message


Lien à poster
Partager sur d’autres sites

Je vais effectivement demander demander sur le forum officiel, je voulais surtout savoir si vous aviez les mêmes soucis.

Pour la question 3/ : la propriété énergy reste bloquée à 22,6, en gros elle n'évolue pas.. Du coup je me dis que le problème doit être du côté RT2, du côté du cumul des index..

 

Je comprends que @flacon030 fait de l'autonsommation et cherche à optimiser sa consommation, mais pour ce faire il doit bien avoir des tores sur sa production photovoltaïque (et peut-être ailleurs, sur différents poste de conso?), j'aimerais savoir comment il fait pour les imprécisions de mesures (les W retournés par les sous-postes concernés par des tores sont visiblement des puissances apparentes kvA, ou des W (si l'option cos-phi est activée) mais dans ce cas les valeurs remontées semblent erronées lié à ce que j'ai mentionné dans le point 2/?

Partager ce message


Lien à poster
Partager sur d’autres sites

OK, mais comme je te l'ai indiqué, cette propriété energy reflète exactement l'information donnée par l'EcoDevice. Tu peux voir dans le log du QA ce qui se passe d'ailleurs.

Donc les questions à te poser sont :

- est-ce que cette valeur varie sur l'EDRT2 mais pas sur le QA => Alors le bug est dans mon QA (et il me faudra les logs détaillés avec debug=true)

- est-ce que cette valeur ne varie pas sur l'EDRT2 => le "problème" se situe bien sur l'EDRT2, si problème il y a, car c'est peut être juste une erreur de configuration.

 

Le QA reprend bêtement les données mises à disposition par l'EDRT2 via son API HTTP.

Donc tu peux utiliser cette API pour voir les informations sur ton navigateur Web, avant même de configurer ce QuickApp, comme c'est indiqué en première page avec les liens vers les API respectives de l'EDRT2 et de l'IPX800.

 

 

Pour le Cos Phi je ne sais pas, mais j'ai eu un souci similaire sur l'IPX800, dont les pinces font la mesure sans prendre en compte le Cos Phi.

Pour "calibrer" la mesurer, j'ai fait un montage temporaire pour mesurer la charge avec un Wall Plug car il mesure la vraie puissance active en Watts.

Ensuite j'ai pris la mesure des pinces en VA, fait la division, et j'ajuste la mesure avec ce coefficient. Dans l'IPX800 avec la formule de la valeur analogique, et dans le QA avec le paramètre formula = function(value) ... end

Et je recommence pour les autres pinces.

Partager ce message


Lien à poster
Partager sur d’autres sites

Comme je n'ai pas de formule analogique dans le RT2 pour corriger la mesure, tu suggères que je modifie le QA en y ajoutant le coef que j'aurais relevé?

Je ne savais pas que le Wall Plug relevait la puissance active, j'avais pour idée qu'il faisait cette approximation kVA/W...

Partager ce message


Lien à poster
Partager sur d’autres sites

Ne modifie pas le code LUA du QA directement.
Il faut juste modifier (ou ajouter) la formula comme je te l'ai indiqué dans ton fichier de config du QA, sur la ligne concerné.

 

Oui le Wall Plug mesure bien la puissance active, je m'en suis clairement rendu compte quand j'ai mesuré un appareil avec un Cos Phi dramatique de 0.5 (un bon vieux tube fluo "néon").

La pince de l'IPX800 était complètement dans les choux.

J'ai utilisé un oscilloscope avec des sondes haut-tension et différentielle pour tracer le graph du courant et de la tension, et ainsi mesurer le déphasage, et confirmer la "mauvaise" mesure de la pince ampèremétrique. C'est normal, la pince ne mesure que le courant, et n'a aucune idée de la tension, et encore moins du déphasage entre les 2 signaux, donc l'IPX800 ne peut pas deviner la puissance active, il se contente de donner la puissance apparente (en vrai il ne donne pas la puissance, mais le courant, donc on devine la puissance en multipliant par 230V... ce qui est une approximation, la tension du secteur variant...)

L'EDRT2 le fait, mais comme tu l'indiques, il ne prend pas la bonne information, car il ne mesure pas la tension au niveau de l'appareil mesuré, mais il prend la tension globale de l'installation (et à priori, je pense que ce n'est pas celle du compteur Enedis donnée par la Téléinfo, mais celle qu'il mesure lui-même, car il est branché sur le 230V contrairement à l'IPX800 qui est alimenté en courant continu)

Bref, au final j'ai débranché mon appareil du tableau, câblé sur une prise 2P+T et ainsi branché sur un Wall Plug, pour retrouver la vraie valeur de la puissance active en Watts. Information confirmée par le compteur Enedis, car cette consommation se voyait sur mes relevés en temps réel du compteur via la Teleinfo (Eco-Devices)

 

Rappel sur les notions de puissance active, réactive, et apparente : https://learn.openenergymonitor.org/electricity-monitoring/ac-power-theory/introduction

Et la technique employée avec un Arduino pour mesurer la puissance : https://learn.openenergymonitor.org/electricity-monitoring/ac-power-theory/arduino-maths

Donc probablement très similaire dans le Wall Plug et tous les modules domotiques.

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour ton retour.

Je vais donc "tester" mes appareils avec un wall plug et modifier dans le fichier config pour chaque sous-poste créé et concerné par une pince, en désactivant la prise en compte du cos-phi côté RT2. Si j'ai bien compris la méthode, j'aurais bien une remontée de puissance active dans le QA, par contre les index des sous-postes et les DPrice seront faux car uniquement basés sur le RT2?

 

Comment tu ferais pour appliquer 2 coef. différents en fonction de la puissance réactive relevée? ex : puissance réactive plaque induction env. 150W alors cos-phi mesuré1 (très bas je présume), dès que puissance réactive > 200W par ex.  alors cos-phi mesuré 2? J'aurais le même cas pour un ballon ECS thermodynamique : thermodynamique seul (cos-phi mesuré1) / thermodynamique + résistance thermique (cos-phi mesuré 2)?

Modifié par Inkew

Partager ce message


Lien à poster
Partager sur d’autres sites

En effet, je n'avais pas pensé à ça, mais les index en kWh calculés par l'EDRT2 seront faux. De toute façon ils le sont déjà non, puisque le mauvais Cos Phi est utilisé ?

 

Pour utiliser un Cos Phi variable en fonction de la puissance, il faut le mettre dans formula().

Exemple :

power = { .... , formula = function(value) return tools:round(value < 150 and value * 1 or value * 0.5, 0) end}

Précision : le Cos Phi est une valeur entre 0 et 1 (c'est mathématique), donc quand tu dis 2, je suppose que c'est 0.5.

 

Avec cette technique basique, tu peux appliquer la formule à chaque appareil avec les seuils et coefs désirés.

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui tu supposais bien, le 2 est pour la deuxième mesure.. Merci pour cette formule, je vais tester..

Le plus simple serait qu'elle soit prise en compte par le GCE qui ne calcule pas correctement, j'ai cru comprendre qu'ils étaient sur une beta, je vais demander s'ils ne pourraient pas intégrer cette solution on ne sait jamais!

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello @Lazer 

 

J'utilise la commande suivante pour mes détecteurs de mouvements raccordés à mon IPX800 V4 sur les Entrées Digitales. Les changements d'états se font bien sur mon IPX mais ils ne sont pas visible sur les devices (Childs) correspondants.

 

J'ai mis un formule pour inverser l'état puisque je n'ai pas trouvé le moyen de le faire directement sur l'IPX.

 

{device = {name = "Détecteur Terrasse"       , type = "MotionSensor"     }, value = {command = "Get", argument = "D"   , pin = "D6", formula = function(value) return not value end}}

 

Est-ce que tu aurais une explication STP ?

 

Par ailleurs, lorsque j'essai de supprimer les devices (Childs) afin de les recréer suite à une modification du fichier de Config, la suppression ne s'effectue pas. La suppression s'effectue visuellement lors de l'action de suppression, mais lorsque je rafraîchi la page les devices réapparaissent. Sais-tu s'il y a une subtilité sur la suppression des devices (Childs).

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens de comprendre mon premier problème, il faut que je crée des Push sur l'IPX.

 

Le deuxième problème reste toujours un mystère ;)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

J'allais le dire, il faut que tu configures des Push, c'est indispensable pour les détecteurs de mouvement/ouverture pour lesquels tu veux une réaction immédiate. Sinon tu es obligé d'attendre l'intervalle de rafraichissement (ce qui risque de ne jamais arriver avec un détecteur de mouvement si le mouvement s'est arrêté entre temps)

 

Pour le second point, j'ai vu un post sur le forum officiel, depuis un certain firmware indéterminé sorti entre l'automne 2020 et maintenant, Fibaro a changé quelque chose, l'utilisateur ne peut plus supprimer les modules enfants.
C'est complètement débile évidemment.... parce que ça fonctionnait très bien il y a 1 an quand j'avais développé le QA. Je n'ai pas testé récemment, mais ton témoignage confirme les infos données sur le forum officiel.

C'était pourtant clairement indiqué dans le "other minor fixes", on aurait dû s'en douter... :rolleyes:

Le pire, c'est que je ne suis même pas certain que Fibaro travaille sur un correctif, car ils avaient l'air de dire que c'est comme ça maintenant et puis c'est tout.

En attendant, pas trop de solution... je suppose qu'il faudrait implémenter la suppression au sein même du code LUA du QuickApp... ce que je m'étais refusé à faire à l'époque du développement de ce QA, car une mauvaise manip de l'utilisateur dans CONFIG lui aurait supprimé un module enfant, voire même tous ensemble, vraiment pas génial.

 

Si tu veux vraiment supprimer un enfant, je pense que tu peux tenter de passer par l'API avec removeChildDevice de mémoire.

Partager ce message


Lien à poster
Partager sur d’autres sites

Mince, c'est vraiment n'importe quoi cette histoire de suppression de device. Du coup tu es obligé de supprimer l'ensemble du QuickApp et du modifier partout l'ensemble des id Childs de ton QuickApp et pas seulement celui que tu veux recréer.

 

A voir si l'appel API removeChildDevice accepte les suppressions?

Modifié par MAM78

Partager ce message


Lien à poster
Partager sur d’autres sites

Ouais ben supprimer l'ensemble du QA et de ses enfants, puis de recréer le tout, ce n'est pas une option. Tu imagines l'impact sur les scénarios avec les ID qui changent, et la perte des historiques, etc...

 

Tout ce que tu peux faire dans le code LUA d'un QA, tu peux le faire en direct via l'API (puisque les actions effectuées par le code LUA lui-même passent par l'API).

Donc la question à se poser est : est-ce que removeChildDevice fonctionne encore ?

J'ai pas trop le temps de tester à vrai dire.... mais dans la théorie c'est un truc du genre /api/callAction?deviceID=ID&name=removeChildDevice

il faut peut être mettre des arguments derrière, je ne sais pas trop.

Partager ce message


Lien à poster
Partager sur d’autres sites

Tiens j'ai retrouvé la discussion : https://forum.fibaro.com/topic/55626-delete-device-qa/

 

J'avais loupé le dernier message de tinman du 15/09/2021 qui dit que ça fonctionne toujours.... n'ayant pas testé récemment, je ne sais que penser de cette affaire...

Partager ce message


Lien à poster
Partager sur d’autres sites

ça bogue, parfois ça marche et généralement pas. J'ai pas réussi à déterminer les circonstances ou ça marche. Puisque rares ;)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@Lazer

 

Avec la ligne suivante : {device = {name = "Entrée Portail"              , type = "MotionSensor"     }, value = {command = "Get", argument = "D"   , pin = "D2", formula = function(value) return not value end}}

 

Lors d'une détection de mouvement du capteur j'ai bien le premier push URL ON qui met en alerte le motion sensor puis lorsque le capteur revient à position sans detection je reçois bien le push URL OFF.

Les 2 push sont bien visibles dans le debug, mais sur le deuxième ça plante dans le fichier GCR au niveau de la ligne 27 : getValue = function(value) return tonumber(value) > 0 and true or false end,

Du coup mon Child Device reste en position Alerte jusqu'à la prochaine boucle qui va rétablir le bon état.

 

Tu trouveras ci-dessous la configuration au niveau de l'IPX.

 

J'ai des erreurs d'execution du code ci-dessous :

[02.11.2021] [21:05:24] [DEBUG] [QA_IPX800_397]: onAction: {"actionName":"push","deviceId":454,"args":[0]}
[02.11.2021] [21:05:24] [DEBUG] [QA_IPX800_397]: GCE:convert(0, "value", "getValue")
[02.11.2021] [21:05:24] [DEBUG] [QA_IPX800_397]: GCE:compute(false, "value")
[02.11.2021] [21:05:24] [TRACE] [QA_IPX800_397]: Input D4 #454 Jardin Arrière value changed from false to true
[02.11.2021] [21:05:29] [DEBUG] [QA_IPX800_397]: onAction: {"actionName":"push","deviceId":454,"args":["1"]}
[02.11.2021] [21:05:29] [DEBUG] [QA_IPX800_397]: GCE:convert("1", "value", "getValue")
[02.11.2021] [21:05:29] [DEBUG] [QA_IPX800_397]: ./include/GCE.lua:27: attempt to compare number with nil
[02.11.2021] [21:05:29] [ERROR] [QUICKAPP397]: QuickApp crashed
[02.11.2021] [21:05:29] [ERROR] [QUICKAPP397]: Unknown error occurred: handleJsonRpc

Au niveau de l'IPX :

 

j'ai configuré le Push de la façon suivante :

 

image.png.cdfe598a03ace3ac7782d300f72dbfa6.png

 

Au niveau de la scène, j'ai mis ça :

 

image.thumb.png.fe1189a42a530fe32669f839881102df.png

Modifié par MAM78

Partager ce message


Lien à poster
Partager sur d’autres sites

Je ne comprends pas bien comment tu pourrais avoir une erreur en ligne 27 du fichier GCE dans ton QuickApp, car c'est le début du fichier, là où il y a des déclarations de variables... aucun test n'est effectué à ce niveau là qui pourrait aboutir à une erreur de comparaison d'un nombre avec nil

 

=> tu es certains que tu n'as pas modifié les fichiers, même par erreur ?

Dans ce cas, commence par essayer de reprendre les fichiers LUA dispos en 1ère page, normalement tu ne dois customiser que le fichier CONFIG.

 

En plus là, tu utilises vraiment les fonctions de base du QA, la gestion des capteurs binaires, ça fonctionne depuis la toute première version du QA.

 

Entre temps j'ai une version un peu plus avancée chez moi, mais ça ne corrige que des bugs liés à la mise en production de mon EDRT2 (mesure d'énergie, etc), je n'ai pas touché au reste.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens de recopier le code sources des 3 fichiers GCE, Main et Tools et toujours la même erreur :(

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens de faire un test en lançant les commande depuis une navigateur internet et là, ça marche (le On et le Off).

 

Mais du coup j'ai comparé dans les logs le deux executions et je constate un légère différence sur le commandes reçues :

 

 

[02.11.2021] [21:05:24] [DEBUG] [QA_IPX800_397]: onAction: {"actionName":"push","deviceId":454,"args":[0]}

[02.11.2021] [21:05:24] [DEBUG] [QA_IPX800_397]: GCE:convert(0, "value", "getValue")

[02.11.2021] [21:05:24] [DEBUG] [QA_IPX800_397]: GCE:compute(false, "value")

[02.11.2021] [21:05:24] [TRACE] [QA_IPX800_397]: Input D4 #454 Jardin Arrière value changed from false to true

[02.11.2021] [21:05:29] [DEBUG] [QA_IPX800_397]: onAction: {"actionName":"push","deviceId":454,"args":["1"]}

[02.11.2021] [21:05:29] [DEBUG] [QA_IPX800_397]: GCE:convert("1", "value", "getValue")

[02.11.2021] [21:05:29] [DEBUG] [QA_IPX800_397]: ./include/GCE.lua:27: attempt to compare number with nil

[02.11.2021] [21:05:29] [ERROR] [QUICKAPP397]: QuickApp crashed

[02.11.2021] [21:05:29] [ERROR] [QUICKAPP397]: Unknown error occurred: handleJsonRpc

 

[02.11.2021] [22:00:54] [DEBUG] [QA_IPX800_397]: onAction: {"deviceId":454,"actionName":"push","args":[0]}

[02.11.2021] [22:00:54] [TRACE] [QA_IPX800_397]: Input D4 #454 Jardin Arrière value changed from false to true

[02.11.2021] [22:00:57] [DEBUG] [QA_IPX800_397]: onAction: {"deviceId":454,"actionName":"push","args":[1]}

[02.11.2021] [22:00:57] [TRACE] [QA_IPX800_397]: Input D4 #454 Jardin Arrière value changed from true to false

[02.11.2021] [22:02:22] [DEBUG] [QA_IPX800_397]: Total memory in use by Lua : 1540.13 KB

 

Celle qui plante l'arg est passé texte, alors que celle par le navigateur est passé en numérique.

 

Pourtant le push me semble correct :

image.png.7d8a2d1ae45316a520b56b91af4d641f.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Etrange, je n'ai pas ce problème.... et mes URL sur l'IPX800 semblent tout à fait identiques.

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est bon j'ai trouvé, il s'agissait d'un caractère espace à la fin de la chaine qui était invisible :15:

 

Que de temps perdu pour des erreurs d'inattention ;) Désolé pour la gène et d'avoir mis en doute ton code :13:

 

Comme on dit le bug est souvent entre le clavier et la chaise ;)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Héhé.... en plus je crois que c'est la seconde fois en 24h que tu as un caractère caché qui traine ;)

 

  • Sad 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×