Hi Poul
Strange … seems like it worked yesterday.
I can’t seem to post the link, even if it downloads fine from my end… alternative link:
“My” documentation doesn’t contain the “Allow active cooling” entry …
/jakob
Hi Poul
Strange … seems like it worked yesterday.
I can’t seem to post the link, even if it downloads fine from my end… alternative link:
“My” documentation doesn’t contain the “Allow active cooling” entry …
/jakob
Hi Jakob,
Thanks, just what i needed.
yeah only thing i can find about activating cooling is the register 3284
Regards
Poul
Hi again
Just tested it - state is “Unavailable” for that register … so no luck there
/jakob
Did you ever get this working?
I have all the parts as i ordered double while creating similar solution for my Wavin AHC 9000.
Well its kinda works, but i got some issues with my Nilan system panel, its not working, but i can update ventilation speed
Hello,
I have also a Nilan Compact P Geo - CTS700. Can perfectly read and write data like in Jakob Moll his project (Thx!).
But have no success to write data for the Setpoint supply flow temperature in the floor heating.
Reading the data (T18) from the modbus key: 5169 is not a problem. (It’s a Read only key).
And the displayed value is correct.
Someone a idea what the modbus key is for changing this Setpoint value for the sensor?
Thanks in advanced!
Did you check the dokumentation from Nilan?
Normally the .pdf file will show you.
Hi DkAutomater,
Yes i have checked the pdf files from Nilan. Can find only a read only modbus key
Meaby there is none?
I have a Nilan Compact P GEO3 and I’m trying to set everything up. The Nilan is connected to my network and I’m using TCP modbus. The registers that are in the code of Jakob Moll work, but I’m trying to add others like CO2 (register 4712), floor temperature setpoint (T18, register 5169) and others. CO2 and T18 both return 0.
EDIT: The CO2 sensor is an option that I probably don’t have. The floor tmperature setpoint is on slave 4 instead of slave 1. So this is solved! Below you can see my correct config.
stream:
modbus:
- name: nilanmodbus
type: tcp
host: 192.168.0.254
port: 502
sensors:
- name: nilan_floor_temperature_setpoint
unit_of_measurement: '°C'
slave: 4
address: 5169
scale: 0.1
count: 1
data_type: int
- name: nilan_humidity
unit_of_measurement: '%'
slave: 1
address: 4716
...
I have another question:
I can’t seem to change any values. For example the air temperature setpoint. Below you can see the config of that one. When I add that entity as a card on my dashboard, I can’t change it. Any idea on how to do that?
EDIT: also solved. See below how I did this. This allows me to put a slider. The slider is not set automatically to the right value at start so I should find a way to do that.
automation:
- id: Ventilation_speed
alias: Ventilation speed
trigger:
platform: state
entity_id: input_number.slider1
action:
service: modbus.write_register
data_template:
hub: nilanmodbus
unit: 1
address: 4747
value: "{{ states.input_number.slider1.state|int }}"
- id: Room_temperature
alias: Room temperature
trigger:
platform: state
entity_id: input_number.setpoint_room
action:
service: modbus.write_register
data_template:
hub: nilanmodbus
unit: 1
address: 4746
value: "{{ states.input_number.setpoint_room.state|int * 10 }}"
input_number:
slider1:
name: Ventilation speed
initial: 25
min: 20
max: 100
step: 1
unit_of_measurement: '%'
setpoint_room:
name: Room temperature
min: 18
max: 26
step: 1
unit_of_measurement: '°C'
There are broken links in this thread to the nilan modbus documentation. This is a link that does work atm: https://symlink.dk/stuff/CTS700_MODBUS-rev%202.01.pdf
This is what my cards look like now:
You can see three different temps for the floor, I’m not sure what each one means yet (T16 temp before condensor, T17 temperature flow outdoor unit and T18 supply temp central heating)
hi @jenro
Maybe you would like to share your whole config?
When I set the fan speed, I can set the speed at the panel anymore.
The fan have a red line over it.
Would the system still do it automatic regulations, when a user fan speed has been set?
I didn’t realise the fan is no longer automatic after you have control over it in HA. That sucks indeed, I have no idea on how to enable automatic regulations.
Does anyone know how to get decimal temperature numbers? The CTS700 unit shows decimal numbers in the settings so I guess it should be possible.
Is it possible to set the floor heating temperature over modbus? @ delputtet, did you find how to do this?
Sure I can share my config, see below:
Nilan card as shown in my post above:
type: picture-elements
elements:
- entity: sensor.nilan_t1_outdoor
style:
color: white
font-size: 150%
left: 30.5%
top: 7.0%
type: state-label
- entity: sensor.nilan_t4_after_heateexchange
style:
color: white
font-size: 150%
left: 71.5%
top: 7.0%
type: state-label
- entity: sensor.nilan_t3_room
style:
color: white
font-size: 150%
left: 30.5%
top: 66.5%
type: state-label
- entity: sensor.nilan_t2_inlet_room
style:
color: white
font-size: 150%
left: 71.5%
top: 66.5%
type: state-label
- entity: sensor.nilan_humidity
style:
color: white
font-size: 130%
left: 51.0%
top: 79.2%
type: state-label
- entity: sensor.nilan_t16_before_condensor
style:
color: white
font-size: 130%
left: 70.0%
top: 91%
type: state-label
- entity: sensor.nilan_t17_flow_outdoor_unit
style:
color: white
font-size: 130%
left: 51.0%
top: 91%
type: state-label
- entity: sensor.nilan_t18_floor_supply
style:
color: white
font-size: 130%
left: 30.0%
top: 91%
type: state-label
- entity: sensor.nilan_temp_diff
style:
color: white
font-size: 100%
left: 50.0%
top: 60.0%
type: state-label
- entity: sensor.nilan_fan_speed_in
style:
color: white
font-size: 100%
left: 76.0%
top: 55.0%
type: state-label
- entity: sensor.nilan_fan_speed_out
style:
color: white
font-size: 100%
left: 24.0%
top: 55.0%
type: state-label
- entity: sensor.nilan_filter_in_days
style:
color: white
font-size: 100%
left: 49.0%
top: 25.2%
type: state-label
- entity: sensor.nilan_mode_text
style:
color: white
font-size: 100%
left: 50.0%
top: 55.2%
type: state-label
image: /local/ventilation.png
My configuration.yaml:
modbus:
- name: nilanmodbus
type: tcp
host: 192.168.0.254
port: 502
sensors:
- name: nilan_humidity
unit_of_measurement: '%'
slave: 1
address: 4716
- name: nilan_T1_outdoor
# T1
unit_of_measurement: '°C'
slave: 1
address: 5152
scale: 0.1
count: 1
data_type: int16
- name: nilan_T2_inlet_room
# T2
unit_of_measurement: '°C'
slave: 1
address: 5153
scale: 0.1
count: 1
data_type: int16
- name: nilan_T3_room
# T3 - Room / extract air
unit_of_measurement: '°C'
slave: 1
address: 5154
scale: 0.1
count: 1
data_type: int
- name: nilan_T4_after_heateexchange
# T4
unit_of_measurement: '°C'
slave: 1
address: 5155
scale: 0.1
count: 1
data_type: int
- name: nilan_T5_after_heatpump
# T5
unit_of_measurement: '°C'
slave: 1
address: 5156
scale: 0.1
count: 1
data_type: int
- name: nilan_T6_heatpump_evaporator
# T6
unit_of_measurement: '°C'
slave: 1
address: 5157
scale: 0.1
count: 1
data_type: int
- name: nilan_T7_inlet_after_heater
# T7
unit_of_measurement: '°C'
slave: 1
address: 5158
scale: 0.1
count: 1
data_type: int
- name: nilan_T8_outdoor_before_preheat
# T8
unit_of_measurement: '°C'
slave: 1
address: 5159
scale: 0.1
count: 1
data_type: int
- name: nilan_temperature_water_after_heater
# T9
unit_of_measurement: '°C'
slave: 1
address: 5160
scale: 0.1
count: 1
data_type: int
- name: nilan_T11_water_top
# T11
unit_of_measurement: '°C'
slave: 1
address: 5162
scale: 0.1
count: 1
data_type: int
- name: nilan_T12_water_bottom
# T12
unit_of_measurement: '°C'
slave: 1
address: 5163
scale: 0.1
count: 1
data_type: int
- name: nilan_T16_before_condensor
unit_of_measurement: '°C'
slave: 4
address: 5167
scale: 0.1
count: 1
data_type: int
- name: nilan_t17_flow_outdoor_unit
unit_of_measurement: '°C'
slave: 4
address: 5168
scale: 0.1
count: 1
data_type: int
- name: nilan_t18_floor_supply
unit_of_measurement: '°C'
slave: 4
address: 5169
scale: 0.1
count: 1
data_type: int
- name: nilan_t20_outdoor
unit_of_measurement: '°C'
slave: 4
address: 5171
scale: 0.1
count: 1
data_type: int
- name: nilan_water_setpoint
unit_of_measurement: '°C'
slave: 1
address: 5548
count: 1
scale: 0.1
- name: nilan_fan_speed_in
unit_of_measurement: '%'
slave: 1
address: 4699
count: 1
#scale: 0.1
- name: nilan_fan_speed_out
unit_of_measurement: '%'
slave: 1
address: 4700
count: 1
# scale: 0.1
- name: nilan_air_setpoint
unit_of_measurement: '°C'
slave: 1
address: 4746
count: 1
scale: 0.1
input_type: input
- name: nilan_fan_setpoint
#unit_of_measurement: '%'
slave: 1
address: 4747
count: 1
offset: -100
- name: nilan_dhw_supplement_active
slave: 1
address: 5285
count: 1
- name: nilan_dhw_supplement_enabled
slave: 1
address: 3938
count: 1
- name: nilan_dhw_supplement_max
# max enable temp for elpatron
unit_of_measurement: '°C'
slave: 1
address: 2828
count: 1
scale: 0.1
- name: nilan_dhw_supplement_min
# min enable temp for elpatron
unit_of_measurement: '°C'
slave: 1
address: 3935
count: 1
scale: 0.1
- name: nilan_air_mode
# 0 = Auto mode
# 1 = Cooling mode
# 2 = heating mode
slave: 1
address: 2402
count: 1
- name: nilan_active_cooling
# 0 = off
# 1 = on
slave: 1
address: 5288
count: 1
- name: nilan_mode
# 0 = not defined
# 1 = Cooling
# 2 = Heating
# 3 = Ventilation
# 4 = Hot water
# unit_of_measurement: '°C'
slave: 1
address: 5432
count: 1
# scale: 0.1
# ------
# filter
- name: nilan_filter_in_limit
unit_of_measurement: 'days'
slave: 1
address: 1326
count: 1
- name: nilan_filter_out_limit
unit_of_measurement: 'days'
slave: 1
address: 1327
count: 1
- name: nilan_filter_in_days
unit_of_measurement: 'days'
slave: 1
address: 1328
count: 1
- name: nilan_filter_out_days
unit_of_measurement: 'days'
slave: 1
address: 1329
count: 1
- name: nilan_filter_compressor_control
#unit_of_measurement: 'days'
slave: 1
address: 1323
count: 1
# compressor control
# 1323
# fourWayState
# 4703
- name: nilan_fourway_state
#unit_of_measurement: 'days'
slave: 1
address: 4703
count: 1
# bypass1State
# 4704
- name: nilan_bypass_1_state
#unit_of_measurement: 'days'
slave: 1
address: 4704
count: 1
# water compressor level
# 4706 = Compressor1
- name: nilan_water_compressor_1
#unit_of_measurement: 'days'
slave: 1
address: 4706
count: 1
# 4707 = Compressor2
- name: nilan_water_compressor_2
#unit_of_measurement: 'days'
slave: 1
address: 4707
count: 1
# 4708 = Compressor3
- name: nilan_water_compressor_3
#unit_of_measurement: 'days'
slave: 1
address: 4708
count: 1
# 4709 = Compressor4
- name: nilan_water_compressor_4
#unit_of_measurement: 'days'
slave: 1
address: 4709
count: 1
# 4710 = Compressor5
- name: nilan_water_compressor_5
#unit_of_measurement: 'days'
slave: 1
address: 4710
count: 1
# 4711 = Compressor6
- name: nilan_water_compressor_6
#unit_of_measurement: 'days'
slave: 1
address: 4711
count: 1
sensor:
- platform: template
sensors:
nilan_temp_diff:
unit_of_measurement: "°C"
value_template: >-
{% set inlet = states.sensor.nilan_t2_inlet_room.state|float %}
{% set room = states.sensor.nilan_t3_room.state| float %}
{{ (inlet - room)|round(2) }}
nilan_mode_text:
# 1 = Cooling
# 2 = Heating
# 3 = Ventilation
# 4 = Hot water
value_template: "{%if states.sensor.nilan_mode.state == '1' %}Cooling{% elif states.sensor.nilan_mode.state == '2' %}Heating{% elif states.sensor.nilan_mode.state == '3' %}Ventilation{% elif states.sensor.nilan_mode.state == '4' %}Hot water{% endif %}"
#for ventilation speed setting, see https://community.home-assistant.io/t/modbus-fan-speed-configuration-problem/211584
automation:
- id: Ventilation_speed
alias: Ventilation speed
trigger:
platform: state
entity_id: input_number.slider1
action:
service: modbus.write_register
data_template:
hub: nilanmodbus
unit: 1
address: 4747
value: "{{ states.input_number.slider1.state|int }}"
- id: Room_temperature
alias: Room temperature
trigger:
platform: state
entity_id: input_number.setpoint_room
action:
service: modbus.write_register
data_template:
hub: nilanmodbus
unit: 1
address: 4746
value: "{{ states.input_number.setpoint_room.state|int * 10 }}"
input_number:
slider1:
name: Ventilation speed
initial: 25
min: 20
max: 100
step: 1
unit_of_measurement: '%'
setpoint_room:
name: Room temperature
min: 18
max: 26
step: 1
unit_of_measurement: '°C'
Hello Jenro,
First of all a nice layout!
I have not yet managed to get it working to set the floor heating temperature.
If there is someone who can help us with this, that would be great.
Just figured out how to have more precise measurements. Just add precision: 1 to the configuration.
Example for inlet temperature:
- name: nilan_T2_inlet_room
# T2
unit_of_measurement: '°C'
slave: 1
address: 5153
scale: 0.1
count: 1
precision: 1
data_type: int16
Hi Jenro,
can you attach the ventilation.png ?
I think it’s needed for you conf to work properly
Does anybody have the hvac image ? (Ventilation.png).
Would be nice to be able to use this configuration/layout !
Here you go
Do you have it better quality ?
Maybee something went wrong in the upload here ?
It is a white image with transparant background, maybe that is why it looks weird. It renders just fine in the dark theme of the HA app.
Good evening
As our house also has a Nilan ventilation control, I would like to integrate it into hassio also.
I have obtained the necessary components and have already loaded the software onto the D1 from Wemos via Arduino.
However, I am at a loss when it comes to preparing hassio. Where exactly do I have to copy or save the files from the “Home Assistant” folder into my hassio setup?
Many thanks in advance for your expert support.
Kind regards and a good start to the week
Gregor