elupus / esphome-nibe

Esphome components for nibe heat pumps
MIT License
57 stars 19 forks source link

Add support for a virtual RMU unit #60

Open elupus opened 6 months ago

egisz commented 4 months ago

Nice work! Tried yesterday but was bit confused about configuration. I see in Readme 2 RMU entries, S4 and S1 (virtual). Is this intended? Tried to activate both on heatpump, it did not error, but not showing HA provided temperature in heatpump. Did I miss something?

elupus commented 4 months ago

Did you add these sections? https://github.com/elupus/esphome-nibe/pull/60/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5R151

The climate system added there must not be added with some constant values in the other sections.

Also notice that it need to refer to a entity from home assistant to get current temperature.

egisz commented 4 months ago

Yes, I added climate and sensor sections as in your link.

But as I said, temperature is not shown in heatpump screen. Do you enable room sensor in menu 1.9.1 (Room sensor)?
If I do enable it, I get warning that Room sensor is not wired to RMU1. (This part worked fine in my PR. It used to display temperature provided from HA sensor (when enabled).

Also, do I need to enable both RMU1 and RMU4 (as in config I see both entries, S1 virtual, S4 - constant values to heatpump).

My relevant config part looks like this (I added logging HA temperature, just for debugging, and it shows up correct temperature in logs):

 acknowledge:
    - MODBUS40

    # Enable a dummy RMU40 accessory to receive updates
    # to certain registers faster. This should not be
    # enabled if you have an actual RMU40.
    - RMU40_S4

# Constant replies to certain requests can be made
  constants:
    - address: MODBUS40
      token: ACCESSORY
      data: [
            0x0A, # MODBUS version low
            0x00, # MODBUS version high
            0x02, # MODBUS address?
      ]

    # Accessory version response
    - address: RMU40_S4
      token: ACCESSORY
      data: [
            0xEE, # RMU ?
            0x03, # RMU version low
            0x01, # RMU version high
      ]

    # Unknown response that nibepi uses
    - address: RMU40_S4
      token: RMU_DATA
      command: RMU_WRITE
      data: [
            0x63,
            0x00,
      ]

    # Constant fixed temperature to avoid pump going into alarm.
    - address: RMU40_S4
      token: RMU_WRITE
      data: [
            0x06, # Temperature
            0x14, # degrees low
            0x00, # degrees high
      ]

# Add a virtual RMU on S3
climate:
  - platform: nibegw
    name: s1
    address: RMU40_S1
    sensor: current_temperature_s1

sensor:
  - platform: homeassistant
    id: current_temperature_s1
    entity_id: sensor.shellyplusht_08b61fcad31c_temperature

interval:
  - interval: 1s
    then: 
      - lambda: |
            ESP_LOGI("log", "%f", id(current_temperature_s1).state);
elupus commented 4 months ago

Sounds a bit weird. It should start sending data. I assume RMU1 is enabled in your pump and you get errors if the virtual climate additions is not added. Just to confirm its actually asking.

Im not fully sure why it would report that error.