Monitor your water and energy consumption with Home Assistant and ESPHome
Website โข Documentation โข Shop โข Discord
- Overview
- Features
- Quick Start
- Hardware Requirements
- DIY Build
- Installation
- Configuration
- Compatible Devices
- Troubleshooting
- Contributing
- Support
- License
The S0tool is an ESPHome-based device that transforms regular water and energy meters into smart meters. Seamlessly integrate with Home Assistant to monitor real-time consumption and optimize your usage.
| S0tool Device | Home Assistant Dashboard |
|---|---|
![]() |
![]() |
๐ New Website Available! (June 24, 2024) Visit https://s0tool.nl for complete documentation and guides.
๐ณ๐ฑ Dutch Version Voor de Nederlandse versie, bezoek Huizebruin.nl
- ๐ง Water Meter Monitoring - Track water consumption in real-time
- โก Energy Meter Support - Monitor kWh usage from S0 pulse outputs
- ๐ Home Assistant Integration - Native ESPHome integration with auto-discovery
- ๐ Energy Dashboard Compatible - Display data in HA Energy Dashboard (v2022.11+)
- ๐ OTA Updates - Update firmware wirelessly through ESPHome
- ๐ Easy Web Installation - Flash firmware directly from your browser
- ๐ฑ Real-time Monitoring - Instant updates on consumption
- ๐ฏ Multiple Meter Support - Connect both water and energy meters simultaneously
| Software | Minimum Version |
|---|---|
| Home Assistant | v2025.1.0+ |
| ESPHome | v2024.12.0+ |
Specifications:
- Wi-Fi: IEEE 802.11 b/g/n 2.4GHz
- Compatible with: Wemos D1 Mini V1 or V3.0 ESP8266
- Power: USB 5V, 1A minimum
๐ Browser Installation (Recommended)
- Visit https://s0tool.nl/installation.html
- Connect your S0tool via USB
- Click "Install" and follow the wizard
- Compatible with Chrome, Edge, and Opera browsers
๐ Home Assistant Auto-Discovery
After connecting to Wi-Fi, the S0tool will automatically appear in Home Assistant under Settings โ Devices & Services.
Order from Huizebruin Shop ๐ Currently shipping to: multiple countries so check it out on our shop
Components Needed:
| Component | Where to Buy |
|---|---|
| Wemos D1 Mini ESP8266 | AliExpress โข Amazon โข Opencircuit |
| NPN Sensor (5V) | AliExpress โข Amazon โข Opencircuit |
| 10K Resistor | AliExpress โข Amazon โข Opencircuit |
| USB Cable & 5V Power Adapter | Bol.com โข Opencircuit |
- Connect 10K resistor between 5V and D2 pins
- Connect D2 to NPN sensor signal wire
- Connect NPN sensor GND to Wemos GND
- Connect NPN sensor 5V to Wemos 5V
Standard NPN Sensor Connection:
Cyble Sensor V2 Connection:
Note: Requires 10K resistor between GND and D2
๐ง Check if your water meter is compatible: View Compatibility List
First, install the CH340 drivers for communication: Download CH340 Drivers
Browser Method (Easiest):
- Visit https://s0tool.nl/installation.html
- Connect S0tool to your PC via USB
- Select configuration type
- Click "Install" and follow prompts
Manual Method:
- Install Home Assistant & ESPHome
- Connect Wemos D1 Mini via USB
- Access Wi-Fi:
S0tool - Navigate to:
192.168.4.1 - Enter your Wi-Fi credentials
- Wait for device to connect
- Add device in Home Assistant
The S0tool will automatically appear in: Settings โ Devices & Services โ ESPHome
Click "Configure" to complete setup.
1. Create utility meter configuration:
Create folder: config/utility_meter/
Create file: utility.yaml
utility_meter:
# Water meter tracking
waterverbruik_kwartier:
source: sensor.watermeter_totaal
cycle: quarter-hourly
waterverbruik_per_uur:
source: sensor.watermeter_totaal
cycle: hourly
waterverbruik_dag:
source: sensor.watermeter_totaal
cycle: daily
waterverbruik_week:
source: sensor.watermeter_totaal
cycle: weekly
waterverbruik_maand:
source: sensor.watermeter_totaal
cycle: monthly2. Include in configuration.yaml:
utility_meter: !include utility_meter/utility.yaml๐ View Complete Utility Meter Config
Enable automatic update checks:
homeassistant:
packages: !include_dir_merge_named packages/Create packages/s0tool.yaml:
sensor:
- platform: rest
resource: https://api.github.com/repos/huizebruin/s0tool/releases/latest
name: s0tool_version_github
unique_id: s0tool_github_version
value_template: '{{ value_json.tag_name }}'
scan_interval: 3600
template:
- binary_sensor:
- name: "S0Tool update online"
unique_id: s0tool_up_to_date
state: >
{% set a = states('sensor.s0tool_versie_github') %}
{% set b = states('sensor.s0tool_versie') %}
{{ version(a) > version(b) }}
device_class: updateDashboard Update Card:
type: conditional
conditions:
- entity: sensor.s0tool_up_to_date
state_not: 'True'
card:
type: markdown
content: The S0tool is not up to date with the GitHub version.Get notified when new versions are available!
From Home Assistant v2022.11.X, water meters can be added to the Energy Dashboard!
| Energy Dashboard | S0tool Dashboard |
|---|---|
![]() |
![]() |
- Go to Settings โ Dashboards โ Energy
- Add water meter: Look for
watermeter stand - Add S0 port: Look for
Totaal opgebracht
Perfect for monitoring:
- ๐ Solar panels
- ๐ฅ Heat pumps
- โก Energy consumption
- ๐ญ Any device with S0 pulse output
| Rating | Pulse Rate | Sources |
|---|---|---|
| 45A kWh Meter | 1000 imp/kWh | Bol.com |
| 40A kWh Meter | 2000 imp/kWh | Bol.com |
| 32A kWh Meter | 2000 imp/kWh | Amazon |
| 40A kWh Meter | 1000 imp/kWh | Amazon |
Understanding Pulse Rates:
- 2000 imp/kWh = 0.0005 kWh per pulse (more accurate)
- 1000 imp/kWh = 0.001 kWh per pulse
Check compatibility: GitHub Discussion #57
Confirmed Compatible:
| Brand | Model | Location |
|---|---|---|
| Elster | V200 | NL |
| Itron | Aquadis+ | NL |
| Sensus | 620 | NL |
| Maddalena | CD SD Plus | BE |
| Actaris | Single-Jet | NL |
| Zenner | MNK-RP-N | DE |
| Kamstrup | Multical 21 | EU |
| Diehl | Hydrus | EU |
Check compatibility: GitHub Discussion #250
- Open ESPHome in Home Assistant
- Find your S0tool device
- Click the three dots (โฎ)
- Select "Validate" โ "Install"
Latest releases: GitHub Releases
If the serial port doesn't appear, install the appropriate driver:
| Chip | Driver |
|---|---|
| CP2102 (square chip) | Download |
| CH341 | Download |
| CH340 | Download |
Device not connecting to Wi-Fi:
- Ensure you're using 2.4GHz Wi-Fi (5GHz not supported)
- Check SSID and password are correct
- Try holding the boot button during flash
Meter readings not updating:
- Verify sensor is properly aligned with meter
- Check wiring connections
- Ensure 10K resistor is installed correctly
More Help:
- ๐ Full Documentation
- ๐ฌ Discord Community
- ๐ Report Issues
We welcome contributions of all kinds! Please see CONTRIBUTING.md for guidelines.
- ๐ Report bugs via Issues
- ๐ก Suggest features or improvements
- ๐ง Submit Pull Requests
- ๐ Improve documentation
- ๐ Star this repository!
This project is made possible by our amazing contributors!
Enjoying the S0tool? Consider supporting development:
Other ways to support:
- ๐ Star this repository
- ๐ข Share with others
- ๐ฌ Join our Dutch Discord
MIT License
Copyright (c) 2021 - 2025 Huizebruin.nl / S0tool.nl
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Created by: Wobbe From: Huizebruin.nl & S0tool.nl
Powered by: ESPHome & ESP Web Tools
Website โข Documentation โข Shop โข Discord
Made with โค๏ธ for the Home Assistant community










