Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/zibous/ha-watermeter

Data provider for smartmeter watermeter.
https://github.com/zibous/ha-watermeter

esp32 esphome home-assistant izar mbus mqtt raspberry-pi-3 rtl-sdr rtl-wmbus watermeter wmbus-dongle wmbusmeters

Last synced: 5 days ago
JSON representation

Data provider for smartmeter watermeter.

Awesome Lists containing this project

README

        

# Easy Watermeter Integration for Home Assistant

[![License][license-shield]][license]
[![ESP32 Release](https://img.shields.io/github/v/release/zibous/ha-watermeter.svg?style=flat-square)](https://github.com/zibous/ha-watermeter/releases)
[![ESPHome release][esphome-release-shield]][esphome-release]
[![Open in Visual Studio Code][open-in-vscode-shield]][open-in-vscode]
[![Support author][donate-me-shield]][donate-me]

[license-shield]: https://img.shields.io/static/v1?label=License&message=MIT&color=orange&logo=license
[license]: https://opensource.org/licenses/MIT

[esphome-release-shield]: https://img.shields.io/static/v1?label=ESPHome&message=2023.5.0&color=green&logo=esphome
[esphome-release]: https://GitHub.com/esphome/esphome/releases/

[open-in-vscode-shield]: https://img.shields.io/static/v1?label=+&message=Open+in+VSCode&color=blue&logo=visualstudiocode
[open-in-vscode]: https://open.vscode.dev/zibous/ha-watermeter

[donate-me-shield]: https://img.shields.io/static/v1?label=+&color=orange&message=Buy+me+a+coffee
[donate-me]: https://www.buymeacoff.ee/zibous


## Water meter with IZAR module (Diehl IZAR RC 868 I R4 PL)

![diehl_metering](./docs/diehl_metering.jpg)

I did some experiments with **wmbusmeters**, **DVT SDR_STICK**, **NANOCUL** and ended up with: **ESPHome - ESP32 (v4) + CC1101**.

With the NANOCUL solutions, I always had problems with the USB input and with the high resource consumption on the NUC or Raspberry computers.


## ESPHome + ESP32 (v4) + CC1101

ESPHome - ESP32 (v4) + CC1101 is the best solution for me because the resource requirement is low.

[![](https://img.shields.io/badge/ESPHOME_ESP32_(v4)+CC1101-orange?style=for-the-badge)](https://github.com/zibous/ha-watermeter/blob/master/esphome/wm-esp32.yaml)


## ESP32 (v4) Variante

![ESPHome - ESP32 (v4) + CC1101](./esphome/docs/esp32_cc1101.png)

### Requirements

- Water meter with IZAR module (Diehl IZAR RC 868 I R4 PL),
IZAR Radio Compact Hall is designed for mobile reading and fixed network remote reading of Diehl Metering meters.


- [ ESP32 Dev Kit C V4 NodeMCU](https://amzn.eu/d/eUNLyYc)
- [Fayme CC1101 868MHZ Funk ÜBertragung Antennen Transceiver Modul, Grün](https://amzn.eu/d/i5YwBkR)

Alternative: [ EBYTE TI CC1101 Wireless 868Mhz 915Mhz RF Modul](https://amzn.eu/d/7GPqsng) with external antenna.


## Wiring CC1101 module to boards
![CC1101 module to boards](./esphome/docs/cc1101_board_pins.png)

### Meter types:

Currently supported meter types (wmbus 2.1.10):

- amiplus
- apator08
- apator162
- apatoreitn
- bmeters
- compact5
- elf
- evo868
- fhkvdataiii
- hydrocalm3
- hydrus
- iperl
- itron
- **izar**
- mkradio3
- mkradio4
- qheat
- qwater
- sharky774
- topaseskr
- ultrimis
- unismart
- vario451
- ... more will come :)

see:

## Installation / Details
[ESPHome - ESP32 (v4) + CC1101](./esphome/README.md)

## Result

### ESPHOME Webserver V2
![ESPHOME-WATERMETER](./esphome/docs/water-meter-esp.png)

### ESPHOME Webserver V3
![ESPHOME-WEBSERVER3](./esphome/docs/watermeter-webserver3.png)

### Homeassistant Device
![ESPHOME-WATERMETER](./esphome/docs/ha_water-meter-esp.png)


## ESP8266 vs ESP32 (v4)
The version with **WEMOS D1MINI (ESP8266)** was my first version. WEMOS D1MINI (ESP8266) has only limited RAM and can only be used to a limited extent. If there are too many sensors and the logger level is to high, a **JSON memory error occurs**, which causes the device to restart again and again.

__Note__: The **ESP32** has more RAM memory and is therefore better suited for use. To prevent this, it is absolutely necessary to set the log level to `warn`. Otherwise, at a higher log level, JSON errors will occur in productive operation.


| Device | Remarks | Hardware |
|---------|-----------|--------|
|**Wemos D1 Mini Board 80KB RAM**
| CC1101, board: d1_mini | ESP8266 80MHz, **80KB RAM**, 4MB Flash |
|**Wemos D1 Mini 80KB RAM**
| CC1101, board: esp12e (board: d1_mini )|ESP8266 80MHz, **80KB RAM** , 4MB Flash |
|**NodeMCU Lolin V3 Modul 80KB RAM**
| CC1101, board: NodeMCU Lua Lolin V3 Module ESP8266 | ESP8266 80MHz, **80KB RAM** , 4MB Flash |
|**D1MINI ESP32 320KB RAM**
| CC1101, board: D!MINI ESP32 | ESP32 240MHz, **320KB RAM**, 4MB Flash |
|**ESP32 Dev Kit C V4 520KB RAM**
| CC1101, board: az-delivery-devkit-v4 | ESP32 240MHz, **520KB RAM**, 4MB Flash |


### Memory Usage D1 Mini
![memory_usage](https://user-images.githubusercontent.com/30198737/235585457-895bb25f-47a6-4901-a403-96a115caac3d.png)


## ESPHome Device configurations

- **Testcase - and simple version**
`Total Water m³ (Watermeter Display)`, `LQI`, `RSSI`, `Total m³`, `Last Month total m³`, `Current Month total liter`, `Remaining Battery Lifetime`, `Last Transmit periode`, `Current Alarm Code`, `Previous Alarm Code`, `Boot Counter`, `WIFI Signal`, `Application Version`.
- **Full version**
`Total Water m³ (Watermeter Display)`, `LQI`, `RSSI`, `Total m³`, `Last Month total m³`, `Water usage current`, `Water usage hour`, `Water usage today`, `Water usage yesterday`, `Water usage week`, `Water usage month`, `Water usage previous month`, `Water usage current year `, `Remaining Battery Lifetime`, `Last Transmit periode`, `Alarm Text`, `Previous Alarm Text`, `Boot Counter`, `WIFI Signal`, `Reset values`, `Restart`, `Set History value with Homeassistant service`, `Application Version`, `Online Time`, `Watermeter LED`, `Watermeter Timestamp`, `Watermeter Update intervall`.




| Version | Remarks | Configuration |
|------------------|-----------|----------------|
| 🛠 WMBUSCHECK |Test configuration and wmbus. NO SENSORS only messages: Details see Log window |[wm-check-wmbus.yaml](esphome/wm-check-wmbus.yaml) |
| 🛠 ESP32 Test |Frist run to find watermeters. Messages see Log window or syslog messages |[wm-esp32-test.yaml](esphome/wm-esp32-test.yaml) |
| 💻 ESP32 Simple |Simple Sensor outputs, no calculations. Low memory consumption.|[wm-esp32-simple.yaml](esphome/wm-esp32-simple.yaml) |
|✔️ ESP32 |Full version - Sensors and calulated values, Statitics. Alarmcode text message |[wm-esp32.yaml](esphome/wm-esp32.yaml) |
| 🛠 D1 MINI ESP32 Test |Frist run to find watermeters. Messages see Log window or syslog messages |[wm-d1mini32-test.yaml](esphome/wm-d1mini32-test.yaml) |
| 💻 D1 MINI ESP32 Simple |Simple Sensor outputs, no calculations. Low memory consumption. |[wm-d1mini32-simple.yaml](esphome/wm-d1mini32-simple.yaml) |
|✔️ D1 MINI ESP32 |Full version - Sensors and calulated values, Statitics. Alarmcode text message |[wm-d1mini32.yaml](esphome/wm-d1mini32.yaml) |
| D1MINI IZAR WMBUS|Testcase for IZAR WMBUS METER |[wm-d1mini_izar-wmbus.yaml](esphome/wm-d1mini_izar-wmbus.yaml)|
| 🛠 D1MINI Test|Frist run to find watermeters. Messages see Log window or syslog messages |[wm-d1mini-test.yaml](esphome/wm-d1mini-test.yaml)|
| 💻 D1MINI Simple |Simple Sensor outputs, no calculations. Low memory consumption. |[wm-d1mini-simple.yaml](esphome/wm-d1mini-simple.yaml)|
|✔️ D1MINI |Sensors and calulated values, Statitics. Alarmcode text message |[wm-d1mini.yaml](esphome/wm-d1mini.yaml)|
| 🛠 NodeMCU Test |Frist run to find watermeters. Low memory consumption. Messages see Log window or syslog messages |[wm-nodemcu-test.yaml](esphome/wm-nodemcu-test.yaml) |
|✔️ NodeMCU |Full version - Sensors and calulated values, Statitics. Alarmcode text message|[wm-nodemcu.yaml](esphome/wm-nodemcu.yaml) |





## Other solutions (alternatively)

- 1. [NANOCUL-DOCKER.md](NANOCUL-DOCKER.md)
- 2. [NANO-CUL.md](NANO-CUL.md)
- 3. [RB3B_DVBT - RTL232-md](RTL232.md)

### For more information see:

-

-
-

-

-
-
-

#### DVB-T receiver or Nano CUL Adapter
- DVB-T receiver:

- nano-cul:

- diehl watermeter: