▣🔗 Asset Link - Use-case Drive

TL;DR; Please tell me your use-cases for mobile/offline record keeping and I might implement demonstration Asset Link plugins for some of them.

Context: I’m reaching a point in Asset Link development where I need to stretch a bit and experiment implementing a bunch of plugins to help verify that the API and extension model is sufficiently flexible.

For background, check out: ▣🔗 Asset Link dev log


Two off the top of my head, because they are part of my daily routine… :slight_smile:

  • Recording egg harvests
  • Recording precipitation from a rain gauge

Being able to take quick pictures and associate them with logs is also something I want to be able to do a lot of the time.


Here’s a few I’m working on/planned for my own project so don’t build on account of me, but ideas just the same.

  • Inventory usage (Bales/feed, medicine cabinet etc.)
  • Livestock Weighing (Possible bluetooth scales / EID integration?)
  • Livestock Fertility (Heats / Service / Births etc)
  • Feed/medical group creation (maybe EID reader)
  • Grazing / silage Plans

I guess most of what I’ve seen of Asset Link has been data entry but some reports screens might be nice too.

  • Livestock Due Dates / Recent Births
  • Medical Reports (meat/other produce withdrawal dates)
  • Current Stock / mobs
  • Grazing / silage Plans
  • Soil / other Lab Tests
  • Fertilizer application

My ideas may be a little livestock centric :thinking:


Agreed from what testing I have done with Asset Link, the camera / photo integration is one of the most interesting features.

1 Like


Since I’ve never tried it, it’s not easy to think of use cases apart from general recordkeeping.
But crop related recordkeeping comes to my mind. I haven’t used farmOS for crops yet, but I will start this year.
I think Asset Link can contribute here.

The plant/seed is an asset beeing “moved around” (Seeded, harvested, sold)
Walking in the fields, it’s interesting to see seed rates, what’s been done, and when.
Maybe also see planned tasks, not yet done.
Could also be nice to easily switch between other fields/seasons.

Adding images of the crop, weeds, etc

