Qundis digitaler Wasserzähler

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

1 „Gefällt mir“

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.

1 „Gefällt mir“

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)

1 „Gefällt mir“

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.

1 „Gefällt mir“

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 :slight_smile:

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?