Tested behaviour — Hanwha SUNAPI CCTV¶
What was verified on real hardware. A limitation here belongs to the hardware, not to the adapter — where the panel cannot do something, it is recorded rather than hidden.
These results come from Protequ's behavior tests. They show how closely the adapter matches standard PQ behavior. An adapter is not required to pass them all, so a difference here is a fact to weigh, not proof of a defect.
| Result | Scenarios |
|---|---|
| Could not be tested — hardware missing | 22 |
| Does not apply here | 6 |
| Works with a limitation | 3 |
| Works as expected | 26 |
What was checked¶
| Checked | Result | Note |
|---|---|---|
| The adapter connects to the device and reports itself online. | Works | — |
| Every modeled channel is bound and readable once the adapter is online. | Works | — |
| A snapshot requested from PQ is captured and stored against the camera. | Works | — |
| A live view requested from PQ is registered and announced with the alias to play. | Works | — |
| The requested stream tier is the tier delivered, and the two tiers register separately. | Works | — |
| Two channels configured on the same device address are surfaced, not silently collapsed. | Works | — |
| Importing the device configuration builds a tree matching the physical panel. | Works | — |
| Re-importing does not duplicate Things and preserves reconciled properties. | Works | — |
| A command that reaches the device is confirmed, not silently dropped. | Works | — |
| The adapter writes the device clock and the change is observable. | With a limitation | — |
| A PTZ movement starts on command and stops on command. | Works | — |
| A stored preset can be recalled, and both operations are audited with the preset number. | Works | — |
| Recorded footage for a requested time range is registered and announced. | Works | — |
| Seeking within playback moves the replay to the new position instead of stacking streams. | Works | — |
| Pause and resume are answered, not refused as unsupported verbs. | Works | — |
| An operator command is confirmed by its paired audited event in the remote form, with attribution. | Works | — |
| A remote actuation whose action has a .remote audit variant surfaces as that attributed remote event — no adapter declares it ACK-only. | With a limitation | — |
| A command is confirmed on the Thing it was issued for, never on a sibling sharing its command — on every type where the rig offers a pair. | Works | — |
| Restarting the adapter neither duplicates audited history nor re-pushes unchanged data. | With a limitation | — |
| State is read back from the device after startup, not merely accumulated from events. | Works | — |
| A command aimed at a Thing the running adapter does not hold fails fast with a reason. | Works | — |
| A command issued while the channel is held exclusively is refused, not deadlocked. | Not applicable | — |
| A protocol message split across transport segments is reassembled before it is parsed. | Not tested | — |
| An invalid credential configuration is rejected, not accepted and silently ignored. | Works | — |
| A link that goes silent mid-session is detected and reported, then recovered on reconnect. | Works | — |
| An audited event that occurs while disconnected is recovered on reconnect, once. | Works | — |
| A vendor event code the adapter does not map is surfaced, never silently swallowed. | Works | — |
| An event addressed to a Thing that is not modeled stays visible instead of being dropped. | Works | — |
| Motion in the camera's field of view is reported, and its end is reported too. | Works | — |
| A configured analytics rule that fires reaches PQ as an analytics event on its camera. | Not tested | — |
| Streams registered before a link loss do not survive it as phantoms. | Works | — |
| A live view can be re-established after the session was lost and came back. | Works | — |
| A device tamper is reported and its restore is reported too. | Not tested | — |
| A power/battery fault is reported and restored. | Not tested | — |
| A missing/supervised module is reported and restored. | Not tested | — |
| A camera that loses its feed is reported as blind, and its recovery is reported too. | Not tested | — |
| Obstructing the camera is reported as degraded video, and clearing it is reported too. | Not tested | — |
| A recording-storage fault is reported against the recorder, not lost or misattributed. | Not tested | — |
| A synced card is granted access at an authorized door. | Not applicable | — |
| A card with no grant to the door is denied. | Not applicable | — |
| An unknown (unenrolled) card is denied and surfaced as unknown. | Not applicable | — |
| A synchronized PIN with an even number of digits authenticates at the device. | Not applicable | — |
| A strike release from PQ opens the door momentarily and is confirmed. | Not applicable | — |
| Deleting a credential stops it working at the device. | Not tested | — |
| A credential update is applied in place, not by duplicate. | Not tested | — |
| A single credential change takes the sync path the device supports. | Not tested | — |
| A sync of one changed credential costs no other credential its access. | Not tested | — |
| A full synchronization moves the whole owned AAT access dataset and reports the moved identities. | Not tested | — |
| Incremental synchronization after one person changes touches only that person and required dependencies. | Not tested | — |
| Selective synchronization with multiple pending people moves only the selected person. | Not tested | — |
| A sync never deletes a device address it created or updated in the same batch, so changing one person's credential set updates their existing records instead of destroying them. | Not tested | — |
| A reset clears the device tables and re-pushes the whole dataset. | Not tested | — |
| Credentials work again on the device after a reset. | Not tested | — |
| Running sync twice with unchanged input is a no-op on the PQ side. | Not tested | — |
| A repeated sync leaves the device's credential set working. | Not tested | — |
| Synchronization leaves credentials PQ does not own working. | Not tested | — |
| Deleting a person stops every one of their credentials working, not just the first. | Not tested | — |