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.

Ebeco floorheat thermostat
#14
(08.08.2022, 12:07)admin Wrote: This works for me using your credentials:
Code:
require('json')
require('ssl.https')
require('ltn12')

-- Set credentials for Ebecoconnect API
userNameOrEmailAddress = '...' -- your email for Ebecoconnect account
password = '...' -- your password for Ebecoconnect account

function GetToken()
  local response_body = {}
  local request_body = json.encode({
    userNameOrEmailAddress = userNameOrEmailAddress,
    password = password,
  })

  local body, code, hdrs, stat = ssl.https.request{
    url = 'https://ebecoconnect.com/api/TokenAuth/Authenticate',
    method = 'POST',
    headers = {
      ['Content-Type'] = 'application/json',
      ['Content-Length'] = #request_body,
      ['Abp.TenantId'] = 1,
    },
    source = ltn12.source.string(request_body),
    sink = ltn12.sink.table(response_body),
  }

  if code == 200 then
    local ret = table.concat(response_body)
    ret = json.pdecode(ret)

    if type(ret) == 'table' and type(ret.result) == 'table' then
      return ret.result.accessToken
    end
  else
    log('request failed', body, code, hdrs, stat)
  end
end

API_Token = GetToken()

function RequestFromEbeco(request, params)
  local url = 'https://ebecoconnect.com/api/services/app/Devices/' .. request
  local response_body = {}
  local request_body = ''
  local body, code, hdrs, stat = ssl.https.request{
    url = url,
    method = 'GET',
    headers = {
      ['Content-Type'] = 'application/json',
      ['Authorization'] = 'Bearer ' .. API_Token,
    },
    source = ltn12.source.string(request_body),
    sink = ltn12.sink.table(response_body),
  }
  if code == 200 then
    local ret = table.concat(response_body)
    ret = json.pdecode(ret)
    return ret
  else
    log('request failed', body, code, hdrs, stat)
  end
end

if API_Token then
  devices = RequestFromEbeco('GetUserDevices')
  log(devices)
end
Now works fine for me too, thanks!

Looks like the problem was that I had used "..." insted of '...'
for some lines, including username
Reply


Messages In This Thread
Ebeco floorheat thermostat - by victor.back - 17.12.2021, 06:50
RE: Ebeco floorheat thermostat - by admin - 17.12.2021, 07:42
RE: Ebeco floorheat thermostat - by admin - 08.08.2022, 06:04
RE: Ebeco floorheat thermostat - by admin - 08.08.2022, 07:06
RE: Ebeco floorheat thermostat - by admin - 08.08.2022, 07:24
RE: Ebeco floorheat thermostat - by admin - 08.08.2022, 08:01
RE: Ebeco floorheat thermostat - by admin - 08.08.2022, 09:27
RE: Ebeco floorheat thermostat - by admin - 08.08.2022, 12:07
RE: Ebeco floorheat thermostat - by victor.back - 08.08.2022, 12:17
RE: Ebeco floorheat thermostat - by admin - 31.10.2023, 07:57

Forum Jump: