Page 1 sur 1

Aide pour mise à jour dans un script lua d’ un dispositif dummy ?

Publié : 16 janv. 2020, 23:22
par rvdomoticz
Demande d' aide , aprés avoir fouillé, mais sans doute pas tout compris !

Bonjour,

-Je crée un matériel dummy appelé ‘’test’’
-A partir de celui-ci je crée un dispositif de type température
Son nom est également test, il a pour idx 272

Si je le mets à jour à partir d’ un navigateur d’ une autre machine , ça fonctionne parfaitement
http://192.168.x.y:port/json.htm?type=command&param=udevice&idx=272&nvalue=0&svalue=22.52

Dans un script lua de domoticz la mise à jour ne fonctionne pas

J’ ai essayé avec les commandes suivantes voici le script :

Code : Tout sélectionner

local test_idx = 'test'  -- test est un device dummy température issu du materiel dummy test

local temp = 11
idx = 272

commandArray = {}

now=os.date("*t")
if now.min % 1 == 0 then       -- toutes les minutes
    
commandArray[test_idx] = { ['UpdateDevice'] = test_idx..'|0|'..temp }
commandArray[test_idx] = { ['UpdateDevice'] = tonumber(272)..'|0|'..33 }
commandArray  = { ['UpdateDevice'] = idx..'|0|'..temp }
commandArray ['UpdateDevice'] = idx..'|0|' ..22
os.execute('curl "http://192.168.x.y:port/json.htm?type=command&param=udevice&idx=272&nvalue=0&svalue=28.2 "')
end

return commandArray
Aucune erreur dans les logs mais aucune mise à jour

Pourtant mon inspiration vient de là

viewtopic.php?t=3295

https://www.domoticz.com/wiki/LUA_commands

commandArray['UpdateDevice']='idx|nValue|sValue' -- for updating Dummy devices e.g. '96|0|Hello World'

Merci de m' éclairer à comprendre !

Re: Aide pour mise à jour dans un script lua d’ un dispositif dummy ?

Publié : 16 janv. 2020, 23:48
par vil1driver
Salut,

Il te faut définir mieux que ça curl (par son chemin complet) et vérifier que ton domoticz est accessible sans identification

Re: Aide pour mise à jour dans un script lua d’ un dispositif dummy ?

Publié : 17 janv. 2020, 06:11
par denis_brasseur
test_idx doit être un idx, et non pas le nom. Pas d’intérêt à écrire commandArray[test_idx]

Code : Tout sélectionner

local test_idx = 'test'
commandArray[test_idx] = { ['UpdateDevice'] = test_idx..'|0|'..temp }

tu as utilisé la valeur 33 comme si il s'agissait d'une variable

Code : Tout sélectionner

commandArray[test_idx] = { ['UpdateDevice'] = tonumber(272)..'|0|'..33 }

Remplace commandArray par commandArray[#commandArray+1]

Code : Tout sélectionner

commandArray  = { ['UpdateDevice'] = idx..'|0|'..temp }

tu as utilisé la valeur 22 comme si il s'agissait d'une variable

Code : Tout sélectionner

commandArray ['UpdateDevice'] = idx..'|0|' ..22

voir la réponse de vil1driver

Code : Tout sélectionner

os.execute('curl "http://192.168.x.y:port/json.htm?type=command&param=udevice&idx=272&nvalue=0&svalue=28.2 "')
Si ton inspiration vient de la :
commandArray['UpdateDevice']='idx|nValue|sValue' -- for updating Dummy devices e.g. '96|0|Hello World'
Commence par ceci, 272 étant l'idx du device à mettre à jour, et 11 la valeur de température

Code : Tout sélectionner

commandArray['UpdateDevice'] = '272|0|11'
SI cela fonctionne, passe sur ce test

Code : Tout sélectionner

idx = 272
svalue = 11
commandArray['UpdateDevice'] = idx .. '|0|' .. svalue


Re: Aide pour mise à jour dans un script lua d’ un dispositif dummy ?

Publié : 17 janv. 2020, 18:51
par rvdomoticz
Merci pour vos réponses et suggestions.
J' essaie tout ça ;)

Re: Aide pour mise à jour dans un script lua d’ un dispositif dummy ?

Publié : 25 janv. 2020, 16:30
par rvdomoticz
Les nouveaux essais avec "CommanArray" on été également infructueux.
Aspect positif : ma recherche de solution m' a amené à l' utilisation de DzEvents ( J' en ignorais la richesse)
Ca fonctionne parfaitement, c' est très riche en possibilités et bien documenté
https://www.domoticz.com/wiki/DzVents:_ ... _scripting
Si je peux me permettre, l' article suivant daté de 2016 mériterait un coup de pouce ;-)
https://easydomoticz.com/scripts-plus-f ... z-dzvents/
En conclusion : Si tu peux pas escalader la montagne, contournes là :D
Merci pour vos réponses !