Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
j'ai tenté de faire fonctionner 3 dummy 'conso instant + cumul'. J'ai regardé pas mal de tutos sur le forum il me semble que j'ai fais ce qu'il fallait ... sauf que cela ne fonctionne pas OU fonctionne une fois de temps en temps.
je vous met donc mon code LUA pour comprendre mon erreur ... Merci d'avance pour votre aide
---------- test consommation virtuel -------
-- radiateur
local radiateurSalon = 'radiateur salon' -- Nom de l'interrupteur de chauffage
local puissance1 = 1000 -- puissance du chauffage en watt
local conso1 = 'radiateur salon conso' -- nom du capteur virtuel de consommation électrique (type= instant + counter)
local conso_id1 = 121 -- idx du capteur virtuel de consommation électrique
local radiateurCuisine = 'radiateur cuisine' -- Nom de l'interrupteur de chauffage
local puissance2 = 700 -- puissance du chauffage en watt
local conso2 = 'radiateur cuisine conso' -- nom du capteur virtuel de consommation électrique (type= instant + counter)
local conso_id2 = 122 -- idx du capteur virtuel de consommation électrique
local radiateurChambre = 'radiateur chambre' -- Nom de l'interrupteur de chauffage
local puissance3 = 500 -- puissance du chauffage en watt
local conso3 = 'radiateur chambre conso' -- nom du capteur virtuel de consommation électrique (type= instant + counter)
local conso_id3 = 123 -- idx du capteur virtuel de consommation électrique
commandArray = {}
if (otherdevices[radiateurSalon] == 'On') then
-- envoie de la conso dans le capteur virtuel d'énergie
npower1, energy1 = string.match(otherdevices_svalues[conso1], "(%d+%.*%d*);(%d+%.*%d*)")
energy1 = tonumber(energy1) + (puissance1 / 60)
commandArray['UpdateDevice'] = conso_id1 .. '|0|' .. puissance1 .. ';' .. energy1
else
-- envoie de la conso dans le capteur virtuel d'énergie
npower1, energy1 = string.match(otherdevices_svalues[conso1], "(%d+%.*%d*);(%d+%.*%d*)")
energy1 = tonumber(energy1)
commandArray['UpdateDevice'] = conso_id1 .. '|0|' .. 0 .. ';' .. energy1
end
if (otherdevices[radiateurCuisine] == 'On') then
-- envoie de la conso dans le capteur virtuel d'énergie
npower2, energy2 = string.match(otherdevices_svalues[conso2], "(%d+%.*%d*);(%d+%.*%d*)")
energy2 = tonumber(energy2) + (puissance2 / 60)
commandArray['UpdateDevice'] = conso_id2 .. '|0|' .. puissance2 .. ';' .. energy2
else
-- envoie de la conso dans le capteur virtuel d'énergie
npower2, energy2 = string.match(otherdevices_svalues[conso2], "(%d+%.*%d*);(%d+%.*%d*)")
energy2 = tonumber(energy2)
commandArray['UpdateDevice'] = conso_id2 .. '|0|' .. 0 .. ';' .. energy2
end
if (otherdevices[radiateurChambre] == 'On') then
-- envoie de la conso dans le capteur virtuel d'énergie
npower3, energy3 = string.match(otherdevices_svalues[conso3], "(%d+%.*%d*);(%d+%.*%d*)")
energy3 = tonumber(energy3) + (puissance3 / 60)
commandArray['UpdateDevice'] = conso_id3 .. '|0|' .. puissance3 .. ';' .. energy3
else
-- envoie de la conso dans le capteur virtuel d'énergie
npower3, energy3 = string.match(otherdevices_svalues[conso3], "(%d+%.*%d*);(%d+%.*%d*)")
energy3 = tonumber(energy3)
commandArray['UpdateDevice'] = conso_id3 .. '|0|' .. 0 .. ';' .. energy3
end
return commandArray
il doit y avoir une erreur quelque part car les infos ne semblent pas être envoyer a mes conso virtuel
je précise que depuis les heures indiquées sur les capteurs de conso virtuel, les radiateurs se sont mis a en fonctionnement plusieurs fois !
Updating Energy Usage with Lua
The simplest method is purely to send the current power and the cumulative energy via commandArray['UpdateDevice'], but only 1 value per script can be sent this way:
commandArray['UpdateDevice'] = id .. "|0|" .. power .. ";" .. energy
Since version 1.700 of Domoticz it has been possible to send multiple updates via this route:
commandArray[1] = {['UpdateDevice'] = houseid .. "|0|" .. housepower .. ";" .. houseenergy}
commandArray[2] = {['UpdateDevice'] = pumpid .. "|0|" .. pumppower .. ";" .. pumpenergy}
commandArray[3] = {['UpdateDevice'] = solarid .. "|0|" .. solarpower .. ";" .. solarenergy}
See the Events page for the full context.
au début je ne comprenais pas très bien c'est donc parce que je demande le même type de commande 'updatedevice' que je dois utiliser le commandarray [1],[2],[3], ...
merci a toi pour ton retour, tout fonctionne maintenant
alexbi a écrit :au début je ne comprenais pas très bien c'est donc parce que je demande le même type de commande 'updatedevice' que je dois utiliser le commandarray [1],[2],[3], ...
exactement,
pas de quoi
MAJ = VIDER LE CACHE(<-Clicable) /!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus modules.lua
---------- consommation virtuel radiateur -------
-- radiateur
local radiateurSalon = 'radiateur salon' -- Nom de l'interrupteur de chauffage
local puissance1 = 1000 -- puissance du chauffage en watt
local conso1 = 'radiateur_salon_conso' -- nom du capteur virtuel de consommation électrique (type= instant + counter)
local conso_id1 = 130 -- idx du capteur virtuel de consommation électrique
local radiateurChambre = 'radiateur chambre' -- Nom de l'interrupteur de chauffage
local puissance2 = 500 -- puissance du chauffage en watt
local conso2 = 'radiateur_chambre_conso' -- nom du capteur virtuel de consommation électrique (type= instant + counter)
local conso_id2 = 132 -- idx du capteur virtuel de consommation électrique
local radiateurCuisine = 'radiateur cuisine' -- Nom de l'interrupteur de chauffage
local puissance3 = 700 -- puissance du chauffage en watt
local conso3 = 'radiateur_cuisine_conso' -- nom du capteur virtuel de consommation électrique (type= instant + counter)
local conso_id3 = 131 -- idx du capteur virtuel de consommation électrique
commandArray = {}
------- salon ---------
if (otherdevices[radiateurSalon] == 'On') then
-- envoie de la conso dans le capteur virtuel d'énergie
npower1, energy1 = string.match(otherdevices_svalues[conso1], "(%d+%.*%d*);(%d+%.*%d*)")
energy1 = tonumber(energy1) + (puissance1 / 60)
npower1 = tonumber(npower1)
commandArray[1]={['UpdateDevice'] = conso_id1 .. '|0|' .. puissance1 .. ';' .. energy1}
end
if (otherdevices[radiateurSalon] == 'Off') then
-- envoie de la conso dans le capteur virtuel d'énergie
npower1, energy1 = string.match(otherdevices_svalues[conso1], "(%d+%.*%d*);(%d+%.*%d*)")
energy1 = tonumber(energy1)
npower1 = tonumber(npower1)
commandArray[2]={['UpdateDevice'] = conso_id1 .. '|0|' .. 0 .. ';' .. energy1}
end
------- Chambre --------
if (otherdevices[radiateurChambre] == 'On') then
-- envoie de la conso dans le capteur virtuel d'énergie
npower2, energy2 = string.match(otherdevices_svalues[conso2], "(%d+%.*%d*);(%d+%.*%d*)")
energy2 = tonumber(energy2) + (puissance2 / 60)
npower2 = tonumber(npower2)
commandArray[3]={['UpdateDevice'] = conso_id2 .. '|0|' .. puissance2 .. ';' .. energy2}
end
if (otherdevices[radiateurChambre] == 'Off') then
-- envoie de la conso dans le capteur virtuel d'énergie
npower2, energy2 = string.match(otherdevices_svalues[conso2], "(%d+%.*%d*);(%d+%.*%d*)")
energy2 = tonumber(energy2)
npower2 = tonumber(npower2)
commandArray[4]={['UpdateDevice'] = conso_id2 .. '|0|' .. 0 .. ';' .. energy2}
end
------- Cuisine --------
if (otherdevices[radiateurCuisine] == 'On') then
-- envoie de la conso dans le capteur virtuel d'énergie
npower3, energy3 = string.match(otherdevices_svalues[conso3], "(%d+%.*%d*);(%d+%.*%d*)")
energy3 = tonumber(energy3) + (puissance3 / 60)
npower3 = tonumber(npower3)
commandArray[5]={['UpdateDevice'] = conso_id3 .. '|0|' .. puissance3 .. ';' .. energy3}
end
if (otherdevices[radiateurCuisine] == 'Off') then
-- envoie de la conso dans le capteur virtuel d'énergie
npower3, energy3 = string.match(otherdevices_svalues[conso3], "(%d+%.*%d*);(%d+%.*%d*)")
energy3 = tonumber(energy3)
npower3 = tonumber(npower3)
commandArray[6]={['UpdateDevice'] = conso_id3 .. '|0|' .. 0 .. ';' .. energy3}
end
return commandArray