Example :
The cover-crop goes bad and you want to add some info about that for later reference.
then it’s nice to have a summary of what’s done in the field, seeding rates etc…
The summary should have the dates for the tasks, but also show days from seeding.
If there’s comments (notes) to the tasks, the user should be able to see that in the summary too. (E.g: “Lowered the seeding depth at the east side” - Nice to know this when evaluating the cover-crop.



The ingress to this probably isn’t quite right. If the observations are “about an asset” then the ingress for this should be an action button on the asset, but this demonstrates capturing photos and creating logs with them pretty well.


I implemented this one as a demonstration some time ago, but it still works:


I guess this would be pretty much the same as the egg harvest one, except it might use some sort of number input.

The main things that those plugins might then be missing are:

  • Improvements to the conditions under which they’re shown (The chicken one is just looking for “chicken” in the name of the asset and presumably, the rain gauge one would also need to determine whether an equipment asset is a rain gauge before showing the button.)
  • Maybe a way to specify the date so the plugins could be used to save data for previous days
  • Maybe a way to show if an existing record has already been created for this asset

Asset Link already comes with a default plugin for moving an asset which creates activity logs for the movements. It wouldn’t be hard to write a more full-featured version that allows for creating some of those other log types and populating key/relevant fields.

Asset Link includes a proximity search which uses the current geolocation to show nearby assets so I think the thing that would be missing here is showing the seed rate on the asset page in Asset Link once you select one of those nearby assets from the proximity search.

We’d need to decide where/when these should show? At a per-asset level? Per-user? Overall for the whole farm?


Ah interesting… in the case of precip observations, I actually don’t reference an asset at all. So maybe that complicates the entrypoint into this form? If I recall from the dev call today your photo observation demo created a log without an asset reference, right? But in this case it would just be a question of: “how do you get to the precip form” perhaps…

1 Like

If it were on a per-asset level, it might look like this:


Note 1: I just marked a bunch of test logs as pending here so there’d be something to show, in the real-world hopefully these logs would be more interesting.

Note 2: A next-step would probably be to implement some widget decorator plugins to render the (relative?) date and completion status along with the log name.

1 Like

Yeah, that’s true.

There’s nothing stopping you from creating stand-alone pages in asset link though;



Then you could have a QR code for that page next to your rain guage:




During the dev call today, I demonstrated splitting the “quick actions” menu into its own plugin and making the “quick photo observation” plugin work both via that menu and via an action on the assets;




I did a rudimentary port of the Pasture Condition Score quick form (context) to an Asset Link plugin:


Note: I didn’t include the date field, but that would be trivial to add - just a QDate widget whose output gets formatted as RFC3339 and passed as part of creating the observation log.

import { formatRFC3339 } from 'assetlink-plugin-api';

I think itss a good look.
Standing in the field, it’s the asset that’s in focus.

On the other hand, a short glimpse of what’s left to do for all fields is also nice sometimes.
But pr asset is most important.

Maybe the treeview would be a nice way of showing the logs for different seasons.

Impressive speed on the app in demo. How would that be on a hosted farmOS?
I think this could affect how things should be layd out.

A tree-view with Seasons at top level, could get quite big. Comparing the drilling logs for 2 or three seasons could make room for a lot of scrolling and tapping.
Maybe expose all seeding logs for all seasons with the tap of a button?

Main menu:
View logs

Within the treeview window:
View seeding logs for all seasons
View harvesting logs fro all seasons

View the complete tree for current season, and tap an icon behind the log title to view matching logs in all seasons… That would filter out the stuff the user don’t need at the moment.

Did that make sense?
My point is that it should be easy to compare different things without a lot of going back and forth.
There should propably be a limit for how many seasons to work with. 2 or 3 seasons would be enough for most cases.


When I refreshed my self on the Asset Link - Dev log, I remembered @walt was quite interesting in asset link too. If I’m not completlly wrong, his needs could maybe melt in with mine.

1 Like

Thanks, @pat , for the reminder. In fact, i remain super-interested to have a mobile app that will sync w/ my Farmier-hosted instance, supporting two simple use-cases, i.e.:

  1. Agile recording of observations in the field, often accompanied by photo; voice recording of text would be a nice option (since typing on glass in field w/ dirty hands is often complicated); and
  2. Easy access to records (e.g. maintenance logs) and notes (e.g. documentation of procedures to follow) related to the subject asset; nice to have would be context-sensitive auto-retrieve of asset record, based on scannable QR code (e.g. on a piece of equipment) or geo-location (e.g. a tree that is being treated for disease).

Don’t have time ATM to think through other UseCases, but these are the needs that, if addressed reasonably soon, would bring me the greatest relief i can imagine right now!


Love this idea!!!

@pat & @walt I really appreciate the input!

I have a few comments and clarifying questions;

It could definitely be slower on a weak connection or with a wimpy device. I’ve made an effort to use local data first wherever possible, but I fully expect there will be lots of room for optimization in terms of accounting for low network/device performance.

I like the idea of a tree view of logs! I think I actually have a branch somewhere for Asset Link with a rough implementation kind of like that, but I hadn’t thought to organize them by season as the top-level. (Just “Recent”, “Pending”, and “Past Due”)

This brings up two points;

  • Season isn’t a required log field - what to do with the logs that don’t specify a season?
  • As you say, the seasons list could be quite long - perhaps there’d be an argument for allowing seasons to be archived or some other mechanism to only show the most relevant ones

I’m curious to understand this a bit better… maybe you’d be willing to draw a mockup or something?

When you say “voice recording of text” are you thinking of having the audio file uploaded or a text transcript? Both?

I think this is the bit that overlaps most with what Pat was describing. I’m definitely planning on more first-class UI around displaying/creating logs in Asset Link soon.

How is this kind of notes/documentation currently stored and accessed for your operation?

I think these are already roughly working in Asset Link - obviously contingent on existing QR code format and sufficient device location accuracy.