Chronological activity feed?

I am looking for a way to easily list or view a chronological event "timeline" of various sensors.

In essence it could be a single timeline that adds specific triggers to the line when they happen.

What I am looking for is something like the alarm.com activity feed. I have been unable to fine anything like this in the community, Closest I have found is this: App: Device Tracker, Multiple Device On/Off Times, On Counts, Notifier, Battery Levels, Switches, Contacts, Temperatures, Power, etc.. With variables access - :construction: Developers / Code Share - Hubitat

This is how the activity timeline looks in alarm.com:

Have you tried something like InfluxDB and Grafana. I don't see why you couldn't do that with Grafana

Could look at the Past Logs page from an App?

If you just need contacts and Locks I could make some mods to an app to make a clean log of only those events.

Probably not what you are thinking of, but I put an "Activity Scroll" on my main dashboard.

image

It is just one method in a custom driver that sets an attribute. I use a command in the driver to set the message, and it gets added to the css scroll using the marquee tag. I keep it at a fixed size, so old activity drops as new messages come in.

def setFrontActivityScroll(activity) { 
    // add to activity list
	def size = settings?.numActivity.toInteger()
    state?.activity.push(activity)
    if (state?.activity.size() > size)
        state.activity.removeAt(0)
	String allActivity = ""
	def arraySize = state?.activity.size()
	for (int x=arraySize-1; x>=0; x--) {
		allActivity = allActivity + state?.activity[x]
		if (x != 0) {allActivity = allActivity+"<br>"}
	}
	String html = """<marquee scrolldelay="500" direction="up" style="font-size:11pt; text-align:center; height: 38px;">${allActivity}</marquee>"""
	sendEvent(name: "frontActivityScroll", value: html, descriptionText: getDescriptionText("frontActivityScroll was set to ${html}}"),stateChange: true)

Take a look at this app I created a while ago. Never released it but sounds like what you are after. If it is, I can add whatever is missing.

  • Design Usage:
  • Sensor Event Logger (File, Hourly Flush + API + Viewer + CSV + Infinite Scroll)
    • Buffers events in state.buffer
    • Flushes to File Manager once per hour OR when buffer reaches maxBufferEntries
    • Daily rotated files: _YYYYMMDD.log (NDJSON)
    • Retention by days (deletes old files)
    • REST endpoints + standalone HTML viewer:
    • Device dropdown (populated from loaded data)
    • Infinite scroll pagination
    • CSV export (/export.csv)

1 Like

Good suggestion, but I have been down the grafana road and had a major issue which has scared me away for a while. I am now using Watchtower which is more lightweight. I was contemplating using that.

1 Like

I could, but would like a cleaner look and better WAF.

This looks promising. I've added it to my hub and will play around with it :slight_smile:

This might actually work, although I am probably looking to use a bigger window etc. I geuss I would need your custom driver as well as the code you post here? Only thing I see here is that it seems to show all logged devices, I would ideally only have a few of them in the list.

I installed your app yesterday, but unfortunately no data is coming in and no file is saved. I did have some OAuth issues in the beginning, but believe they were solved:

There is nothing in the log for the app and I am unable to find that log file (I assume it will be in files?)

Did you trigger some of your chosen sensors (open doors, motion, etc) after installing app?
Not seeing that anything is in the Buffer.

You won't find the file until it has something to write to it. Once you see something in the Buffer, Hit the 'Flush Buffer' button or wait until either 1 hour passes or the buffer size reaches your 'max buffer size'.

Screenshot 2026-02-27 150116

Despite multiple triggers, nothing is going into the buffer. The devices are subscribed, but I can't get a log entry to be made (I added one) in eventHandler.

take a screenshot of the options you have chosen. Hopefully something pops out.

edit:
Just though about something else, are you using Hub Security? I never did set this up to work with that!

thanks

In initial testing, I just chose the devices and kept everything else as default.

In eventHandler, I simply added a line "log 'Test"' Initially, I had log.debug, but changed it to log.

FYI, app info.


Ahhh, yes, hub security is On. Edit: but that shouldn't affect events coming in and being stored in the buffer, right?

Hold on found another bug :roll_eyes:

Alright, give ver 1.0.2 a try...

1 Like

It works! Loving it in the first 2 minutes. I'm already thinking of the backlog of needs this will fill. THANK YOU!

:white_check_mark: Reconfigured with new event dropdown
:white_check_mark: Buffer increase
:white_check_mark: Manual flush to file.
:white_check_mark: Logger data viewable.

One tiny issue: in the logger viewer -> select a device in the dropdown -> all of the other devices disappear from the dropdown. Need to choose All before the menu is repopulated again.

Screenshot 2026-02-27 at 9.56.15 PM
Screenshot 2026-02-27 at 9.56.27 PM

1 Like