[Projekt] Wasserverbrauch digital erfassen: Durchflusssensor am Shelly Plus Uni

Willkommen hier bei uns und ein interessantes Projekt!

1 „Gefällt mir“

Herzliches Willkommen auch von mir.

Klasse Projekt, werde mir das mal näher ansehen.

1 „Gefällt mir“

Ich habe gerade ein sehr ähnliches Projekt fertig bekommen, der gleiche Sensor, aber dann mit einem “D1 Mini ESP32” und einem selbstkonstruierten und gedruckten Gehäuse.
Das ganze lebt von einem USB-C Netzteil und läuft über ESPHome mit Webserver und direkter Einbindung in Home Assistant.

Material zusammensuchen …

… nur 3 einfache Lötstellen

… Test mit offenem Gehäuse

… und fertig zusammengebaut

Der Quellcode für ESPHome ist nicht sehr lang

substitutions:
  device_name: yf-b5-flowsensor
  friendly_name: "Durchflusssensor YF-B5"

esphome:
  name: ${device_name}
  friendly_name: ${friendly_name}

esp32:
  board: wemos_d1_mini32
  framework:
    type: arduino

# WLAN-Konfiguration
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "${friendly_name} Fallback"
    password: !secret ap_password

captive_portal:

# Home Assistant API
api:
  encryption:
    key: !secret api_encryption_key

ota:
  - platform: esphome
    password: !secret ota_password

logger:

# Webserver – direkt im Browser aufrufbar unter http://yf-b5-flowsensor.local
web_server:
  port: 80
  version: 3

# -------------------------------------------------------
# YF-B5 Durchflusssensor
# Anschluss: Signalleitung an GPIO4
#
# Technische Daten YF-B5:
#   Durchflussformel: F (Hz) = 6,6 × Q (l/min)
#   → Impulse pro Liter: 6,6 × 60 = 396 Impulse/Liter
# -------------------------------------------------------

button:
  - platform: template
    name: "Gesamtvolumen zurücksetzen"
    icon: "mdi:restore"
    on_press:
      - lambda: 'id(flow_sensor).set_total_pulses(0);'

sensor:
  # Aktueller Durchfluss in Liter/Minute
  - platform: pulse_meter
    id: flow_sensor
    pin:
      number: GPIO4
      mode:
        input: true
        pullup: true
    name: "Durchfluss"
    unit_of_measurement: "l/min"
    icon: "mdi:water-flow"
    device_class: volume_flow_rate
    state_class: measurement
    accuracy_decimals: 2
    # YF-B5: 396 Impulse pro Liter → 396/60 = 6,6 Impulse pro Sekunde pro l/min
    filters:
      - multiply: 0.15152   # 1 / 6,6 = 0,15152 → Impulse/s → l/min
    # Timeout: Wenn 5 Sekunden keine Impulse → Durchfluss = 0
    timeout: 5s
    total:
      name: "Gesamtvolumen"
      unit_of_measurement: "l"
      icon: "mdi:water"
      device_class: water
      state_class: total_increasing
      accuracy_decimals: 1
      # 396 Impulse = 1 Liter → 1 Impuls = 1/396 Liter
      filters:
        - multiply: 0.002525   # 1 / 396

Erster Flash per USB-Kabel, jetzt kann man aber über Wifi per OTA nachflashen.

4 „Gefällt mir“

Danke für’s teilen!