Aeotec Multisensor 6 reports Celsius instead of Fahrenheit more often in OH3

Since I’ve moved to OH3 I’ve noticed that my Aeotec Multisensor 6 units (model ZW100) seem to sporadically switch to reporting C instead of F more than when I was on OH2. This has always been a minor problem and maybe the issue is worse because I’m on faster hardware now but the issue is bad enough I had to add some math to my rules to “detect” the problem (in this case, when the temp is below 32, assume its C and convert to F) before executing a temperature rules.

The unit is set to report F (parameter 64) but maybe there are some other things that need to also be set?

Shouldn’t be. That would tell it to always send Fahrenheit, and the only way to change it would be to send a new parameter. Do you see any hints in your log that OH is sending parameter changes without your input?

What happens if you set it to C? If that holds steady, you could just apply a conversion to the item. Ugly solution, but not much else you can do if the sensor is randomly changing parameter 64.

What type of Item are you linked to?
What metadata ‘pattern’ does that have?

If your Item is Number:Temperature type (I think it should be), you can get temperature in rules in any designated unit regardless of what unit the Item state is in (auto-conversion).

Just a guess:
Make sure that all parameters that are related to the temperature scale are set to Fahrenheit:
41, #49, #50, #57, #201

Coincidently I have been trying to understand something similar. First, you should be able to always get F with the metadata as noted by @rossko57. Second if you are in the US (or Liberia apparently) you should be getting F as it is the default derived from your location on startup from this core file.
2022-02-03 18:13:59.393 [INFO ] [.core.internal.i18n.I18nProviderImpl] - Locale set to 'en_US'.
Third the multisensor command class, for versions greater than 5 (like the multisensor) will send a GET with a default C (so the report will return C), but if the device is left to report normally, it will use the default in the parameter (in your case F). So my guess is that you are using the GET, not in the US and do not have the metadata State Description. Easiest is the state description or avoid the use of GET. Could be wrong :confused:

Bob

Replying in order received…

@rpwong I had not tried to set everything to celsius since the situation is "sometimey"s and with the new logic, it would not simplify anything since the conversation would always be happening. Also, its not that the parameter is getting changed, it is that the device is report C even though it is set to F. Sorry for not making that clear.

@rossko57 Interesting… I was only using Number for the temperature item and I would have sworn when I first put in the system (v2.4) that was the case but I see how that even back on 2.5 it should have been Number:Temperature. Ok. I corrected that. Hopefully that was it.

@anon71759204 201 definitely was set to F (I did a post about that a couple of years ago) but I went through and flipped everything else to F what wasn’t. I was pretty sure I did this in 2.5 but maybe something happened along the way.

@apella12 I’m not sure I understand the metadata you and Ross are talking about but my locale is properly logged as en_US. Also not sure what you mean by version 5. The firmware on the sensor is 1.12. I said it was an Aeotec sensor but I guess it is OEM’d through AEON Labs (see ZWave Thing | openHAB)

I’ll report back hopefully within the week as to how things are going.

That should do to give all Number:Temperature type Items a system default unit of F.
The it doesn’t matter what unit they get updated with, F will always be visible to you.
i.e. you don’t care anymore what your sensor sends.

Each Item has individual metadata (new thing for OH3), and there is a state presentation section, which includes a ‘pattern’ element. That corresponds to the formatting [ part ] we used to put in an Item’s label definition in OH2.
If that contains a valid unit, that gets used as this Item’s default instead of the system default.
Worth checking because if it has a unit, it must be the placeholder %unit% or a valid unit e.g. °F but not F or f

1 Like

Ok… 9 days later and I think I’m good on this. I had to make some rule and sitemap changes once I corrected the type to Number:Temperature but I haven’t seen a Celsius value since then. The other values I’m going to say did NOT matter since my sensors are not updating parameters.

That is another issue I need to dig into because all those changes have been pending for these 9 days and the absolute longest anything should take is 1 day. The sensors report every 15 minutes and on OH2 that seemed to get any parameter updates as well. I’m going to play around a bit before to see if I can figure out what is going on.