Wasserenthärtungsanlage. Salzstand überwachen

Habe mir jetzt mal einen Lasersensor bestellt.
Melde mich wieder nach Projekt Abschluss.

Gruss

VL53l1x oder VL53L0X ? für unterschiedliche Distanzen geeignet, Driver für VL53L0X im Tasmota “tasmota32 binary” enthalten. Spricht etwas gegen den VL53L0X für diese Anwendung hier? Danke!

Hi,
bisher gibt es keine Anzeichen von Korrosion etc., funktioniert soweit zuverlässig.
Es ist allerdings zu sagen, dass ich aus 10 Messungen den Tag über einen “sinnvollen Mittelwert” bilde und diesen dann erst in HA auswerte.
Die US Wandler sind leider von Hause aus nicht besonders zuverlässig und geben auch mal völligen Quatsch aus.
Ich arbeite gerade an einer Variante mit einem “Time of Flight” Sensor für eine andere Füllstandsüberwachung im Haus, evtl. ist das dann auch eine Option für die Entkalkungsanlage.

Hast du grobe Ausreisser nach oben/unten oder innerhalb einer kleinen Schwankungsbreite?

Steht die irgendwo auf?
Dann könnte man das doch mit einem Sensor wiegen.

Könnte man gibt es auch im iobroker Forum ein Projekt.
Mit drei druck bzw wiege sensoren und einer Träger Platte.

Ist aber aufwendiger und teuer.
Da finde ich den Laser sensor schon besser eleganter einfacher.
Habe welche bestellt und werde berichten.

Der 0 geht auch. Alles kein Problem

Am Anfang hatte ich in den Einzelwerten schon manchmal deutliche Ausreißer, die auch keinen Sinn machten, daher meine Lösung über das Mitteln mehrerer Werte.
Nachdem ich seitdem nur noch meinen “Mittelwert” im HA sehe, beobachte ich die Einzelwerte gar nicht mehr.
Bisher habe ich immer zum richtigen Zeitpunkt die Aufforderung zum Salz auffüllen erhalten :wink:

Melde mich wie versprochen.
Mein Projekt Salzstand ist abgeschlossen und funktioniert super.
Bauteile:

VL53LOXV2
ESP D1 Mini (8266)

Prog: ESPhome Umrechnung in %

Der ESP und Sensor im Selben Gehäuse auf der inneren Abdeckung des Salzbehältern montiert. (8mm Bohrung)

image

und eine Automatisierung für einen Alarm (push Meldung)

sensor:
  - platform: vl53l0x
    name: "Salzstand in %"
    address: 0x29
    update_interval: 3600s
    long_range: true
    
    filters:
    # Berechnung in %
    # Ersetze 0.36 durch die höhe des Behälters. Vom Sensor bis zum Boden.

    - lambda: return (0.36-x)*(100/0.36);
    unit_of_measurement: "%"
    accuracy_decimals: 0
2 „Gefällt mir“

… der Sensor sitzt genau hinter einer dieser Bohrungen, oder?

Nein die Bohrungen die man da siehst ist für die Wärmeableitung ESP.
ESP und Sensor sind im grauen Gehäuse.
image

der Sensor geht nach unten raus durch eine Bohrung im Schwarzen Deckel.

tue ich @m1scha :slight_smile:

Ich melde mich wieder zurück nach den anfänglichen Schwierigkeiten mit dem Flashen von ESP 32. Scheinbar habe ich bei meiner Bestellung auf Montags-ESP gegriffen.
Die zweite Bestellung war ein Erfolg, eingerichtet in 5 min.

Nun habe ich beim Anschluss vom Ultrasonic-Sensor eine Frage. Die Kontakte an meiner ESP heißen “Gxx”.

Also habe ich Dein Code nach meinen Anschlussen angepasst:

captive_portal:

sensor:
  - platform: ultrasonic
    trigger_pin: G26
    echo_pin: G25
    name: "BWT Salzstand"
    update_interval: 5s

Leider meldet HA den Syntaxisfehler mit der roter Unterstreichung:
image
Was ist denn daran falsch? (Ändern auf GPIxx, wie in Deinem Beispiel brachte keinen Erfolg).

Edit: Eigentliche Fehlermeldung:
image

EDIT 2: Logfile gibt ebenfalls Fehlermeldung aus:
image

