Add Proxon Heating System to HA via Modbus

Is anyone using the „PV-Vorrang“ function?
Does anyone know how it’s working?
Is it just activate the function via modbus? or is there a algorithm behind and the system needs more information?

sodele … most of the stuff ist now available on my dashboard.
Only thing what is missing is the remaining time for the filter. I can only find the runtime in hours of the filter? Does anyone know, if this is the right value to work with?
The app as well as the main panel is showing the remaining time of the filter and I thought this logic is not implemented in the stupid app/panel.

This is my dashboard. Not very nice, but will be improved :slight_smile:

2 Likes

Hi all may be the topic is a little old… but I implemented the last days template thermostats for the proxon and automated the heatings in the rooms…

maybe that helps anybody

3 Likes

very nice! thank you! i will look into it, very soon. i have a question: negative temperatures in the minus range are displayed incorrectly at 600 °C how can I solve this?

normal range looks good. cant attach second screenshot…nice forum

config:
- name: "Modbus Proxon Temperatur Aussen"
        unique_id: modbus_proxon_temp_aussen
        input_type: input
        slave: 41
        address: 198
        scan_interval: 5
        device_class: temperature
        state_class: measurement
        unit_of_measurement: °C
        data_type: uint16
        scale: 0.01
        precision: 1

Did you know the correct values? Unit will be delivered as max. Values 65535 that maens with your configuration 655.35 •C .

Bay be you have to check what happens with - 2 or somestung like that and make a template sensor for that.

I don’t use that value for me because I have a weather station.

Hi @eX2x ,
just replace “uint116” with “int16”.
That should fix it.
BR
Steffen

2 Likes

Hello Steffen and @eX2x ,

That did the trick! :sweat_smile: This modbus list of proxon is full of errors. I had some addresses that didn’t work too.

Do I need that Modbus Adaptor or can you access the Proxon System directly via the LAN connection?

You need the Modbus Adapter. A USB Modbus Adapter works also fine. Connect to X6 and take the config from AgentP38 (Thanks for that)

1 Like

Thank you for the tip. The service guy was at our place this week to finish comissioning / do the final setup of the system.

He told me, that we got a system that doesn’t support the app. The LAN connection is only for service through the manufacturer.

But it also has the Modbus terminal on the main PCB so I’ll try to get the recommended Modbus adapter an give it a shot.

@Stroett @Frantik85 thx for reply and sorry for my late answer. switching from uint16 to int16 did it.

@AgentP38 thx for the hint but this is solved by scale 0.01 and precision 1 as far as i know

@Stroett → AgentP38 shared his config on github. thx again for examples. i copied it and modified it for my needs:

modbus:
  sensors:
    - name: "Modbus Proxon Nutzzeit Filter"
            unique_id: modbus_proxon_nutzzeit_filter
            scan_interval: 30
            slave: 41
            address: 469
            input_type: holding
            unit_of_measurement: std
            data_type: uint16
template:
  - sensor:
    - name: 'Heizung Filter Laufzeit in Tagen'
      state: >
        {% set filter_raw = states('sensor.modbus_proxon_nutzzeit_filter') | float %}
        {{ (((filter_raw) *2) /24) | round(0) }}
      unit_of_measurement: "days"
    - name: "Heizung Filter Restzeit in Tagen"
      state: >
        {% set filter_tage = states('sensor.modbus_proxon_nutzzeit_filter') | float %}
        {{ ( 180 - (((filter_tage) *2) /24)) | round(0) }}
      unit_of_measurement: "days"

@Stroett are you able to share your complete config / dahsboard. would be very nice.

What Exactly are this offset temps in your config? We have a waterbed, so our bedroom is always +2°C. Would be intresting to know, maybe i can tweak it with this offsets.

EDIT: One thing to know. How did they solve this “Intensivlüftung 60 Minutes” when you have comfort mode activ. I found nothing in the modbus list that matches this switch under “Lüftungsstufen” of the original proxon app.

@all Which developer did you use to build your house? are you satisfied with proxon? Cause, as far as the cooling function is to weak i got a climate installation with LG devices. 2x6kw outside units and 3x2,5kw and 1x3,5kw inside units.

Hi @eX2x ,
thanks for sharing. I have just installed a modbus gateway (the one JAD is using) and I have downloaded the modbus tool like you use. When I connect, it works and I can see activity on the bus, however, when I try to do the same via Home Assistant, there is no activity and I get no response. I copied your “configuration” example 100% and only changed my IP address, still no result. Do I need to configure something else that I might have forgotten?

modbus:
  - name: Proxon
    type: tcp
    host: 192.168.20.4
    port: 502
    switches:
      - name: "Proxon Kuehlung"
        unique_id: proxon_kuehlung
        slave: 41
        address: 62
        scan_interval: 15
        verify:
          delay: 1
    sensors:
      - name: "Proxon Kompressor Leistung RPM"
        unique_id: proxon_kompressor_leistung_rpm
        input_type: holding
        slave: 41
        address: 71
        scan_interval: 15
      - name: "Proxon T4 Fortluft"
        unique_id: proxon_t4_fortluft
        input_type: input
        slave: 41
        address: 198
        scan_interval: 15

I have really tried everything without success.
I also have set the protocol to “Modbus to RTU” like JAD suggested.

thank you for your help!

Ok, forget about my question… I feel really stupid now. I have a UDM and had port isolation turned on. Of course then you cannot communicate.
So problem solved @eX2x sorry for the spam!

Hello @oops

i have not this device but @JAD wrote:
so with me I have as Baud Rate 19200 and as Workmode: TCP Server.
In addition, I have a setting “Protocol”. There I can choose between “none” and “Modbus TCP to RTU”.
I have with me “Modbus TCP to RTU”.

