Nun ist der Ultraschallsensor in der Garage verbaut und funktioniert soweit.
Folgendes Script kommt zum Einsatz, falls dies jemandem nutzt:
# Ultraschallsensor HC-SR04
- platform: ultrasonic
id: distance_sensor
name: Ultrasonic_Sensor
trigger_pin: GPIO5 #Kabel blau
echo_pin: GPIO4 #Kabel weiß
update_interval: never
internal: true
timeout: 3m
accuracy_decimals: 1
unit_of_measurement: 'm'
# filters:
filters:
- lambda: return x;
- filter_out: nan
- quantile:
- calibrate_linear:
- 0.023 -> 2.04
- 2.00 -> 0.00
# Zeigt im Dashboard den Öffnungsgrads in % vom Garagentor
- platform: template
id: level
name: Status_Garagentor
update_interval: never
unit_of_measurement: '%'
accuracy_decimals: 0
lambda: |-
auto r = (id(distance_sensor).state) * 50;
if (r > 99.5) return 100;
if (r < 0.00) return 0;
return r;
# Binary Sensor aus Homeassistant. Hier werden beide Endschalter des Tores zu einem Sensor zusammengefasst.
binary_sensor:
- platform: homeassistant
name: "Schalter Garage"
id: schaltergarage
entity_id: binary_sensor.endschalter_garage
internal: true
# Wechselt das update_interval auf 125ms, wenn beide Endschalter in der Garage auf "on" sind, also nicht betätigt!
interval:
- id: dynamic_update_interval_fast
interval: 125ms
then:
- if:
condition:
- binary_sensor.is_on: schaltergarage
then:
- component.update: level
- delay: 120ms
- component.update: distance_sensor
- id: dynamic_update_interval_slow
interval: 900s
then:
- if:
condition:
- binary_sensor.is_off: schaltergarage
then:
- component.update: level
- delay: 300ms
- component.update: distance_sensor
Den Öffnungsstatus lasse ich in % mittels Gauge im Dashboard anzeigen.
Dies läuft nicht so smooth wie ich erhofft habe, zeigt mir aber an,
wie weit das Tor geffnet oder geschlossen ist und auch wenn es in einer Zwischenstellung steht.