Pompa IBO AMG PWM

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

1 polubienie

Wczoraj już to przetestowałem robiąc podobnie switch, mi też pokazywało 96W więc poprawiłem

else if (id(pump1_power).state > 94 && id(pump1_power).state < 96) {
            id(pump1_status).publish_state("Tryb gotowości przez sygnał PWM (STOP)");
            id(pump1_power).publish_state(0);

Dodałem od razu przyciski do pozostałych trybów, natomiast muszę jeszcze doczytać co dokładniej robi tryb “obszar histerezy”.
Ustawiałem sygnał po środku przedziału czyli dla off 0.97.
Rozumiem że

float out_max = 0.10;

to wartość najmniejszych obrotów pompy, ale u mnie czy jest 0.10 czy 0.40, pompa pracuje podobnie. Jak więc najlepiej ustawić tą wartość?

1 polubienie

Obszar histerezy nie mam pojęcia. Co do out_max to już nie pamiętam, chyba eksperymentalnie.

Jak poprawić ten fragment, aby zwracany był tylko realny pobór prądu, czyli aby nie pokazywało wartości > 70. Obecnie jak pompkę przełączę w tryb gotowości to pokazuje mi pobór 96W.