Devices and tick - #3
Merged
Merged
Conversation
Place in the rmpro class which uses <I framing for IR learn/send commands, matching the device's actual protocol. The rm4pro class uses <HI framing which causes "device is locked" errors on this hardware. Co-authored-by: Cursor <cursoragent@cursor.com>
support RM mini 3 cmcc version
add 0x7d15 SP mini 3-AL
Add unit tests for the TICK constant in remote module to ensure accuracy against protocol.md examples and validate behavior with real hardware.
…te tests and changelog Follow-ups to the carried-over commits: - pulses_to_data rounds instead of truncating, so a duration that is 0.9 of a tick no longer becomes zero ticks. - TICK gets a docstring explaining the 32768 Hz timebase and the history of the 32.84 value; the import block is sorted for ruff. - 0x4EDA MP1-1K3S2U (mjg59#816) and 0xA57A SP4 (mjg59#758) added from issues, by family; 0x7D15 and 0x27C8 entries tidied into hex order and house style. - cryptography floor raised to 43, the first release with 3.13 wheels (supersedes mjg59#749). - tests/test_helpers.py re-pinned to the new tick and rounding; the old 32.84 pins are gone. - README device list and CHANGELOG updated.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings across the open pull requests from mjg59/python-broadlink that add product IDs, with each author's commit intact, and lands the tick fix from mjg59#841 with its tests.
Carried over: RM Max 0xAF8B (mjg59#838), RM5 plus 0x5224 with an rm5plus class (mjg59#831; mjg59#832 was a duplicate), RM mini 3 OEM 0xA544 (mjg59#823; mjg59#837 and issue mjg59#836 duplicate), RM mini 3 CMCC 0x27C8 (mjg59#802), LB26 R1 0xA517 (mjg59#812), SP mini 3-AL 0x7D15 (mjg59#805), LEDVANCE SMART+ WIFI CEILING TW 24W 0x6498 (mjg59#799).
Added from issues, by family, not yet confirmed on hardware: MP1-1K3S2U 0x4EDA (mjg59#816), SP4 0xA57A (mjg59#758). Strike either if you would rather wait for a confirmation.
Tick: TICK = 8192 / 269 replaces 32.84 (mjg59#839, mjg59#841). Bench on an RM4 Pro against an independent receiver: the learn path decodes 0.53 percent short of the air measurement at the new constant and 7.3 percent long at the old one. pulses_to_data now rounds to the nearest tick instead of truncating. tests/test_helpers.py is re-pinned accordingly; the transport oracle fixtures are unchanged.
Also raises the cryptography floor to 43, the first release with Python 3.13 wheels, which supersedes mjg59#749.
Not carried over, to be reopened against this fork by their authors: mjg59#826 (A2 0x4FA6), mjg59#669 (FastCon), mjg59#833 (Luceco), mjg59#807 (LIFAair), mjg59#818 (CLI refactor), mjg59#757 (docs). Issues mjg59#806 (0x507A), mjg59#390 (0x4F9B) and mjg59#713 (0x791C) name IDs with no known device class and stay open.
ruff clean; 212 tests pass on 3.13 and 3.14; sdist and wheel build.