Tracking work hours

Think I came up with a decent way of tracking working hours.

I use Node-red dashboard to input hours.
User list are retrieved from farmOS.

The hours are stored as an activity log in farmOS.
The selected user is owner also of the log.
A working hour category is also added to the log.

I intend to remove the flag when the hours are paid.

As a bonus, I get a notification from ntfy on my phone, and the user gets an email with a listing of all unpaid hours.

Possible addon :
Instead of a text-field, there could be a dropdown with some categories
Button in Node-Red to “pay the user”, and remove flags from logs.

I mark the logs as done, since the work is done. But could rather use status to track if the work is paid or not.

It gives me a flexible view of all working hours.


If I were doing this, I think I’d use inventory tracking to keep track of the paid/unpaid hours/money state.

In the simplest case there would be two logs to complete the cycle then - one that credits the hours against a balance, and a second that “settles” the balance when the hours have been paid.

The nice thing about this is that it captures the potential many-to-one relationship between work events and payment events, but provides a convenient place to upload the receipt/invoice photo on the payment log.

I use this “Money” asset type GitHub - symbioquine/farmOS_money_asset: A 'money asset' module for farmOS (along with a “USD” - US dollars - unit) for that account balance tracking purpose in my own use-case, but the same idea would work if you created a “Timesheet” asset type for hours inventory tracking.


Thanks for suggestions. I didn’t think of that. :+1:


Yeah, I would argue that the inventory tracking capability is farmOS’ most powerful feature :nerd_face:

1 Like

Hmm. I must explore… :slight_smile:


This is great @pat! I was actually thinking of writing up a proposal for a core convention for time tracking.

Worth noting, @paul121 also started some work on a “Time” quantity type: Time quantities [#3196844] |

The key features that this quantity type would add are:

  • A user reference field to indicate which user was tracking time
  • A start time field for storing the timestamp when they “clocked in”
  • A stop time field for storing the timestamp when they “clocked out”

See that feature request for more details on the reasoning behind these things.

We basically shelved that during the 2.x development push because it wasn’t a high priority, but I’d love to dust it off and think about it again!


Thanks. Interesting features indeed.

I just needed a simple way to track workers hours for starters. I might go further on this.
Would be a nice to semi-automatic track my own hours too. Clock in/out with a hard button by the barn door or something.

I should dig in and try to make a quickform for this. But for my workers to use it, I would need to give them full access to my data. I don’t like that.
Node-Red is great that way.


@Symbioquine I just thought of another asset link use-case! :wink:


Tempted to learn about the inventory features, I came up with a dashboard for tracking diesel usage.

A button to fill up the diesel storage. And a form to fill up a tractor with the given quantity.
The storage is decremented, and the tractor is incremented.
That gives a way to track diesel usage pr tractor too.

I really liked the inventory feature. :+1:

@Symbioquine Maybe another asset-link use case??


Cool, I like the tracking per tractor idea :tractor:



1 Like