Z wave thermostat (heatit/mutireg) status feedback / energy

I cant find the basic_level? for the heatit thermostat. So the automation to show if on or off is not working based on if 0 or 255.

Using hass 0.68.1 and Aeotec Z-stick gen5

Working now. Had to set the associations for group 2 on/off control :slight_smile:

Hi kjetilsn
Thanks for Your post , it was useful for me, investing in Heatit for my floor heating. I use Tibber sensor , and can simply multiply with the power price from Tibber to get the price for every hour!
I now control the heating with automation at hours with low prices.
Me neither got a useful answer for hourly spot charging from my previous provider (as BKK and Fjordkraft) - tibber.no offers spot price for every hour :slight_smile: - check it out.

Hi don66,

Good to hear that the information came to use. I can recommend installing heaty for the appdaemon, now that you have your thermostats up and running. Heaty will let you make schedules for temperature based on conditions. It also support window/door sensors to turn off thermostats when doors and windows are open. I use my verisure door/window sensors for this, very useful.

I will look into tibber for spot price, currently I have installed the sensor from nordpool, but have not yet started using it for the price calc. As far as I’ve understood fjordkraft/BKK will not start charging for hour based cost until next year. Also NVE is talking about hourly cost for “nettleie” in 2019 then we need to get a sensor for this as well.

Have you considered using voltage from the AMS meter to calculate the power, instead of using the fixed Wattage of the load? I see that in my house the voltage range from ~220 up til 240. However I guess id does not add much accuracy in the big picture, but fun to try.

Yesterday I decided to try firmware 1.92 on one of my thermostats. to avoid using the above automation to know if the thermostat is heating or not. Also I’m hoping to get this information in to the thermostat “card” (green sections showing the thermostat is heating) simila to a general thermistat, like this:
Capture
I already knew there are some challenges when it comes to compability with opezwave and some have reported strange temperature readings. Upgrade went fine, however it seems the xml file needs updating as entities added dont make any sense. I understand that that means remove the node from zwave network, stop home assistant, modify xml file, start home assistant and re include the node.
My question is, which xml file to use, perhaps this? And how to implement it?

Thanks!

Mostly solved it:
Downloaded the openzwave config and configured path in zwave config.
https://community.home-assistant.io/t/z-wave-xml-config-files/109118/5
Then added file /config/thermofloor/heatit021-v1.92.xml, and included in /config/manufacturer_specific.xml
Excluded and included the node, and now it works, much the same as with FW1.8 but with the added switch entity to determine if its on or off. However the thermosat card does not get feedback on the state, and does not indicate if heating or idle as I hoped. Anyone that know how do achive this?

1 Like

Good job! I have not updated my thermostats yet. Any other issues? Seen some people having trouble with the upgrade process, bad cable etc…

Not to hijack your topic but I have the new heatit z-dim and want to this for that too. Did you go directly to edit the openzwave files or can I change the zwcfg*.xml to check if it’s working? Or has that file nothing to do with this?

Edit: Sorry, thought you made the xml yourself…

No no,
Did not make the xml. used the custom file from stiansoevik.
I forgot to tell you that you need to associate the different groups manually to the controller under zwave setup. Then the temperature measurement works. Now the external temp seems ok, which is the one that I’m using, but the internal temp does not update.

The upgrade process went fine, used the 1$ CP2102 as described here https://www.hjemmeautomasjon.no/forums/topic/3585-heatit-oppdater-til-v192-med-uoriginal-kabel/?tab=comments#comment-41451

Not sure that I will bother updating my other thermostats as the only gain is getting several temp readings, perhaps nice having floor and air temp. Reporting state heating/idle is achieved with older firmware anyways, reporting of decimals are nice though, but not really that big of deal.

If the z-dim is already supported by openzwave you can simply git clone the updated files and change the config directory in hass. If you want to make your own, I would go with the same process instead of changing the zwcfg*.xml, cant help you with how to make the file though…

Bumping this old thread…
Anyone who managed to get a binary sensor with the state when using ZWave over MQTT ?

Currently using zwave-js 10.3.1 but I do not get any information if it’s heating or just in standby…

I’m working on the same. I’ve updated a Heatit/Multireg til FW 1.92 and do get the Relay as a switch entity. But it’s not updating it’s status automatically.

In Zwave JS UI/Zwave2mqtt I created this under Settings → General (Remember to hit save at the bottom) and the Relay status is now updating.

1 Like

Where did you find the 1.92 firmware?

(Or do you have a copy somewhere that you can share)

