Stan ON oraz OFF na podstawie kW

Od niedawna mam pompę ciepła Samsung EHS Mono 12 kW. Ponieważ menu jest dość ubogie to podpiąłem pod nią licznik EASTRON SDM72D-M Modbus v2.

Naprowadźcie mnie proszę w jaki sposób mogę zbierać proste info kiedy jest ona włączona a kiedy wyłączona. Chodzi mi o to, że gdy licznik zarejestruje pobieraną moc większą niż 200 W to ustawia mi status na ON. Jeżeli moc spadnie poniżej tej wartości to ustawia OFF.

1 Like

Dzięki! Posiedzę nad tym i jak zrobię to podzielę się wynikiem :slight_smile:

Ustawiłem i wygląda na to że działa.

Muszę dodać jeszcze zliczanie statusów ale to na dniach.

Mam prośbę, żebyście rzucili okiem na kod i dali mi znać czy jest ok czy jednak można tu jeszcze coś poprawić:

- sensor:
    - name: Heat Pump Status
      state: >
        {% if states("sensor.heating_total_system_power")| float == 0 %}
          Off
        {% elif states("sensor.heating_total_system_power")| float <= 20 %}
          Standby
        {% elif states('sensor.heating_total_system_power')| float < 200 %}
          Pumps
        {% elif states('sensor.heating_total_system_power')| float >= 200 %}
          Heating
        {% endif %}

natomiast zawartość encji “Heating total system power” jest pobierana przez modbus z licznika Eastron SDM72D-M Modbus v2

- name: Heating Total system power
  address: 52
  # unit_of_measurement: kW
  unit_of_measurement: W
  slave: 3
  input_type: input
  count: 2
  data_type: float32
  # precision: 3
  precision: 0
  # scale: 0.001
  ##      scale: 2
  scan_interval: 60
  device_class: power

Masz zdefiniowane dwa warunki w tych samych przedziałach.

1 Like

Racja, tak to jest jak do tematu podchodzi się o 3 w nocy (╯°□°)╯︵ ┻━┻

Poprawiony kod:

- sensor:
    - name: Heat Pump Status
      state: >
        {% if states("sensor.heating_total_system_power") | float <= 10 %}
          Off
        {% elif states("sensor.heating_total_system_power") | float > 10 and states("sensor.heating_total_system_power") | float <= 20 %}
          Standby
        {% elif states('sensor.heating_total_system_power') | float > 20 and states('sensor.heating_total_system_power') | float <= 250  %}
          Pumps
        {% elif states('sensor.heating_total_system_power') | float > 250 %}
          Heating
        {% endif %}

Powinno być ok. Jak ktoś zauważy błąd to niech pisze. Wszelkie dodatki/modyfikacje/poprawki i optymalizacje mile widziane :slight_smile: