NVR Systems

Pre-requisite

  • The user has to be signed in to perform the following operations.
  • The space contains a network video recorder (DeviceType.nvr) with its channels (DeviceType.nvrCamera).

A space built around an NVR is monitored through a parallel set of calls. The profile, arming and responding-party concepts are the same as on the other pages of this section; the difference is that the enrolled devices are the recorder’s channels, addressed by the recorder’s id.

A space uses either the camera path or the NVR path — they are not interchangeable.


Create an NVR Security Profile

To create the security profile for an NVR space, The following method can be used:

  • spaceId (required): The space id of the User.
  • request (required): The initial profile details (ProMonitoringRequest — address, time zone, phone number, safe word, exit delay, dismissal window, and deviceId for the recorder).
Factory.proMonitoringService.createNvrProfile(spaceId: String, request: ProMonitoringRequest) -> IVPublisher<Void>

Update the NVR Channels

To set which of the recorder’s channels take part in monitoring, The following method can be used. Send the complete list; channels left out are removed.

  • spaceId (required): The space id of the User.
  • nvrId (required): The recorder’s device id.
  • request (required): SubscribeDeviceRequest(deviceIds:) — the participating channel ids.
Factory.proMonitoringService.updateNvrDevices(spaceId: String, nvrId: String, request: SubscribeDeviceRequest) -> IVPublisher<[ProMonitoringDeviceIDModel]>

Each ProMonitoringDeviceIDModel carries the channel id and its state.


Update the Exit Delay

To change the exit delay of an NVR system, The following method can be used:

  • spaceId (required): The space id of the User.
  • request (required): A ProMonitoringRequest with exitDelay set.
Factory.proMonitoringService.updateNvrExitDelay(spaceId: String, request: ProMonitoringRequest) -> IVPublisher<Void>

Arming and Disarming

To arm or disarm an NVR system, The following methods can be used:

  • spaceId (required): The space id of the User.
Factory.proMonitoringService.armNvrSystem(spaceId: String) -> IVPublisher<Void>
Factory.proMonitoringService.disarmNvrSystem(spaceId: String) -> IVPublisher<Void>

Arming starts the exit delay, exactly as on System Control.


Responding Parties

To add or remove a responding party on an NVR system, The following methods can be used. The number must be verified with an OTP first — see Notification and Communication.

  • spaceId (required): The space id of the User.
  • request (required): RespondingPartyPhoneNumberRequest — country code, number, the otp and the party’s name (add), or the code and number (remove).
Factory.proMonitoringService.addNvrRespondingParty(spaceId: String, request: RespondingPartyPhoneNumberRequest) -> IVPublisher<Void>
Factory.proMonitoringService.removeNvrRespondingParty(spaceId: String, request: RespondingPartyPhoneNumberRequest) -> IVPublisher<Void>