Camio User Guide for Lenel S2 NetBox: Real-time video search

This Camio User Guide covers:

  1. Overview of Camio with Lenel S2 NetBox
  2. Mapping cameras to Lenel S2 NetBox Portals
  3. [Coming Soon] Enabling Tailgating Notifications
  4. Camio Setup for Lenel S2 NetBox

Overview of Camio with Lenel S2 NetBox

Fast visual verification and access event detection

Camio enables fast search and alerts on events like access granted, invalid access, and portal forced open. Skip to Linux or Windows installation and resource requirements.

Works with existing cameras

Setup takes less than 15 minutes. Each camera is mapped to a Lenel S2 portal so that events from those portals annotate the video from that camera. You configure the on-premise Camio Gateway with the credentials required to subscribe to Lenel S2 access control events.

Mapping cameras to portals

The first step is to associate your Lenel S2 NetBox portals with any cameras that can see them.

  1. Generate your Camio Authorization token to be used by the Camio Gateway to annotate video with incoming access control events.
    1. Sign-in as the Camio account manager and press the Generate button at https://camio.com/settings/integrations/pacs
      • Either the account owner or a guest with Can Manage permission can generate the token
    2. Copy the token immediately after you generate it, since you will not be able to retrieve it again later.
    3. Paste the token into your Camio Gateway configuration as the "camio_api_token" valuemceclip0.png
    4. Select the Portal from the dropdown list next to each camera that has a view of people entering the Portal and press SaveScreenshot_2022-12-14_at_5.25.39_PM.png

Note: If you see a message "No integration settings found..." that means integration settings have never been saved for this account. Configure the settings and hit save. When you reload the page, the message should be gone.

[Coming Soon] Enabling Tailgating Notifications

Optionally, enable Camio to send notifications via email when a tailgating incident occurs. For the Lenel S2 NetBox Gateway this feature is still in development, and should be released soon. Please check back here later for instructions on enabling this feature.

Camio Setup for Lenel S2 NetBox

The Camio Gateway subscribes to Lenel S2 access control events in order to annotate the video associated with each event.

Camio Gateway Installation

The Camio Gateway runs as a Kubernetes deployment installable with Helm, which can run on any host machine (e.g. Linux, Windows) that can access the Lenel S2 NetBox server. If your firewall restricts the sites contacted, then please see firewall rules.

Quick Install via Helm

Detailed instructions for installing any of our PACS Gateway deployments through Helm can be found at our Camio User Guide for setup and deployment of Camio PACS Gateways. The following instructions will a brief overview of setting up with Helm, specific to the Camio Lenel S2 NetBox Gateway.

1. Create your values.yaml file. The most basic values.yaml for the NetBox gateway should look like:

credentials:
  username: "YOUR NETBOX USERNAME"
  password: "YOUR NETBOX PASSWORD"
  camio_api_token: "YOUR CAMIO API AUTHORIZATION TOKEN"

urls
:
netbox_protocol: "http://" # Or https://
netbox_domain: "INSERT YOUR NETBOX API DOMAIN" # Ex: s2salespreview.s2sys.com

That current version of the Camio Lenel S2 NetBox Gateway does not support self signed certificates. Please contact for more details if your deployment will need to use self signed certificates.

Note: By default the driver will assume your NetBox timezone is set to UTC/GMT. If this is not the case, a timezone can be set using the advanced config options below.

2. Create your K8s cluster if does not exist

3. Run:

helm install camio-lenel-s2-netbox oci://us-central1-docker.pkg.dev/camiologger/helm/camio-lenel-s2 --version 1.2.0 -f /PATH/TO/values.yaml [-n camio] [--create-namespace]

The namespace ( -n ) argument is optional and will deploy the gateway in the specified namespace. If not included, the gateway will be set up in the default namespace. Use --create-namespace if the namespace you want to use does not currently exist.

4. Confirm that your helm installation was successful by running:

kubectl get pods [-n camio]

The output should look something like:

NAME                   READY STATUS  RESTARTS AGE
driver-XXXXXXXXX-XXXXX 1/1 Running 0 9s

