Co do wyłączenie PWM i 3 biegu to niestety ta pompa tak ma, też ubolewam nad tym że w jakiś magiczny sposób nie da się wybrać np. 1 bieg.
Tak w wielkim skrócie, da się bez problemu wyłączyć przez PWM, jak instrukcja głosi → 95<PWM<=100 Tryb czuwania: wyłączony.
Przykład:
switch:
# Test pompa PWM OFF
- platform: template
id: pompa1_pwm_50_off
name: "Pompa 1 50%-OFF"
icon: mdi:engine
restore_mode: RESTORE_DEFAULT_ON
turn_on_action:
- switch.template.publish:
id: pompa1_pwm_50_off
state: ON
- lambda: |-
id(ledc_pump1).set_level(0.63);
turn_off_action:
- switch.template.publish:
id: pompa1_pwm_50_off
state: OFF
- lambda: |-
id(ledc_pump1).set_level(1);
ważne jest wypełnienie pwm w zakresie 0.96 - 1 (id(ledc_pump1).set_level(0.96) lub id(ledc_pump1).set_level(1))
W przykładzie gdy włączam pompę ustawiam na około 50%, oczywiście gdy off można sobie zachować poziom i przywrócić podczas włączenia.
gdzie ledc_pump1 to
output:
# Ppompa 1
- platform: ledc
pin: 26
frequency: 1000Hz
id: ledc_pump1
- platform: template
id: custom_fan_pump1
type: float
write_action:
- lambda: |-
if (id(on_boot_pump1)) {
id(on_boot_pump1) = false;
return;
}
float in_min = 0.01;
float in_max = 1.0;
float out_min = 0.84;
float out_max = 0.42;
id(fan_pump1_state) = state > 0;
float value = state == 0 ? 0 : (state - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
ESP_LOGD("debug", "pwm1_value=%f", value);
id(ledc_pump1).set_level(value);
fan:
# Ppompa 1
- platform: speed
id: fan_pump1
output: custom_fan_pump1
name: "Pompa 1 PWM"
ja odczytuję jeszcze dane z pompy i dla poboru w tym przypadku pokazuje mi 96W (pewnie związek z wypełnieniem pwm) trzeba by jeszcze to uwzględnić żeby do HA wysyłało ładnie 0W ew po stronie HA