Added
- On openccu-lite the interfaces are reached through the system's lite-rpc
(with occulite-client)
instead of XML-RPC/BIN-RPC clients and callback servers of this node's own -
the requests over the system's web port, the events from a stream the
connection opens, replayed after a break and re-read after a restart of the
system; one subscriber at the interface processes serves every program on
the system, and nothing registers withinit. The credential is the
openccu-lite token of the connection node, or on the system itself
RedMatic's own token, which the system mints for it. A new setting
openccu-lite interfaces in the connection node chooses: auto (the
default; the CCU way on a CCU), openccu-lite (lite-rpc only) or CCU (the
direct connection with callbacks, on openccu-lite too). An existing
connection is moved to lite-rpc once, at its first start on openccu-lite,
and the log says so; a choice made in the node is never changed by a later
version. The value cache is filled from the system's state store at deploy,
so nodes with cache get a value on openccu-lite as well. CUxD and CCU-Jack
keep their own connections. On a CCU, RaspberryMatic and OpenCCU nothing
changes.
Changed
- An interface process that is not up yet is tried every 3 s for the first
90 s, then every 15 s. The 1, 2, 4, 8 s steps and the 15 s after them
missed hmipserver's ready moment on a booting system by up to 15 s (measured
on an openccu-lite Pi 4: hmipserver answers 50-55 s after the boot, the next
attempt came at 61 s). The same holds after a process went away. When one
interface appears, the others still waiting are tried at once, and the log
line that reports the connection says how long after the start (or after the
outage) it came. The metadata API's re-detection on openccu-lite follows the
same schedule. - The port of each interface can be set in the connection node, beside its
checkbox: blank is the CCU's port for the transport as before (2001/42001 and
so on, the 3xxxx ports on the CCU itself), a number replaces it - for a CCU
behind port forwarding, or a simulator on another port. - The test suite runs hm-simulator 1.4 on free ports, so it runs beside a CCU
or another suite, and drives the simulator's scenario API: devices paired
and removed while Node-RED runs, a ramp-time write, a service message, an
interface process that restarts and forgets its clients, TLS with basic
auth. - On openccu-lite the metadata stream reports as
Metadata, not as
"Interface ReGaHSS". The system has no ReGaHSS; the connection borrowed
that slot for the stream's state, so the log said "Interface ReGaHSS
connected" at every start and reconnect, right next to "this box has no
ReGaHSS". The log now says "Metadata stream connected", the nodes' status
counts the stream under that name, and the editors' interface lists do not
offer it.
Commits since v4.6.2
- 4.7.0 - openccu-lite through lite-rpc by default, interface ports, 3 s retries (f5a4e5b)
- docs(changelog): 4.7.0 dated (d288eb6)
- fix(lite): a token with a higher rpc tier is not taken for names-only (8256d81)
- feat: on openccu-lite the interfaces go through the system's lite-rpc with occulite-client (18329ca)
- test: the init retry spec expects the 3 s retry lines with the time since the start (483b75b)
- test: the suite on hm-simulator 1.4 with free ports and its scenario API; interface ports in the connection node (f3d0e5e)
- fix(meta): the metadata stream reports as Metadata, not as Interface ReGaHSS (a1af0e7)
- docs: the credentials migration came with 4.5.0, not 4.4.6 (49697ff)
- feat(rpc): try a missing interface process every 3 s for 90 s, then every 15 s (e7b1347)