Aeon/Aeotec Multisensor -- How do I calibrate the temperature?

I got a Aeotec Multisensor (I think their brand was previously known as Aeon as well) and noticed that it was roughly 2 deg F miscalibration (too cold, so -2F off).

Doing my own searches on this, and looking at the Zwave node configuration help instructions that come up, it says this:

Temperature calibration (the available value range is [-128,127] or [-12.8C,12.7C]).
Note:

  1. High byte is the calibration value. Low byte is the unit (0x01=Celsius,0x02=Fahrenheit)
  2. The calibration value (high byte) contains one decimal point. E.g. if the value is set to 20 (0x1401), the calibration value is 2.0C (EU/AU version) or if the value is set to 20 (0x1402), the calibration value is 2.0F (US version)
  3. The calibration value (high byte) = standard value - measure value. E.g. If measure value =25.3C and the standard value = 23.2C, so the calibration value= 23.2C - 25.3C= -2.1C (0xEB). If the measure value =30.1C and the standard value = 33.2C, so the calibration value= 33.2C - 30.1C=3.1C (0x1F).

Default value: 1 for EU/AU version, 2 for US version.

I couldn’t really follow this to figure out what I was supposed to enter into the Home Assistant node configuration since it’s taking decimal vs HEX.

I then came across this help article on Aeotec’s site, which gives this info and a link to an Excel spreadsheet to get the decimal value! Seems like it’s perfect:

If you have excel, you can input your offset using values (-10, 10) to determine the correct hexidecimal or decimal value that you need to use to input into either firmware V1.07 or V1.06.

Click here to download Multisensor 6 firmware V1.07 or V1.06 Parameter 201 E

I enter an Input Offset Value of 2 in cell B2 since it seems that’s what I needed to do to adjust it from being too cold. This yielded a decimal value of 5122:

I enter that value into Home Assistant node configuration for 201:

Then I applied it and triggered wakeup on the sensor and see this in the logs which confirms it was received:

2020-10-29 09:30:54.721 Info, Node049, Value::Set - COMMAND_CLASS_CONFIGURATION - Temperature Calibration - 201 - 1 - 5122
2020-10-29 09:30:54.722 Info, Node049, Configuration::Set - Parameter=201, Value=5122 Size=2
2020-10-29 09:30:54.723 Detail, Node049, Queuing (Send) ConfigurationCmd_Set (Node=49): 0x01, 0x0d, 0x00, 0x13, 0x31, 0x06, 0x70, 0x04, 0xc9, 0x02, 0x14, 0x02, 0x25, 0x96, 0xcc
2020-10-29 09:30:54.724 Detail, Node049, Queuing (Send) ConfigurationCmd_Get (Node=49): 0x01, 0x0a, 0x00, 0x13, 0x31, 0x03, 0x70, 0x05, 0xc9, 0x25, 0x97, 0xda
2020-10-29 09:30:57.074 Detail, Node049,   Received: 0x01, 0x0c, 0x00, 0x04, 0x00, 0x31, 0x06, 0x31, 0x05, 0x03, 0x0a, 0x00, 0x1e, 0xe3

I then almost immediately got a notification from HA of a temp change because I currently have an automation watching the sensor state value. However, the temp jumped from 71.5F to 74.9F which is an offset of 3.4F.

So I’m totally confused at how to configure this and don’t want to just hunt around at trying different decimal values.

Anyone have advice?

I’m pretty sure I figured this out thanks to this site:
https://www.tabsoverspaces.com/233657-calibrating-aeotec-multisensor-6s-temperature-using-openzwave-in-domoticz

Even though it was about Domoticz, it’s still about OZW so applies here in HA. The key part is this:

Thus, the final value is 0xE701 (for °C). This is 59137 in dec. Sadly, typing this as a configuration value was not working for me (with the current version of Domoticz). I had to put <U+202D>-6399<U+202C> . That’s the same value, but converted to short (compared to ushort ). You can get the value simply by subtracting 65536 from the value you computed (i.e. 59137 )

If I wanted to adjust by substracting -1F, the worksheet is this:

You take 62978 and subtract 65536 to get -2558.

Despite the HA UI saying valid values are A short between 4294934528 and 32767 you can put in a negative number. I put in -2558 and applies the command and bang, the temp was adjusted by -1F.

That seems way more complicated than it needs to be.

Tell me about it. I had to go back and forth with their engineer over customer support to get enough information. The issue is how they deal with hex vs decimal and how HA handles stuff.

I would make way more sense for them to breakout parameters more to control stuff like country vs value instead of making them all combined which then necessitates all of this