If the driver pod shows as 1/1 READY and 0 RESTARTS, it is probably running correctly. If you would like more details, you can retrieve the logs for your pod by running:

kubectl logs driver-XXXXXXXXX-XXXXX [-n camio]

Docker Installation

Optionally, you can use the docker image instead. Run:

docker pull \ us-central1-docker.pkg.dev/camiologger/public-containers/camio-integration-driver-lenel-s2:1.2.0

to pull the image.

Camio Gateway Configuration (values.yaml file)

The configuration is divided into the following sections to organize the gateway's settings:

Section

(Helm Key)

Description and Available Fields
credentials

This contains your secret Camio Authorization token obtained from https://camio.com/settings/integrations/pacs used to annotate video. Example:

username: "INSERT NETBOX USERNAME"
password: "INSERT NETBOX PASSWORD"
camio_api_token: "INSERT CAMIO AUTH TOKEN HERE"
urls
# These values will be used to construct the full urls used to contact the Camio and NetBox APIs
netbox_protocol
: "http://" # Default, change to https:// if necessary
netbox_domain: "INSERT NETBOX DOMAIN"
camio_domain: "camio.com"
# skip_ssl_verification: false # If true, disables SSL verification for requests to the NetBox API

# Optionally, you can instead set the full urls like so:
# auth: "http://NETBOX DOMAIN/goforms/nbapi"
# devices: "http://NETBOX DOMAIN/goforms/nbapi"
# events: "http://NETBOX DOMAIN/appdevent/nbapi/event"
# pacs_server: "https://camio.com/api/integrations/pacs"
requests

(advanced)

These default values should be sufficient, but override any desired. Retain the events.fields, so that only recognized NetBox Events are sent to Camio. Example:
# Uncomment any settings where default values shown need to be modified
# (default values should work for most deployments, except where the OpenAccess port number was changed)

# Config for requesting NetBox portals list
# devices:
# polling_interval: 7200 # Poll the NetBox API for the portals every 2 hours

# Config for re-trying requests to the Camio PACs server
# pacs:
# backoff_multiplier: 2.0
# backoff_start: 2.0
# backoff_limit: 3

# Config for requesting access control events from the NetBox API
# events:
# streaming: true # NetBox StreamEvents command returns a streaming response, so this value should not be changed
# count_reset_interval: 86400 # Reset the stored events count every 24 hours
# polling_interval: 10 # This is only used if streaming: false, and represents how often to poll the NetBox API for events
#
# Fields to include in the StreamEvents response, see the Lenel S2 NetBox documentation for additional available fields
# Values inside [] filter the events that come in to the StreamEvents response
# fields:
# cdt: [] # Controller date/time associated with the activity
# ndt: [] # Node date/time associated with the activity, in case no CDT
# descname: [ # General description of the activity
# 'Access granted', # Maps to Camio event "Entry unlocked"
# 'Invalid access',
# 'Portal held open', # Maps to Camio event "Entry Ajar"
# 'Portal forced open', # Maps to Camio event "Forced Open"
# 'Portal restored'
# ]
# personid: [] # Configured person identifier on the NetBox associated with the activity
# personname: [] # Configured person name on the NetBox associated with the activity
# portalname: [] # Configured name of the portal associated with the activity
# rdrname: [] # Configured name of the card reader associated with the activity
# detail: [] # Additional text detail about the activity
# evtname: [] # Configured name of the event generating the activity
#
# timezone_offset: # Timezone offset for the timestamps of the events. Format is +/-HHMM. Examples: -0700, +0100. Does not account for daylight savings time, since the number is always added/subtracted from the UTC time. Default is None.
# timezone_name: "UTC" # Name of the timezone that the event timestamps are in. Uses pytz timezones, see the list in the section below labeled 'Supported Timezone Names'. If timezone_offset is also passed, will use the offset over the timezone name. Should account for daylight savings. Examples: US/Central, US/Eastern, US/Pacific, Europe/Paris. Default is UTC.
log_level
# 10  # DEBUG level and higher logs, use this value if debugging the gateway
20 # Default, INFO level and higher logs
# 30 # WARNING level and higher logs, use this value if you only want logs of potential problems in the gateway
# 40 # ERROR level and higher logs, use this value if you only want logs of definite errors in the gateway

 

