hey, I have tried adding the pulse time and timeout in meters as stated above, but no luck, still having the same problem as OP. My tank level is unknown.
Log:
[14:36:32][C][ultrasonic.sensor:045]: Ultrasonic Sensor 'Water Tank Level'
[14:36:32][C][ultrasonic.sensor:045]: State Class: 'measurement'
[14:36:32][C][ultrasonic.sensor:045]: Unit of Measurement: '%'
[14:36:32][C][ultrasonic.sensor:045]: Accuracy Decimals: 0
[14:36:32][C][ultrasonic.sensor:045]: Icon: 'mdi:arrow-expand-vertical'
[14:36:32][C][ultrasonic.sensor:046]: Echo Pin: GPIO4
[14:36:32][C][ultrasonic.sensor:047]: Trigger Pin: GPIO5
[14:36:32][C][ultrasonic.sensor:048]: Pulse time: 15 µs
[14:36:32][C][ultrasonic.sensor:049]: Timeout: 174927 µs
[14:36:32][C][ultrasonic.sensor:050]: Update Interval: 1800.0s
code:
- platform: ultrasonic
trigger_pin:
number: GPIO5
allow_other_uses: true
echo_pin:
number: GPIO4
allow_other_uses: true
name: "Water Tank Level"
unit_of_measurement: "%"
accuracy_decimals: 0
timeout: 30m
pulse_time: 15us
update_interval: 1800000ms
filters:
- lambda: |-
float value = ((((x * 100) - 73) - (206 - 73)) / (206 - 73)) * -100;
return value > 100 ? 100 : value;
- filter_out: nan```