Thanks you for the fantastically verbose and on point response - you are a legend.
I agree with you on the point of filtering against the API - especially on the hardcoded grouping. I do however feel that HabPanel could do with a native ability to fire requests straight against the API without a need for event tracking and status updates (I actually got onto this discussion, because I am trying to code an AV remote (Custom widget: Direction buttons) that uses Openhab as the backend for posting instructions to devices. (AngularJs http 'Get' in a function, hosted in HabPanel)
My exact scenario is that I want to be able to scroll through a menu quickly (down, down, down, down, down, down, down,) as button clicks on my remote and have every single click processed by Openhab, - If I send a series of down instructions to the API using Powershell, or Curl, they are all happily processed, but if I try button clicks in HabPanel, I miss about half of the clicks - I have several hundred items in my config, which I know doe snot help.
sadly, my AngularJS is terrible - else I’d build a script function on my ‘remote’ in HabPanel, that simply sends whichever click I am sending, straight to the old school API, rather than rendering it through the HabPanel refresh / event engine.
I don’t know the architecture beneath HabPanel, I am not quite sure why an instruction takes long to process - but if we are unable to amend the API for information gathering, it would still be nice to enable some extension to HabPanel that allows stateless execution of certain instructions? (e.g. a button click that is used for scrolling down a menu does not need any event tracking, as long as the selection on your TV screen changed?)
Irrespective, thanks for the hard work, I’ll try your enhancements for now, to see how much improvement they make.