Lire une sonde de type "Air Quality" par un script lua

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
ricky74
Messages : 71
Enregistré le : 03 sept. 2015, 13:58

Lire une sonde de type "Air Quality" par un script lua

Message par ricky74 »

Bonjour à tous,
J'ai un petit souci avec mon script lua.
J'aimerais simplement envoyer une notification quand mon Co2 dans la maison dépasse une certaine valeur...
J"ai une station météo netatmo que j'ai liée à domoticz. Tout fonctionne, je remonte la valeur en ppm.
Dans mon script lua, j'aimerais lire cette valeur en faisant :

tonumber(otherdevices_svalues['Co2'])

mais je n'ai rien en retour.
En Faisant cela :
for i, v in pairs(otherdevices_svalues) do print(i, v) end

Idem, ma sonde Air Quality ne me retourne rien...
Quelqu'un peut il m'aider ???

vil1driver
Messages : 5665
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Lire une sonde de type "Air Quality" par un script lua

Message par vil1driver »

Salut,

Il faudrait voir ton script et son nom ainsi que le résultat de cette commande

http://192.168.22.100:8080/json.htm?type=devices&rid=112

Remplace avec ton ip et 112 par l'idx de ton device
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

ricky74
Messages : 71
Enregistré le : 03 sept. 2015, 13:58

Re: Lire une sonde de type "Air Quality" par un script lua

Message par ricky74 »

Voici le résultat
result" : [
{
"AddjMulti" : 1.0,
"AddjMulti2" : 1.0,
"AddjValue" : 0.0,
"AddjValue2" : 0.0,
"BatteryLevel" : 255,
"CustomImage" : 0,
"Data" : "627 ppm",
"Description" : "",
"Favorite" : 1,
"HardwareID" : 3,
"HardwareName" : "Netatmo",
"HaveTimeout" : false,
"ID" : "15F92",
"LastUpdate" : "2015-09-07 06:25:10",
"Name" : "Co2",
"Notifications" : "false",
"PlanID" : "0",
"Protected" : false,
"Quality" : "Excellent",
"ShowNotifications" : true,
"SignalLevel" : 12,
"SubType" : "Unknown",
"Timers" : "false",
"Type" : "Air Quality",
"TypeImg" : "air",
"Unit" : 1,
"Used" : 1,
"XOffset" : "0",
"YOffset" : "0",
"idx" : "19"
}

C'est le champ data que je veux récupérer...

vil1driver
Messages : 5665
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Lire une sonde de type "Air Quality" par un script lua

Message par vil1driver »

ton script et son nom ?
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

ricky74
Messages : 71
Enregistré le : 03 sept. 2015, 13:58

Re: Lire une sonde de type "Air Quality" par un script lua

Message par ricky74 »

Mon script s'appelle script_device_Co2.lua
mon capteur s’appelle "Co2"
Voici le code :

commandArray = {}
if (devicechanged['Co2']) then
--print(otherdevices_svalues['Co2'])
-- otherdevices_svalues['Co2'] est vide !

if (tonumber(otherdevices_svalues['Co2']) >= 1200 and uservariables['Var2'] == '0') then
time = os.date("*t")
commandArray['Variable:Var2']='1'
commandArray['SendEmail']=time.hour..':'..time.min..' Niveau de Co2 élevé dans la maison#Envoyé par Domoticz...#xxxxxxxxxx@gmail.com'
end

if (tonumber(otherdevices_svalues['Co2']) < 1200 and uservariables['Var2'] == '1') then
time = os.date("*t")
commandArray['SendEmail']=time.hour..':'..time.min..' Niveau de Co2 redescendu...#Envoyé par Domoticz...#xxxxxxxxx@gmail.com'
commandArray['Variable:Var2']='0'
end
end

return commandArray

epierre
Messages : 614
Enregistré le : 27 mai 2015, 09:32
Contact :

Re: Lire une sonde de type "Air Quality" par un script lua

Message par epierre »

ton device ne peut être devicechanged et otherdevice en même temps...
Imperihome & Domoticz: MyDomoAtHome !
eedomus+ - Domoticz - MySensors
zigbee zwave nrf24l rfx

ricky74
Messages : 71
Enregistré le : 03 sept. 2015, 13:58

Re: Lire une sonde de type "Air Quality" par un script lua

Message par ricky74 »

Ok, comment faut-il faire alors pour détecter le dépassement d'un seuil sur ce type de mesure ?

epierre
Messages : 614
Enregistré le : 27 mai 2015, 09:32
Contact :

Re: Lire une sonde de type "Air Quality" par un script lua

Message par epierre »

ricky74 a écrit :Ok, comment faut-il faire alors pour détecter le dépassement d'un seuil sur ce type de mesure ?

tiens j'ai vu que gizmocuz a répondu sur son forum pour l'usage de nvalues:

otherdevices_nvalues['Co2']

essaye sino je testerai ce soir, j'ai 15 capteurs de gaz chez moi ;-)
Imperihome & Domoticz: MyDomoAtHome !
eedomus+ - Domoticz - MySensors
zigbee zwave nrf24l rfx

ricky74
Messages : 71
Enregistré le : 03 sept. 2015, 13:58

Re: Lire une sonde de type "Air Quality" par un script lua

Message par ricky74 »

otherdevices_nvalues['Co2'] ne fonctionne pas non plus, cela me retourne cette erreur :

attempt to index global 'otherdevices_nvalues' (a nil value)

vil1driver
Messages : 5665
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Lire une sonde de type "Air Quality" par un script lua

Message par vil1driver »

epierre a écrit :ton device ne peut être devicechanged et otherdevice en même temps...
si bien-sur et heureusement :D

que donne ceci ?

Code : Tout sélectionner

commandArray = {} 
if (devicechanged['Co2']) then
   print('co2: ' .. otherdevices_svalues['Co2'])
end  

return commandArray
si comme je le pense ça te met "co2: 627 ppm"
il va falloir dans ton script virer le ppm avant de pouvoir comparer la valeur à une autre...
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

Répondre