Maybe you did not set workmode correcrtly. Try to set “Modbus TCP to RTU”.
JAD also posted a screenshot of his webinterface.

If you have all this settings it should work. Normally, as soon as you get information with Modbus Tool. Then it must work with homeassistant too.

Is homeassistant in the same network then your RTU device?
Is there a firewall between homeassistant and your RTU device?
Did you check connectivity from homeassistant to your RTU device?

Connect to your homeassistant over ssh and try if you can reach ip adress with ping and port with nc -w 3 -v 192.168.20.4 502 if this returns 192.168.20.4 (192.168.20.4:502) open then you can reach the tcp port from homeassistant. That means the network connection is not the problem.

Here you can copy paste more examples:

modbus:
  - name: proxon
    type: tcp
    host: 192.168.20.4
    port: 502
    delay: 1
    switches:
      - name: "Modbus Proxon Kuehlung"
        unique_id: modbus_proxon_kuehlung
        slave: 41
        address: 62
        scan_interval: 30
        verify:
          delay: 1
    sensors:
      - name: "Modbus Proxon CO2 PPM"
        unique_id: modbus_proxon_co2_ppm
        input_type: input
        slave: 41
        address: 21
        scan_interval: 30
        device_class: carbon_monoxide
        state_class: measurement
        unit_of_measurement: ppm
        data_type: int16
      - name: "Modbus Proxon Relative Luftfeuchte"
        unique_id: modbus_proxon_luftfeuchte
        input_type: input
        slave: 41
        address: 22
        scan_interval: 30
        device_class: humidity
        state_class: measurement
        unit_of_measurement: "%"
        data_type: int16
      - name: "Modbus Proxon Temperatur Aussen"
        unique_id: modbus_proxon_temp_aussen
        input_type: input
        slave: 41
        address: 198
        scan_interval: 30
        device_class: temperature
        state_class: measurement
        unit_of_measurement: °C
        data_type: int16
        scale: 0.01
        precision: 1
      - name: "Modbus Proxon Temperatur Wohnen"
        unique_id: modbus_proxon_temp_wohnen
        input_type: input
        slave: 41
        address: 41
        scan_interval: 30
        device_class: temperature
        state_class: measurement
        unit_of_measurement: °C
        data_type: int16
        scale: 0.01
        precision: 1
      - name: "Modbus Proxon Temperatur Buero"
        unique_id: modbus_proxon_temp_buero
        input_type: input
        slave: 41
        address: 590
        scan_interval: 30
        device_class: temperature
        state_class: measurement
        unit_of_measurement: °C
        data_type: int16
        scale: 0.1
        precision: 1
      - name: "Modbus Proxon Temperatur Diele"
        unique_id: modbus_proxon_temp_diele
        input_type: input
        slave: 41
        address: 593
        scan_interval: 30
        device_class: temperature
        state_class: measurement
        unit_of_measurement: °C
        data_type: int16
        scale: 0.1
        precision: 1
      - name: "Modbus Proxon Temperatur Schlafen"
        unique_id: modbus_proxon_temp_schlafen
        input_type: input
        slave: 41
        address: 596
        scan_interval: 30
        device_class: temperature
        state_class: measurement
        unit_of_measurement: °C
        data_type: int16
        scale: 0.1
        precision: 1
      - name: "Modbus Proxon Temperatur Gast"
        unique_id: modbus_proxon_temp_gast
        input_type: input
        slave: 41
        address: 602
        scan_interval: 30
        device_class: temperature
        state_class: measurement
        unit_of_measurement: °C
        data_type: int16
        scale: 0.1
        precision: 1
      - name: "Modbus Proxon Standzeit Filter"
        unique_id: modbus_proxon_standzeit_filter
        scan_interval: 30
        slave: 41
        address: 468
        input_type: holding
        unit_of_measurement: std
        data_type: uint16
      - name: "Modbus Proxon Nutzzeit Filter"
        unique_id: modbus_proxon_nutzzeit_filter
        scan_interval: 30
        slave: 41
        address: 469
        input_type: holding
        unit_of_measurement: std
        data_type: uint16

ppm sensor should look like this in the dev console:

looks like this if you put it into dashboard:

1 Like

No Problem! Shit happens :slight_smile:

1 Like

Hello @eX2x ,
Thank you so much for your time and perfect explanation. I really really appreciate your effort! Now I feel even worse for making such an stupid mistake. Our messages just crossed each other. I found the problem (sometimes you just need to step away and sleep a night over it). I have a Unifi dream machine pro and have a VLAN for my automation network. I was stupid enough to turn on port isolation which of course prevents clients to talk to each other. I have not noticed it before because with Shelly’s you do not have this issue and the rest of my network is Zigbee. I yesterday tried everything incl changing all kind of settings in the RS485 to ethernet adapter without any success. My last hope was my message to you and I thank you again for your time and quick reply!

Best regards,

Paul

Everthing is fine, you are welcome. Also have some Unifi AP’s + Switches with Network Controller and VLANs together with pfsense. A must have, i dont trust chinese devices, have some LED Stripes and other stuff in VLANs. Idiots can do whatever they want on this vlan :stuck_out_tongue:

1 Like

Can you Share your config? Looks great

I have optimized it a bit.


Left: general things
Middle: temperature
Right: T300 and locks

I will check how to share the code if you want.
Some other are using GitHub. But I have never done it before.
Here it is hard to share the whole config.

1 Like

Hello Steffen,

Thanks Github is very good, you can create a account for free and post your data here.
otherwise can you send me the configuration fast per mail, because actually i am generating my own dashboard but i am not sure about some values.
[email protected]

best Jan