Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

inverter power limitation: no feedback for device's Power Limit slider + relative / absolute limit #112

Open
GrKoR opened this issue May 24, 2024 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@GrKoR
Copy link
Owner

GrKoR commented May 24, 2024

applicable to component v.0.2.15

Brokly & Alexander Mamonov in telegram:

Привет всем, есть идеи, почему может не включаться лимит по питанию?
В чем выражается не установка лимита ?
не сохраняется ползунок. ошибка в логе выше
а похоже, просто ползунок не обновляет свое состояние
dr_corner , похоже у тебя в примере конфига на гитхабе есть косяк. Нет обратной связи с ползунком установки мощности.
но и кондей забивает на лимит
Нет , по логу не забивает.
Ставит столько, на сколько установлен ползунок
да, лимит ставится, но кондей уходит за лимит
Нет, просто для кондея 100% соответствует установленному лимиту. Это разные проценты. Скажем ставишь 71 процент, кондей показывает, что работает на 40, это значит он работает на 0.71*0.4=0.28, то есть на 28 процентов
Кстати это тоже можно обслужить в конфиге.
Если хочется видеть не относительные показания процентов, а абсолютные.

Correct config here
Brokly implements update in the on_value action of inverter_power_limit_value sensor. It works but multiplies number of connections between parts of code. The better way will be to request the power limit sensor value periodically from the slider's code itself.

@GrKoR GrKoR added the bug Something isn't working label May 24, 2024
@GrKoR GrKoR self-assigned this May 24, 2024
@Steamerzone
Copy link

Can you post the correct config here on github?

Thanks.

@GrKoR
Copy link
Owner Author

GrKoR commented Dec 6, 2024

Hi, @Steamerzone !

Here is the contents of the config file from telegram you were asking for. Note, that it is common part of the advanced example.

# DON'T COMPILE THIS FILE
# This file contains common settings for all air conditioners of your house
external_components:
  - source: github://GrKoR/esphome_aux_ac_component
    components: [ aux_ac ]
    refresh: 0s

esphome:
  name: $devicename
  platform: ESP8266
  board: d1_mini

wifi:
  ssid: "****************************"
  password: "************************"
  manual_ip:
    static_ip: ${wifi_ip}
    gateway: 192.168.83.1
    subnet: 255.255.255.0
  ap:
    ssid: ${upper_devicename} Hotspot
    password: "*********************************"

captive_portal:
debug:

logger:
    level: DEBUG
    baud_rate: 0
    # set hardware_uart to UART1 and comment out baud_rate above in case of boot crashes
    # it is suitable if you need hardware loggin
    # hardware_uart: UART1

api:
  password: "********************"

ota:
  password: "*****************************"

# UART0 configuration for AUX air conditioner communication
uart:
  id: ac_uart_bus
  # ATTENTION! Use GPIO4 (D2) and GPIO5 (D1) as the TX and RX for NodeMCU-like boards!
  tx_pin: GPIO5
  rx_pin: GPIO4
  baud_rate: 4800
  data_bits: 8
  parity: EVEN
  stop_bits: 1



