farmOS Integration!

Hi everyone! Love the project! I think it super fascinating what you’re able to do automate such large machinery. I especially love the video of the guy skiing behind his tractor haha :slight_smile:

I wanted to come see if there was any interest in creating some integrations with farmOS! farmOS is record keeping and management software for farms. So basically, in farmOS you can map areas on a farm, add assets (animals, plantings, equipment, etc) and describe everything with logs. Because logs can have timestamps and a done flag, it allows for basic task management where you can assign tasks to workers, etc.

I’ve been working with our API and OAuth authentication pieces quite a bit. I’m super excited about trying to build out more integrations with other projects… it seems like there would be some natural overlap with AgOpenGPS! Some of the first things that come to mind involve saving/retrieving field geometries with farmOS. After that, it would be super cool if you could save your path data (I think this would be the NEMA log?) within an activitiy log and send that back into farmOS.

Just some ideas! I’m not super familiar with AgOpenGPS (haven’t downloaded and run the code or anything) but seems like these are some of the natural overlaps. Is there much persistent data storage in the software right now?

1 Like

Oh, wanted to mention we have a farmOS forum over at farmOS.discourse.group, too, if you have any questions :slight_smile: There’s also a lot of documentation on the main farmOS.org website

hey @paul121 I think that would be a really cool idea.

It looks like there is NMEA logging in the app however I think the it would be best if AgOpenGPS could manage shape files. It wouldn’t be difficult to setup client credential authorization or password grant flow and interact with an api.

It would be really cool if the equipment entity could store vehicle and implement configuration for AgOpenGPS!

1 Like

It wouldn’t be difficult to setup client credential authorization or password grant flow and interact with an api

@buttontate yea! I’ve been working on adding OAuth to farmOS, so this should be pretty easy. We will support the Password Grant and Authorization Grant out of the box, and allow users to configure the Client Credentials grant on their own. Hoping to release OAuth soon!!

I think the it would be best if AgOpenGPS could manage shape files.

How are shape files managed in AgOpenGPS? Do you create them once, and they are saved until the next time? Or create every time? From the farmOS side of things, it would be nice to record other ‘events’ or ‘observations’ associated with that same field/area. If the shape file that AgOpenGPS needs is super specific, perhaps that could be saved in farmOS as an additional asset. Or, maybe in AgOpenGPS you specify which farmOS area is associated with a certain geometry.

It would be really cool if the equipment entity could store vehicle and implement configuration for AgOpenGPS!

Wow, that’s a great idea! That would be relatively easy to add to farmOS, too. Just adding some fields to the Equipment asset.

1 Like

It would be great if you could add some attributes to the shape file in AOG, like rate or product.
Even better would be an integration with IsoBlue, AOG and FarmOS!
IsoBlue sniffs and logs CANBUS messages, would be able to display info from the CAN or ISOBUS on AOG in realtime and save it to FarmOS.

Currently shapefiles ( ESRI .shp) are not read or created by AgOpenGPS but that is the desire. Or at least a field data file that is somewhat universal. What types of files does FarmOS work with currently? Does FarmOS create its own field data file?

Assuming FarmOS has a restful api, AOG will have to implement some sort of relationship management and interface the file system in some sort of way. If we post to the api we would get an entity ID back which we would need to associate to the field. We wouldn’t need a database but an xml or json file would work.

@paul121 would farmOS just store the file in blob storage? We would need to tell you what it is? I would be interested in seeing a swagger or openapi document if you have one.

@sarge I haven’t looked into IsoBlue too much but looks pretty sweet. If IsoBlue had some sort of messaging (rabbitMq or similar) system AOG could listen for the messages in real time, FarmOS could do the same.

@buttontate we don’t have swagger or openapi page yet (once we upgrade to Drupal 8 we might be able to use a drupal contrib module for this) but the API is documented here: API | farmOS

farmOS can save files with areas and most log types. The API takes a Base64 encoding of the file: API | farmOS Our mobile app uploads images via the API, but any filetype can be stored. An ESRI .shp would be possible!

@wilberttalen farmOS uses Well-Known Text for representing geometries. Maps are displayed with OpenLayers in the UI, which works well with well-known text. See “Creating an area” under the Creating Records section for more info: API | farmOS

@sarge Yea! We actually have a relationship with the IsoBlue team (Purdue OATS) from our involvement with OpenTEAM (https://openteam.community) - we’re definitely hoping to integrate with IsoBlue. We’ve also had some discussion about integrating MQTT for general sensor/IoT communication in farmOS - some discussion of that is here

Good thoughts! From what I’m hearing, it sounds like it could be useful to save a shape-file in farmOS that is associated with an area - This file could be pulled via API to populate AgOpenGPS. Alternatively, AOG could pull a list of areas and associate and area ID with a shape file internally. The activity of seeding, applying inputs, harvesting, etc could be uploaded via an activity log associated with the area in farmOS.

Also, tractor configuration could be saved in an equipment asset - either with a json or xml file, OR by extending the equipment asset with some custom fields.

You all might be interested in this: I recently gave a talk about farmOS and created a demo farmOS instance that is populated with info. It’s all fake data, but gives an example of what is possible. It’s easier to play with farmOS once you have some farm structure populated! The info is here - check out the areas and equipment assets. I’ve populated some, you should be able to see where files can be saved.

1 Like