Danke und VG

Alex.

Hast Du meine Lösung gelesen!
Kompakter Sensor (Laser) und funtioniert super.

Sensor und esp in einem Gehäuse auserhalb des Salzbehälters!
Und eigenlich reicht ein D1 mini 8266 auch für deine Lösung.

Natürlich habe ich @Wolfi1
Nur hatte ich das Hardware bereits da gehabt (naja, das ESP war etwas kaputt).

Es sollte ja doch auch in der bestehenden Konfig funktionieren, es müssen lediglich nur die PINs benannt werden (in den Beispielen werden die Pins nach denen am ESP benannt)
Und es geht natürlich ums Prinzip.
Irgendwas ist grundlegend falsch, was auch bei den künftigen Projekten zum Verhängnis werden kann (ich denke dabei an den Bewässerungskomputer mit Hilfe von ESP32). Wenn ich den Grundsatz nicht verstanden habe, scheitere ich sicher da auch.
PS. Da ich über keine ausgeprägten IT-Kenntnisse besitze da Maschinenbau, bin ich etwas auf Malen nach Zahlen angewiesen, und das Projekt mit ESP32 und Ultrasonic-Sensor war eigentlich bis ins Detail ausgekaut.
Wenn nicht ungeahnte Hindernisse :slight_smile:

Oder gehört der Code für den Sensor etwa nicht in bwt.yaml (Unter ESP-Home->Edit)?

Deine pin bezeichnung ist falsch
image

Sollte das nicht GPIO… lauten.

So blöd kann man nicht sein. Ich habe alles ausprobiert aber kein “O” statt “0”.
Jetzt zeigt er keine Fehler mehr.
,
image

Aber nichtsdestotrotz.

Kann ich den Code auf EXP Home irgendwie testen?

Oder gleich die Automatisierung erstellen?

Aber gleich noch ne kurze Frage.
Jetzt müsste ich eine Automation erstellen, die auf Auslöser “nummeric_state niedriger als XX.” entsprechend reagiert.

Leider finde ich keine passende Entität dafür

Es gibt auch keine versteckten Entitäten:

bei Thomas sah es so aus:

Klick mal statt auf edit auf logs und ware paar Sekunden dann sollte Daten rein kommen.

Dann sollte es eine Entität geben sensor. Und dann dein Projekt name usw.

Gruss

Habe über ESP Home die LOGs aufgerufen, sieht sauber aus. Einige Minuten gewartet, dann geschlossen.

Leider erscheint unter Integration nichts neues:


Leider immer noch kein Sensor.

Was mache ich falsch?

VG

Alex

Ich meinte eigentlich Du solltest erstmal im Log beobachten ob die Messung funktioniert!
Ob die gemessenen Werte auch kommen?
Dann den nächsten Schritt!

Liste auch mal dein Komplettes ESPhome Projekt.
und vielleicht auch das Log
Passwörter usw. verändern oder löschen.

Hi @Wolfi1 ,

hier ist schon mal der Yaml-Code vom ESP Projekt:

esphome:
  name: bwt
  friendly_name: BWT

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "XXXXXXXXXXXXXXXXXXX"

ota:
  password: "XXXXXXXXXXXXXXXXXXXXX"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Bwt Fallback Hotspot"
    password: "XXXXXXXXXXXXXXXXXXX"

captive_portal:

sensor:
  - platform: ultrasonic
    trigger_pin: GPIO26
    echo_pin: GPIO25
    name: "BWT Salzstand"
    update_interval: 5s

und Wireless LOG:

