Repository navigation
Infrared platform: a climate (HVAC) consumer, and where should vendor A/C protocol codecs live?
#1415
SummaryI've built a working Before scaling to the long tail of vendor protocols and proposing it for core, I'd like guidance on two architecture/licensing decisions. What it is
Decisions I'd like guidance on
Why asking nowPorting the ~100 remaining protocols is mechanical given the oracle, but the license/home decision determines whether that effort lands in a permissive in-tree library or an external LGPL dependency. I'd rather align with you before scaling and committing. I'm happy to contribute the integration and the codec library under whichever model you prefer, and to help write the "climate consumer" pattern docs for the infrared platform. |
Replies: 4 comments 1 reply
|
Hey, jumping in from the HAIR project (https://github.com/DAB-LABS/HAIR). We built our admin UI on top of ‘infrared_protocols’ and we’re a real downstream consumer, so this discussion matters to us. On Q1: we’d really like to see Option B. Our v0.4.0 picker walks ‘infrared_protocols.codes’ at runtime to populate a device dropdown, and our decode pipeline uses the Command classes for capture and replay. If AC codecs land inside the library, all of that just works for AC devices too without us touching anything. An external LGPL package creates a licensing headache for HACS distribution that we’d rather not deal with. The clean-room approach is more work up front, but the oracle testing framework makes it pretty mechanical per protocol once the pattern is established. Seems worth it. On Q2 – infrared-branded consumers make sense to us. The LG TV consumer already set that pattern and it keeps things findable for users. A separate integration would just be confusing. From our side, HAIR handles the “one button, one signal” world ~ TVs, soundbars, fans, that kind of thing. ACs need real HVAC state management that a climate consumer does properly. We see these working together. When this ships we’ll point our AC users to it as the right tool for the job. Happy to help test or give feedback as this moves forward. ~ DAB |
Where this stands nowSince opening the discussion, the climate consumer + codec work has proceeded:
So feasibility is settled. The only thing blocking me from scaling to the remaining ~35 Thanks @DAB-LABSGreat to hear from an actual The one question that decides the rest (for maintainers)
A yes/no here determines everything else:
Either way the LGPL library isn't wasted — it's an immediately HACS-installable artifact and Q2 / Q3 aren't blockersFor the |
|
|
Thanks @balloob — exactly the clarity I needed; this unblocks the whole thing. Implemented your guidance:
Status: the codec library reached full parity with Next I'll take it to Bronze and publish |
infrared_protocolsto deliver the right command class.