NetBox Event Filter

The Camio gateway will only receive the Lenel S2 NetBox events enumerated under requests.events.fields.descname in the Helm values. The default values are:

descname: [
'Access granted',
'Invalid access',
'Portal held open',
'Portal forced open',
'Portal restored'
]

You can add or remove event names from the list to filter their ingestion into the Camio system. Please refer to the Event Descriptions section of the Streaming Events documentation in the S2 NetBox API for more event names. For example, you could add 'Momentary unlock' to the list. This would configure the Camio gateway to receive momentary unlock events in the Stream Events response. These events would get forwarded to the Camio system enabling you to search for them in the Camio app with the query "Momentary unlock".

Filters can also be added to other fields. For example, you could set a filter on Portals like so:

portalname: [
'Main Entry',
'Back Entry'
]

Would configure the gateway to only receive events from the Portals Main Entry and Back Entry.

The fields that support filters are enumerated in the S2 NetBox API under Event Element Descriptions in the Streaming Events documentation.

Supported Timezone Names

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
Africa/Brazzaville
Africa/Bujumbura
Africa/Cairo
Africa/Casablanca
Africa/Ceuta
Africa/Conakry
Africa/Dakar
Africa/Dar_es_Salaam
Africa/Djibouti
Africa/Douala
Africa/El_Aaiun
Africa/Freetown
Africa/Gaborone
Africa/Harare
Africa/Johannesburg
Africa/Juba
Africa/Kampala
Africa/Khartoum
Africa/Kigali
Africa/Kinshasa
Africa/Lagos
Africa/Libreville
Africa/Lome
Africa/Luanda
Africa/Lubumbashi
Africa/Lusaka
Africa/Malabo
Africa/Maputo
Africa/Maseru
Africa/Mbabane
Africa/Mogadishu
Africa/Monrovia
Africa/Nairobi
Africa/Ndjamena
Africa/Niamey
Africa/Nouakchott
Africa/Ouagadougou
Africa/Porto-Novo
Africa/Sao_Tome
Africa/Timbuktu
Africa/Tripoli
Africa/Tunis
Africa/Windhoek
America/Adak
America/Anchorage
America/Anguilla
America/Antigua
America/Araguaina
America/Argentina/Buenos_Aires
America/Argentina/Catamarca
America/Argentina/ComodRivadavia
America/Argentina/Cordoba
America/Argentina/Jujuy
America/Argentina/La_Rioja
America/Argentina/Mendoza
America/Argentina/Rio_Gallegos
America/Argentina/Salta
America/Argentina/San_Juan
America/Argentina/San_Luis
America/Argentina/Tucuman
America/Argentina/Ushuaia
America/Aruba
America/Asuncion
America/Atikokan
America/Atka
America/Bahia
America/Bahia_Banderas
America/Barbados
America/Belem
America/Belize
America/Blanc-Sablon
America/Boa_Vista
America/Bogota
America/Boise
America/Buenos_Aires
America/Cambridge_Bay
America/Campo_Grande
America/Cancun
America/Caracas
America/Catamarca
America/Cayenne
America/Cayman
America/Chicago
America/Chihuahua
America/Coral_Harbour
America/Cordoba
America/Costa_Rica
America/Creston
America/Cuiaba
America/Curacao
America/Danmarkshavn
America/Dawson
America/Dawson_Creek
America/Denver
America/Detroit
America/Dominica
America/Edmonton
America/Eirunepe
America/El_Salvador
America/Ensenada
America/Fort_Nelson
America/Fort_Wayne
America/Fortaleza
America/Glace_Bay
America/Godthab
America/Goose_Bay
America/Grand_Turk
America/Grenada
America/Guadeloupe
America/Guatemala
America/Guayaquil
America/Guyana
America/Halifax
America/Havana
America/Hermosillo
America/Indiana/Indianapolis
America/Indiana/Knox
America/Indiana/Marengo
America/Indiana/Petersburg
America/Indiana/Tell_City
America/Indiana/Vevay
America/Indiana/Vincennes
America/Indiana/Winamac
America/Indianapolis
America/Inuvik
America/Iqaluit
America/Jamaica
America/Jujuy
America/Juneau
America/Kentucky/Louisville
America/Kentucky/Monticello
America/Knox_IN
America/Kralendijk
America/La_Paz
America/Lima
America/Los_Angeles
America/Louisville
America/Lower_Princes
America/Maceio
America/Managua
America/Manaus
America/Marigot
America/Martinique
America/Matamoros
America/Mazatlan
America/Mendoza
America/Menominee
America/Merida
America/Metlakatla
America/Mexico_City
America/Miquelon
America/Moncton
America/Monterrey
America/Montevideo
America/Montreal
America/Montserrat
America/Nassau
America/New_York
America/Nipigon
America/Nome
America/Noronha
America/North_Dakota/Beulah
America/North_Dakota/Center
America/North_Dakota/New_Salem
America/Nuuk
America/Ojinaga
America/Panama
America/Pangnirtung
America/Paramaribo
America/Phoenix
America/Port-au-Prince
America/Port_of_Spain
America/Porto_Acre
America/Porto_Velho
America/Puerto_Rico
America/Punta_Arenas
America/Rainy_River
America/Rankin_Inlet
America/Recife
America/Regina
America/Resolute
America/Rio_Branco
America/Rosario
America/Santa_Isabel
America/Santarem
America/Santiago
America/Santo_Domingo
America/Sao_Paulo
America/Scoresbysund
America/Shiprock
America/Sitka
America/St_Barthelemy
America/St_Johns
America/St_Kitts
America/St_Lucia
America/St_Thomas
America/St_Vincent
America/Swift_Current
America/Tegucigalpa
America/Thule
America/Thunder_Bay
America/Tijuana
America/Toronto
America/Tortola
America/Vancouver
America/Virgin
America/Whitehorse
America/Winnipeg
America/Yakutat
America/Yellowknife
Antarctica/Casey
Antarctica/Davis
Antarctica/DumontDUrville
Antarctica/Macquarie
Antarctica/Mawson
Antarctica/McMurdo
Antarctica/Palmer
Antarctica/Rothera
Antarctica/South_Pole
Antarctica/Syowa
Antarctica/Troll
Antarctica/Vostok
Arctic/Longyearbyen
Asia/Aden
Asia/Almaty
Asia/Amman
Asia/Anadyr
Asia/Aqtau
Asia/Aqtobe
Asia/Ashgabat
Asia/Ashkhabad
Asia/Atyrau
Asia/Baghdad
Asia/Bahrain
Asia/Baku
Asia/Bangkok
Asia/Barnaul
Asia/Beirut
Asia/Bishkek
Asia/Brunei
Asia/Calcutta
Asia/Chita
Asia/Choibalsan
Asia/Chongqing
Asia/Chungking
Asia/Colombo
Asia/Dacca
Asia/Damascus
Asia/Dhaka
Asia/Dili
Asia/Dubai
Asia/Dushanbe
Asia/Famagusta
Asia/Gaza
Asia/Harbin
Asia/Hebron
Asia/Ho_Chi_Minh
Asia/Hong_Kong
Asia/Hovd
Asia/Irkutsk
Asia/Istanbul
Asia/Jakarta
Asia/Jayapura
Asia/Jerusalem
Asia/Kabul
Asia/Kamchatka
Asia/Karachi
Asia/Kashgar
Asia/Kathmandu
Asia/Katmandu
Asia/Khandyga
Asia/Kolkata
Asia/Krasnoyarsk
Asia/Kuala_Lumpur
Asia/Kuching
Asia/Kuwait
Asia/Macao
Asia/Macau
Asia/Magadan
Asia/Makassar
Asia/Manila
Asia/Muscat
Asia/Nicosia
Asia/Novokuznetsk
Asia/Novosibirsk
Asia/Omsk
Asia/Oral
Asia/Phnom_Penh
Asia/Pontianak
Asia/Pyongyang
Asia/Qatar
Asia/Qostanay
Asia/Qyzylorda
Asia/Rangoon
Asia/Riyadh
Asia/Saigon
Asia/Sakhalin
Asia/Samarkand
Asia/Seoul
Asia/Shanghai
Asia/Singapore
Asia/Srednekolymsk
Asia/Taipei
Asia/Tashkent
Asia/Tbilisi
Asia/Tehran
Asia/Tel_Aviv
Asia/Thimbu
Asia/Thimphu
Asia/Tokyo
Asia/Tomsk
Asia/Ujung_Pandang
Asia/Ulaanbaatar
Asia/Ulan_Bator
Asia/Urumqi
Asia/Ust-Nera
Asia/Vientiane
Asia/Vladivostok
Asia/Yakutsk
Asia/Yangon
Asia/Yekaterinburg
Asia/Yerevan
Atlantic/Azores
Atlantic/Bermuda
Atlantic/Canary
Atlantic/Cape_Verde
Atlantic/Faeroe
Atlantic/Faroe
Atlantic/Jan_Mayen
Atlantic/Madeira
Atlantic/Reykjavik
Atlantic/South_Georgia
Atlantic/St_Helena
Atlantic/Stanley
Australia/ACT
Australia/Adelaide
Australia/Brisbane
Australia/Broken_Hill
Australia/Canberra
Australia/Currie
Australia/Darwin
Australia/Eucla
Australia/Hobart
Australia/LHI
Australia/Lindeman
Australia/Lord_Howe
Australia/Melbourne
Australia/NSW
Australia/North
Australia/Perth
Australia/Queensland
Australia/South
Australia/Sydney
Australia/Tasmania
Australia/Victoria
Australia/West
Australia/Yancowinna
Brazil/Acre
Brazil/DeNoronha
Brazil/East
Brazil/West
CET
CST6CDT
Canada/Atlantic
Canada/Central
Canada/Eastern
Canada/Mountain
Canada/Newfoundland
Canada/Pacific
Canada/Saskatchewan
Canada/Yukon
Chile/Continental
Chile/EasterIsland
Cuba
EET
EST
EST5EDT
Egypt
Eire
Etc/GMT
Etc/GMT+0
Etc/GMT+1
Etc/GMT+10
Etc/GMT+11
Etc/GMT+12
Etc/GMT+2
Etc/GMT+3
Etc/GMT+4
Etc/GMT+5
Etc/GMT+6
Etc/GMT+7
Etc/GMT+8
Etc/GMT+9
Etc/GMT-0
Etc/GMT-1
Etc/GMT-10
Etc/GMT-11
Etc/GMT-12
Etc/GMT-13
Etc/GMT-14
Etc/GMT-2
Etc/GMT-3
Etc/GMT-4
Etc/GMT-5
Etc/GMT-6
Etc/GMT-7
Etc/GMT-8
Etc/GMT-9
Etc/GMT0
Etc/Greenwich
Etc/UCT
Etc/UTC
Etc/Universal
Etc/Zulu
Europe/Amsterdam
Europe/Andorra
Europe/Astrakhan
Europe/Athens
Europe/Belfast
Europe/Belgrade
Europe/Berlin
Europe/Bratislava
Europe/Brussels
Europe/Bucharest
Europe/Budapest
Europe/Busingen
Europe/Chisinau
Europe/Copenhagen
Europe/Dublin
Europe/Gibraltar
Europe/Guernsey
Europe/Helsinki
Europe/Isle_of_Man
Europe/Istanbul
Europe/Jersey
Europe/Kaliningrad
Europe/Kiev
Europe/Kirov
Europe/Lisbon
Europe/Ljubljana
Europe/London
Europe/Luxembourg
Europe/Madrid
Europe/Malta
Europe/Mariehamn
Europe/Minsk
Europe/Monaco
Europe/Moscow
Europe/Nicosia
Europe/Oslo
Europe/Paris
Europe/Podgorica
Europe/Prague
Europe/Riga
Europe/Rome
Europe/Samara
Europe/San_Marino
Europe/Sarajevo
Europe/Saratov
Europe/Simferopol
Europe/Skopje
Europe/Sofia
Europe/Stockholm
Europe/Tallinn
Europe/Tirane
Europe/Tiraspol
Europe/Ulyanovsk
Europe/Uzhgorod
Europe/Vaduz
Europe/Vatican
Europe/Vienna
Europe/Vilnius
Europe/Volgograd
Europe/Warsaw
Europe/Zagreb
Europe/Zaporozhye
Europe/Zurich
GB
GB-Eire
GMT
GMT+0
GMT-0
GMT0
Greenwich
HST
Hongkong
Iceland
Indian/Antananarivo
Indian/Chagos
Indian/Christmas
Indian/Cocos
Indian/Comoro
Indian/Kerguelen
Indian/Mahe
Indian/Maldives
Indian/Mauritius
Indian/Mayotte
Indian/Reunion
Iran
Israel
Jamaica
Japan
Kwajalein
Libya
MET
MST
MST7MDT
Mexico/BajaNorte
Mexico/BajaSur
Mexico/General
NZ
NZ-CHAT
Navajo
PRC
PST8PDT
Pacific/Apia
Pacific/Auckland
Pacific/Bougainville
Pacific/Chatham
Pacific/Chuuk
Pacific/Easter
Pacific/Efate
Pacific/Enderbury
Pacific/Fakaofo
Pacific/Fiji
Pacific/Funafuti
Pacific/Galapagos
Pacific/Gambier
Pacific/Guadalcanal
Pacific/Guam
Pacific/Honolulu
Pacific/Johnston
Pacific/Kanton
Pacific/Kiritimati
Pacific/Kosrae
Pacific/Kwajalein
Pacific/Majuro
Pacific/Marquesas
Pacific/Midway
Pacific/Nauru
Pacific/Niue
Pacific/Norfolk
Pacific/Noumea
Pacific/Pago_Pago
Pacific/Palau
Pacific/Pitcairn
Pacific/Pohnpei
Pacific/Ponape
Pacific/Port_Moresby
Pacific/Rarotonga
Pacific/Saipan
Pacific/Samoa
Pacific/Tahiti
Pacific/Tarawa
Pacific/Tongatapu
Pacific/Truk
Pacific/Wake
Pacific/Wallis
Pacific/Yap
Poland
Portugal
ROC
ROK
Singapore
Turkey
UCT
US/Alaska
US/Aleutian
US/Arizona
US/Central
US/East-Indiana
US/Eastern
US/Hawaii
US/Indiana-Starke
US/Michigan
US/Mountain
US/Pacific
US/Samoa
UTC
Universal
W-SU
WET
Zulu

