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.

influxdb
#18
Yes, I have alot of GA that is beeing used outside om LM. Smile

Tried your code but it gives me following error

Also wonder how the string would like like if I want to transmit a modified Timestamp, and where should it be placed?
For example (strTime = os.time() + 3600)

Code:
* arg: 1
  * string: error sending to influx
* arg: 2
  * string: {"code":"invalid","message":"unable to parse 'rawdata,name=Heru\\ -\\ Max\\ exhaust\\ fan\\ speed,\\ EC,addr=2/3/5 value=72': missing tag value"}
* arg: 3
  * number: 400
* arg: 4
  *


Code:
local socket = require('socket')
local http = require('socket.http')
http.TIMEOUT = 5


local dt_cache = {}
function get_value(addr, datahex)
  local obj = dt_cache[addr]

  if obj == nil then
    obj = grp.find(addr)
    dt_cache[ addr ] = obj or false
  end
 
  if obj then
    return knxdatatype.decode(datahex, obj.datatype), obj
  end
end

function knx_callback(event)
  local addr = event.dst
  local value, obj = get_value(addr, event.datahex)

  if value ~= nil then
    send_metric('rawdata', obj.name, addr, value)
  end
end


function send_metric(table, name, addr, value)
  if name == nil or name == '' then
    return
  end

  name = string.gsub(name, ' ', '\\ ')

  local url = 'http://192.168.1.200:8086/api/v2/write?bucket=xxx&org=xxx'
  local body

  if type(value) == 'boolean' then
    body = string.format('%s,name=%s,addr=%s state=%s', table, name, addr, value)
  else
    -- most likely number
    body = string.format('%s,name=%s,addr=%s value=%s', table, name, addr, value)
  end

  local res, code = http.request({
    url = url,
    method = 'POST',
    body = body,
    headers = {
      Authorization = 'Token XXXX'
    }
  })

  if code ~= 204 then
    log('error sending to influx', res, code, body)
  end
end

function run_loop()
  local bus = require('localbus').new(1)
  bus:sethandler('groupwrite', knx_callback)
  local busfd = socket.fdmaskset(bus:getfd(), 'r')

 
  while(true) do
    res, fbus = socket.selectfds(10, busfd)
    if(fbus) then
      bus:step()
    end
  end
end

run_loop()
Reply


Messages In This Thread
influxdb - by mischa - 12.08.2018, 07:03
RE: influxdb - by admin - 13.08.2018, 11:25
RE: influxdb - by mischa - 13.08.2018, 12:44
RE: influxdb - by eirik - 19.11.2019, 18:49
RE: influxdb - by myg - 28.05.2020, 16:47
RE: influxdb - by thomasoppida - 14.12.2021, 09:07
RE: influxdb - by admin - 14.12.2021, 10:00
RE: influxdb - by thomasoppida - 14.12.2021, 13:07
RE: influxdb - by admin - 14.12.2021, 14:02
RE: influxdb - by jensmagnar - 23.12.2021, 14:56
RE: influxdb - by admin - 23.12.2021, 14:59
RE: influxdb - by jensmagnar - 06.01.2022, 22:12
RE: influxdb - by Re-G - 07.01.2022, 11:34
RE: influxdb - by admin - 07.01.2022, 12:12
RE: influxdb - by Re-G - 07.01.2022, 13:38
RE: influxdb - by sx3 - 06.10.2022, 16:14
RE: influxdb - by admin - 07.10.2022, 05:33
RE: influxdb - by sx3 - 07.10.2022, 14:31
RE: influxdb - by sx3 - 12.10.2022, 06:05
RE: influxdb - by admin - 12.10.2022, 06:13
RE: influxdb - by sx3 - 17.10.2022, 16:41
RE: influxdb - by admin - 18.10.2022, 06:36
RE: influxdb - by tigi - 27.10.2022, 14:16
RE: influxdb - by admin - 28.10.2022, 06:06
RE: influxdb - by tigi - 28.10.2022, 07:25
RE: influxdb - by sx3 - 23.12.2022, 10:06
RE: influxdb - by admin - 23.12.2022, 10:13
RE: influxdb - by DGrandes - 04.01.2024, 09:56
RE: influxdb - by admin - 04.01.2024, 12:01
RE: influxdb - by DGrandes - 04.01.2024, 13:11
RE: influxdb - by DGrandes - 12.01.2024, 12:08
RE: influxdb - by admin - 12.01.2024, 15:08
RE: influxdb - by DGrandes - 13.01.2024, 10:52
RE: influxdb - by admin - 13.01.2024, 11:02

Forum Jump: