ThermIQ Integration to control Thermia and Danfoss heatpumps

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.

I don’t think HASSOS has anything to do with it. Can you check the trigger, or use another trigger to make sure that there is a correct MQTT message sent (when triggered)

Yesterday I had time to play with this, and managed to get room sensor to work with Node-RED. I had not used Node-RED before (but will definitely start using it), and it took a good while to figure out how to format MQTT message for ThermIQ, then found the Function node. For noobs like me, here is how I got it done. Debug is not necessary.

1 Like

Ho everyone.
Im thinking of bying the hardware from Thermiq.
I have a Thermia diplomat G3 and looking for good examples of trim and save som bucks with smart controlling. I habe only seen a few examples from @keex

@keex are u happy about how the code works for ut pump and house. Have u or anyone else made any other smart code?

I was thinking of: is it possible to not allow legionellarun when price is above x.

Hi! I am happy with ThermIQ, as it provides me with full control of the pump. The pump itself could have a bit more flexibility when it comes to customising the heating schedule etc. I haven’t gone too deep down the rabbit hole (yet), but I’m adjusting the hot water temperature according to the needs (shower, sauna, low electricity price etc.).

I’ve disallowed the legionella run by turning off the pump for a minute once the run starts when it comes at an inconvenient time (high electricity price), but I haven’t found a way to trigger it yet.

I’d also be very happy if someone shared their use cases. I’ve actually posted another topic for gathering ideas on what else to do.

If I install this in my Thermia Diplomat will I be able to:

  1. Make sure that the water heating only can happen between 00-07:00?
  2. Make sure that legionella heating canoblt happen 00-07:00?

Would be great now that electricity is 0.6 eur daytime and most of the time 0.06 EUR or lower during the night.