Camio Gateway Host Hardware Requirements

The CPU and RAM required of the host machine that runs the Camio Gateway varies with the maximum throughput of access control events. This guide covers common volumes:

Max Event Rate

CPU Cores

RAM

100 events/second

1

300 MiB

1,000 events/second

2

400 MiB

10,000 events/second

2

400 MiB

If you are also setting up MicroK8s on your machine, MicroK8s recommends 20G disk space and 4G of memory.

Firewall Rules

During the initial setup and any updates to the deployment, you will need access to these domains:

  • us-central1-docker.pkg.dev

During operation the gateway will need access to the specified camio endpoints:

Note: These rules only cover the Camio Gateway. If you are setting up K8s for the first time you may need to set up additional firewall rules.

Removing Camera to Portal Mappings

You can update which cameras you have mapped to your S2 Portals on the settings page at https://camio.com/settings/integrations/pacs. To remove the currently mapped Portal, click on the Portal in the dropdown list or click the x next to the Portal name:

Screenshot_2022-12-14_at_5.27.23_PM.png

Alternatively, select a new Portal.

If your camera was mapped to an old Portal that is no longer in your list of S2 Portals, the Portal dropdown may appear blank:

Screenshot_2022-12-14_at_5.30.10_PM.png

To remove the old Portal, select and then deselect a new Portal from the dropdown. This will clear the old Portal. The dropdown should then look like this:

Screenshot_2022-12-14_at_5.29.01_PM.png

Make sure you click save to confirm the changes.

Have more questions? Submit a request

Comments