Cześć
Proszę o podpowiedź jak rozwiązać problem sterowania 2 triakami za pomocą komponentu number gdzie:
“Moc grzałek” w zakresie 0-50 steruje “Grzałką 1” w zakresie 0-100 a w zakresie 51-100 steruje “Grzałką 2” w zakresie 0-100
Czyli wybierając moc grzałek np. 75, grzałka 1 pracuje na 100% a grzałka 2 na 50%.
Próbowałem różnych sposobów ale bezskutecznie.
number:
- platform: template
name: "Moc Grzałek"
id: moc
min_value: 0
max_value: 100
step: 5
optimistic: true
initial_value: 0
- platform: template
name: "Grzałka 1"
id: moc1
min_value: 0
max_value: 100
step: 5
optimistic: true
initial_value: 0
on_value:
then:
- light.turn_on:
id: dimmer1
brightness: !lambda return id(moc1).state/100.0;
- platform: template
name: "Grzałka 2"
id: moc2
min_value: 0
max_value: 100
step: 5
optimistic: true
initial_value: 0
on_value:
then:
- light.turn_on:
id: dimmer2
brightness: !lambda return id(moc2).state/100.0;
szopen
21 Listopad 2024 20:17
2
A jakieś inne sposoby pokażesz, bo tu nawet nie uwzględniasz swoich obliczeń
moc1=(moc*2)
moc2=(moc*2)-100
jeszcze by trzeba było jakieś warunki dla wartości >100 i <0
No tak.
Polak zawsze musi sobie skomplikować życie a rozwiązaniem było dodanie jeszcze po jednym warunku
number:
- platform: template
name: "Moc Grzałek"
id: moc
min_value: 0
max_value: 100
step: 5
optimistic: true
initial_value: 0
on_value:
then:
- if:
condition:
number.in_range:
id: moc
below: 50.0
then:
- number.set:
id: moc2
value: 0
- number.set:
id: moc1
value: !lambda return id(moc).state*2;
- if:
condition:
number.in_range:
id: moc
above: 50.0
then:
- number.set:
id: moc1
value: 100
- number.set:
id: moc2
value: !lambda return (id(moc).state*2)-100;
- platform: template
name: "Grzałka 1"
id: moc1
min_value: 0
max_value: 100
step: 5
optimistic: true
initial_value: 0
on_value:
then:
- light.turn_on:
id: dimmer1
brightness: !lambda return id(moc1).state/100.0;
- platform: template
name: "Grzałka 2"
id: moc2
min_value: 0
max_value: 100
step: 5
optimistic: true
initial_value: 0
on_value:
then:
- light.turn_on:
id: dimmer2
brightness: !lambda return id(moc2).state/100.0;
Uczę się dopiero lambd i zastanawiam się czy da się powyższy kod uprościć.
1 polubienie