Hallo,
ich habe einen Wasserzähler nach Smarte Wasserzähler – blog.caina.de gebaut,
Also einen ESP mit einem induktiven Pulssensor.
Benutzt habe ich einen c3.
Trotz dem fertigen Sensor, der ja nicht prellen kann, zählt pulse_meter zuviele Pulse.
Wenn ich zb 41 liter verbrauche, zeigt er 46l, oder wenn ich real 31l verbraucht habe, zeigt der esp 44l
Da nur jeden Liter ein Impuls kommt (also ca nach 0,5an, nach weiteren 0,5 aus), kommen die impulse natürlich ziemlich langsam.
Den Filter hab ich schon auf 400ms gestellt…
hier das script:
sensor:
- platform: pulse_meter
id: cold_water_meter_pulse
name: 'Cold Water Meter - FlowRate'
unit_of_measurement: 'l/min'
device_class: volume_flow_rate
state_class: measurement
internal_filter: 400ms
accuracy_decimals: 0
pin:
number: GPIO21
mode: INPUT_pullup
total:
name: 'Cold Water Meter - Total m³'
id: cold_water_meter_total
unit_of_measurement: 'm³'
accuracy_decimals: 3
state_class: total_increasing
device_class: water
filters:
- multiply: 0.001
on_value:
then:
- lambda: |-
float y = round(x * 1000) / 1000;
id(store_count).state = id(store_count).state - id(water_total_previous) + y ;
id(water_total_previous) = y ;
ESP_LOGD ("global","%f", id(water_total_previous));
ESP_LOGD ("store","%f", id(store_count).state);
- homeassistant.service:
service: input_number.set_value
data:
entity_id: input_number.water_meter_store
value: !lambda return id(store_count).state;
- platform: copy
name: 'Cold Water Meter - Total L'
unit_of_measurement: 'L'
accuracy_decimals: 0
state_class: total_increasing
device_class: water
source_id: cold_water_meter_total
filters:
- multiply: 1000
- platform: homeassistant
id: store_count
entity_id: input_number.water_meter_store
accuracy_decimals: 3
internal: False
unit_of_measurement: "m³"
state_class: total
Hat jemand ne Idee?