Page 2 sur 2

Re: Connexion CurrentCost EnviR

Publié : 21 déc. 2020, 11:40
par Flying Domotic
Pour le nom ou l'IDX, ça dépend de la fonction que tu appelles, elle peut demander l'un ou l'autre. Ceci dit,il y a moyen de passer plus ou moins simplement de chaque type.

Voici un exemple de dispatch d'un compteur unique vers un compteur jour/nuit. Il y a dedans les éléments dont tu pourrait avoir besoin.

Code : Tout sélectionner

-- Gestion de la consommation chauffe eau cuisine
energy_name = '$Energie CE cuisine'  -- Nom du compteur (réel) energy
p1_id = 136                          -- ID du compteur (virtuel) P1 HC/HP
HP_HC_name = 'Tarif réduit Linky'    -- Nom du selecteur HC/HP (0=HP)
commandArray = {}
if (devicechanged[energy_name]) then
    energy_values = otherdevices_svalues[energy_name]
    puissance,conso=energy_values:match("([^;]+);([^;]+)")
    conso = tonumber(conso) 
    conso_hp = tonumber(uservariables['Energie_HP_'..tostring(p1_id)])
    conso_hc = tonumber(uservariables['Energie_HC_'..tostring(p1_id)])
    if (conso < conso_hp or conso < conso_hc) then
        conso_hp = 0
        conso_hc = 0
    end
    if(otherdevices[HP_HC_name]=='On') then
        HC = conso_hc
        HP = conso - conso_hc
        commandArray['Variable:Energie_HP_'..tostring(p1_id)] = tostring(HP)
    else
        HC = conso - conso_hp
        HP = conso_hp
        commandArray['Variable:Energie_HC_'..tostring(p1_id)] = tostring(HC)
    end
    commandArray['UpdateDevice'] = p1_id .. "|0|" .. tonumber(HC) .. ";" .. tonumber(HP) .. ";0;0;" .. tonumber(puissance) .. ";0"
end
return commandArray

Re: Connexion CurrentCost EnviR

Publié : 21 déc. 2020, 15:13
par Jbelbus
Merci de l'exemple,

Je vais étudier tout ça,
sachant que je suis novice mais désireux de comprendre ce que je fais.

@Kerox: J'ai lancé une commande Json et écrit une valeur dans le capteur virtuel déclaré, ça fonctionne , il semblerait que ce soit des commandes Web, pourquoi les utiliser dans ce cas.

Re: Connexion CurrentCost EnviR

Publié : 21 déc. 2020, 17:17
par Keros
Il y a plusieurs façon pour mettre à jour un device. Tu peux utiliser le language de programmation (LUA, DZvents) ou utiliser l'API de Domoticz qui utilise des liens web.

Re: Connexion CurrentCost EnviR

Publié : 21 déc. 2020, 17:49
par Jbelbus
Ok, ça éclaire
Beaucoup de lecture de bons profs on devrait y arriver sauf que moi je suis lourd en questions

Re: Connexion CurrentCost EnviR

Publié : 21 déc. 2020, 17:55
par Keros
On s'écarte à chaque fois des sujets initiaux. Ouvres toi un sujet et tu y poses tes questions ;)

Re: Connexion CurrentCost EnviR

Publié : 22 déc. 2020, 15:00
par Jbelbus
Bonjour,
@Flying Domotic
Je me suis inspiré de cet exemple, la puissance cumulée s'est affichée dans le compteur virtuel mais bloque.

Dans l'exemple il ya,
p1_id = 316 -- ID du compteur (virtuel) P1 HC/HP
conso HP = tonumber(uservariables['Energie_HP_'..tostring(p1_id)])

Je comprends bien le début, conso_hp = la valeur numérique de Energie_HP_'
mais pas la suite de la syntaxe ..tostring(p1_id)])
tostring est inverse de tonumber ?
Dans le log j'ai :23: attempt to compare number with nil qui correspond à if (conso < conso_hp or conso < conso_hc)

Merci d'un coup de pouce

Re: Connexion CurrentCost EnviR

Publié : 22 déc. 2020, 19:02
par Keros
Jbelbus a écrit : 22 déc. 2020, 15:00 tonumber(uservariables['Energie_HP_'..tostring(p1_id)])
Le tostring() est nécessaire car elle complète la valeur qui sera utilisée par uservariables[]. Il faut donc cette donnée sous forme de chaine de caractère.
Jbelbus a écrit : 22 déc. 2020, 15:00 :23: attempt to compare number with nil qui correspond à if (conso < conso_hp or conso < conso_hc)
Tu dois avoir une ou plusieurs des trois variables utilisée dans la condition qui n'as pas de valeur. Fais un print de conso, conso_hp et conso_hc pour savoir laquelle ou lesquelles c'est.

Re: Connexion CurrentCost EnviR

Publié : 22 déc. 2020, 21:42
par Jbelbus
J'ai donc fait le print des variables

Dans la variable conso j'ai bien une valeur qui est rafraichie et qui correspond au cumul watts.
Log ->Comptage Ejp 23392668.0 KW

Les variables conso_hp et conso_hc, ne sont pas affichées et ce quelque soit la position du sélecteur on/off d'où ma question sur la ligne: conso_hp = tonumber(uservariables['Energie_HP_'..tostring(p1_id)])

Le log indique: 24: attempt to concatenate a nil value (global 'conso_hp')

Re: Connexion CurrentCost EnviR

Publié : 22 déc. 2020, 22:38
par Keros
Il faut que tu décortiques la ligne :

Code : Tout sélectionner

 conso_hp = tonumber(uservariables['Energie_HP_'..tostring(p1_id)])
On donne à conso_hp la valeur de uservariables['Energie_HP_'..tostring(p1_id)] formatée en nombre.

la variable utilisateur a le nom Energie_HP_'..tostring(p1_id). Elle doit s'appeler Energie_HP_ plus les caractères de p1_id

Si au dessus p1_id = 316, alors tu doit avoir une variable utilisateur qui s'appelle Energie_HP_316.

Re: Connexion CurrentCost EnviR

Publié : 23 déc. 2020, 11:24
par Jbelbus
Trop fort, merci,

Tout fonctionne nickel, log propre les variables sont rafraichies le compteur virtuel également.

Reste à associer cela au contact Gpio qui renvoie l'info Ejp et c'est tout bon.
Je vais donc changer de sujet.

Encore grand merci pour mon cadeau. :)