Page 2 sur 2

Re: Mettre à jour un capteur virtuel

Publié : 24 oct. 2025, 08:28
par denis_brasseur
La syntaxe de fcBourgogne est pourtant bien la bonne.
Vérifie si la variable humid est un entier ou un string. Provenant de json, il doit s'agir d'un string, alors qu'un integer est attendu.
Essaye comme ceci :

Code : Tout sélectionner

humid  = tonumber(humid)
commandArray['UpdateDevice'] = '1505|' .. humid .. '|0' 
Si tu souhaites passer l'idx en variable, la syntaxe est celle ci :

Code : Tout sélectionner

idx = 1505
humid  = tonumber(humid)
commandArray['UpdateDevice'] = idx .. '|' .. humid .. '|0' 
https://wiki.domoticz.com/Domoticz_API/ ... s#Humidity
The above sets the parameters for a Humidity device

IDX = id of your device (This number can be found in the devices tab in the column "IDX")
HUM = Humidity: 45%
HUM_STAT = Humidity_status

Humidity_status can be one of:

0=Normal
1=Comfortable
2=Dry
3=Wet
SI tu souhaites passe la valeur de HUM_STAT en variable, la syntaxe :

Code : Tout sélectionner

idx = 1505
humid  = tonumber(humid)
hum_stat = 1
commandArray['UpdateDevice'] = idx .. '|' .. humid .. '|' .. hum_stat 
Les espace ne sont pas nécessaire et aide à la lecture

Code : Tout sélectionner

commandArray['UpdateDevice'] = idx..'|'..humid..'|'..hum_stat 

Re: Mettre à jour un capteur virtuel

Publié : 24 oct. 2025, 09:55
par knasson
Grand Bravo et Merci au moderateur ca marche en effet
le script devient!

Code : Tout sélectionner

json = (loadfile "/home/kan/domoticz/scripts/lua/JSON.lua")()  -- For Linux
commandArray = {}
local config=assert(io.popen("curl -s 'http://127.0.0.1:8080/json.htm?type=command&param=getdevices&rid=1475'"))
local blocjson = config:read('*all')
config:close()
local jsonValeur = json:decode(blocjson)
local humid = jsonValeur.result[1].Humidity
print (humid)
print(type(humid))
commandArray['UpdateDevice'] = '1505|'..humid..'0|'
return commandArray
la ligne
print (type(humid)) m'a donné "number" dans le log donc inutile d'appliquer le "tonumber" sur cette variable