Have a few Aeotec Multisensor 6’s . They all report high temps which is not unusual. I have installed the Aeotec Edge Driver. The settings do not seem to change the readings.
The values are below as the actual temperature is 65. reports 69.8 offset is -7
First, just to get this out-of-the-way, how long did you wait for the settings to take affect? Zwave battery power devices commonly hold all their configurations requests and only update them once or twice a day. This is to save battery life. So it’s quite possible that changes you made wouldn’t take effect until the next day.
If it is a sensor with battery, it may have been asleep when the offset parameter was changed in preferences and then you have to wait for device to wake up or wake it up so that the driver executes the code to send the value to the device.
You see the offset value in the device preferences, but that does not guarantee that the device has received and accepted it at that time.
I don’t know the Aeotec driver code and I don’t know what type of preference it uses for the temperature offset, whether the smartthings standard that modifies the value in the App itself or using device parameter 201.
If driver use parameter 201, then according to Aeotec documentation, the value = -7 is equivalent to a correction of -0.7º not 7º
Same problem is happening for me. I have four Aeotec Multisensor 6 devices, two at this house and two at our condo. Temperature calibration used to work when I was running a community developed Groovy DTH (I forget who’s, but it was much better than the stock DTH).
@Mariano_Colmenarejo correctly points out the parameters for temperature calibration (location 201 or 0xC9) for firmware v1.07 and, I believe, later versions. The values for this calibration constant are different for firmware v1.06 or earlier. I have one of each version at this location & one of each at the other.
It is not clear to me if the official Aeotec Edge Driver knows the difference in firmware versions and correctly accommodates them. I haven’t had time to run some experiments to prove this one way or another and hope to do that in the coming weeks.
It is also not clear whether upgrading firmware to a later version is the answer–IIRC, there were Multisensor 6 hardware changes early on that may prevent my older devices from being updated to the current firmware.
It would also be extremely helpful if the official Aeotec Edge Driver displayed the device firmware version–Zooz Edge Drivers do this and it is extremely helpful!
For version 1.06 it is different, it only uses 1 Byte and does not take into account whether they are ºF or ºC which is used in the later firmware and uses 2 Bytes.
The LSB can only have the value 0x0001 or 0x0002
The MSB is used to send the correction value x 10 and using 2’s complement for negative values.
Therefore the value -7 seems to me to be an invalid value for the firmware version greater than 1.06, which uses 2 bytes
That’s why I’m leaning toward Aeotec using the App smartthings standard temperature correction preference.
Sorry as I should of provided more info. I have tried multiple values as I have tested this over a few weeks. 7, 21, 127 both positive and negative. Results are the same. You can only use whole numbers.
Same goes for the other parameters.
This clarifies that it uses parameter 201 and from the ranges (-128 to 127) it seems that it is for firmware greater than 1.06.
If you send some CLI logs of whether you send a positive and a negative adjustment value, could see what value (hex) is sending to the device and if it would be correct
Please, could you send it by copying and pasting the text from the CLI?
It would look much better.
What I have been able to see is that it sends the parameter with the size of 2 bytes, but it sends it wrong.
Send the LSB with a value of 0xFF and it should be 0x02
Send the MSB with the correct value, 2’s complement of -12 in hexadecimal 0xF4.
But what the driver has done is send the equivalent of the 2’s complement of the value -12 with size 2 bytes. (0xFFF4)
This value is not valid for devices with firmware greater than 1.06 or for those with firmware 1.06 since this firmware expects a size of 1 Byte and arrives with 2 Bytes and does not accept it.
@pmanno6
The response to the parameter reading is missing, which is done after sending and you should see that it is -12, it will be a little lower in log.
Please, could you send a log with a positive value, which is easier to analyze, since it does not use 2’s complement
To SEND a value:
+2ºF in 2 bytes you would have to send the value 5122 (0x1402)
-2ºF in 2 bytes would have to send the value 62466 (0xF402)
The app would not let you send it because it is limited to -128 and 127
For your device that uses the parameter with 1 Byte, if you install the Zwave Device Config Mc driver and send parameter 201, value -20 with size 1 byte will work for you when you return to the Aeotec driver.
If it were a device with firmware greater than 1.06, which uses 2 bytes and you send it with the Zwave Device Config Mc driver, it would also work with the values above, BUT DO NOT DO IT, BECAUSE THOSE VALUES EXCEED THE LIMITS OF THE PREFERENCE AND WHEN YOU RETURN TO THE AEOTEC DRIVER THE PREFERENCES MENU WILL NEVER BE SHOWN IN APP, BECAUSE IT EXCEEDS THE LIMITS
Update:
This preferences issue is true only when the preference value exceeds the limit, since the preference will never be updated with the actual value of the device set in the configuration driver, it will just be out of sync but would work fine with the device value