According to the documentation " If the connection between the UTM and the soil sensor tool is not complete then you will get a false reading at the extreme end of the range of
I’ve had this happen and I consider it something that I need to look into and hopefully resolve. However, there are a number of other sources of variation as you also note.
I think a simple way of providing greater accuracy to users would be to introduce a Farmbot variable. We have “Soil Moisture” today which reflects the last soil moisture reading. What I propose, is using say the last 5 readings and providing an Olympic score (drop the highest and lowest values and average the rest).
It could be called something like “Soil Moisture (Olympic)”.
For cases where < 5 readings have been done, just average them. Make it the user responsibility to insure at least 5 readings were taken.
As a user, I would schedule a morning event to take 5 readings at different points knowing that the Olympic score would be good even if I had a bad reading or two. Should be little UI work as well.