rotary encoder in "lambda"

Ik ben in Home assistant aan het proberen om een dimmer te maken met een rotary encoder.
Met 2 drukknoppen lukt dit nu ,maar daarvoor in plaats wil ik een rotary encoder inzetten.
De code is lambda in een omgeving van yaml.
Hieronder de gebruikte code:

code:


binary_sensor:
  - platform: gpio
    # https://esphome.io/components/binary_sensor/gpio.html
    pin: 
      number: GPIO04
      inverted: True
      mode: INPUT_PULLUP
    name: ${friendly_name} Up Button
    id: up_button
    on_press:
      then:
        - lambda: |-
            if (id(dimmer_lvl) > .91) {
              id(dimmer_lvl) = 1.0;
            }
            else if (id(dimmer_lvl) <= .91) {
              id(dimmer_lvl) += .083;
            };
            id(apply_dimming).execute();


  - platform: gpio
    # https://esphome.io/components/binary_sensor/gpio.html
    pin: 
      number: GPIO05
      inverted: True
      mode: INPUT_PULLUP
    name: ${friendly_name} Down Button
   # internal: True
    on_press:
      then:
        - lambda: !lambda |-
            if (id(dimmer_lvl) < .10) {
              id(dimmer_lvl) = .01;
            }
            else if (id(dimmer_lvl) >= .10) {
              id(dimmer_lvl) -= .083;
            };
            id(apply_dimming).execute();

Met " apply_dimming" wordt een script aangestuurd dat de waarde naar de uitgang stuurt.
Hieronder de code van een rotary encoder:

code:


sensor:
  - platform: rotary_encoder
    name: "Rotary Encoder"
    pin_a: D1
    pin_b: D2
    min_value: 0
    max_value: 100
    resolution: 2

Hoe kan ik deze rotary encoder implementeren?
iemand tips?