Zyxel's consumer routers speak neither TR-064 nor SNMP. That covers the AX/DX/EX/PX lines, VMG/EMG/PMG, and the LTE/NR/FWA cellular boxes. If one of them is your gateway, the router integration gave you nothing: no names from the DHCP table, no devices from other VLANs, no MAC for a host the scan only knows by its reply.
They speak their own JSON API instead. The new provider reads the router's client table through it, including whether an address is an ordinary lease, a fixed reservation, or configured on the device itself. After UniFi this is the second brand measured against real hardware rather than only against documented API shapes: an FWA505 on firmware V1.60. The rest of the family speaks the same interface but has not been in our hands, and that belongs in the sentence.
One session, and what happens when you keep it
These boxes allow exactly one admin session. Take it and fail to give it back, and the owner loses their own router menu until the inactivity timer expires.
We walked into that twice while building. The logout call only works as a POST. As a GET it cheerfully answers "success" and leaves the session standing. And our requests gave up after two seconds, while roughly one login in five needs longer than that just to accept the connection. Hanging up did not prevent the session from being created. It only meant we never saw its key and could no longer close it. Both fixed, measured over twelve consecutive rounds.
The test now says what is wrong
The second change follows from that. When a router refuses another login, the settings dialog used to say "no client list — check the credentials". In that situation every word was wrong. The box had answered, the password was right, and the user was sent hunting for a fault that did not exist.
The test now asks the provider for a reason before it passes judgement, and there is a verdict for this case: the router is busy, log out of its web interface. In all seven languages, on desktop, server and phone. Zyxel was the occasion; the logic applies to every brand whose detection works without logging in.
AI identification shows that it is running
AI identification probes the device itself before it asks the model, which takes a few seconds. During that time the app redraws the device drawer on every scan event, and the progress line went with it, along with the disabled button. It looked like a click that did nothing, so people clicked again and paid for two answers.
The indicator survives the redraw now, a second click during a running call is ignored, and the line sits where the answer will appear.
The phone also gained a button that opens a device's web interface when a web port is open. Same address rule as the desktop, so the two do not send you to different places.