Page 1 sur 1

[Résolu] Problème accès json en LUA

Publié : 24 juil. 2018, 16:50
par jmv75013
Bonjour,

Je voudrais récupérer dans un script LUA, la valeur CounterToday d'un des devices. Lorsque je fait

Code : Tout sélectionner

 http://ip:port/json.htm?type=devices&rid=88
j'obtiens le résultat suivant :

Code : Tout sélectionner

{
   "ActTime" : 1532442116,
   "AstrTwilightEnd" : "00:35",
   "AstrTwilightStart" : "03:35",
   "CivTwilightEnd" : "22:30",
   "CivTwilightStart" : "05:41",
   "DayLength" : "15:31",
   "NautTwilightEnd" : "23:22",
   "NautTwilightStart" : "04:48",
   "ServerTime" : "2018-07-24 16:21:56",
   "SunAtSouth" : "14:05",
   "Sunrise" : "06:20",
   "Sunset" : "21:50",
   "app_version" : "4.9732",
   "result" : [
      {
         "AddjMulti" : 1.0,
         "AddjMulti2" : 1.0,
         "AddjValue" : 0.0,
         "AddjValue2" : 0.0,
         "BatteryLevel" : 255,
         "CounterToday" : "1.768 kWh",
         "CustomImage" : 0,
         "Data" : "85838.5 kWh",
         "Description" : "",
         "Favorite" : 1,
         "HardwareID" : 6,
         "HardwareName" : "Teleinfo",
         "HardwareType" : "Teleinfo EDF",
         "HardwareTypeVal" : 19,
         "HaveTimeout" : false,
         "ID" : "00000604",
         "LastUpdate" : "2018-07-24 16:21:29",
         "Name" : "Teleinfo kWh Heures Pleines",
         "Notifications" : "false",
         "Options" : "",
         "PlanID" : "7",
         "PlanIDs" : [ 7 ],
         "Protected" : false,
         "ShowNotifications" : true,
         "SignalLevel" : "-",
         "SubType" : "kWh",
         "SwitchTypeVal" : 0,
         "Timers" : "false",
         "Type" : "General",
         "TypeImg" : "current",
         "Unit" : 1,
         "Usage" : "270 Watt",
         "Used" : 1,
         "XOffset" : "0",
         "YOffset" : "0",
         "idx" : "88"
      }
   ],
   "status" : "OK",
   "title" : "Devices"
}
Dans le script time LUA dont voici un extrait

Code : Tout sélectionner

	local config=assert(io.popen('/usr/bin/curl http://ip:port/json.htm?type=devices&rid='..Idx_HP))
	local blocjson = config:read('*all')
	config:close()
	
	print(blocjson)
	local jsonValeur = json:decode(blocjson)
	counterToday = jsonValeur.result[1].CounterToday
	Cout_HP = counterToday * Kwh_HP
Je n'arrive pas a obtenir la même chose. En effet le print(blocjson) ne donne pas du tout le même résultat mais surtout pas de counterToday et des devices qui ne correspondant pas à celui qui m'interesse (rid=88)

Code : Tout sélectionner

