Hi, wie hast du das ganze umgesetzt? Mich interessiert die Umsetzung in der Shelly App und die Implementierung in HA.
Ich habe die Kombi mit dem Drucksensor / Shelly-UNI nach dieser Anleitung gebaut:
Hier ist der Schaltplan:
Dann habe ich einen Filter angelegt, um die Schwankungen bei der Messung auszugleichen.
sensor.regentonne_adc ist die Entität des Shelly UNI
sensor:
# ------- Filter zur Glättung der Werte Regentonne -------
# https://www.home-assistant.io/integrations/filter/
- platform: filter
unique_id: regentonne_adc_filter
name: "Regentonne adc gefiltert"
entity_id: sensor.regentonne_adc
filters:
- filter: lowpass
time_constant: 20
precision: 2
Jetzt noch die Spannung in einen Füllstand umrechnen. Die entsprechenden Spannungswerte muss man einmal mit leerer und einmal mit voller Tonne ermitteln. Die Berechnung erfolgt über einen Helfer/Templatesensor:
{% set SPLEER = 1.92 %} {# Spannung Tonne leer #}
{% set SPVOLL = 8.34 - SPLEER %} {# Spannung Tonne voll #}
{% set SP = states('sensor.regentonne_adc_gefiltert') | float %}
{% set FSNEU = ((SP - SPLEER) * (100 / SPVOLL)) | round %}
{{ FSNEU }}
Hallo RKT 62,
ich habe ein Shelly Plus Uni als Voltmeter konfiguriert.
Schaltplan analog dem oben. Mit Drucksensor 4-20mA (2 Meter Sensor) und Widerstand 330 Ohm.
Bei 100% Zisterne habe ich 4,9V, leer 1,1V.
sensor:
# ------- Filter zur Glättung der Werte Zisterne -------
# https://www.home-assistant.io/integrations/filter/
- platform: filter
unique_id: zisterne_adc_filter
name: "zisterne adc gefiltert"
entity_id: sensor.shellyplusuni_a0a3b3dc8900_voltmeter
filters:
- filter: lowpass
time_constant: 20
precision: 2
{% set SPLEER = 4.9 %} {# Spannung Zisterne leer #}
{% set SPVOLL = 1.1 - SPLEER %} {# Spannung Zisterne voll #}
{% set SP = states('sensor.zisterne_adc_gefiltert') | float %}
{% set FSNEU = ((SP - SPLEER) * (100 / SPVOLL)) | round %}
{{ FSNEU }}
In der Config.yaml kommt Fehler…
missed comma between flow collection entries (115:2)
112 | - filter: lowpass
113 | time_constant: 20
114 | precision: 2
115 | {% set SPLEER = 4.9 %} {# Spannu ...
--------^
116 | {% set SPVOLL = 1.1 - SPLEER %} ...
117 | {% set SP = states('sensor.z ...
Gruß Guckmaster
by HarryP: Codezeilen formatiert (bitte immer in </> einbinden)
Mach doch mal die “{” vor dem # weg:
dann sollte es passen.
Nur der obere Schnipsel kommt in die configuration.yaml.
Der untere Schnipsel gehört in einen Helfer Typ Template.
Abgesehen davon hast Du auch die Leer- und die Voll-Spannung verwechselt. Voll muss größer sein als Leer.
Danke,
die Leer- und die Voll-Spannung habe ich getauscht.
Den Helfer Typ Template muss ich noch erstellen.
Das ganze mache ich unter Einstellungen / Helfer / Helfer erstellen /
Es wird ein normaler Sensor, kein Binärer ?
Entitäts-ID: sensor.sensor_zisterne_adc
Ich bin mir unsicher, ob ich die korrekten ID´s vergeben habe…
Der Shelly Sesorname ist Füllstand Zisterne
Entitäts-ID: sensor.shellyplusuni_a0a3b3dc8900_voltmeter
Der Codeschnipsel in der config.yaml
sensor:
# ------- Filter zur Glättung der Werte Zisterne -------
# https://www.home-assistant.io/integrations/filter/
- platform: filter
unique_id: zisterne_adc_filter
name: "zisterne adc gefiltert"
entity_id: sensor.shellyplusuni_a0a3b3dc8900_voltmeter
filters:
- filter: lowpass
time_constant: 20
precision: 2
Der Codeschnipsel für den Helfer…
{% set SPLEER = 1.8 %} {# Spannung Zisterne leer #}
{% set SPVOLL = 6.6 - SPLEER %} {# Spannung Zisterne voll #}
{% set SP = states('sensor.zisterne_adc_gefiltert') | float %}
{% set FSNEU = ((SP - SPLEER) * (100 / SPVOLL)) | round %}
{{ FSNEU }}
Gruß Guckmaster
by tarag: Code in
vorformatierten Text </>
formatiert.
Hi zusammen,
hier ist mal mein sensor…
sensor:
- name: "Zisterne"
unit_of_measurement: "L"
state: >
{% set voltage = states('sensor.zisterne_adc') | float(0) %}
{{ ((voltage / 2.65) * 8000) | round(0) }}
Ich hab meine meiner Zisterne, 1,9V bei 0 L und 4,65V bei 8000 L, in der Uni hab ich den Offset von -1,9V gesetzt.
Hi
Ich hab das Ganze auch verbaut aber den Sensor in der 0-10V Variante genommen.
Gruß Thorsten
Bezüglich Glättung kann man auch den statistics sensor verwenden:
- platform: statistics
name: "Zisterne_Liter"
entity_id: sensor.zisterneliter
state_characteristic: median
max_age:
minutes: 10
precision: 2
Bei entity_id gibst du den namen deines adc Sensors an. ZBsp. sensor.zisterne_adc
zum glätten hab ich einen Filter verwendet
# Filter zum glätten der Zisternenmessung https://www.home-assistant.io/integrations/filter
sensor:
- platform: filter
name: "sensor.zisterne.mittelwert" #Name der ausgegebenen Entität
entity_id: sensor.zisterne_shellyuni_adc #Name der Quell-Entität
scan_interval: "00:00:01" # Hier wird die Abfrage auf einmal pro Sekunde eingestellt
filters:
- filter: time_simple_moving_average # Art des Filter ,lowpass, outlier, range, und throttletime_throttletime_simple_moving_average
window_size: "00:02:00" #Zeitfenster, in dem Fall 2 min
An dem Video hätte ich auch Interesse
Habt ihr diesen Betrag gesehen?
Ist bei mir schon seit ein paar Wochen in Betrieb und funktioniert bestens.
Ich würde sowas gerne für eine Regentonne machen. Eigentlich würde mich täglich ein update vollkommen ausreichen.
Gibt es auch Lösungen die Batteriegetrieben sind, da es mit dem Strom schwer werden könnte für einen ESP.
ESP und Batterie schließt sich meist fast aus, über DeepSleep wäre es zumindest ein Versuch wert.
Alternativ irgendwas mit Solarzelle und Akku.
Ich habe im Deckel der Regentonne so einen Ultraschallsensor, momentan aber nicht in Betrieb. Mir fehlt die Platine.
Jup eben, darum ja die Frage ob schon jemand eine batteriebetriebene Lösung ohne ESP kennt.
Akku + Solarzelle mhm weiß auch nicht ob sich das wirklich lohnt
Servus,
Ich habe mir seit ein paar Tagen einen JSN-SR04T von AliExpr*** beatellt und kann einfach mittels Code ihn nicht einbinden. Bekomme immer eine ‘nan’ Messung in den ESP Logs.
Hardware:
1 x JSN-SR04T Sensor + Board
1 x Wemos D1 Mini Pro
Könnte hier jemand mal den Code posten mit dem sich der Sensor einbinden lässt?
Mit freundlichen Grüßen,
Emanuel
Hast du die suche schon benutzt?
Es gibt einen thread hier im Forum und bei esphome folgendes
Gruss
Servus,
Ich habe diesen Code bereits zig mal benutzt, auch andere 4 Code Snippets im Forum oder auf Github. Leider funktioniert keiner.
Sonst hätte ich auch nicht direkt nach dem Code gefragt…
Lg Emanuel
ich nutze den JSN-SR04T. Funktioniert super bei mir. Habe gleich einen input Number Helfer erstellt worüber ich den update_interval dynamisch steuern kann.
captive_portal:
button:
- platform: restart
id: Wasserstand_Zisterne_restart
name: "Refresh Wasserstand"
# Script für update_interval dynamisch
script:
- id: interval
mode: restart
then:
- component.update: update_time_test
- delay: !lambda "return id(update_interval).state * 1000;"
- script.execute: interval
sensor:
- platform: homeassistant
id: update_interval
entity_id: input_number.esp_zisterne_intervall_time
on_value:
then:
- script.execute: interval
#Ende
- platform: ultrasonic
id: update_time_test
trigger_pin: GPIO17
echo_pin: GPIO33
name: "Wasserstand_Zisterne"
update_interval: never
#update_interval: 5s
#pulse_time: 30us
unit_of_measurement: "%"
#accuracy_decimals: 0
filters:
- filter_out: nan
- lambda: return ((((x*100)-23.5)-(120-23.5))/(120-23.5))*-100;
- platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
name: "WiFi Signal dB"
id: wifi_signal_db
update_interval: 1800s
entity_category: "diagnostic"
- platform: copy # Reports the WiFi signal strength in %
source_id: wifi_signal_db
name: "WiFi Signal Percent"
filters:
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
unit_of_measurement: "%"
entity_category: "diagnostic"