Integrate Poloplast PoloAir ventilation systems using Modbus integration

Looks good to me…

Is the IP / the subnet reachable from HAss (can you ping it from HAss CLI)?

If you set in configuration.yaml

logger:
  default: info

do you get the following lines in log after restart?

2020-10-13 09:30:57 INFO (MainThread) [homeassistant.bootstrap] Setting up stage 2: {-List includes modbus-}
2020-10-13 09:30:57 INFO (MainThread) [homeassistant.setup] Setting up modbus
2020-10-13 09:31:04 INFO (MainThread) [homeassistant.setup] Setup of domain modbus took 6.1 seconds
2020-10-13 09:31:08 INFO (MainThread) [homeassistant.components.sensor] Setting up sensor.modbus
2020-10-13 09:31:08 INFO (MainThread) [homeassistant.components.sensor] Setting up sensor.modbus

If that doesn’t help set logger like this:

logger:
  logs:
    homeassistant.components.modbus: debug
    pymodbus.client: debug

…and paste the logs here.

hey hey,

that’s all I get after I’ve set the logger to debug level

‘021-02-24 16:05:41 INFO (MainThread) [homeassistant.setup] Setting up modbus’

Are the template sensors being setup and showing nothing / unavailable?

If not: Is the sensors.yaml correctly referenced in configuration.yaml:

sensor: !include sensors.yaml

If yes: It appears modbus is not being setup correctly, but it doesn’t show any error / warning in the log. I can only refer you to opening an issue on GitHub for someone to look at as I can’t debug the integration as such.

Also: Have you tried pinging the IP of your PoloAir from HA CLI?

hey hey,

good news…I made it finally…:wink:
Did a complete new setup of home assistant.

I have the following issue…history is not loading? stucks at loading state history…
As well the tab to activate/deactivate eco mode and auto mode doesn’t react really properly (very slow or sensor gets unavailable for a certain time of period).

I have the polo air 250+ in use…but should work the same as your 450.
Have you tried to read out the schedule?

anyway thank you very much for your work and being patient ;).UI looks better than the native mobile app :wink:

cheers

History is a HA component that has nothing to do with ModBus - the sensors need to record to your database, then you can view the historic data.

I don’t think the Air 250+ is any different - it appears to be connectivity issues or the ModBus Slave (the Polo Air) not reacting anymore.

Good luck with tracking down those issues!

Hi @NamCisum ,

how are you?
I have an issue again with the integration as it ran for a while properly.

the sensors are no more available. Guess it was due to an upgrade…?

the message is like:
Entität ist derzeit nicht verfügbar: sensor.tpolo_fanairin
(Entity is currently not available…)

And in the settings → entities: this entity (“sensor.tpolo_fanairin”) has no unique ID, …

any ideas how to fix that issue?

thank you very much!

cheers

Are you aware of the changes to the Modbus syntax in YAML introduced earlier this year and made mandatory in 2021.7 (I believe)? The YAML above is no longer valid, I will change it asap…

I updated the first post with new YAML…

Hi @NamCisum

very kind of you.
I’m back in the game.
I’ve missed the change totally. Thanks for the hint!
So I’ve updated my config and outsourced the modbus code in a separated file.

It could make sense to convert the unit of measurements for a few sensors from W to kW/kWh to integrate them in the energy dashboard as single consumer.

What do you think?

thanks again and cheers

As far as I know the Energy Dashboard accepts only Entities compliant with certain standards - no idea if you can do that using a template sensor. Feel free to give it a try and let us know…

hi,

are you use the panel humidity sensor and temp sensor for showing?
somehow comma/dot is missing.
image
tried to format as float but without affect.

thanks and cheers

I use a template sensor:

    tpolo_temppanel:
      friendly_name: 'Panel'
      device_class: temperature
      unit_of_measurement: '°C'
      value_template: '{{ states.sensor.polo_temppanel.state | float / 10 }}'

Now included the necessary sensors working with energy dashboard:

    - name: polo_energy_day
      slave: 1
      address: 926
      lazy_error_count: 2
      data_type: uint32
      unit_of_measurement: 'kWh'
      scale: 0.001
      precision: 2
      state_class: measurement
    - name: polo_energy_month
      slave: 1
      address: 928
      lazy_error_count: 2
      data_type: uint32
      unit_of_measurement: 'kWh'
      scale: 0.001
      precision: 2
      state_class: measurement
    - name: polo_energy_total
      slave: 1
      address: 930
      lazy_error_count: 2
      data_type: uint32
      unit_of_measurement: 'kWh'
      scale: 0.001
      precision: 2
      state_class: measurement

Hi,

