IR control plugin with buttons

I am wanting to create a plugin for an IR controlled electric screen. I can use IrDevice1 (add IR device) and create a 3 button custom codeset for the thing but that seems overly complicated as there are only 2 (or at most 3) buttons - up, down and stop. If I could design my own remotes as promised this would do but MCV are clearly not there yet.

I sort of understand that when we add an IR device, the top level of control is an IrDevice1, and that this type of device then understands codeset files and Ir transmitter devices such as my iTach. However, there seems to be a lot going on under the hood e.g. there doesn’t seem to be an I_IRDevice1.xml that is doing all this. I guess it’s part of the Vera firmware.

Can anyone give me some pointers for hacking D_IRDevice1.xml - or maybe the codeset file - so as to add some json - perhaps hacked from D_WindowCovering1.json such that clicking the HTML buttons will trigger IRDevice1 to look up the pronto codes and send them to the GC100.

I suppose the other way to is just to add a direct implementation for the up/stop/down actions that makes SendProntoCode action calls on the GC100 port but that means hard coding the GC100 device id into the screen plugin.

Start with a working one. Something like the Panasonic is old-enough, and simple enough, to understand the basics:

It doesn’t have a UI, since it was intended to be controlled via SQRemote (which understands how to invoke/call these)

If you look at the ServiceId’s used in that file, there are probably a few that can be “reused” for another type of device. These are defined in various S_*.xml files, and there are more that this one doesn’t implement.

You can also look at posts like this one:

that have example IR files attached.

That said, if you’re using “IR” to talk to a Electric screen, then you might be better off implementing the Services required for Blinds. That’ll then give you the pieces for the UI, and then you’d just need to implement the logic behind each of the blocks that are required.