récupération d'une valeur

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Renard9
Messages : 36
Inscription : 24 nov. 2019, 16:44
Contact :

récupération d'une valeur

Message 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
Domoticz sur Raspberry 4

Aeotec ZW090-C - Contrôleur USB Z-Wave Plus Z-Stick (GEN5)
Fibaro FGWPE-102-ZW5 - Prise commutateur Z-wave Plus Wall Plug

Onduleur SMA : Sunny Boy 1.5 1VL-40
ERL Wifi : D2L eesmart
boum
Messages : 233
Inscription : 18 janv. 2019, 11:34
Localisation : France

Re: récupération d'une valeur

Message 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
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
Renard9
Messages : 36
Inscription : 24 nov. 2019, 16:44
Contact :

Re: récupération d'une valeur

Message par Renard9 »

Niquel

Merci beaucoup
Domoticz sur Raspberry 4

Aeotec ZW090-C - Contrôleur USB Z-Wave Plus Z-Stick (GEN5)
Fibaro FGWPE-102-ZW5 - Prise commutateur Z-wave Plus Wall Plug

Onduleur SMA : Sunny Boy 1.5 1VL-40
ERL Wifi : D2L eesmart
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: récupération d'une valeur

Message par vil1driver »

Salut,

Déplacé dans la section scripts..
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Renard9
Messages : 36
Inscription : 24 nov. 2019, 16:44
Contact :

Re: récupération d'une valeur

Message 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 ?
Domoticz sur Raspberry 4

Aeotec ZW090-C - Contrôleur USB Z-Wave Plus Z-Stick (GEN5)
Fibaro FGWPE-102-ZW5 - Prise commutateur Z-wave Plus Wall Plug

Onduleur SMA : Sunny Boy 1.5 1VL-40
ERL Wifi : D2L eesmart
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: récupération d'une valeur

Message 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)
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Renard9
Messages : 36
Inscription : 24 nov. 2019, 16:44
Contact :

Re: récupération d'une valeur

Message 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é)
Domoticz sur Raspberry 4

Aeotec ZW090-C - Contrôleur USB Z-Wave Plus Z-Stick (GEN5)
Fibaro FGWPE-102-ZW5 - Prise commutateur Z-wave Plus Wall Plug

Onduleur SMA : Sunny Boy 1.5 1VL-40
ERL Wifi : D2L eesmart
Renard9
Messages : 36
Inscription : 24 nov. 2019, 16:44
Contact :

Re: récupération d'une valeur

Message 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é...
Domoticz sur Raspberry 4

Aeotec ZW090-C - Contrôleur USB Z-Wave Plus Z-Stick (GEN5)
Fibaro FGWPE-102-ZW5 - Prise commutateur Z-wave Plus Wall Plug

Onduleur SMA : Sunny Boy 1.5 1VL-40
ERL Wifi : D2L eesmart
Répondre