That documentation is… as up to date as I might expect
Any variable should be accessible to the API. The documentation such as it is was intended to demonstrate that by example, but I’ve always had a knack for miscommunication, so here’s the basics of what Infinitude does.
Infinitude at its core is a system to deterministically convert the stat’s xml to json, said json back to xml, and allow for it to be copied into the stat. So, one could, if sufficiently motivated, do all of the transformations outside of infinitude (with curl and jq for example) and pass in the results.
/api/config makes it a little bit simpler(though not much) to tweak one or two variables within that structure. It doesn’t use a full-featured path resolver like JSONPath, but maps basic URIs to attributes within in an admittedly haphazard way. Anything this level can’t do, the “lowest level can”, though I’ll be happy to tweak this to make things easier if I can. Apologies, I’m not in a location where I can explore my own setup to demonstrate right now, so this is all from memory, I recommend getting a JSON browser plugin to make it easy to visualize the structure, and hitting /api/config/(whatever paths) to explore the data.
where *path can be (key|index)/(key|index)/etcetc
Infinitude’s web interface is an editor for systems.json, display for status.json, and optionally renders the RS485 stream. It pulls /systems.json, changes values therein, and posts back to the server for conversion to xml and queues itself up to get downloaded by the thermostat.