Open gerw opened 9 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.
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).
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.
Guzz-T noted in #132 that we have changed some names since 0.3.14, in particular,
Unknown_Calculation_239
has been changed toVBO_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. (ForUnknown_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
in
constants.py
. Then,DataVector._lookup
could also resolve old names (and maybe spit out a warning that users can change their code?).ID_WEB_SoftStand
? This old calculation will be replaced by a higher level function. I think that an access of this old name should result in a meaningful error message. Maybe we can add a dictionaryobsolete_names
which contains these error messages, e.g.,