Updated: Apr 9, 2019
After spending a week adding variables and methods to the SenPi v1 software to catch errors, my code was becoming labyrinthine and it was hard for me to follow, so I took what I had learned on the first go-around and completely overhauled it, writing an entirely new program using the same libraries. This time, it was completely commented and had error reporting and handling woven throughout from the start.
I know I wasn't following my own guidelines for programming 'best practices', and it's in large part because I have short work shifts and can't get in the flow, so I spend the first bit of time every shift remembering where I was and what I was doing. I'm going to start writing pseudocode again and mentally working my way through problems before attempting to solve them so that I don't have to trip up over problems I hadn't thought about or add variables to fix errors which could be solved by changing the basic structure of my code.
The newest SenPi software, version 2.0.2, should be extremely intuitive to use: plug it in and it just works. I've handled the 'dryness error' by sending a reboot command to the Pi if it runs dry, because the only way that the Seneye Reef sensor can be reset after running dry is by being powered off and back on again (and it's difficult to unplug the Pi and plug it back in when it's floating in the middle of the Severn river).
I'm moving on now, attempting to integrate an Air Quality Egg air pollutant detector with the Raspberry Pi so that both air and water quality data can be read by the same Raspberry Pi module.