Script Lua et Json

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 <\>.
Zboun
Messages : 8
Inscription : 07 mars 2016, 19:16

Script Lua et Json

Message par Zboun »

Bonjour à tous,
Voilà je vais tenter de m'expliquer.
En Retour Json j'ai ce type de données:

Code : Tout sélectionner

{
   "NodesQueried" : true,
   "ownNodeId" : 1,
   "result" : [
      {
         "Description" : "Aeotec ZW090 Z-Stick Gen5 EU",
         "HaveUserCodes" : false,
         ,
         "config" : [
            {
               "LastUpdate" : "-",
               "value" : 60
            },
            {
               "LastUpdate" : "-",
               "value" : "Enabled"
            },
         ],
         "idx" : "1"
      },
      {
         "Description" : "Qubino",
         "Name" : "Radiateur Salon",
         "config" : [
            {
               "LastUpdate" : "2018-10-17 23:17:18",
               "value" : "Mono-stable"
            },
            {
               "LastUpdate" : "2018-10-17 23:17:18",
               "value" : "Normally Open"
            },
         ],
         "idx" : "2"
      }
   ],
   "status" : "OK",
   "title" : "OpenZWaveNodes"
}
Avec un "petit" script lua (absolument en lua), j'aimerai faire une recherche de nom (ici "Radiateur Salon") et lorsqu'il le trouve, jaimerai qu'il me retourne l'idx correspondant (ici "2").

J'espère m'être bien exprimé. :roll: :?

Pensez-vous que c'est possible et comment?

Merci beaucoup pour votre aide.

Seb.
Raspberry Pi3, Rfxcom 433MHz, Z-Stick Gen5, Sonde T° Oregon, Qubino Fil Pilote
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script Lua et Json

Message par vil1driver »

Salut,

Radiateur salon est dans les device de Domoticz ?
Si oui pas besoin de passer par json

En lua

Code : Tout sélectionner

print(otherdevices_idx["Radiateur Salon"]) 
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
seb.alvarez61
Messages : 3
Inscription : 19 août 2016, 18:35

Re: Script Lua et Json

Message par seb.alvarez61 »

Bonjour,
Non, c'est le nom d'un noeud dans mes dispositifs z-wave.
En fait j'aimerai qu'il aille me chercher automatique le bloc ou ce trouve ce nom.
Ou dans quel idx se trouve ce nom...
J'espère m'exprimer correctement.
Zboun
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script Lua et Json

Message par vil1driver »

Quelle étrange requête

Regarde dans ma signature
Inspire toi de la fonction jsonInfos
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
Zboun
Messages : 8
Inscription : 07 mars 2016, 19:16

Re: Script Lua et Json

Message par Zboun »

Merci pour cette fonction!
Je sens que je vais grandement l’apprécier!

Mais mon soucis reste inchangé.
Mon idée : J'aimerai que l'on me retourne [a] en fonction de Name ([a] = [1] ou [2] ou [3]......)
return json:decode(list).result[a]
J'essaie avec un while mais pour l'instant je suis un peu perdu dans mon programme. J'essaierai d'y voir un peu plus clair ce soir.

Mais merci encore Vil1 pour ton aide

Seb
Raspberry Pi3, Rfxcom 433MHz, Z-Stick Gen5, Sonde T° Oregon, Qubino Fil Pilote
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script Lua et Json

Message par vil1driver »

cadeaux ;)

Code : Tout sélectionner

commandArray = {}
json = assert(loadfile('/home/vil1driver/domoticz/scripts/lua/JSON.lua'))()
local nodes = assert(io.popen('/usr/bin/curl -m 15 "http://192.168.22.100:8080/json.htm?type=openzwavenodes&idx=27"'))
local list = nodes:read('*all')
nodes:close()
local zlist =  json:decode(list).result
print("zwave nodes list")
for _, node in pairs(zlist) do
	print(node.Name..", idx: "..node.idx) 
end
return commandArray
a adapter à ta conf (chemin vers json, url domoticz et idx du matériel zwave)

Je te laisse ajouter le traitement du genre

Code : Tout sélectionner

if node.Name == "Radiateur Salon" then
Par curiosité quel est le but ultime ?
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
seb.alvarez61
Messages : 3
Inscription : 19 août 2016, 18:35

Re: Script Lua et Json

Message par seb.alvarez61 »

Rhooo, j'en demandai pas tant!
Trop cool! T'assure!
Merci mille fois!

Envoyé de mon SM-N950F en utilisant Tapatalk

Zboun
Messages : 8
Inscription : 07 mars 2016, 19:16

Re: Script Lua et Json

Message par Zboun »

Salut Vil1

Désolé, je viens de m'apercevoir que je n'avait pas vu la fin de ton message.
Pour répondre à ta question, le but ultime est de faire un contrôle automatique de l'état de mes nœuds Z-Wave (Dead ou Awake)
Qui me permettra à terme de m'envoyer une notification de défault.

De coup avec tes lignes de prog, plus besoin de trouver l'id, juste avec le nom ça suffit amplement!
Du bonheur!

Merci encore mille fois!

Zboun
Raspberry Pi3, Rfxcom 433MHz, Z-Stick Gen5, Sonde T° Oregon, Qubino Fil Pilote
Répondre