2018-07-24 16:44:01.046 Status: LUA: {
2018-07-24 16:44:01.046 "ActTime" : 1532443440,
2018-07-24 16:44:01.046 "AstrTwilightEnd" : "00:35",
2018-07-24 16:44:01.046 "AstrTwilightStart" : "03:35",
2018-07-24 16:44:01.046 "CivTwilightEnd" : "22:30",
2018-07-24 16:44:01.046 "CivTwilightStart" : "05:41",
2018-07-24 16:44:01.046 "DayLength" : "15:31",
2018-07-24 16:44:01.046 "NautTwilightEnd" : "23:22",
2018-07-24 16:44:01.046 "NautTwilightStart" : "04:48",
2018-07-24 16:44:01.046 "ServerTime" : "2018-07-24 16:44:00",
2018-07-24 16:44:01.046 "SunAtSouth" : "14:05",
2018-07-24 16:44:01.046 "Sunrise" : "06:20",
2018-07-24 16:44:01.046 "Sunset" : "21:50",
2018-07-24 16:44:01.046 "app_version" : "4.9732",
2018-07-24 16:44:01.046 "result" : [
2018-07-24 16:44:01.046 {
2018-07-24 16:44:01.046 "AddjMulti" : 1.0,
2018-07-24 16:44:01.046 "AddjMulti2" : 1.0,
2018-07-24 16:44:01.046 "AddjValue" : 0.0,
2018-07-24 16:44:01.046 "AddjValue2" : 0.0,
2018-07-24 16:44:01.046 "Barometer" : 1014,
2018-07-24 16:44:01.046 "BatteryLevel" : 255,
2018-07-24 16:44:01.046 "CustomImage" : 0,
2018-07-24 16:44:01.046 "Data" : "24.9 C, 60 %, 1014 hPa",
2018-07-24 16:44:01.046 "Description" : "",
2018-07-24 16:44:01.046 "DewPoint" : "16.60",
2018-07-24 16:44:01.046 "Favorite" : 0,
2018-07-24 16:44:01.046 "Forecast" : 2,
2018-07-24 16:44:01.046 "ForecastStr" : "Partly Cloudy",
2018-07-24 16:44:01.046 "HardwareID" : 4,
2018-07-24 16:44:01.046 "HardwareName" : "Meteo",
2018-07-24 16:44:01.046 "HardwareType" : "DarkSky (Weather Lookup)",
2018-07-24 16:44:01.046 "HardwareTypeVal" : 25,
2018-07-24 16:44:01.046 "HaveTimeout" : false,
2018-07-24 16:44:01.046 "Humidity" : 60,
2018-07-24 16:44:01.046 "HumidityStatus" : "Comfortable",
2018-07-24 16:44:01.046 "ID" : "0001",
2018-07-24 16:44:01.046 "LastUpdate" : "2018-07-24 16:42:51",
2018-07-24 16:44:01.046 "Name" : "THB",
2018-07-24 16:44:01.046 "Notifications" : "false",
2018-07-24 16:44:01.046 "PlanID" : "0",
2018-07-24 16:44:01.046 "PlanIDs" : [ 0 ],
2018-07-24 16:44:01.046 "Protected" : false,
2018-07-24 16:44:01.046 "ShowNotifications" : true,
2018-07-24 16:44:01.046 "SignalLevel" : "-",
2018-07-24 16:44:01.046 "SubType" : "THB1 - BTHR918, BTHGN129",
2018-07-24 16:44:01.046 "Temp" : 24.899999999999999,
2018-07-24 16:44:01.046 "Timers" : "false",
2018-07-24 16:44:01.046 "Type" : "Temp + Humidity + Baro",
2018-07-24 16:44:01.046 "TypeImg" : "temperature",
2018-07-24 16:44:01.046 "Unit" : 1,
2018-07-24 16:44:01.046 "Used" : 1,
2018-07-24 16:44:01.046 "XOffset" : "0",
2018-07-24 16:44:01.046 "YOffset" : "0",
2018-07-24 16:44:01.046 "forecast_url" : "aHR0cHM6Ly9kYXJrc2t5Lm5ldC8jL2YvNDkuMzMxMjM0JTJDMC4zNTE4MDQ=",
2018-07-24 16:44:01.046 "idx" : "2"
2018-07-24 16:44:01.046 },
2018-07-24 16:44:01.046 {
2018-07-24 16:44:01.046 "AddjMulti" : 1.0,
2018-07-24 16:44:01.046 "AddjMulti2" : 1.0,
2018-07-24 16:44:01.046 "AddjValue" : 0.0,
2018-07-24 16:44:01.046 "AddjValue2" : 0.0,
2018-07-24 16:44:01.046 "BatteryLevel" : 255,
2018-07-24 16:44:01.046 "Chill" : 25.0,
2018-07-24 16:44:01.046 "CustomImage" : 0,
2018-07-24 16:44:01.046 "Data" : "6.00;N;20;21;24.9;25.0",
2018-07-24 16:44:01.046 "Description" : "",
2018-07-24 16:44:01.046 "Direction" : 6.0,
2018-07-24 16:44:01.046 "DirectionStr" : "N",
2018-07-24 16:44:01.046 "Favorite" : 0,
2018-07-24 16:44:01.046 "Gust" : "2.1",
2018-07-24 16:44:01.046 "HardwareID" : 4,
2018-07-24 16:44:01.046 "HardwareName" : "Meteo",
2018-07-24 16:44:01.046 "HardwareType" : "DarkSky (Weather Lookup)",
2018-07-24 16:44:01.046 "HardwareTypeVal" : 25,
2018-07-24 16:44:01.046 "HaveTimeout" : false,
2018-07-24 16:44:01.046 "ID" : "0001",
2018-07-24 16:44:01.046 "LastUpdate" : "2018-07-24 16:42:51",
2018-07-24 16:44:01.046 "Name" : "Vent",
2018-07-24 16:44:01.046 "Notifications" : "false",
2018-07-24 16:44:01.046 "PlanID" : "0",
2018-07-24 16:44:01.046 "PlanIDs" : [ 0 ],
2018-07-24 16:44:01.046 "Protected" : false,
2018-07-24 16:44:01.046 "ShowNotifications" : true,
2018-07-24 16:44:01.046 "SignalLevel" : "-",
2018-07-24 16:44:01.046 "Speed" : "2.0",
2018-07-24 16:44:01.046 "SubType" : "TFA",
2018-07-24 16:44:01.046 "Temp" : 24.899999999999999,
2018-07-24 16:44:01.046 "Timers" : "false",
2018-07-24 16:44:01.046 "Type" : "Wind",
2018-07-24 16:44:01.046 "TypeImg" : "wind",
2018-07-24 16:44:01.046 "Unit" : 0,
2018-07-24 16:44:01.046 "Used" : 1,
2018-07-24 16:44:01.046 "XOffset" : "0",
2018-07-24 16:44:01.046 "YOffset" : "0",
2018-07-24 16:44:01.046 "forecast_url" : "aHR0cHM6Ly9kYXJrc2t5Lm5ldC8jL2YvNDkuMzMxMjM0JTJDMC4zNTE4MDQ=",
2018-07-24 16:44:01.046 "idx" : "3"
2018-07-24 16:44:01.046 },
2018-07-24 16:44:01.046 {
2018-07-24 16:44:01.046 "AddjMulti" : 1.0,
2018-07-24 16:44:01.046 "AddjMulti2" : 1.0,
2018-07-24 16:44:01.046 "AddjValue" : 0.0,
2018-07-24 16:44:01.046 "AddjValue2" : 0.0,
2018-07-24 16:44:01.046 "BatteryLevel" : 255,
2018-07-24 16:44:01.046 "CustomImage" : 0,
2018-07-24 16:44:01.046 "Data" : "0;0.0",
2018-07-24 16:44:01.046 "Description" : "",
2018-07-24 16:44:01.046 "Favorite" : 0,
2018-07-24 16:44:01.046 "HardwareID" : 4,
2018-07-24 16:44:01.046 "HardwareName" : "Meteo",
2018-07-24 16:44:01.046 "HardwareType" : "DarkSky (Weather Lookup)",
2018-07-24 16:44:01.046 "HardwareTypeVal" : 25,
2018-07-24 16:44:01.046 "HaveTimeout" : false,
2018-07-24 16:44:01.046 "ID" : "0001",
2018-07-24 16:44:01.046 "LastUpdate" : "2018-07-24 16:42:51",
2018-07-24 16:44:01.046 "Name" : "Pluie",
2018-07-24 16:44:01.046 "Notifications" : "false",
2018-07-24 16:44:01.046 "PlanID" : "0",
2018-07-24 16:44:01.046 "PlanIDs" : [ 0 ],
2018-07-24 16:44:01.046 "Protected" : false,
2018-07-24 16:44:01.046 "Rain" : "0",
2018-07-24 16:44:01.046 "RainRate" : "0",
2018-07-24 16:44:01.046 "ShowNotifications" : true,
2018-07-24 16:44:01.046 "SignalLevel" : "-",
2018-07-24 16:44:01.046 "SubType" : "WWW",
2018-07-24 16:44:01.046 "Timers" : "false",
2018-07-24 16:44:01.046 "Type" : "Rain",
2018-07-24 16:44:01.046 "TypeImg" : "rain",
2018-07-24 16:44:01.046 "Unit" : 0,
2018-07-24 16:44:01.046 "Used" : 1,
2018-07-24 16:44:01.046 "XOffset" : "0",
2018-07-24 16:44:01.046 "YOffset" : "0",
2018-07-24 16:44:01.046 "forecast_url" : "aHR0cHM6Ly9kYXJrc2t5Lm5ldC8jL2YvNDkuMzMxMjM0JTJDMC4zNTE4MDQ=",
2018-07-24 16:44:01.046 "idx" : "4"
2018-07-24 16:44:01.046 },
2018-07-24 16:44:01.046 {
2018-07-24 16:44:01.046 "AddjMulti" : 1.0,
2018-07-24 16:44:01.046 "AddjMulti2" : 1.0,
2018-07-24 16:44:01.046 "AddjValue" : 0.0,
2018-07-24 16:44:01.046 "AddjValue2" : 0.0,
2018-07-24 16:44:01.046 "BatteryLevel" : 255,
2018-07-24 16:44:01.046 "CustomImage" : 0,
2018-07-24 16:44:01.046 "Data" : "316.72 DU",
2018-07-24 16:44:01.046 "Description" : "",
2018-07-24 16:44:01.046 "Favorite" : 0,
2018-07-24 16:44:01.046 "HardwareID" : 4,
2018-07-24 16:44:01.046 "HardwareName" : "Meteo",
2018-07-24 16:44:01.046 "HardwareType" : "DarkSky (Weather Lookup)",
2018-07-24 16:44:01.046 "HardwareTypeVal" : 25,
2018-07-24 16:44:01.046 "HaveTimeout" : false,
2018-07-24 16:44:01.046 "ID" : "00000100",
2018-07-24 16:44:01.046 "Image" : "Custom",
2018-07-24 16:44:01.046 "LastUpdate" : "2018-07-24 16:42:51",
2018-07-24 16:44:01.046 "Name" : "Soleil",
2018-07-24 16:44:01.046 "Notifications" : "false",
2018-07-24 16:44:01.046 "PlanID" : "0",
2018-07-24 16:44:01.046 "PlanIDs" : [ 0 ],
2018-07-24 16:44:01.046 "Protected" : false,
2018-07-24 16:44:01.046 "SensorType" : 1,
2018-07-24 16:44:01.046 "SensorUnit" : "DU",
2018-07-24 16:44:01.046 "ShowNotifications" : true,
2018-07-24 16:44:01.046 "SignalLevel" : "-",
2018-07-24 16:44:01.046 "SubType" : "Custom Sensor",
2018-07-24 16:44:01.046 "Timers" : "false",
2018-07-24 16:44:01.046 "Type" : "General",
2018-07-24 16:44:01.046 "TypeImg" : "Custom",
2018-07-24 16:44:01.046 "Unit" : 1,
2018-07-24 16:44:01.046 "Used" : 1,
2018-07-24 16:44:01.046 "XOffset" : "0",
2018-07-24 16:44:01.046 "YOffset" : "0",
2018-07-24 16:44:01.046 "forecast_url" : "aHR0cHM6Ly9kYXJrc2t5Lm5ldC8jL2YvNDkuMzMxMjM0JTJDMC4zNTE4MDQ=",
2018-07-24 16:44:01.046 "idx" : "5"
2018-07-24 16:44:01.046 },
2018-07-24 16:44:01.046 {
2018-07-24 16:44:01.046 "AddjMulti" : 1.0,
2018-07-24 16:44:01.046 "AddjMulti2" : 1.0,
2018-07-24 16:44:01.046 "AddjValue" : 0.0,
2018-07-24 16:44:01.046 "AddjValue2" : 0.0,
2018-07-24 16:44:01.046 "BatteryLevel" : 255,
2018-07-24 16:44:01.046 "CustomImage" : 107,
2018-07-24 16:44:01.046 "Data" : "63149 kWh",
2018-07-24 16:44:01.046 "Description" : "",
2018-07-24 16:44:01.046 "Favorite" : 1,
2018-07-24 16:44:01.046 "HardwareID" : 5,
2018-07-24 16:44:01.046 "HardwareName" : "Virtuel",
2018-07-24 16:44:01.046 "HardwareType" : "Dummy (Does nothing, use for virtual switches only)",
2018-07-24 16:44:01.046 "HardwareTypeVal" : 15,
2018-07-24 16:44:01.046 "HaveTimeout" : false,
2018-07-24 16:44:01.046 "ID" : "00082035",
2018-07-24 16:44:01.046 "Image" : "Compteur",
2018-07-24 16:44:01.046 "LastUpdate" : "2018-07-24 16:43:08",
2018-07-24 16:44:01.046 "Name" : "HC",
2018-07-24 16:44:01.046 "Notifications" : "false",
2018-07-24 16:44:01.046 "PlanID" : "7",
2018-07-24 16:44:01.046 "PlanIDs" : [ 7 ],
2018-07-24 16:44:01.046 "Protected" : false,
2018-07-24 16:44:01.046 "SensorType" : 1,
2018-07-24 16:44:01.046 "SensorUnit" : "kWh",
2018-07-24 16:44:01.046 "ShowNotifications" : true,
2018-07-24 16:44:01.046 "SignalLevel" : "-",
2018-07-24 16:44:01.046 "SubType"
Si quelqu'un peut m'aider à résoudre ce problème, je lui en serai très reconnaissant.

Merci

Re: Problème accès json en LUA

Publié : 24 juil. 2018, 16:58
par vil1driver
Salut

Idx_HP = 88 ?

Ps: countertoday = '1.768 kWh' (chaîne de caractères qu'il faudra nettoyer avant de s'en servir dans un calcul)

Code : Tout sélectionner

Compteur = tonumber(string.sub("1.768 kWh", 1,-4)) -- du 1er caractères jusqu'à 4 avant la fin puis converti en nombre 
> 1.768

Re: Problème accès json en LUA

Publié : 24 juil. 2018, 18:57
par jmv75013
Bonsoir vil1driver

Oui Idx_HP=88.

Effectivement il faudra nettoyer la chaîne, bien vu ! Mais je n’ai pas de countertoday dans blocjson.

Re: Problème accès json en LUA

Publié : 24 juil. 2018, 19:24
par vil1driver
Ce n'est pas normal que ça te retourne autant, pour être certain mets vraiment 88 sans passer par une variable.
Ton souci doit être à ce niveau

Re: Problème accès json en LUA

Publié : 25 juil. 2018, 09:29
par jmv75013
Bonjour,

Effectivement Vil1driver, cela tournait bien autour de cette instruction. Voila la syntaxe exacte (notez bien les doubles quotes qui encadrent la requete HTTP)

Code : Tout sélectionner

	local config = assert(io.popen('/usr/bin/curl "http://ip:port/json.htm?type=devices&rid='..Idx_HP..'"'))
Merci pour ton aide