Bouni / python-luxtronik

python-luxtronik is a library that allow you to interact with a Luxtronik heatpump controller.
MIT License
37 stars 19 forks source link

Maintain a list of changed parameter/calculation names #168

Open gerw opened 5 months ago

gerw commented 5 months ago

Guzz-T noted in #132 that we have changed some names since 0.3.14, in particular, Unknown_Calculation_239 has been changed to VBO_Temp_Spread_Soll. I suspect that this will also happens many times in the future.

Users of our library will find that Unknown_Calculation_239 will no longer work after an update and in some occasions, it might be quite cumbersome to find out the new name. (For Unknown_Calculation_239 it is pretty obvious, that this is calculation 239, but in other cases this might not be true).

I think that we should maintain a list of changes of these names, i.e., something like

changed_names = {
    "Unknown_Calculation_239" : "VBO_Temp_Spread_Soll"
}

in constants.py. Then, DataVector._lookup could also resolve old names (and maybe spit out a warning that users can change their code?).

Guzz-T commented 5 months ago

If we still support old names, do we also have to support older luxtronik firmware versions? For example the used-energy-value is only available within the (current) latest firmware version. But not in previous ones.

gerw commented 5 months ago

This issue is about compatibility of code that works with older library versions. For example, in 0.3.14 you could have

l.calculations.get("Unknown_Calculation_239")

and, as you observed, this no longer works with the present state of the library. This is totally unrelated to the firmware version of your luxtronik controller. I think that, ideally, code that works with old versions of the library still works with the newer versions. And if this is not possible, we should raise a meaningful error message.

I do not see any compatibility issues w.r.t. different firmware versions. Of course, some parameters/calculations are only available in certain versions, e.g., the calculation 257: Power("Heat_Output"), is only available in newer versions, while the support of the "MainMenuStatusLine" in calculations 117-119 was dropped a long time ago. I do not know any instance where the meaning of some entry changed its meaning, but there are a couple of instances, where a parameter/calculation is no longer active, i.e., it is always 0 (or we even see some noise) and writing to it doesn't change anything (besides the value itself). I assume that alpha innotec wants to avoid this, since that would lead to different complications related to their own software (the app, I think).

Guzz-T commented 5 months ago

I am aware that this question was a bit "off-topic". However, the library version is usually connected to the firmware version.

It was also more of a question whether it is worth creating a new issue instead of a request to change this here.