At my lakehouse on Norris Lake, the lake level can fluctuate up to 20 feet between summer and winter levels - also, the lake can fluctuate a great deal as a result of significant rain events. As such, all boat docks are floating docks that are secured to the bank with cables. As the lake fluctuates, the cables must be adjusted to maintain proper tension - a requirement to keep the dock in place. Prior to this project, the only way to adjust the cables was to manually adjust the cable winches - which can be a pain given I am 300 miles away from the lakehouse in Ohio. Enter Cayenne - some Python script, a few worm gear winches, a few gutted ATV winches, a solar panel and lots of time, energy, and beer. What I came up with is a integrated system that monitors the dock positioning, sends me a status email with lake levels and a picture at set times during the day, and allows me to make adjustments remotely using Cayenne.
What’s Connected: A Raspberry Pi 4 drives a bank of relays that are in turn connected to the winch solenoids to activate the winches. The system also uses a SenseHat and a camera to provide weather data and allow me to monitor the adjustments. Also connected is a Raspberry Pi -0- W which stays on all the time - this sends me the notifications, and allows me to turn the main control box on and off conserving power.
I am using the Triggers and Alerts feature to warn me when I have reached the maximum cable capacity on the winches and also to warn me when I have released the maximum amount of cable. I wrote separate scripts to send me a picture when the main unit is powered up to make an adjustment and also to send a picture post adjustment, as well as sound a buzzer to warn anybody on the dock a cable adjustment is about to occur
Attached are screen shots of the notification I receive on my phone, and the power up and power down notifications. Also attached are screen shots of the control dashboard using Cayenne which contains the buttons to control the winches, lake levels, and cable length indicators. I wrote scripts to pull a JSON file from the TVA’s API which is then uploaded to Cayenne using MQTT. All in all - I had to teach myself a good deal of Python which really allowed me to optimize what I was able to do with Cayenne - and I am pretty proud of myself considering I am an attorney and not an engineer or computer programmer.
I am calling it the Synergy Dock Systems Dock Manager because I felt like I needed to call it something - and it does bring a bit of synergy to my life given the time and energy it saves me managing the cable adjustments.
So there’s a few other thoughts I would like to share. As I mentioned - I am not a computer programmer or engineer - but I was able to figure all of this out. And I didn’t do it alone - Shramik helped me on a few occasions - as did the information I got from Stack Overflow and Real Python. Along the way - I encountered many maddening moments but like so many other things in life - the problems I encountered were at some point encountered by somebody else prior to me - and I was able to find solutions or figure out a solution based on others’ experiences. So - to anybody new out there that cannot get a sensor to work, etc., etc. - I would say do not be afraid to ask for help as you will find plenty of helpful people out there - and don’t give up!!! I would be happy to share my experiences, my knowledge putting this together, or code with anybody that is looking to build a similar system.