INFO ESPHome 2024.5.4
INFO Reading configuration /config/esphome/bwt.yaml...
INFO Starting log output from 192.168.178.32 using esphome API
INFO Successfully connected to bwt @ 192.168.178.32 in 0.060s
INFO Successful handshake with bwt @ 192.168.178.32 in 0.090s
[14:34:07][I][app:100]: ESPHome version 2024.5.4 compiled on Jun  4 2024, 14:32:45
[14:34:07][C][wifi:580]: WiFi:
[14:34:07][C][wifi:408]:   Local MAC: 48:E7:29:8C:2B:D8
[14:34:07][C][wifi:413]:   SSID: [redacted]
[14:34:07][C][wifi:416]:   IP Address: 192.168.178.32
[14:34:07][C][wifi:420]:   BSSID: [redacted]
[14:34:07][C][wifi:421]:   Hostname: 'bwt'
[14:34:07][C][wifi:423]:   Signal strength: -81 dB ▂▄▆█
[14:34:07][C][wifi:427]:   Channel: 11
[14:34:07][C][wifi:428]:   Subnet: 255.255.255.0
[14:34:07][C][wifi:429]:   Gateway: 192.168.178.1
[14:34:07][C][wifi:430]:   DNS1: 192.168.178.1
[14:34:07][C][wifi:431]:   DNS2: 0.0.0.0
[14:34:07][C][logger:185]: Logger:
[14:34:07][C][logger:186]:   Level: DEBUG
[14:34:07][C][logger:188]:   Log Baud Rate: 115200
[14:34:07][C][logger:189]:   Hardware UART: UART0
[14:34:07][C][ultrasonic.sensor:045]: Ultrasonic Sensor 'BWT Salzstand'
[14:34:07][C][ultrasonic.sensor:045]:   State Class: 'measurement'
[14:34:07][C][ultrasonic.sensor:045]:   Unit of Measurement: 'm'
[14:34:07][C][ultrasonic.sensor:045]:   Accuracy Decimals: 2
[14:34:07][C][ultrasonic.sensor:045]:   Icon: 'mdi:arrow-expand-vertical'
[14:34:07][C][ultrasonic.sensor:046]:   Echo Pin: GPIO25
[14:34:07][C][ultrasonic.sensor:047]:   Trigger Pin: GPIO26
[14:34:07][C][ultrasonic.sensor:048]:   Pulse time: 10 µs
[14:34:07][C][ultrasonic.sensor:049]:   Timeout: 11661 µs
[14:34:07][C][ultrasonic.sensor:050]:   Update Interval: 5.0s
[14:34:07][C][captive_portal:088]: Captive Portal:
[14:34:07][C][mdns:115]: mDNS:
[14:34:07][C][mdns:116]:   Hostname: bwt
[14:34:07][C][ota:096]: Over-The-Air Updates:
[14:34:07][C][ota:097]:   Address: bwt.local:3232
[14:34:07][C][ota:100]:   Using Password.
[14:34:07][C][ota:103]:   OTA version: 2.
[14:34:07][C][api:139]: API Server:
[14:34:07][C][api:140]:   Address: bwt.local:6053
[14:34:07][C][api:142]:   Using noise encryption: YES
[14:34:08][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.047 m
[14:34:08][D][sensor:094]: 'BWT Salzstand': Sending state 0.04699 m with 2 decimals of accuracy
[14:34:13][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.047 m
[14:34:13][D][sensor:094]: 'BWT Salzstand': Sending state 0.04682 m with 2 decimals of accuracy

Update des Logs:

INFO ESPHome 2024.5.4
INFO Reading configuration /config/esphome/bwt.yaml...
INFO Starting log output from 192.168.178.32 using esphome API
INFO Successfully connected to bwt @ 192.168.178.32 in 0.092s
INFO Successful handshake with bwt @ 192.168.178.32 in 0.086s
[14:47:03][I][app:100]: ESPHome version 2024.5.4 compiled on Jun  4 2024, 14:32:45
[14:47:03][C][wifi:580]: WiFi:
[14:47:03][C][wifi:408]:   Local MAC: 48:E7:29:8C:2B:D8
[14:47:03][C][wifi:413]:   SSID: [redacted]
[14:47:03][C][wifi:416]:   IP Address: 192.168.178.32
[14:47:03][C][wifi:420]:   BSSID: [redacted]
[14:47:03][C][wifi:421]:   Hostname: 'bwt'
[14:47:03][C][wifi:423]:   Signal strength: -79 dB ▂▄▆█
[14:47:03][C][wifi:427]:   Channel: 11
[14:47:03][C][wifi:428]:   Subnet: 255.255.255.0
[14:47:03][C][wifi:429]:   Gateway: 192.168.178.1
[14:47:03][C][wifi:430]:   DNS1: 192.168.178.1
[14:47:03][C][wifi:431]:   DNS2: 0.0.0.0
[14:47:03][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.239 m
[14:47:03][D][sensor:094]: 'BWT Salzstand': Sending state 0.23856 m with 2 decimals of accuracy
[14:47:03][C][logger:185]: Logger:
[14:47:03][C][logger:186]:   Level: DEBUG
[14:47:03][C][logger:188]:   Log Baud Rate: 115200
[14:47:03][C][logger:189]:   Hardware UART: UART0
[14:47:03][C][ultrasonic.sensor:045]: Ultrasonic Sensor 'BWT Salzstand'
[14:47:03][C][ultrasonic.sensor:045]:   State Class: 'measurement'
[14:47:03][C][ultrasonic.sensor:045]:   Unit of Measurement: 'm'
[14:47:03][C][ultrasonic.sensor:045]:   Accuracy Decimals: 2
[14:47:03][C][ultrasonic.sensor:045]:   Icon: 'mdi:arrow-expand-vertical'
[14:47:03][C][ultrasonic.sensor:046]:   Echo Pin: GPIO25
[14:47:03][C][ultrasonic.sensor:047]:   Trigger Pin: GPIO26
[14:47:03][C][ultrasonic.sensor:048]:   Pulse time: 10 µs
[14:47:03][C][ultrasonic.sensor:049]:   Timeout: 11661 µs
[14:47:03][C][ultrasonic.sensor:050]:   Update Interval: 5.0s
[14:47:03][C][captive_portal:088]: Captive Portal:
[14:47:03][C][mdns:115]: mDNS:
[14:47:04][C][mdns:116]:   Hostname: bwt
[14:47:04][C][ota:096]: Over-The-Air Updates:
[14:47:04][C][ota:097]:   Address: bwt.local:3232
[14:47:04][C][ota:100]:   Using Password.
[14:47:04][C][ota:103]:   OTA version: 2.
[14:47:04][C][api:139]: API Server:
[14:47:04][C][api:140]:   Address: bwt.local:6053
[14:47:04][C][api:142]:   Using noise encryption: YES
[14:47:08][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.245 m
[14:47:08][D][sensor:094]: 'BWT Salzstand': Sending state 0.24456 m with 2 decimals of accuracy
[14:47:13][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.253 m
[14:47:13][D][sensor:094]: 'BWT Salzstand': Sending state 0.25313 m with 2 decimals of accuracy
[14:47:18][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.250 m
[14:47:18][D][sensor:094]: 'BWT Salzstand': Sending state 0.25005 m with 2 decimals of accuracy
[14:47:23][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.241 m
[14:47:23][D][sensor:094]: 'BWT Salzstand': Sending state 0.24147 m with 2 decimals of accuracy
[14:47:28][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.241 m
[14:47:28][D][sensor:094]: 'BWT Salzstand': Sending state 0.24147 m with 2 decimals of accuracy
[14:47:33][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.241 m
[14:47:33][D][sensor:094]: 'BWT Salzstand': Sending state 0.24147 m with 2 decimals of accuracy
[14:47:38][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.250 m
[14:47:38][D][sensor:094]: 'BWT Salzstand': Sending state 0.25022 m with 2 decimals of accuracy
[14:47:43][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.250 m
[14:47:43][D][sensor:094]: 'BWT Salzstand': Sending state 0.25022 m with 2 decimals of accuracy
[14:47:48][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.250 m
[14:47:48][D][sensor:094]: 'BWT Salzstand': Sending state 0.25005 m with 2 decimals of accuracy
[14:47:53][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.250 m
[14:47:53][D][sensor:094]: 'BWT Salzstand': Sending state 0.25022 m with 2 decimals of accuracy
[14:47:58][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.250 m
[14:47:58][D][sensor:094]: 'BWT Salzstand': Sending state 0.25005 m with 2 decimals of accuracy
[14:48:03][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.250 m
[14:48:03][D][sensor:094]: 'BWT Salzstand': Sending state 0.25022 m with 2 decimals of accuracy
[14:48:08][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.250 m
[14:48:08][D][sensor:094]: 'BWT Salzstand': Sending state 0.25022 m with 2 decimals of accuracy
[14:48:13][D][ultrasonic.sensor:040]: 'BWT Salzstand' - Got distance: 0.250 m
[14:48:13][D][sensor:094]: 'BWT Salzstand': Sending state 0.25022 m with 2 decimals of accuracy

Scheinbar misst er schon, blos die richtige Entität fehlt mir

EDIT:

auf ein Mal habe 2 Entitäten am Gerät:

das hier ist die neue: