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 - 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:
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?
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.
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.
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
Thanks! Will give it a go and see how it works.
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?
Added a listener to zwave_js.value_updated events (dev tools / events) and it’s completly silent… (I have 30+ zwave units)
Hello,
I also dont see anything happening in the dev tool, event listener. I’m sure that data is recived as I get this in the debug:
2024-06-14T07:22:23.727Z CNTRLR [Node 005] [~] [Basic] currentValue: 99 => 99 [Endpoint 0]
2024-06-14T07:22:23.733Z DRIVER « [Node 005] [REQ] [ApplicationCommand]
└─[BasicCCReport]
current value: 99
2024-06-14T07:22:23.734Z CNTRLR [Node 005] [~] [Basic] currentValue: 99 => 99 [Endpoint 0]
However does BasicCCReport count as zwave_js.value_updated ?