-
Notifications
You must be signed in to change notification settings - Fork 839
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
v2.7.8 release #1201
v2.7.8 release #1201
Conversation
_v2.7.8 (20200622)_ **[BREAKING CHANGES]** - Fix Manchester code handling; Increase Airwell to `34` bits. (#1200) **[Bug Fixes]** - Carrier40: Use correct gap value. (#1193) **[Features]** - CarrierAc64: Add detailed support. (#1133) - Add experimental support for Hitachi A/C 344 bit protocol (#1139) - Automatic & full library code/API documentation via Doxygen (#1150 #1154 #1155 #1156 #1158 #1165 #1167 #1169 #1180 #1184 #1189 #1191 #1194 #1195 #1197 #1198) - Hitachi344: Add detailed support and change bit ordering. (#1147) - Add Corona AC Protocol (#1152) - Hitachi344: Add Swing(H) and improve Swing(V) (#1148) - Update auto_analyse_raw_data.py with better code comment sections (#1164) - Add support for Midea24 protocol. (#1171) - Add basic Zepeal protocol support (#1178) **[Misc]** - scrape_supported_devices.py: avoid changes to SupportedProtocols.md (#1140) - auto_analyze nice exit on empty rawdata input (#1141) - Comments update + cleanup (#1143) - Update D_STR_IRRECVDUMP_STARTUP text and comments. (#1144) - Minor code cleanups (#1149) - Update `README.md`'s to point to new API docs. (#1151) - Update "Supports" sections (#1160) - Add a `doxygen` check to CI/Travis. (#1161) - scrape_supported_devices: warn about misplaced or legacy supports sections (#1159) - Add Supports sections to some files (#1163 #1166) - Fix compile error when `DEBUG` is enabled. - Add no-output option and return code on error to scrape_supported_devices - Travis: Add scrape_supported_devices error check - Update auto_analyse_raw_data.py to have a default Supports: section - Treat compiler warnings as errors. (#1174) - Remove `calcLGChecksum()` and use new generic `sumNibbles()` (#1175) - Suppress more potential compiler warnings. (#1179) - Load balance travis tasks to reduce wall clock time. (#1183) - Set PlatformIO's default baudrate to 115200 (#1188) - Some fixes to Doshisha protocol handler - Minor cleanups of Corona and Zepeal - Enable Doxygen warning when the parameters for a function/method/procedure are wrong/missing. (#1196)
@NiKiZe Hopefully, this will be the worst release PR to review (if you even need to) as it includes ALL the updated doxygen stuff we've both done for the past few weeks. |
Should Hitachi344 be marked as breaking as well? |
I thought about it, but it isn't "breaking" from 2.7.7. it wasn't included in that release. |
Great job. I updated Tasmota accordingly. The code impact is +5.2kb. Do you have any idea that could shrink back the code size a little? We still have headroom but we may eventually need to specialize some version with only a fraction of the protocols. |
@s-hadinger Thanks for the data point and the feedback. The code size impact is in-line with what I'd expect given the additions. i.e. ~2K per detail protocol, ~0.5K per detail-less protocol.
There are some very small code (space) optimisation that are left, but I can't see them saving more than a couple of K total. From a Tasmota perspective, I think you need to assume this library will grow similarly every month or so if you include every protocol. Lines 405 to 410 in 576e71b
The IRac common A/C api is probably the bulk of the bloat from your perspective. Maybe have a tasmota version with all IR protocols but no IRhvac support at all, and then have a version with just the IRhvac ones and maybe the base level ones included in the standard tasmota build?
Maybe also have a "send only" version? The decode parts for each protocol are the largest/most complex etc. If you or anyone else has suggestions on how to save significant space (e.g. 1-2K at a time), I'm all ears. |
Indeed, having a "send only" version would be a nice alternative, especially for HVAC protocols. However I have already heard users that wanted to capture IR interactions too. I didn't spot any obvious area where to reduce code size. Maybe there is code factorization possible. For ex: |
This is just my $0.02/personal opinion. Most people don't need to detect/decode in-bound IR A/C messages. I'd figure most people just want to control their A/C. Some might want to use an IR remote to control something. i.e. press button on remote, have tasmota generate a MQTT message and turn on/off the fan/kettle/lamp etc. So, I'd give them the base tasmota decode IR protocols + send-only for all other protocols. i.e. they can still capture raw etc. Perhaps having two "full" versions. Both with all "simple" protocol send/decodes etc, and each having A-M & N-Z "detailed" A/C protocols respectively?
Yeah, I'm running out of obvious savings. :-(
I think the amount of coding to try to reduce the space used by |
Thanks, good insights. We still have some headroom for now. Indeed if we need to shrink code, having a send-only HVAC version makes sense. |
v2.7.8 (20200622)
[BREAKING CHANGES]
34
bits. ([BREAKING BUG] Fix Manchester code handling; Increase Airwell to34
bits. #1200)[Bug Fixes]
[Features]
D
#1165 EF'ing more doxygenation #1167 G'eee! More doxygen updates. #1169 H'ow many more protocols are left to doxy? #1180 I Just Keep Loving doxygening protocols. #1184 MMmmmmm, More Making Marvellous Method Manuals #1189 Needlessly Procedural Repetitious Doxification #1191 SsssSufferin’ ssssuccotash! Doxygen'ed again! #1194 Total Vexation With Doxygen! #1195 Misc doxygen fixes. #1197 Add an overview/intro for the Library API #1198)[Misc]
README.md
's to point to new API docs. (UpdateREADME.md
's to point to new API docs. #1151)doxygen
check to CI/Travis. (Add adoxygen
check to CI/Travis. #1161)DEBUG
is enabled.calcLGChecksum()
and use new genericsumNibbles()
(RemovecalcLGChecksum()
and use new genericsumNibbles()
#1175)