Dunno. The Enervent modbus integration has been working most reliably for me, so I don’t feel like I need to take any extra measures to ensure a stable connection. I only used the Developer Tools reload functionality to apply changes I had made to the configuration files.
My connection goes down daily I added automation to just restart modbus @6am. Some sort of solution …
@stniemin Do you have these in your setup :
2023-02-08 17:08:46.932 WARNING (MainThread) [homeassistant.components.sensor] Sensor sensor.enervent_supply_air_fan_speed has device class None, state class None and unit % thus indicating it has a numeric value; however, it has the non-numeric value: unavailable (<class 'str'>); Please update your configuration if your entity is manually configured, otherwise create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+modbus%22
2023-02-08 17:08:46.941 WARNING (MainThread) [homeassistant.components.sensor] Sensor sensor.enervent_extract_air_fan_speed has device class None, state class None and unit % thus indicating it has a numeric value; however, it has the non-numeric value: unavailable (<class 'str'>); Please update your configuration if your entity is manually configured, otherwise create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+modbus%22
2023-02-08 17:08:46.945 WARNING (MainThread) [homeassistant.components.sensor] Sensor sensor.enervent_outside_air_temperature has device class temperature, state class None and unit °C thus indicating it has a numeric value; however, it has the non-numeric value: unavailable (<class 'str'>); Please update your configuration if your entity is manually configured, otherwise create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+modbus%22
No, I don’t. But then, my Enervent ventilator’s availability seems to be 100%.
Are your Enervent ventilator and HA server both plugged in on ethernet? Could network issues explain the occasional connection failures?
I haven’t defined those device_class state_class attributes to fan sensors either. Perhaps it would be a good practice to add them.
Apparently the time had come to service the ventilator’s filters for the first time. I hadn’t noticed this before as the control panel is not in a place where it could be seen. The modbus fields had the alert info, but I hadn’t used them for anything yet.
So, it was time to create this markdown card - to keep myself informed of such alerts in the future:
type: markdown
content: |
{% if is_state('sensor.enervent_alarm_1_state', '1') %}
<ha-alert alert-type="info">
There is an alert that is acknowledged, but hasn't been cleared.
[{{states('sensor.enervent_alarm_1_year') }}.{{states('sensor.enervent_alarm_1_month') }}.{{states('sensor.enervent_alarm_1_year') | int + 2000 }} {{states('sensor.enervent_alarm_1_hour') }}.{{states('sensor.enervent_alarm_1_minute') }}]
</ha-alert>
{% endif %}
{% if is_state('sensor.enervent_alarm_1_state', '2') %}
<ha-alert alert-type="warning">
There is a new alert, waiting to be acknowledged<br/>
date: {{states('sensor.enervent_alarm_1_year') }}.{{states('sensor.enervent_alarm_1_month') }}.{{states('sensor.enervent_alarm_1_year') | int + 2000 }} {{states('sensor.enervent_alarm_1_hour') }}.{{states('sensor.enervent_alarm_1_minute') }}
{% if is_state('sensor.enervent_alarm_1_type', '1') %}Alert type: TE05_L{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '2') %}Alert type: TE10_L{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '3') %}Alert type: TE10_H{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '4') %}Alert type: TE20_H{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '5') %}Alert type: TE30_L{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '6') %}Alert type: TE30_H{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '7') %}Alert type: HP/MDX{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '8') %}Alert type: SLP{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '9') %}Alert type: TE45_L{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '10') %}Alert type: LTO{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '11') %}Alert type: COOL{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '12') %}Alert type: EMERGENCY_STOP{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '14') %}Alert type: SERVICE{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '15') %}Alert type: PDS10{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '16') %}Alert type: SPLY_FILT_H{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '17') %}Alert type: EXT_FILT_H{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '20') %}Alert type: TF_PRES{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '21') %}Alert type: PF_PRES{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '22') %}Alert type: TE50_H{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '24') %}Alert type: TE52_H{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '25') %}Alert type: TF_ROTATION{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '26') %}Alert type: PF_ROTATION{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '27') %}Alert type: TE02_H{% endif %}
{% if is_state('sensor.enervent_alarm_1_type', '28') %}Alert type: SERVICE_CONSTANT_DUCT_PRES{% endif %}
</ha-alert>
{% endif %}
It took a while to write the ifs and alarm specific notes. Hope this will save the time for someone else!
Come to think of it, I might as well create an automation to send a mobile notification when the alarm_1 state changes.
Hm, they changed something in modbus integration, mine does not work at all anymore
There’s one breaking change announced for Modbus with the latest release, but that shouldn’t affect things yet.
Mine is still working.
Are you getting some modbus specific errors?
No errors at all. If i try to change temp or such, there is no error, and it just reverts back after a while …
Anyone know if this works with ewind controller too? do i need to buy a modbus rs485 to wifi converter first or could i use the ip adress from ewind?
Ok, now im confused, there was an update to the core, now everything works again and even better, it seems to stay online
@tornil, check if ewind controller has same modbus registers. It might work.
https://doc.enervent.com/out/out.ViewFolder.php?folderid=16&showtree=1
Im in same situation with my new district heating system. I need also some sort of converter in between…
If i figured it correctly, i could just make a cable from rs485 to rj45, and leave converting to computer. Not sure if homeassistant can do that tho …
According to this Enervent page, the eWind doesn’t have support for Modbus over TCP/IP. If you have the eWind WiFi adapter, it probably still doesn’t expose a modbus interface over TCP/IP.
But it doesn’t cost anything to try that, so if you have the time, you could give it a go and see if anything interesting appears in the logs.
@stniemin Since you have figured out the Enervent functions to HA and put together a nice UI card for it, would it be possible to get a link to the sources of the both?
It’s really the OP who did the biggest effort here: finding the modbus registers and set-up. I just copy-pasted his approach (and YAML) and modified it to match my setup.
The UI cards are just standard HA cards arranged with grid and vertical stack. Nothing special there.
I would start by copy-pasting kbvamme’s configuration and modifying it to match your environment (host IP, sensor names).
If you get stuck somewhere, share your issue here and I can try to help.
Ok, so i have the option to go for an Enervent LTR-5z or an Östberg Heru 160S.
Reading this thread it seems that the Enervent is lacking a supported integration, but based on the comments here, it seems to be working well withs ops parsing code.
On the other hand the Heru from Östberg has a supported integration.
I get them both at a really good price, but the Heru is just below a 1000$ extra.
What would you go for in my position? Is there anything i would be lacking when going for the Enervent?
The seller (a friend) is talking up the Enervent machine, says it is the better choice, and at a lower price. He is not a home assistant nerd tough, so he does not understand my sofies choice moment
Any input would be really great
I don’t know either model, but looking at Enervent’s product pages the LTR-5, when paired with an eAir controller, should be possible to integrate using the modbus integration.
I’d probably go withe Enervent and save the 1000$.
I’ve had no issues with my Enervent after I got everything set up in Home Assistant. But if you have some specific expectation for the how it should work/behave in Home Assistant, that might change things a bit.
Hi!
Thank you all for the good work. I try to benefit from your examples.
I have an Enervent Pelican and I just set up the Modbus for it through the eAir.
@stniemin I see in your card that you have the fireplace lighting preset; I suppose it corresponds to the overpressure function. Which coil do you use for the overpressure function? I could not locate it in the documentation
Also, how do you switch to the Home preset after enabling the Away? Is it just by pressing the “poissa” button again (i.e. on/off)?
Thanks (kiitos)!
Hi @euri !
I’m glad the work we’ve put into building our systems are helping other setup things on their end!
@stniemin I see in your card that you have the fireplace lighting preset; I suppose it corresponds to the overpressure function. Which coil do you use for the overpressure function? I could not locate it in the documentation
Indeed, that button is for toggling the “overpressure mode”. I have these lines on my enervent-switches.yaml
:
- name: "Enervent Overpressure mode"
address: 3
write_type: coil
verify:
state_on: 1
state_off: 0
…which creates the entity switch.enervent_overpressure_mode
on Home Assistant, that can be toggled on and off.
Also, how do you switch to the Home preset after enabling the Away? Is it just by pressing the “poissa” button again (i.e. on/off)?
Exactly. It’s another switch that corresponds to the “Away mode” (address: 1).
Hey @stniemin
thanks for the reply
Regarding the overpressure mode and the coil, the documentation for eAir (as posted by the OP in the first post) indicates that coil 3 is reserved.
How did you come up with coil 3? The only reference in the documentation about “overpressure” is hreg 44 for displaying the current mode of the ventilation unit
Edit:
I do not doubt that this is the correct coil, quite the contrary. I’m just curious, mostly because the documentation states in bold “Registers marked “reserved” must not be altered!”
I confirmed it actually by using a Modbus explorer. While reading the coils in real time I toggled the overpressure mode from the eAir panel. Coil 3 changed its value from 0 to 1 and then back to 0.
Simple: I asked Enervent tech support by email.