Page 1 sur 1

récupération d'une valeur

Publié : 27 oct. 2020, 13:55
par Renard9
Bonjour,

Pour mon 1er script, je cherche à récupérer la puissance EDF que je consomme à un instant t (enfin avec un léger différé) afin de lancer le chauffage de mon aquarium. Je suis donc en train de créer mon script lua :
script_device_chauffage.lua
commandArray = {}

if (devicechanged['D2L - LKY_Watts']) then
print("D2L = ", devicechanged['D2L - LKY_Watts'])

for i, v in pairs(devicechanged) do print(i, v) end
end
return commandArray


Le résultat est :
2020-10-27 13:47:26.574 (D2L) /home/pi/domoticz/plugins/LinkyD2L/D2L.pyResult is 0
2020-10-27 13:47:26.590 Status: LUA: D2L =
2020-10-27 13:47:26.590 Status: LUA: 360.0;14068286.0
2020-10-27 13:47:26.590 Status: LUA: D2L - LKY_Watts_Utility
2020-10-27 13:47:26.590 Status: LUA: 360.0
2020-10-27 13:47:26.590 Status: LUA: D2L - LKY_Watts
2020-10-27 13:47:26.590 Status: LUA: 360.0;14068286.0

Je veux uniquement obtenir la valeur 360 (pour 360w). Puis je l'obtenir directement directement sans passer par la boucle for ?

Merci d'avance pour votre réponse

Excusez moi ! je pense que je me suis trompé desous-forum

Re: récupération d'une valeur

Publié : 27 oct. 2020, 14:55
par boum
Peut-être :

Code : Tout sélectionner

commandArray = {}

if devicechanged['D2L - LKY_Watts_Utility'] then
    print("D2L = ", devicechanged['D2L - LKY_Watts_Utility'])
end

return commandArray

Re: récupération d'une valeur

Publié : 27 oct. 2020, 15:16
par Renard9
Niquel

Merci beaucoup

Re: récupération d'une valeur

Publié : 27 oct. 2020, 16:32
par vil1driver
Salut,

Déplacé dans la section scripts..

Re: récupération d'une valeur

Publié : 03 nov. 2020, 13:47
par Renard9
Bonjour,

Malgré tous les efforts, mon script fonctionne uniquement lorsque je récupère une valeur >0
commandArray = {}

time=os.date("*t")

if (devicechanged['D2L - LKY_Watts']) then
local valeur = tonumber(devicechanged['D2L - LKY_Watts_Utility'])
print (valeur)
if valeur then
if (valeur <1 and commandArray['SW Aquarium chauffage'] == 'Off' ) then
commandArray['SW Aquarium chauffage'] = 'On'
elseif (valeur > 500 and otherdevices['SW Aquarium chauffage'] == 'On' and time.hour > 7) then
commandArray['SW Aquarium chauffage'] = 'Off'
end
end
end

return commandArray
Résultat >0 :
Status: LUA: 60.0
Résultat = 0 :
Il semblerait que je n'entre pas dans le if initial (donc devicechanged['D2L - LKY_Watts'] est faux lorsque l'on passe à 0). Dans les tuto, il est pourtant mentionné que l'on doit commencer par cela)

ai je une erreur ?

Re: récupération d'une valeur

Publié : 03 nov. 2020, 18:34
par denis_brasseur
Que donne ceci :

Code : Tout sélectionner

    val_mesure, y = otherdevices_svalues['D2L - LKY_Watts']:match('([^;]+);([^;]+)')
    val_mesure = tonumber(val_mesure)
    print(val_mesure)

Re: récupération d'une valeur

Publié : 04 nov. 2020, 08:00
par Renard9
Pour l'instant, je reste dans le cas

Résultat >0 :
Status: LUA: 480.0
Je regarde en fin de matinée (il faut du soleil pour passer à 0w EDF consommé)

Re: récupération d'une valeur

Publié : 05 nov. 2020, 11:40
par Renard9
Merci cela fonctionne parfaitement :D

Par contre, j'ai trouvé une autre source potentiel :
commandArray['SW Aquarium chauffage'] == 'Off'

A force de tester, il y a eu un mauvais copié/collé...