Hallo, wir haben den Wasserzähler getauscht bekommen. Da dieser digital ist, möchte ich den Wasserverbrauch natürlich irgendwie in Homeassistant monitoren.
Es ist ein QWater 5.5 von Qundis und hat eine IR Schnittstelle. Wie kann ich diesen Wasserzähler und mit welcher Zusatzhardware in Homeassistant integrieren?
Gruß, AndiFidi
Hi @andifidi , wenn du WLAN (LAN ginge ggf. auch) in dem Bereich hast könntest du es mit einem ESP und einer Fotodiode (zB TCRT5000) machen.
Ich habe es so mit der IR-Schnittstellen unserer Stromzähler gemacht. Als ESP verwende ich einen D1mini mit der Firmeware ESPEASY.
Bei dem Link wird das Ganze mit der Firmeware ESPHOME umgesetzt.
Hi @Linos . Danke für den Tipp. Klingt Interessant und werde ich mir mal anschauen. Hast Du ein Bild von Deiner Umsetzung?
Hi @andifidi.
Hier habe ich den D1mini in ein SD-Gehäuse gepackt
Hier die TCRT5000 an meinen Stromzählern
Hier meine Halterung an der Wasseruhr (in meinem Fall mit kapazitiven Sensor)
Gibt es schon Neuigkeiten ? stehe vor dem gleichen Problem
Leider nein. Ich wäre über eine Anleitung für Anfänger auf diesem Gebiet auch total dankbar.
laut Datenblatt unterstützen die QWater 5.5 nicht nur IR zum programmieren und auslesen sondern auch WMbus als Datenschnittstelle.
Somit würde dann schon die Schnittstelle ohne Bastelei da sein…
QUNDIS_Datenblatt_Qwater_5.5_elektronische_Wasserzähler_Verschraubung_2017_dt.pdf
Benötigt wird für den WMbus Empfang lediglich ein rtl-sdr + ggf. externer Antenne und kann per USB in HA eingebunden werden. Die benötigten Bibliothek stehen auf github zur Verfügung.
lg
Es gibt auch eine recht simple ESPHome Lösung für Wmbus die auch mit dem Qwater funktioniert => GitHub - zibous/ha-watermeter: Data provider for smartmeter watermeter.
Echt gute Lösungsmöglichkeiten. Simpel würde ich es aber nicht gerade nennen, aber ich werde mir das mal genauer anschauen und berichten. Vielen Dank.
AndiFidi
Hi @meloneA . Ich habe mir das Projekt GitHub - zibous/ha-watermeter: Data provider for smartmeter watermeter. angesehen und ein bisschen rumprobiert.
Ich hänge aktuell an den Einstellungen in der Secret.yaml. Könntest Du die Einträge erklären? SSID/WLAN ist klar, aber da gibt es noch so viele andere -für mich kryptische- Einträge.
Welche ist dir unklar? Wirklich wichtig wäre sonst ja nur noch die watermeterId.
Ich würde ja quasi ganz vorne anfangen, bei dem Script: ha-watermeter/esphome/wm-check-wmbus.yaml at master · zibous/ha-watermeter · GitHub
Ich meine z.B. die Einträge:
domain: !secret domain
ota:
password: !secret ota_pswd
js_url: !secret webserver_jsurl
- !secret local_sntp
Sorry, ich hab den Beitrag übersehen. Das sind Standardeinträge von ESPhome:
domain: WiFi Component — ESPHome
ota pass: OTA Update Component — ESPHome
js_url Web Server Component — ESPHome
local_sntp => dein zeitserver, idR kannst du hier dein default gw eintragen
Für die js_url kannst du die Komponenten auch von Github laden und im www Ordner ablegen.
Hi @meloneA . Habe das jetzt alles so zusammengelötet und angepasst und versucht damit online zu gehen. Beim installieren auf dem ESP erscheint während der Installation folgende Fehlermeldung beim compilieren:
.piolibdeps/watermeter/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp: In member function 'void ELECHOUSE_CC1101::Reset()':
.piolibdeps/watermeter/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp:149:3: warning: this 'while' clause does not guard... [-Wmisleading-indentation]
149 | while(digitalRead(MISO_PIN));
| ^~~~~
.piolibdeps/watermeter/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp:150:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'while'
150 | digitalWrite(SS_PIN, HIGH);
| ^~~~~~~~~~~~
.piolibdeps/watermeter/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp: In member function 'void ELECHOUSE_CC1101::setPA(int)':
.piolibdeps/watermeter/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp:498:13: warning: 'a' may be used uninitialized in this function [-Wmaybe-uninitialized]
498 | PA_TABLE[1] = a;
| ~~~~~~~~~~~~^~~
Und der ESP wird als online angezeigt aber die IP ist beim installieren nicht erreichbar?
Gefühlt alles richtig gemacht aber es läuft leider nicht…
was meinst du mit nicht erreichbar, zeigt er in der ESPhome Konsole danach gar nichts an?
Poste bitte noch die Konfig.
Er findet den ESP nach dem installieren bzw. ganz am Ende der Installation nicht.
Welche Konfiguration meinst du? Du weisst, ich bin der total DAU im Bereich ESP
ah, du meinst du hast die Konfig noch gar nicht am ESP. Maches mal eine “manual download” konfiguration und flashe es über https://web.esphome.io/
Das hat geklappt, 100 % geflasht damit. Aber der ESP ist nicht online. Dafür blinkt eine rote LED wie wild auf dem ESP.
Die Konfig die ich installiert habe:
---
## ------------------------------------------------------------------
## TESTCASE FOR WMBUS METER + CC1101 for WATERMETES
##
## This version has no sensors and shows only
## the logs for checking wM-Bus and CC1101.
##
## DO NOT USE THIS CONFIGURATION FOR PRODUCTION
##
## ------------------------------------------------------------------
substitutions:
# device and application settings
device_name_short: "water-meter"
device_description: "Watermeter CC1101 wmbus Test"
projectname: "CC1101 wmbus Test.Watermeter"
appversion: "2.0.7"
# logger settings
log_level: "VERBOSE" # not that logging need memory, so in production mode use "WARN"
log_wmbus: "VERBOSE" # Loglevel for wmbus meters component
log_baudrate: "0" # 0 disable uart logger messages
# Device configuration (select your device)
## ---------------------------------------------------
##
## GDO0
## o
## 7
## | GD02 ╭-------o 2 (GND)
## | 6
## | o |
## | | |
## ╭――x――x――o――o――x――x――x――o――╮
## │ D1 D2 - │
## │ │
## │ D1MINI WEMOS │
## ANT │ │ USB
## │ │
## │ D5 D6 D7 D8 + │
## ╰――x――x――x――o――o――o――o――o――╯
## | | | | |
## | | | | ╰-----o 1 (+3.3V)
## | o | o
## | 5 | 8
## | MISO| CSN
## o o
## 4 3
## CLK MOSI
##
## --------------------------------------------------
BOARD: d1_mini
CC1101_3: D7 # MOSI
CC1101_4: D5 # CLK
CC1101_5: D6 # MISO
CC1101_6: D2 # GD02
CC1101_7: D1 # GDO0
CC1101_8: D8 # CSN
## ----------------------------------------------------------------
## HARDWARE: D1 MINI ESP8266 80MHz, 80KB RAM, 4MB Flash
## ----------------------------------------------------------------
esp8266:
board: ${BOARD}
restore_from_flash: true
## ---------------------------------------------------
##
## GDO0
## o
## 7
## | GD02
## (GND) 2 o | 6
## | | o
## | | |
## ╭――x――o――o――o――x――x――x――x――╮
## │ - D1 D2 │
## │ │
## │ D1MINI ESP32 │
## USB │ │ ANT
## │ │
## │ + D8 D7 D6 D5 │
## ╰――x――x――o――o――o――x――x――x――╯
## | | | | |
## | | | | |
## 3.3V 1 o | | | o
## | | | 4 CLK
## CSN (8) o | |
## MOSI (3) o o
## 5
## MISO
##
## --------------------------------------------------
## esp32:
## board: wemos_d1_mini32
## CC1101_3: D7 # MOSI
## CC1101_4: D5 # CLK
## CC1101_5: D6 # MISO
## CC1101_6: D2 # GD02
## CC1101_7: D1 # GDO0
## CC1101_8: D8 # CSN
## wmbus:
## cs_pin : GPIO5
## gdo0_pin : GPIO21
## gdo2_pin : GPIO22
## miso_pin : GPIO19
## clk_pin : GPIO18
## mosi_pin : GPIO23
## ------------------------------------------------------------------
##
## o 1 (3.3V)
## |
## ╭――x――x――x――x――x――x――x――x――x――x――x――x――x――x――x――x――x――x――x――o―╮
## | |
## - | 5v az-delivery-devkit-v4 | -- ANT
## | |
## | 16 17 5 18 19 23 |
## ╰――x――x――x――x――x――x――x――x――o――x――o――o――o――o――o――o――o――o――o――o―╯
## | | | | | | |
## o | | o | | ╰-o - 2 (GND)
## 7 o | 4 o o
## GDO0 6 | CLK 5 3
## GD02 o MISO M0SI
## 8
## CSN
##
## ------------------------------------------------------------------
# BOARD: az-delivery-devkit-v4
# CC1101_3: GPIO23 # M0SI
# CC1101_4: GPIO18 # CLK
# CC1101_5: GPIO19 # MISO
# CC1101_6: GPIO17 # GD02
# CC1101_7: GPIO16 # GDO0
# CC1101_8: GPIO05 # CSN
## ----------------------------------------------------------------
## HARDWARE az-delivery-devkit-v4
## ESP32 240MHz, 520KB RAM, 4MB Flash
## ----------------------------------------------------------------
# esp32:
# board: ${BOARD}
# framework:
# type: arduino
## ------------------------------------------------------------------
##
##
## GDO0 MOSI
## 7 MISO 3
## o GD02 CLK 5 o CSN
## | 6 4 o | 8 ╭-------o 2 (GND)
## | o o | | o | ╭----o 1 (3.3V)
## | | | | | | | |
## ╭――x――o――o――x――x――x――o――o――o――o――x――x――x――o――o―╮
## | D1 D2 D5 D6 D7 D8 |
## | |
## - | ANT NODEMCU V3 | -- USB
## | |
## | |
## ╰――x――x――x――x――x――x――x――x――x――x――x――x――x――x――x―╯
##
##
##
## ------------------------------------------------------------------
# BOARD: nodemcuv2
# CC1101_3: D7 # MOSI
# CC1101_4: D5 # CLK
# CC1101_5: D6 # MISO
# CC1101_6: D2 # GD02
# CC1101_7: D1 # GDO0
# CC1101_8: D8 # CSN
# ----------------------------------------------------------------
# HARDWARE: NODEMCU V3 ESP8266 80MHz, 80KB RAM, 4MB Flash
# ----------------------------------------------------------------
# esp8266:
# board: ${BOARD}
# restore_from_flash: true
## ----------------------------------------------------------------
## ESPHOME APPLICATION
## ----------------------------------------------------------------
esphome:
name: ${device_name_short}
comment: ${device_description}
# Automatically add the mac address to the name
# so you can use a single firmware for all devices
name_add_mac_suffix: false
project:
name: ${projectname}
version: ${appversion}
build_path: ./build/${device_name_short}
on_boot:
priority: -100.00
then:
- logger.log:
level: INFO
tag: "system"
format: "BOOTMESSAGE:${device_name_short} API is connected, Device ready!"
on_shutdown:
priority: 700
then:
- logger.log:
level: ERROR
tag: "system"
format: "BOOTMESSAGE:${device_name_short} is down!"
## ----------------------------------------------------------------
## External components
## ----------------------------------------------------------------
external_components:
# uses the latest version from SzczepanLeon
- source: github://SzczepanLeon/esphome-components@main
refresh: 0s
components: [wmbus]
## ---------------------------------------------------
## WIFI Settings
## ---------------------------------------------------
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
## ---------------------------------------------------
## mDNS Component
## ---------------------------------------------------
mdns:
# if mDNS is disabled, they will no longer be able to automatically find your devices.
disabled: false
## ---------------------------------------------------
## Captive portal component
## ---------------------------------------------------
captive_portal:
## ---------------------------------------------------
## LOGGER COMPONENT
## ---------------------------------------------------
logger:
id: appslogger
level: ${log_level}
baud_rate: ${log_baudrate}
logs:
wmbus: ${log_wmbus}
wMBus-lib: ${log_wmbus}
## ---------------------------------------------------
## OTA Updates
## ---------------------------------------------------
ota:
password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
safe_mode: false
on_begin:
then:
- logger.log:
format: "OTA Start"
tag: "OTA"
level: WARN
on_progress:
then:
- logger.log:
level: WARN
tag: "OTA"
format: "OTA progress %0.1f%%"
args: ["x"]
on_end:
then:
- logger.log:
format: "OTA End"
tag: "OTA"
level: WARN
on_error:
then:
- logger.log:
format: "OTA update error %d"
tag: "OTA"
level: ERROR
args: ["x"]
## ---------------------------------------------------
## COMPONENT WEBSERVER
## ---------------------------------------------------
web_server:
port: 80
version: 2
js_url: !secret webserver_jsurl
## ---------------------------------------------------
## SNTP Time server
## ---------------------------------------------------
time:
- platform: sntp
id: time_sntp
timezone: Europe/Berlin
servers:
- 0.at.pool.ntp.org
- 0.pool.ntp.org
# - 1.pool.ntp.org
## ---------------------------------------------------
## CC11001 WMBUS TO DEVICE (selected board)
## ---------------------------------------------------
wmbus:
mosi_pin: ${CC1101_3} # MOSI Attached to Hardware SPI controller MOSI SPI Interface
miso_pin: ${CC1101_5} # MISO Attached to Hardware SPI controller MISO SPI Interface
clk_pin: ${CC1101_4} # SCK Attached to Hardware SPI controller CLK
cs_pin: ${CC1101_8} # CSN Attached to Hardware SPI controller
gdo0_pin: ${CC1101_7} # GDO0 Clock output. High Impedance !
gdo2_pin: ${CC1101_6} # GDO2 status signals. High Impedance !
# Shows telegrams from all watermeters in log.
log_unknown: True
## Nothing follow here, output only on log console
und nach dem Flashen zeigt die Konsole nichts weiter an?
ich würde ggf mal in ESPhome ein neues Gerät anlegen, ein (leeres) Image daraus erzeugen und dieses flashen. Nicht das dein ESP ein Problem hat.
Das habe ich schon probiert. Funktioniert ohne Probleme. Das einzige was ich im o.g. Script geändert habe bzw. weggelassen habe war der Eintrag
domain: !secret domain in Zeile 239. Meinst du das war ein Fehler?