You need a USB to TTL device to update it. I don’t think OTA will work. Here are the files, and documentation for FW 1.92: https://filetransfer.io/manage-package/jnZHK0Jp

Below is how I collect kWh estimates. Note that you need to know how many watts your heater is pulling and replace “ChangeMeToANumber” below

  template:
    - sensor:
        - name: 'Termostat Stue Electric Consumption [W]'
          unique_id: e6cd8509793f4b139f8d4afa9300e8ac
          unit_of_measurement: "W"
          device_class: power
          state:  >
            {% if is_state('switch.termostat_stue', 'off') %}
              {{0|float}}
            {% elif is_state('switch.termostat_stue', 'on') %}
              {{ChangeMeToANumber|float}}
            {% else %}
              {{0|float}}
            {% endif %}

  sensor:
    - platform: integration
      unique_id: 'c3fc7bbf8cce4b3a86855f0a747a812f'
      source: sensor.termostat_stue_electric_consumption_w
      name: 'Termostat Stue Electric Consumption [kWh]'
      unit_prefix: k
      round: 2
      method: left

Ah… a bit of process to commit to. :expressionless:
Think I will leave it as is… don’t want to risk bricking the unit since it’s installed and needs to be working.

(and btw, the link is a 404)

I’m already on FW 1.92.

I’m trying to add the same setting under Zwave JS UI/Zwave2mqtt as you have, but I cannot find “Current value (37-1-currentValue)” in my dropdown list - only “Current Value…” for the 4 Endpoints and various other alternatives.

What is the Endpoint/Group setup I should use for these thermostats?

Could wrong Endpoint/Group setup be the reason for not seeing the correct value in the dropdown list?

I have not added the xml file mentioned in the old posts in this thread - do I need to?

I’m confused, so your help would be appreciated!

I have added currentValue endpoint 1 in my setup.

Turns out you can do the same thing with firmware 1.8. This is how I did it.
You need to change device_id: in the automation and change how many Watts the heater is under state: in template sensor.

# FW 1.8
# Bad start
  input_boolean:
    termostat_bad:
      name: Termostat Bad
      icon: mdi:toggle-switch-variant

# Automation to turn on/off helper when Basic: 255/0 received
  automation:
  - id: 'e7334376c0824758b2b45d0084d10000'
    alias: 'Termostat bad on - Relay status'
    description: "Turns on helper when thermostat kicks in"
    trigger:
      - platform: device
        device_id: 64b1856cf1457b45f46e137ea5efb523
        domain: zwave_js
        type: zwave_js.value_updated.value
        command_class: 32
        property: currentValue
        to: "255"
    condition: []
    action:
      - service: input_boolean.turn_on
        data: {}
        target:
          entity_id: input_boolean.termostat_bad
    mode: single

  - id: 'de1e1920da69458cab56db2bb73ebc19'
    alias: 'Termostat bad off - Relay status'
    description: "Turns off helper when thermostat kicks in"
    trigger:
      - platform: device
        device_id: 64b1856cf1457b45f46e137ea5efb523
        domain: zwave_js
        type: zwave_js.value_updated.value
        command_class: 32
        property: currentValue
        to: "0"
    condition: []
    action:
      - service: input_boolean.turn_off
        data: {}
        target:
          entity_id: input_boolean.termostat_bad
    mode: single

  template:
    - sensor:
        - name: 'Termostat Bad Electric Consumption [W]'
          unique_id: '1d6b39d3b0794d7a84bf39326abf0c67'
          unit_of_measurement: "W"
          device_class: power
          state:  >
            {% if is_state('input_boolean.termostat_bad', 'off') %}
              {{0|float}}
            {% elif is_state('input_boolean.termostat_bad', 'on') %}
              {{500|float}}
            {% else %}
              {{0|float}}
            {% endif %}

  sensor:
    - platform: integration
      unique_id: '0501d1fb0ad84f61bb6791b24a0146cc'
      source: sensor.termostat_bad_electric_consumption_w
      name: 'Termostat Bad Electric Consumption [kWh]'
      unit_prefix: k
      round: 2
      method: left
### Bad end
1 Like

Thanks! Will give it a go and see how it works. :slight_smile:

You get very inaccurate readings when using the default method for riemann integral. See: Riemann integral calculates wrong values with electrical devices I’ve changed mine to method: left to see if that solves the issue.

I cant even get the zwave_js.value_updated to trigger… when reading the docs it says that it should be “enabled on a per device and per entity domain basis”
But it doesn’t say how that should be done… any idea?

I haven’t had any problems with that. Do the value update/automation trigger if you refresh the endpoint manually in zwave2mqtt/zwavejsui?