I’ve added/replaced the sensor but it is not possible to select them for the energy dashboard.
I’ve attached my modbus.yaml here. maybe you can have a look at it.

type or paste code here
# Sensors for PoloAir 250+

- name: polo
  type: tcp
  host: 192.168.0.186
  port: 502
  retry_on_empty: true
  retries: 5
  sensors:
    - name: polo_OnOff
      slave: 1
      address: 0
      lazy_error_count: 2
      data_type: uint16
    - name: polo_EcoMode
      slave: 1
      address: 2
      lazy_error_count: 2
      data_type: uint16
    - name: polo_AutoMode
      slave: 1
      address: 3
      lazy_error_count: 2
      data_type: uint16
    - name: polo_CurrentMode
      slave: 1
      address: 4
      lazy_error_count: 2
      data_type: uint16
    - name: polo_NextMode
      slave: 1
      address: 6
      lazy_error_count: 2
      data_type: uint16
    - name: polo_ActiveAlarm
      slave: 1
      address: 599
      lazy_error_count: 2
      data_type: uint16
    - name: polo_FanAirIn
      slave: 1
      address: 909
      lazy_error_count: 2
      data_type: uint16
      unit_of_measurement: '%'
    - name: polo_FanAirOut
      slave: 1
      address: 910
      lazy_error_count: 2
      data_type: uint16
      unit_of_measurement: '%'
    - name: polo_TempAirOutside
      slave: 1
      address: 903
      lazy_error_count: 2
      data_type: uint16
      unit_of_measurement: °C
      device_class: temperature
    - name: polo_TempAirIn
      slave: 1
      address: 901
      lazy_error_count: 2
      data_type: uint16
      unit_of_measurement: °C
      device_class: temperature
    - name: polo_TempAirOut
      slave: 1
      address: 902
      lazy_error_count: 2
      data_type: uint16
      unit_of_measurement: °C
      device_class: temperature
    - name: polo_FilterImpurity
      slave: 1
      address: 916
      lazy_error_count: 2
      data_type: uint16
      unit_of_measurement: '%'
    - name: polo_energy_day
      slave: 1
      address: 926
      lazy_error_count: 2
      data_type: uint32
      unit_of_measurement: 'kWh'
      scale: 0.001
      precision: 2
      state_class: measurement
    - name: polo_Heater
      slave: 1
      address: 921
      lazy_error_count: 2
      data_type: uint16
      unit_of_measurement: 'W'
    - name: polo_HeatexEnergy
      slave: 1
      address: 922
      lazy_error_count: 2
      data_type: uint16
      unit_of_measurement: 'W'
    - name: polo_HeatexEfficiency
      slave: 1
      address: 923
      lazy_error_count: 2
      data_type: uint16
      unit_of_measurement: '%'
    - name: polo_energy_month
      slave: 1
      address: 928
      lazy_error_count: 2
      data_type: uint32
      unit_of_measurement: 'kWh'
      scale: 0.001
      precision: 2
      state_class: measurement
    - name: polo_energy_total
      slave: 1
      address: 930
      lazy_error_count: 2
      data_type: uint32
      unit_of_measurement: 'kWh'
      scale: 0.001
      precision: 2
      state_class: measurement
    - name: polo_TempPanel
      slave: 1
      address: 945
      lazy_error_count: 2
      data_type: uint16
      unit_of_measurement: °C
      device_class: temperature
    - name: polo_HumPanel
      slave: 1
      address: 946
      lazy_error_count: 2
      data_type: uint16
      unit_of_measurement: '%'
      device_class: humidity

ScreenShot130

hey,

I think I’m using the same config but without success


ScreenShot132

thanks!

Yes, I now get the same error, even though the entity can be picked. Sorry, don’t know how to trouble shoot any further…

It works here, template looks good to me. Are you displaying the correct entity?
What is the state of tpolo_temppanel in Dev Tools → Entities?

To check copy this into Dev Tools → Template and see what it shows / if theres an error:

{{ states.sensor.polo_temppanel.state | float / 10 }}

I think I found the missing piece - add this to configuration.yaml:

homeassistant:
  customize_glob:
    sensor.polo_energy*:
      last_reset: '1970-01-01T00:00:00+00:00'
      device_class: energy
      state_class: measurement

It now works in my test environment…

corrected my issues with panel temp and humidity.
thanks.

regarding energy dashboard…

unfortunately this breaks my fronius solar integration…(via HACS)

In that case you have to analyse why that is / why the customize_glob affects this integration…

sorry working :wink:
ScreenShot133

besides polo energy…but maybe day energy is the right one :wink:

many thanks!

cheers