climate:
  - platform: aux_ac
    name: ${upper_devicename}
    id: aux_id
    uart_id: ac_uart_bus
    period: 7s
    show_action: true
    display_inverted: false
    optimistic: false
    indoor_temperature:
      name: ${upper_devicename} Indoor Temperature
      id: ${devicename}_indoor_temp
      internal: false
    display_state:
      name: ${upper_devicename} Display State
      id: ${devicename}_display_state
      internal: false
    outdoor_temperature:
      name: ${upper_devicename} Outdoor Temperature
      id: ${devicename}_outdoor_temp
      internal: false
    outbound_temperature:
      name: ${upper_devicename} Coolant Outbound Temperature
      id: ${devicename}_outbound_temp
      internal: false
    inbound_temperature:
      name: ${upper_devicename} Coolant Inbound Temperature
      id: ${devicename}_inbound_temp
      internal: false
    compressor_temperature:
      name: ${upper_devicename} Compressor Temperature
      id: ${devicename}_strange_temp
      internal: false
    defrost_state:
      name: ${upper_devicename} Defrost State
      id: ${devicename}_defrost_state
      internal: false
    inverter_power:
      name: ${upper_devicename} Invertor Power
      id: ${devicename}_inverter_power
      internal: false
    inverter_power_limit_value:
      name: ${upper_devicename} Power Limit Value
      id: ${devicename}_power_limit_value
      internal: false
      on_value:
        lambda: |-
           if(x!=id(${devicename}_power_limit).state){
              id(${devicename}_power_limit).publish_state(x);
           }
    inverter_power_limit_state:
      name: ${upper_devicename} Power Limit State
      id: ${devicename}_power_limit_state
      internal: false
    preset_reporter:
      name: ${upper_devicename} Preset Reporter
      id: ${devicename}_preset_reporter
      internal: false
    vlouver_state:
      name: ${upper_devicename} VLouvers State
      id: ${devicename}_vlouver_state
      internal: false
    visual:
      min_temperature: 16
      max_temperature: 32
      temperature_step: 0.5
    supported_modes:
      - HEAT_COOL
      - COOL
      - HEAT
      - DRY
      - FAN_ONLY
    custom_fan_modes:
      - MUTE
      - TURBO
    supported_presets:
      - SLEEP
    custom_presets:
      - CLEAN
      - HEALTH
      - ANTIFUNGUS
    supported_swing_modes:
      - VERTICAL
      - HORIZONTAL
      - BOTH


sensor:
  # just wifi signal strength for debug purpose only
  - platform: wifi_signal
    name: ${upper_devicename} WiFi Signal
    update_interval: 30s
    unit_of_measurement: "dBa"
    accuracy_decimals: 0

  - platform: uptime
    name: ${upper_devicename} Uptime Sensor

switch:
  - platform: template
    name: ${upper_devicename} Display
    lambda: |-
      if (id(${devicename}_display_state).state) {
        return true;
      } else {
        return false;
      }
    turn_on_action:
      - aux_ac.display_on: aux_id
    turn_off_action:
      - aux_ac.display_off: aux_id

button:
  - platform: template
    name: ${upper_devicename} VLouver Stop
    icon: "mdi:circle-small"
    on_press:
      - aux_ac.vlouver_stop: aux_id
    
  - platform: template
    name: ${upper_devicename} VLouver Swing
    icon: "mdi:pan-vertical"
    on_press:
      - aux_ac.vlouver_swing: aux_id
    
  - platform: template
    name: ${upper_devicename} VLouver Top
    icon: "mdi:pan-up"
    on_press:
      - aux_ac.vlouver_top: aux_id
    
  - platform: template
    name: ${upper_devicename} VLouver Middle Above
    icon: "mdi:pan-top-left"
    on_press:
      - aux_ac.vlouver_middle_above: aux_id
    
  - platform: template
    name: ${upper_devicename} VLouver Middle
    icon: "mdi:pan-left"
    on_press:
      - aux_ac.vlouver_middle: aux_id
    
  - platform: template
    name: ${upper_devicename} VLouver Middle Below
    icon: "mdi:pan-bottom-left"
    on_press:
      - aux_ac.vlouver_middle_below: aux_id
    
  - platform: template
    name: ${upper_devicename} VLouver Bottom
    icon: "mdi:pan-down"
    on_press:
      - aux_ac.vlouver_bottom: aux_id


number:
  - platform: template
    name: ${upper_devicename} Vertical Louvers
    id: ${devicename}_vlouver
    icon: "mdi:circle-small"
    mode: "slider"
    min_value: 0
    max_value: 6
    step: 1
    update_interval: 2s
    lambda: |-
      return id(${devicename}_vlouver_state).state;
    set_action:
      then:
        - aux_ac.vlouver_set:
            id: aux_id
            position: !lambda "return x;"
  - platform: template
    name: ${upper_devicename} Power Limit
    id: ${devicename}_power_limit
    icon: "mdi:battery-unknown"
    mode: "slider"
    min_value: 30
    max_value: 100
    step: 1
    set_action:
      then:
        - lambda: !lambda |-
            id(aux_id).powerLimitationOnSequence( x );
            id(${devicename}_power_limit).publish_state( x );

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants