just-oblivious / vindstyrka-docs

Ramblings regarding the IKEA VINDSTYRKA and its sensor implementation
35 stars 0 forks source link

MISTERY WORD #2

Open andibaciu opened 8 months ago

andibaciu commented 8 months ago

Hello, I made some assumptions about the MYSTERY WORD... You have all the data and explanations in the attached xls file. The data are exactly from your logs, for which I thank you once again @just-oblivious All the best!

sen5x_logging_data.xlsx

fenderle commented 2 months ago

@andibaciu I tried reversing the firmware with Ghidra, with limited success. However, I was able to understand from the binary that the following commands have a description in the firmware:

0x03C4 -> "Read PM Mass concentration, VOC Index, Relative humidity, Temperature"
0x03D2 -> "Read VOC Raw Value"
0x03F5 -> "Read Raw Humidity, Raw Temperature and Delta Temperature"

This info is from some kind of command line interface which exists in the firmware. However, I was not able to use it. It looks like the UART has been disabled, as well as most of the debug feature via SWD.

So you were right: the mystery value is a temperature offset.

Trying to understand the algorithm from the decompiled code was not possible for me. I was also suspecting it has to do with the dew point formula, but I wasn't able to understand the algorithms in the firmware and gave up.

andibaciu commented 2 months ago

@fenderle , after some tests I stop using dewpoint formula and I use a formula for interpolation. Next link is an ESPEasy plugin for this IKEA Device and on the source code you'll find all the algarithm and formula (search for bool P167_data_struct::calculateValue() function). https://github.com/andibaciu/ESPeasy-plugin-for-IKEA-VINDSTYRKA

Thanks for your research and for your confirmation about my supposition for MYSTERY_WORD!

You can find last version of this plugin (prepared for integration in ESPEasy Project) on this link: https://github.com/letscontrolit/ESPEasy/tree/mega (plugin P167)