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?