Hubitat logs API

Is there an API for Hubitat logs that emits events in a form meant for machine consumption vs display?

I see that I can request past logs from /logs/past/json but the result looks like ["2023-01-17 13:24:08.369\tINFO \tapp|354|L1 hall motion dim <span style='color:red'>Restricted</span>|evt: 1F main hall motion sensor motion active --> restricted" whereas I’m looking for data with a schema or in some kind of structure that doesn’t require parsing. An example might be:

{"timestamp": "2023-01-17 13:24:08.369", "logLevel": "INFO", "source": "application", "sourceId": "354", "sourceDescription": "L1 hall motion dim <span style='color:red'>Restricted</span>", "eventDescription: "1F main hall motion sensor motion active --> restricted"}

Thanks!

1 Like

If you want discrete events for devices, Maker API may work for you. You can poll it via HTTP or have it push events to you.

2 Likes

What is your goal?

I ask because there are two undocumented websocket connections to the hub that are available. I'm not at home (so I cannot check), but I'm pretty sure They send out JSON formatted events. And should be easier on the hub than using MakerAPI vis-a-vis processor use.

Anyway, you can access them at:

ws://your.hubitat.ip/eventsocket
and
ws://your.hubitat.ip/logsocket

3 Likes

I use this to grab logs via Node-RED and write them to a database. Works really well.

3 Likes

Thanks for the replies everyone!

  • It sounds like there are websockets for pushing events as they are produced

  • Is there an API for pulling a historical log of events from Hubitat that’s like http:///logs/past/json but has each element (schema parameter?) of the log line available in a structured format? For example, the log line has a log level like “INFO” element that I’d like to access without parsing the whole string.

It looks like there’s an undocumented API that’s close to what I want.

For a given device ID (in this screenshot, it’s device ID 66), a URL can be formed like this to request for a device’s events in a structured response: [Preformatted text](http://192.168.1.151/device/events/66/dataTablesJson?draw=4&columns%5B0%5D%5Bdata%5D=0&columns%5B0%5D%5Bname%5D=ID&columns%5B0%5D%5Bsearchable%5D=false&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=1&columns%5B1%5D%5Bname%5D=NAME&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=2&columns%5B2%5D%5Bname%5D=VALUE&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=3&columns%5B3%5D%5Bname%5D=UNIT&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=4&columns%5B4%5D%5Bname%5D=DESCRIPTION_TEXT&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=true&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B5%5D%5Bdata%5D=5&columns%5B5%5D%5Bname%5D=SOURCE&columns%5B5%5D%5Bsearchable%5D=true&columns%5B5%5D%5Borderable%5D=true&columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B6%5D%5Bdata%5D=6&columns%5B6%5D%5Bname%5D=EVENT_TYPE&columns%5B6%5D%5Bsearchable%5D=true&columns%5B6%5D%5Borderable%5D=true&columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B7%5D%5Bdata%5D=7&columns%5B7%5D%5Bname%5D=PRODUCED_BY&columns%5B7%5D%5Bsearchable%5D=true&columns%5B7%5D%5Borderable%5D=true&columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B8%5D%5Bdata%5D=8&columns%5B8%5D%5Bname%5D=TRIGGERED_LISTENERS&columns%5B8%5D%5Bsearchable%5D=true&columns%5B8%5D%5Borderable%5D=true&columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B9%5D%5Bdata%5D=9&columns%5B9%5D%5Bname%5D=DATE&columns%5B9%5D%5Bsearchable%5D=true&columns%5B9%5D%5Borderable%5D=true&columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=9&order%5B0%5D%5Bdir%5D=desc&start=0&length=100&search%5Bvalue%5D=&search%5Bregex%5D=false&_=1676390705083)

Here’s what the JSON response can look like:


1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.