A sump pump monitoring system using Python and Raspberry Pi
Clone or download
Latest commit aee2499 Jan 27, 2018


Raspi-sump is a sump pit water level monitoring system using a Raspberry Pi and an Ultrasonic Sensor (HC-SR04)

alt tag

Currently the system monitors the water level in your pit at defined intervals. It sends email sms alerts if the water reaches a critical level, indicating a possible sump pump failure.

Installing with pip9 (Raspbian Stretch)

Pip versions > 7 default to Wheels which omits some folder setup in setup.py. If using Raspbian Stretch install as follows;

sudo pip3 install --no-binary :all: raspisump

This is a workaround until I fix the packaging.

For more information, see Issue #23 raspisump installs improperly with PIP9

New in Version 1.1.1 and greater

Python2 and 3 compatible.

Better error logging to detect faulty sensors and/or cables.

See the changelog for changes to all versions.

Important information if using GMAIL to send alerts

See issue tracker;



Python 3 Recommended for Raspbian Jessie

Install the pip package manager (if not present on your pi).

sudo apt-get install python3-pip

Install Raspi-Sump.

sudo pip3 install raspisump

Upgrading an existing version

sudo pip3 install -U raspisump

This will also install the HCSR04sensor and RPi.GPIO modules if not present on your Pi.

If you want to use charts install maplotlib.

sudo apt-get install python3-matplotlib

Matplotlib should install Numpy. If you need to install Numpy seperately;

sudo apt-get install python3-numpy

Read the configuration docs copied during setup on your pi at the following location;


They are also available on github https://github.com/alaudet/raspi-sump/blob/master/docs/install.md

Upgrading from Python2 to Python3 (Raspbian Jessie)

sudo pip uninstall raspisump
sudo pip3 install raspisump

Your configuration file will be preserved in /home/pi/raspi-sump/

Python2 install

Recommended for Raspbian Wheezy

Raspi-sump was originally written in Python 2 and is still compatible with the older version.

On Raspbian Wheezy it may be better to just stick with Python 2 as there are no packaged versions of python3-matplotlib. You will have to install it manually with pip3.2.

Matplotlib can be a little tricky when installing with pip. It depends on many packages and requires some fiddling to get to work. It's just easier to use apt-get. However it will work fine with Python3 if you manage to install matplotlib. There is no extra functionality in the Python3 version of Raspi-Sump, it's just a compatibility upgrade. If Python2 version is working fine for you right now you could just stick with it as it will continue to be identical.

To run in python 2 install with pip instead of pip3

sudo pip install raspisump

All apt-get installs should be done with;

sudo apt-get install python-<package name>

More Info

Further details provided at http://www.linuxnorth.org/raspi-sump/

An example hourly updating graph is available for view. http://www.linuxnorth.org/raspi-sump/raspi-sump-today.html


You are welcome to use Raspi-Sump but there is no guarantee it will work. Your house may still flood if your sump pump fails. This software comes with no warranty. See License details.

This is not a replacement for remaining vigilant in maintaining your water pumping system. It is one tool you can use to give yourself extra piece-of-mind.

Best practices should also include:

  • A backup pump that triggers at a slightly higher water level than your main pump.
  • The secondary pump should be connected to a seperate dedicated electrical breaker.
  • You should also have a generator that can provide power should you have an extended outage during the spring or other unseasonally wet time of year.
  • if you are building a new home, pay attention to the grade of your property, as you may even be able to let gravity empty your pit for you. That would be the best approach with a backup pump just in case.

Once you have done all of these things, then consider using a monitoring system like Raspi-Sump.


MIT License. I want you to do whatever you want with Raspi-Sump. If you improve it please let me know.


If you add a useful feature please consider forking Raspi-Sump and contributing back by issuing a Pull Request. Before issuing the pull request open an issue in the issue tracker.

New features should be applied against the devel branch and not master. Contributions against the master branch will be rejected.


Your Donation is Appreciated