I’m assisting a colleague with setting up a very unconventional use of Farmbot hardware.
We appreciate hearing about these sorts of projects! We enjoy seeing pictures of unique FarmBot installations if you are at liberty to share with us.
if I schedule an event to run a sequence containing a Lua block and for some reason contact with the web app is interrupted (e.g. connectivity loss or server down) or a power loss causes a reboot, will the event still run?
The answer is “Yes”, but as you might have seen in that forum post you linked, it is not a design goal of FBOS to work fully offline. We never let our bots go more than a few days without internet and it is unlikely that we will fix issues relating to internet loss of more than a few days. That’s not to say it can’t be done, rather we don’t have that goal in mind for the project. If you have a connection that has a 60% uptime throughout the day, plus a WiFi signal strength above 70% as reported in the app, you should be able to carry out most usecases.
We are looking at using move_absolute() to move the machine through a long series of coordinates, but there’s no mention of the speed at which those motions will run.
It looks like you found the answer to this question already, but please let me know if you need more help. One tip I would like to add is that if you are doing very slow movements you may need to increase your movement timeout threshold in the device settings page.
I assume this would mean forking FBOS and writing Elixir code?
Correct. You would need to modify this file. This will be a very involved task if you have not worked with Elixir in the past, but I would be happy to answer any questions you may have. We have added new Lua features to the sandbox upon request in the past. Adding a feature to the Lua sandbox usually does not take long for us. The only caveat I would add here is that the sandbox must remain sandboxed, so we can’t add features that would create a security risk for end users or allow users to accidentally brick their devices. For example, we do not have plans to give shell access to the Lua sandbox.
I found the following spot in the code that suggests that a speed argument to move_absolute() is already implemented and available in 14.2.2. Is that correct?
That is correct! The full Lua API docs can be found here: Lua | FarmBot Software Development Documentation
As you explore the source code, you may notice that there are some undocumented features. Please let us know if and how you use these features if you chose to use them, since undocumented features are sometimes used internally and changed without notice. Conversely, we try our best to not apply breaking changes to any Lua functions that have been publicly announced and documented.
One last note: Since it sounds like you have a technical background, you may want to take a look at the developer documentation. I have written the guide in a “handbook” format, meaning that the documentation can be read from start to finish. It explains many aspects of the system and also provides historical context about certain features (such as the sequence editor).
Please let us know if you require further assistance. I hope you can share more information about this intriguing project!