Aller au contenu
JLT

Addition 2 valeurs de 2 devices dans 1 plugin ?

Recommended Posts

Bonjour,

 

Je cherche à savoir si c'est possible d'additionner 2 valeurs de 2 "Appareils" différents dans un plugin ?

En clair, j'ai 2 "Appareils" pour 2 onduleurs, "SMA OUEST" et "SMA EST" dans la rubrique "Appareils" de la HC3

Pour chacun je récupère les données fournies par SMA.

Visible dans "Vue de l'appareil" que j'ai adapté à mes souhaits.

SI c'est possible, j'aimerai avoir l'affichage de la somme de, par exemple, l'énergie total (yield_total) produite par les 2 onduleurs.

Cela doit l'être je suppose, auriez un piste ?

 

Tout grand merci :-)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

On ne parle pas de plugin sur HC3, mais de QuickApp.

 

Je ne sais pas si tu as commencé à écrire quelque chose mais pour récupérer les valeurs des autres modules c'est simple :

fibaro.getValue(ID, "yield_total")

en supposant que yield_total soit bien la propriété que tu veuilles récupérer

 

Tu fais pareil pour le 2nd module, tu calcules la moyenne, puis tu affectes la valeur à ton QA :

self:updateProperty("value", ma_moyenne)

 

Rappel : https://manuals.fibaro.com/home-center-3-quick-apps/

 

 

 

Modifié par Lazer

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Lazer, tu as raison, déformation professionnelle de ma part car on parle souvent de plugin pour l'utilisation des logiciels audio & vidéo ;-)

 

Oui, j'ai commencé en me basant sur mes 2 "devices" existant (un par onduleur).

J'avais trouvé cette QA pour SMA sur le net (https://github.com/ikubicki/fibaro-sma),

je l'ai amendée pour ma situation, une par onduleur (adresse IP différente)

Appareil SMA OUEST

Appareil SMA EST

 

oui, j'utilise notamment le "yield_total" pour chacun des 2 onduleurs

Jusque là, tout va bien. Je peux voir séparément les données.

 

Mais je souhaite maintenant pouvoir afficher la somme (et pas la moyenne) des 2 "yield_total" des 2 "devices", donc 2 adresses IP, (pour avoir la production totale des panneaux solaires, versant Est + Versant Ouest du toit)

(et accessoirement celles de "yield_today" et "power_current")

Donc additionner 2 nombres des 2 "devices", nombres qui augmentent chaque jour, et afficher le résultat.

ex au 25/09 à 13h : (QA du SMA OUEST) 14,422 KWH + (QA du SMA EST) 11,780 KWH = 26,602 KWH

Peut être créer un nouveau "device" pour y intégrer le contenu des 2 fichiers lua des 2 "devices" existant, mais est-ce une solution ?

 

fibaro.getValue(ID, " yield_total ")

Il y a déjà une ligne dans la QA d'origine avec fibaro.getValue mais elle n'est pas équivalente

 

function SMAMeter:getProperty(name)

    local value = fibaro.getValue(self.id, name)

    return value

end

 

(Je suis un peu perplexe sur l'intégration de plusieurs adresses IP dans une QA mais ca semble possible car j'ai une QA pour Daikin qui le fait pour 3 unités/adresses IP différentes.

c'est le fait d'avoir des variables identiques pour différentes unités dans une QA qui m'interpelle

Dans le cas des SMA, c'est une variable API URL par QA, et dans le cas des DAIKIN, c'est dans la QA que se trouve les 3 adresses IP)

 

Ps : j'ai consulté le lien que tu as donné, intéressant bien sur, mais comme pour les recherches sur le net, je trouve pas de réponse clair, ou alors les termes de ma recherche sont peut être inadéquats ...

 

Modifié par JLT

Partager ce message


Lien à poster
Partager sur d’autres sites

Il y a 2 façons de voir les choses :

- je vois que le Github que le projet est abandonné par son auteur, et qu'il propose une nouvelle version => Peut être commencer par aller voir la nouvelle version qui, avec un peu de chance, répondrait à ton besoin d’aditionner les 2 valeurs... ou bien lui demander s'il a prévu / s'il peut le faire.

- tu conserves tes 2 QA existants, chacun remonte une valeur, et ma suggestion initiale c'était bien de créer un nouveau QA, avec une boucle infinie, qui prend les 2 valeurs, et les additionnes. Mais tu ne sembles pas très à l'aise avec le développement de QA en LUA, ça risque de t'embarquer dans une galère, bien que ça ne soit pas si compliqué : une boucle infinie, qui relève les 2 valeurs à intervalle régulier, par exemple toutes les 60 secondes.

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Lazer,

je ne savais pas pour les nouvelles versions, cela semble très intéressant et mieux développé, même si un peu complexe à comprendre quand on est pas spécialiste (en plus y a un message d'erreur avec le fichier i18n que je ne m'explique pas : "Unknown error occurred: no static 'phrases' in class 'i18n", j'ai posé la question au créateur sans réponse pour l'instant...), je vais les étudier.

Comme tu dis, n'étant pas un pro du codage lua, j'arrive à comprendre et ajuster des programmes déjà fait, mais pas à les créer :-/

Je suis sur que ta proposition est super mais perso je risque d'être perdu dans les tentatives de la créer... ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

×