Reporting question

I am looking for guidance. I have been dabbling around Losant for the last 3 years working through understanding the application that we had programmed for our company. Unfortunately with all the other hats I wear here I am quite limited on time so I’m hoping that I can explain what I want to do and maybe the good people that read this can point me in the right direction.

Our application is controlling and monitoring IOT devices at customer locations. These devices use replaceable cartridges. When a cartridge is manufactured here at the shop it is fitted with an RFID tag. The RFID number is entered into a table in Losant with other information about the cartridge. When that cartridge is inserted into the device in the field the device reads the RFID tag and sends a query to losant for approval or denial to run the cartridge. Once the device receives approval to run the cartridge it will run whatever schedule is set on it. As the schedule runs, the run hours against the cartridge are accumulated on the device and synced with losant every 10 minutes or so. The run hour field in the cartridge table is updated with the total hours reported ran against that device. The max run hours of each cartridge are predetermined. There is a timed workflow in losant that runs every 24 hours, it looks at the schedule for the device looks at the cartridge max run hours and the current run hours and makes a determination on when the cartridge will be depleted, it then enters that predicted depletion date into a field in the same cartridge table.

OK I think thats a pretty good snapshot of what I’m working with. Now what I need to do is to create some kind of report that will allow me to list all devices that are running cartridges which will expire within a window of X number of days, where X may change based on other factors.

what I need help with is, does this reporting that I am looking for work best in a workflow, a notebook, a dashboard or other?

I was thinking that since the expected depletion date already exists in the cartridge table I would start there running a query that looks for all cartridges that are actively running in devices and depleting within my X time window. but then I need to list the device that the cartridge is in and the property and organization that the device lives in. this is where I need the guidance. Not looking for someone to do the work for me just would like to know what are best practices and maybe some pointers.

thanks in advance

Dave B

Hey @Dave_Blaylock,

Based on your description, I recommend using a Notebook.

It sounds like you need device metadata and data table rows. It doesn’t sound like you’re using device attribute data for this report, but that can be queried as well.

The notebook can perform whatever processing is required to generate the report. The result can either be saved as a CSV in files or put into another data table (or both). Notebooks are capable of generating PDF files as well, but that’s a little more complicated.

I don’t know how often you need to generate this report, but notebooks can be executed by workflows using a timer. There’s also a notebook trigger that can be used to send an email notification to your stakeholders with the results.