GPIO inappropriately returning 1's

OK folks, I have a SPDT Relay Shield (https://store.ncd.io/product/iot-1-channel-spdt-relay-shield-7-gpio/) that I have been using to monitor the status of a float switch in a large water storage tank. The float switch opens or closes as a function of water level, i.e. it provides contact closure. Firmware running on an attached Particle Photon 2 queries - every 10 minutes - the status of GPIO-3 to which the float switch is attached and sends a 1 or a 0 to a pump in a well to turn it on or off accordingly.

I recently added an option to manually query the status of the GPIO-3 using a Particle.variable command in firmware. Even with the tank completely full and the circuit attached to GPIO-3 fully open, the query of GPIO-3 will occasionally return a ‘1’ for the briefest of times. Unfortunately, this will on rare occasion result in the pump coming on for 10 minutes when it otherwise should be off.

I have attached a screenshot of my Google Sheets log of events. The 1’s that appear therein are the 10 minute transmissions that correspond to the GPIO-3 queries (note that there was a forced Photon restart a 7:01 that was responsible for the ‘1’ at that time).

Any thoughts as to what is causing those mysterious readings?


?

Which library are you using to communicate with the MCP23008 IC on the board?

The only included library, Travis, is: #include <NCD2Relay.h>

Interestingly, the problem has disappeared. FM. So we can forget this (unless it reappears).

Lol. Ok Brian. Keep me updated and let me know if it rears it’s ugly head again.