Last fall, I designed a system that allows me to remotely monitor conditions on my boat. I'm not the first person to do this, but I didn't love the options. So, I built my own because I am nerdy like that.
We had a couple of very minor incidents that motivated this project. In one case, we were without shore power (someone had unplugged us) for some time over the winter, and we had quite a bit of mildew, as a result. The second (and more motivating) incident was that our cockpit drains became clogged with dog hair (which we produce a lot of) and bits of shell donated by the resident seagulls. We came to our boat to find the cockpit with about 6" of standing water.
So, my system is fairly simple:
(Note, the water sensors are currently offline because I shut them off a few days ago.)
I will be able to add, but have not gotten around to yet:
This system, as it is designed, is not suitable for the average DIYer. That is, it is not documented or packaged up in such a way that the average person could easily figure out how to use it. It's not particularly complicated. In fact, I think I've made some good design decisions. It just was never intended for use by anyone but me, with no intent to set it up more than once.
But, I've had a few people ask about getting this on their boat.
It doesn't feel like the world needs this, but maybe I'm wrong. If there was a lot of interest, I might devote some time to making an open-source product out of it - something that a reasonably technical person could figure out without getting too mad at me.
There are a bunch of commercial systems for this, but I can't stand paying for something that I can build myself for less, probably better, and have complete control over. And, there are some open source options which make me think that the world doesn't really need my solution. That is, if you wanted do put together your own system, it wouldn't take much know-how. You could pretty much just use HomeAssistant and/or SignalK (or any of a few other options) to accomplish a similar thing. The only thing my solution really offers above what is currently out there are:
We had a couple of very minor incidents that motivated this project. In one case, we were without shore power (someone had unplugged us) for some time over the winter, and we had quite a bit of mildew, as a result. The second (and more motivating) incident was that our cockpit drains became clogged with dog hair (which we produce a lot of) and bits of shell donated by the resident seagulls. We came to our boat to find the cockpit with about 6" of standing water.
So, my system is fairly simple:
- I have a WiFi hotspot on the boat that is also run on a small battery backup. This provides WiFi to the boat.
- I made a small RPi-based server that is also on the battery backup.
- I added a few sensors that talk to the server:
- A GPS sensor. Not really useful, but I had a spare one sitting around, so why not?
- Moisture sensors: Used to detect moisture (such as standing water in the cockpit) or surface moisture (like in the area under my stanchions, indicating a deck leak)
- Temperature/humidity sensors: Tells me that I am out of the "mildew zone" and also indirectly tells me when I have lost shore power.
- I have an off-site server that collects data from the boat. The boat reports data periodically to this server. This allows me to access the latest data, even if my boat goes completely offline. I can see when it happened and possibly why. Also stores historical data, just in case I ever care about that.
- My off-site server also is capable of sending SMS. So, I am alerted if temp/humidity go out of a certain range, or if a moisture sensor is activated.
(Note, the water sensors are currently offline because I shut them off a few days ago.)
I will be able to add, but have not gotten around to yet:
- Movement sensor: Will tell me if my boat is taking a beating in the wind.
- Camera: Will allow me to check in remotely, look at conditions, etc. I might incorporate two-way audio so I could talk to a person remotely - not because I think this will ever be useful but because I sometimes can't help myself but to overengineer.
- Remote distribution panel: Will allow me to check the status of all circuits and turn things on/off. (This is actually somewhat involved because I want the basic manual operation to be absolutely independent of the automation. That is, a physical on/off switch should be just that - physical. That's a whole other discussion.)
- Pretty much any sensor/switch/control you could think of.
This system, as it is designed, is not suitable for the average DIYer. That is, it is not documented or packaged up in such a way that the average person could easily figure out how to use it. It's not particularly complicated. In fact, I think I've made some good design decisions. It just was never intended for use by anyone but me, with no intent to set it up more than once.
But, I've had a few people ask about getting this on their boat.
It doesn't feel like the world needs this, but maybe I'm wrong. If there was a lot of interest, I might devote some time to making an open-source product out of it - something that a reasonably technical person could figure out without getting too mad at me.
There are a bunch of commercial systems for this, but I can't stand paying for something that I can build myself for less, probably better, and have complete control over. And, there are some open source options which make me think that the world doesn't really need my solution. That is, if you wanted do put together your own system, it wouldn't take much know-how. You could pretty much just use HomeAssistant and/or SignalK (or any of a few other options) to accomplish a similar thing. The only thing my solution really offers above what is currently out there are:
- You own the whole process, so you don't have to pay a commercial subscription that could change or become unreliable at any time with nothing you can do about it. This is non-proprietary, unlike commercial options.
- It is designed narrowly for this application, unlike HomeAssistant and even unlike SignalK, to some degree. That said, those are excellent platforms and absolutely can accomplish the same thing.
- My sensors are specifically designed for a marine environment. For example, the moisture sensors are designed such that they can be submerged, abused, and neglected for extended periods. This is the one thing that I think might actually have some value to the community.
- The system has a lot of redundancy and is fault-tolerant and self-healing. It is designed on the assumption that things will go wrong, and I don't want to have to drive out just to reset/fix the system that is supposed to be watching other systems.