Garagentor Öffnungsgrad über Ultraschallsensor HC-SR04 ermitteln

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.

1 „Gefällt mir“