ThermIQ Integration to control Thermia and Danfoss heatpumps

Great example!
I could also envision that the daily run-time of the compressor needs to be the same and proportional to outdoor temperature. Maybe some learning can be applied so that the run-hours are executed in the overall cheapest way.

1 Like

That would be ideal. How would you control the compressor running times, though? Flowline and brine pumps should be working at all times? I initially just turned the pump on/off, but it’s not a good practice, is it?

1 Like

You would still need to trick the pump like you already do but adjust the blockout time to allow for the required runtime.

This is where I also run out of depth regarding the heat pump operating intricacies. I think I mostly grasp the curve logic, as it’s the same for most of the pumps and there are good explanations out there. However, a lot of the parameters are not explained anywhere I can find. Would it be feasible to crowdsource some layman explanations of each parameter / term in the ThermIQ github repo, for example? E.g. hysteresis, integral limits, temp reduction, room factor, brine, shunt etc. are quite hard to grasp for an average smart home enthusiast, I would presume.

Edit: Created a PR and pulled some definitions from the manual: https://github.com/ThermIQ/thermiq_mqtt-ha/pull/29

Btw, is the second curve for engaging auxiliary heating?

Hi… just installed my ThermIQ and this amazing integration. Thank you.

But… the integration is just stuck with the status “Waiting on danfossvp/danfossvp-mqtt/data” - i can see that the ThermIQ are publishing lots of data on the topic… so it’s kinda strange.

Another thing. If i change any values from the integration in Home Assistant, the data is published as decimal data? Which seems not to work. Fx. 19c indoor target temp
danfossvp/danfossvp-mqtt/write
{“d050”: 19}

It does not work, nothing is changed. If i manually publish it in hex, it works fine.
danfossvp/danfossvp-mqtt/write
{“r32”:19}

The firmware on my ThermIQ seems to be 1.40, is this firmware to old to support this integration?

Hi,
Please check that you have installed and configured the MQTT listener correctly within HA

and of course, check that it is the correct MQTT path above.

Could you also post an mqtt message from the HP. There might be format changes that I have forgotten :wink: that could cause the above message

There’s now a new release with on optional config “hexformat” which will revert to using the older rXX format for writes. The integration is already handling incoming messages in “OLD” and “NEW” format.

Put
hexformat: True

in your Thermiq section of configuration.yaml

1 Like

Yes, I beleive so

Perfect! Thanks. Works with the new 1.3.4 release with my old ThermIQ with 1.40 firmware.

Incoming data still not working though.

The path is correct, since it is working fine fine using MQTT Explorer. It is also working fine if i sub to the topic using the Mosquitto MQTT integration in Home Assistant. So i don’t get it…

Here is my configuration.yaml

thermiq_mqtt:
  mqtt_node: danfossvp/danfossvp-mqtt
  language: "en" # Change friendly names of values. Implemented languages: en,se,fi,no,de
  thermiq_dbg: False
  hexformat: True

Hi Anders, please have a look at this error message from the log. I changed “time” to “Time” in line 366 init.py - it can now parse the data succesfully. Maybe again something in my old firmware 1.4 causing this? :slight_smile: I’ve added it as a bug in git, maybe others will see this as well.

* Exception in message_received when handling msg on ‘danfossvp/danfossvp-mqtt/data’: “i deleted stuff here”…,“Time”: “2022-03-05 21:18:39 CET”,“timestamp”: 1646511519 }’ Traceback (most recent call last): File “/config/custom_components/thermiq_mqtt/init.py”, line 366, in message_received hass.states.async_set(DOMAIN+".time_str", json_dict[“time”]) KeyError: ‘time’

This is now fixed in the v1.3.5 integration.

Please note that you are on latest version of the ThermIQ-MQTT firmware 1.x. There is unfortunately no upgrade path from ThermIQ-MQTT firmware v1.x to v2.x

1 Like

Thank you! :slight_smile:

Thank you Anders, this is truly awesome integration! I got all set up but I was not able to figure out how to control indoor temperature. I have RuuviTag sensors, which I’d like to use as input for indoor temperature. Assuming I have entity sensor.myroom_temperature, What do I need to update, and where?

Not sure if its the best way but it seems to work for me. Just change the sensor.


alias: Publish on sensor update
description: ''
trigger:
  - platform: state
    entity_id: sensor.lumi_lumi_weather_temperature
condition: []
action:
  - service: mqtt.publish
    data:
      topic: ThermIQ/ThermIQ-room-bb/set
      payload: '{"INDR_T": {{ states(''sensor.lumi_lumi_weather_temperature'') }}}'
mode: single
1 Like

Tommys example looks good. I use Node-RED for all automations in the house including connecting temperature sensors to the heatpump. I find it much easier to automate in Node-RED but your mileage might vary :slight_smile:

For some reason, does not work. I have tried with 3 different sensors. I can update heat pump from HA, and for me it seems everything but indoor sensor is working. My HA MQTT user is not thermiq, that is only difference with default install. My ThermIQ databases are upgraded from ThermIQ USB, if that has something to do with this. Do you spot something not correct?

thermiq_mqtt:                                                             
  mqtt_node: ThermIQ/ThermIQ-room-bb                            
  language: 'en'   # Change friendly names of values. Implemented languages: en,se,fi,no,de
  thermiq_dbg: False
                                    
alias: Publish on sensor update                                                            
description: ''     
trigger:
  - platform: state            
    entity_id: sensor.alakerta_temperature
condition: []
action:            
  - service: mqtt.publish                 
    data:    
      topic: ThermIQ/ThermIQ-room-bb/set
      payload: '{"INDR_T": {{ states(''sensor.alakerta_temperature'') }}}'
mode: single

I would use mqtt explorer to look at the actual (if any) mqtt message being sent

Only set messages on mqtt explorer are when I manually click “Room sensor, Set target” (-) or (+). I am running HASSOS, I can change to surpervised, if that would make difference.