I like the plant status functionality a lot. It makes life much easier as we can execute activities on selected plants. What would make things even better: more or customizable plant status. Recently we encounter often the situation that we get a failure during watering of all plants and we have to stop execution. This is why we would like to mark plants that have already received water and those who are still waiting. I am sure that there are several other scenarios of this kind. If the state can be combined with a timestamp, this would make it even better. What do you think?
After that, add a STRING COMPARISON for the meta.my_status field:
After clicking the “+” button, you will see it in the criteria list:
Timestamps?
We want to add this feature. The timestamp part is easy to add, but the comparison part will require a bit more work on our end. What sort of use cases are you envisioning for this feature? Interested to hear your ideas.
Conclusion
We’ve gotten a request for adding / removing / updating plant statuses, but have found that most users requesting these features are able to get my with the use of the meta field. Please let me know if the meta field meets the needs of your use case.
Hi @RickCarlino, thanks for the tip. I was able to follow the explanations but was not completely able to implement my case.
Without timestamp, my case would be"
mark all plants as “not watered” (this is the part I was not able to implement)
run watering algorithm for all plants, marking each single plant as “watered” after watering
run watering algorithm for all plants that are not marked as “watered” (because of stoppages, breakdowns)
With timestamps, my case would be:
water all plants that have not been watered for a certain time and set time stamp every time a single plant has received water
I saw in the groups filters of the farm designer, that you already allow number comparisons. If you allow saving the current date in a (custom) variable, would this be a way that does not require that much adjustment? If you then show the date formatted as such, it would even allow less advanced users to use the function…
Having non-location variables is a planned feature, but I don’t foresee us getting to that in the next 6 months with current priorities and TODO list. That’s definitely a good use case for the feature, though. We’ve talked about some other variable types as well, such as integers and ranges.
Hej @jsimmonds, as I understand, you need to solve this with dynamic group filters and external variables for sequences. In other words: you filter the plants as explained above instead of using IF statements. Then you pass this group to the sequence by en external variable.
If you put “MARK ALL FOR WATERING” on a recurring farmevent late at night or early morning, I imagine it would accomplish your goal. Please let me know if that’s not the case or if you need more help.
@jsimmonds Like @jensGeorgsen has mentioned, you would use a dynamic group rather than a procedural IF/ASSERT block. In that regard, the sequence editor / groups system is more like a spreadsheet than a traditional imperative programming language. I do want to eventually support imperative styles, since it is often people’s first thought when editing groups/plants.
With the current groups / sequence system:
Use groups as you would use arrays and map/filter/loop operations
Use recursive sequences for the edge cases that groups can’t handle (but be careful!)
Hej @RickCarlino, just to keep you and the community updated about the watering and meta-tag experiments: I tried the meta tag and lost control of our robot.
I am not sure what happened. After re-flashing FarmOS and Farmduino, I have the bot up and running again. We’ll have a demonstration later today so I’ll wait until afterwards before trying again. I’ll keep you posted about the plant status tests…
Thanks for this detailed bug report @jensGeorgsen - it is a great example of a well written bug report.
The meta.* feature is a new feature and it is not used often (except by “power users”), so it is possible you have found a bug in FBOS. I will take a deeper look soon.
Hi @RickCarlino, after having all software up and running and at the newest versions, I did a test run with 60 plants and it would work fine. Just the system slows a lot down when autosync is activated. When the test group was marked as “meta.watered=FALSE”, I started the following sequence for all plants with “meta.watered=FALSE”:
I then interrupted the sequence after around 20 plants by emergency stop to see if I could get the bot to restart at the right place. It did.
However, when looking at the group afterwards, it still contained the same remaining 40 plants. The impression I get is that something is wrong with the sync function and that this shows (among others) in this context. I have observed that synchronization seems to be n-1 on the Raspi compared to the web interface for WebGUI -> Raspi copies. I’ll try to document that. I am not sure how synchronization is effected in the opposite direction.
@jensGeorgsen That is great information to have, thanks for clarifying. I was suspicious that this was the case. As @jsimmonds has mentioned, the sync system needs some perf tweaks that we’re currently investigating.
200 is not an unreasonably large garden, but it is above average (the average garden size across all active production users is currently 60). I think the larger garden size, paired with the Express (as opposed to Genesis) has uncovered a performance issue that needs to be addressed.
Hej @RickCarlino and the farmbot community: about the garden size vs performance: I am open to learn about gardening as at the moment, I do not feel like we’re having a specially big garden. We try to follow suggestions from the seed suppliers and might sometimes even increase the distances.
It is a short XL raised bed (2m1 x 4m (instead of 6m). And the space is not filled at all.
An explanation for the size above average might be that other users have standard size beds (not XL or MAX). No worries about the performance, We’ll wait for a solution there. But if there is something with the garden we have that is to be improved, please let me know…