This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

Netatmo
#2
(13.07.2015, 21:43)Matt Wrote: Updated version of Netatmo script with HTTPS (http is not allowed by netatmo anymore)

Code:
require 'ltn12' require 'socket.http' json = require("json") https = require 'ssl.https' function refresh_netatmo()  local netatmo_debug = false  local client_id = ""  local client_secret = ""  local username = ""  local password = ""  local scope = "read_station"  -- optional  --local device_id = ""  local request_token_url = "https://api.netatmo.net/oauth2/token"  local request_device_list = "https://api.netatmo.net/api/devicelist"  local response_body = { }  if (netatmo_debug) then    alert("netatmo start")  end    local request_body = "grant_type=password&client_id=" .. client_id .."&client_secret=" .. client_secret .. "&username=" .. username .. "&password=" .. password .. "&scope=" .. scope  local body, code, hdrs, stat = https.request  {    url = request_token_url;    method = "POST";    headers =    {      ["Content-Type"] = "application/x-www-form-urlencoded";      ["Content-Length"] = #request_body;    };    source = ltn12.source.string(request_body);    sink = ltn12.sink.table(response_body);  }  if (code ~= 200) then    alert("netatmo auth error")     error("netatmo auth error : "..tostring(code)..","..tostring(body))    return  end  local response_decode = json.decode(table.concat(response_body))  local access_token = response_decode.access_token  if (netatmo_debug) then    alert("netatmo token %s",access_token)  end    local request_body = "access_token=" .. access_token .. "&app_type=app_station"  -- to limit to only one device : --  local request_body = "access_token=" .. access_token .. "&app_type=app_station&device_id=" .. device_id    local response_body = { }  local body, code, hdrs, stat = https.request  {    url = request_device_list;    method = "POST";    headers =    {      ["Content-Type"] = "application/x-www-form-urlencoded";      ["Content-Length"] = #request_body;    };    source = ltn12.source.string(request_body);    sink = ltn12.sink.table(response_body);  }  if (code ~= 200) then    error("netatmo devicelist error")    return  end  local response_decode = json.decode(table.concat(response_body))  -- Module int  if (netatmo_debug) then    alert("netatmo device 1")  end  grp.write("Netatmo Température intérieure",response_decode.body.devices[1].dashboard_data.Temperature,dt.float16)  grp.write("Netatmo Humidité intérieure",response_decode.body.devices[1].dashboard_data.Humidity,dt.scale)  grp.write("Netatmo Pression",response_decode.body.devices[1].dashboard_data.Pressure,dt.uint16)  grp.write("Netatmo CO2",response_decode.body.devices[1].dashboard_data.CO2,dt.uint16)  grp.write("Netatmo Sonomètre",response_decode.body.devices[1].dashboard_data.Noise,dt.uint8)  grp.write("Netatmo Température intérieure minimum",response_decode.body.devices[1].dashboard_data.min_temp,dt.float16)  grp.write("Netatmo Température intérieure maximum",response_decode.body.devices[1].dashboard_data.max_temp,dt.float16)  grp.write("Netatmo Pression absolue",response_decode.body.devices[1].dashboard_data.AbsolutePressure,dt.uint16)    -- Module ext  if (netatmo_debug) then    alert("netatmo module 1")  end  grp.write("Netatmo Température extérieure",response_decode.body.modules[1].dashboard_data.Temperature,dt.float16)  grp.write("Netatmo Humidité extérieure",response_decode.body.modules[1].dashboard_data.Humidity,dt.float16)  grp.write("Netatmo Température extérieure minimum",response_decode.body.modules[1].dashboard_data.min_temp,dt.float16)  grp.write("Netatmo Température extérieure maximum",response_decode.body.modules[1].dashboard_data.max_temp,dt.float16)    -- Module Pluvio  if (netatmo_debug) then    alert("netatmo module 2")  end      grp.write("Netatmo Pluviomètre",response_decode.body.modules[2].dashboard_data.Rain,dt.float16)  grp.write("Netatmo Pluviomètre 1h",response_decode.body.modules[2].dashboard_data.sum_rain_1,dt.float16)  grp.write("Netatmo Pluviomètre 24h",response_decode.body.modules[2].dashboard_data.sum_rain_24,dt.float16)    if (netatmo_debug) then    alert("netatmo end")  end   end

Matthieu

Thx Matt
Reply


Messages In This Thread
Netatmo - by Matt - 13.07.2015, 21:43
RE: Netatmo - by George - 16.08.2015, 10:59
RE: Netatmo - by gjniewenhuijse - 04.01.2016, 15:24
RE: Netatmo - by Matt - 04.01.2016, 21:10
RE: Netatmo - by gjniewenhuijse - 11.01.2016, 14:59
RE: Netatmo - by Matt - 11.01.2016, 20:38
RE: Netatmo - by gjniewenhuijse - 12.02.2016, 06:40
RE: Netatmo - by buuuudzik - 22.08.2016, 11:46
RE: Netatmo - by admin - 12.02.2016, 07:09
RE: Netatmo - by Matt - 12.02.2016, 07:37
RE: Netatmo - by gjniewenhuijse - 12.02.2016, 09:20
RE: Netatmo - by gjniewenhuijse - 23.02.2016, 07:05
RE: Netatmo - by buuuudzik - 11.05.2016, 12:02
RE: Netatmo - by admin - 11.05.2016, 12:38
RE: Netatmo - by buuuudzik - 11.05.2016, 13:59
RE: Netatmo - by Peter - 17.05.2016, 21:57
RE: Netatmo - by Matt - 18.05.2016, 10:27
RE: Netatmo - by admin - 24.08.2016, 11:25
RE: Netatmo - by buuuudzik - 24.08.2016, 13:16
RE: Netatmo - by gjniewenhuijse - 10.10.2017, 08:20
RE: Netatmo - by Slok - 15.10.2017, 06:53
RE: Netatmo - by Evens - 14.10.2018, 16:03
RE: Netatmo - by Matt - 20.10.2018, 20:09
RE: Netatmo - by Peter - 29.12.2018, 23:46
RE: Netatmo - by paalidar - 30.01.2019, 17:56
RE: Netatmo - by Matt - 30.01.2019, 20:11
RE: Netatmo - by paalidar - 30.01.2019, 20:15
RE: Netatmo - by Erwin van der Zwart - 30.01.2019, 21:27
RE: Netatmo - by victor.back - 26.09.2020, 10:58
RE: Netatmo - by pioneersteffen - 14.09.2021, 19:48
RE: Netatmo - by Daniel - 15.09.2021, 07:35
RE: Netatmo - by pioneersteffen - 15.09.2021, 11:00
RE: Netatmo - by stemic01 - 10.02.2022, 20:32
RE: Netatmo - by Erwin van der Zwart - 11.02.2022, 00:22
RE: Netatmo - by stemic01 - 11.02.2022, 12:08
RE: Netatmo - by iridium - 13.07.2023, 09:53
RE: Netatmo - by gjniewenhuijse - 13.07.2023, 13:41
RE: Netatmo - by admin - 14.07.2023, 08:46
RE: Netatmo - by gjniewenhuijse - 14.07.2023, 11:52
RE: Netatmo - by gjniewenhuijse - 17.07.2023, 13:40
RE: Netatmo - by iridium - 18.07.2023, 07:26
RE: Netatmo - by stemic01 - 20.07.2023, 08:28
RE: Netatmo - by gjniewenhuijse - 21.07.2023, 06:44
RE: Netatmo - by stemic01 - 03.08.2023, 20:45
RE: Netatmo - by Daniel - 04.08.2023, 07:30
RE: Netatmo - by stemic01 - 04.08.2023, 08:35
RE: Netatmo - by Daniel - 04.08.2023, 09:05
RE: Netatmo - by MLa - 04.08.2023, 10:34
RE: Netatmo - by stigen - 23.11.2023, 14:35
RE: Netatmo - by pioneersteffen - 23.12.2023, 14:13
RE: Netatmo - by MLa - 19.07.2024, 07:59
RE: Netatmo - by MaLe - 14.10.2024, 11:41
RE: Netatmo - by gjniewenhuijse - 07.11.2024, 09:28
RE: Netatmo - by Daniel - 07.11.2024, 09:31
RE: Netatmo - by gjniewenhuijse - 08.11.2024, 14:21
RE: Netatmo - by iridium - 03.12.2024, 17:47
RE: Netatmo - by gjniewenhuijse - 04.12.2024, 12:42
RE: Netatmo - by iridium - 12.12.2024, 15:35
RE: Netatmo - by stemic01 - 01.04.2025, 12:24
RE: Netatmo - by Igor - 15.05.2025, 13:26

Forum Jump: