That’s pretty snazzy, thanks for the tip.
So the smartapp exposes simple endpoints that iRule can hit. iRule can more or less integrate with any IR (through a Global Cache device) or HTTP endpoint. Once you have the endpoints its just a matter of creating an ST device in iRule and adding the various commands/endpoints.
IE. Here’s my switch endpoint, you can do a GET to /switches and list all of them (useful for an iRule page that lists many switches) or a GET to a single switch (identified via device ID) or do a PUT to perform an action.
mappings {
path("/switches") {
action: [
GET: "listSwitches"
]
}
path("/switches/:devid/:command") {
action: [
GET: “getSwitch”,
PUT: “setSwitch”
]
}
So as a test you should be able to CURL:
curl -H “Content-Type: application/json” -X PUT https://graph.api.smartthings.com/api/smartapps/installations/$INSTALLURL/switches/$UGLYDEVICEID/off
That’s all iRule is doing. Below is a screenshot of one of my commands for my ST device, I would have a matching command for off.

I haven’t used Logitech Harmony other than one of the older remotes, but I was in the same boat as you. I felt like going with the Harmony was going to be too limiting. Right now I can use iRule to completely control my TV, ST devices, receiver, Kodi, alarm system, etc. through one interface and it can be as simple or complex as I want to draw up in the builder.
I would suggest doing a trial of iRule and taking a look at the builder, it can be a little daunting at first with all the options but you can start with one of their templates, import a few devices, and just try out the functionality.
Just as a side note, if you want an easier iRule solution, you could use SmartTiles to control ST within iRule. iRule has a URL type object that loads a webpage within your iRule page (see my Kodi setup). You would then just need to setup multiple SmartTiles pages to split up your devices. I still use this setup on my tablet.