Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No space left for bug fixes in MQTT non-upgradeable code #186

Open
nielsonm236 opened this issue Jul 27, 2023 · 1 comment
Open

No space left for bug fixes in MQTT non-upgradeable code #186

nielsonm236 opened this issue Jul 27, 2023 · 1 comment

Comments

@nielsonm236
Copy link
Owner

Recent bug fixes and improvements have left only 49 bytes in Flash in the MQTT standard (non-upgradeable) build. And I've found another bug that likely requires more than 49 bytes.

I think the solution for now is to split the MQTT build into two: One that supports DS18B20, and another that supports Alternate Pinouts. Those two features can't be used simultaneously anyway (you can't have an Alternate Pinout and use DS18B20 at the same time). This only provides an additional 260 bytes in the original MQTT code, but that is better than doing without future bug fixes.

For current users of either feature this won't make a difference, other than needing to be sure to update to the build specific to their usage in the future. I agree it is nicer to have one build and then just select usage from the GUI, but if it won't fit in the bag, it just won't fit.

@nielsonm236
Copy link
Owner Author

For now I'm taking a different approach to the MQTT Home Assistant "non-upgradeable" code size. Part of the reason Flash space is short is because I've been trying to prevent any over-write of the "User Reserve" area of Flash. That is a 384 byte area of Flash used to store Browser Only IO Names and IO Timers, and Domoticz Temperature, Humidity, Pressure IDX values. None of that matters to an MQTT Home non-upgradeable user .., UNLESS it happens that they really are a Browser Only user and inadvertently loaded MQTT code. If they do that and I've allowed MQTT code to expand into that Flash they will lose all their Browser Only IO Name and Timer entries, and will have to enter them again via the GUI. A similar over-write problems occurs with Domoticz IDX values.

So, the choice I've made to relieve some Flash space for the MQTT Home non-upgradeable build is to let this one case over-write the user entries This doesn't really provide space for more MQTT Home non-upgradeable Features, but it does enable future bug fixes. I'll do my best not to let the code grow into that Flash space, but it is no longer guaranteed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant