Prowatch XPressEntry Synchronization Documentation

1.Purpose #

This document is intended to instruct system administrators on how to synchronize an XPressEntry system with Honeywell Prowatch system.

Prerequisites

It is assumed that you have installed Honeywell Prowatch and XPressEntry in places on a network where they can talk to each other(or on the same box)

Prowatch should be licensed to use the Web API

You should be an Administrator or super user in the Prowatch system.

2.Setting Up Prowatch to Synchronize with XPressEntry #

The API only supports Honeywell Prowatch v4.5 SP2 and beyond. We assume that is installed and ready for integration.

For integrations into other versions of Prowatch, please contact Telaeris to confirm compatibility.

Prowatch requires that you have their Prowatch API installed. Contact your Honeywell representative for more information on licensing and installation of the Prowatch API.

 

Prowatch 5.0 is supported with API build 5.0.0.510. Make sure that the .NET framework 4.8 is installed and check the Troubleshooting section to make sure those lines aren’t in the .config file.

 

Installing the Pro-Watch API Service

(this section is gratuitously copied from the Pro-Watch_DTU_Service.pdf file)

1. Create and copy the Pro-Watch API zip file to a folder below the Pro-Watch installation directory

2. If upgrading from a previous version, run the Uninstall_PW_DTU_Service.bat file as administrator to remove the Pro-Watch DTU Service from Windows services. Delete old version.

3. In the DTU Service directory below the Pro-Watch installation directory, unzip all files to the current directory.

4. Edit the file PW-DTU-Service.exe.config file and set the endpoint and binding sections. The DTU Service is defaulted to use HTTP basic binding with no security.

5. Run the Install_PW_DTU_Service.bat file as an administrator. This will add a Windows service called ProWatch DTU Service.

6. In Windows Services, right click on the Pro-Watch DTU Service and select Properties.

7. Select the ‘Log On’ tab and add a user account to the service that has access to the Pro-Watch server and the Pro-Watch database.

Note: The DTU Service account must have access to the Pro-Watch database in SQL Server, be a valid user in Pro-Watch and have Pro-Watch access to that workstation/server. The same account that is used for Pro-Watch can and is suggested to be used for the Pro-Watch DTU service. When using a service account please run the following command to reserve the URL (as specified in API configuration file).

Sample: Netsh http add urlacl url=http://machinename:8734/pwapi user=DOMAINaccountname

8. In Windows Services, start the Pro-Watch DTU Service.

Configuring the Prowatch API

For The API Synchronization to work properly, we need to setup two API’s in Prowatch.

The SOAP and SignalR API.

The following 4 keys need to be set in the PW-DTU-WinService.exe.config file

Note that if you are installing XPressEntry on a different machine than the API, you’ll need to change the “localhost” to “your machine name” in these keys.

<!– Start the Pro-Watch SOAP API –>

<add key=”StartSOAPService” value=”1″ />

<!– Start the Pro-Watch SignalR API –>

<add key=”StartEventService” value=”1″ />

<!– Event Service Url –>

<add key=”PWEventSignalRUrl” value=”http://localhost:8735/” />

<!—Service Configuration –>

<services>

<service behaviorConfiguration=”ProWatchDTUServiceBehavior” name=”HoneywellAccess.ProWatch.PWServiceSoap.PwDtuService”>

<endpoint binding=”basicHttpBinding” bindingConfiguration=”ProWatch_DTU_Basic_Http_Binding” contract=”HoneywellAccess.ProWatch.PWServiceSoap.IPwDtuService” name=”basicHttpBinding” bindingNamespace=”http://HoneywellAccess/ProWatch/DTUService” />

<endpoint address=”mex” binding=”mexHttpBinding” contract=”IMetadataExchange” />

<host>

<baseAddresses>

<add baseAddress=”http://localhost:8732/ProWatch/DTUService” />

</baseAddresses>

</host>

</service>

</services>

3.Prowatch API User Account #

(this section is also gratuitously copied from the Pro-Watch_DTU_Service.pdf file)

Enabling a Pro-Watch user

  1. In Pro-Watch, select Database Configuration
  2. Select Users or Classes
  3. Edit or create a user who will be connecting to the Pro-Watch DTU Service.
  4. Select the Programs tab
  5. Expand Database Configuration
  6. Select ‘User Defines’
  7. Click the ‘Add Function’ button
  8. Add ‘Enable Web Password’
  9. Save the User or Class record. Now the ‘Web Password’ for the User should be enabled.
  10. Enter a ‘Web Password’ and save the User record.

User Permissions

The following minimal Permissions are needed at the API user level in Prowatch:

Administration -> Data Transfer Utility -> Issue Event is only needed if we’re sending activities to Prowatch

Administration -> Data Transfer Utility -> Subscribe to Events is only needed if we’re using the SignalR API

Also make sure that the API user has a routing group with the ‘dtuservice’ Prowatch Workstation added. This is required for SignalR to work.

These are required because XPressEntry makes the following calls via the API:

  • IssueReaderEvent
  • GetAreaOccupants
  • GetCompanies
  • GetBadgeTypes
  • GetAreas
  • GetLogDevsByHWClass or GetLogicalDevicesAll
  • GetClearanceCodes
  • GetClearanceCodesLD
  • QueryBadgesPaging
  • GetBadgeBlob or GetBadgePhoto

4.Setup Prowatch Readers and Clearance Levels #

If you want to send events into Prowatch, you’ll need to setup a Channel/Panel/Readers as placeholders to receive the events from XPressEntry.

For each physical handheld, we should set up two logical device readers (IN/OUT) in Prowatch.

If we are just doing Mustering, you only need one logical device per handheld.

You can do that like this:

Hardware Configuration -> Add a Channel

Select PW-5000/PW6000

Give it a name, then click Next, Next and then Finish(the options don’t matter as we’re just using this channel and panels as placeholders for reader events).

Check “Installed” only initially. Select the TimeZone for now.


Next we will add a Panel to the Prowatch System.

Under Hardware Configuration, Right click on Panels and select New -> Panel

Choose the Site and Channel.

Select a PW-5000 or PW-6000 Controller type.

Hit Next and add a PW5000 2R for each Handheld doing Entry/Exit.

Then hit Finish.

Now we need to add the Logical Device Readers to the Panel.

Under Hardware Configuration, right click on Readers and select New -> Logical Device

Select the correct Panel we just created

Set the Hardware Template to DoorTypical ACR (Access Control Reader) or Entry/Exit Reader Door.

Then hit Next and Select a port(s) for the reader(s). If you’re using the Entry/Exit Reader Door, this will pair the two logical devices for Entry/Exit automatically.

If none exists, go back to the panel and add a reader port.

Then hit Finish

When you’re done, uncheck the Installed checkbox under the Panel.

Clearance Codes

Add the readers to the appropriate Clearance Codes if we’re doing Entry/Exit

To do that, go to Database Configuration -> Clearance Codes.

Either select the appropriate Clearance to add the readers to or add a new one

Note that this isn’t needed if we’re only doing Mustering.

Add Logical Devices to Areas

Next you need to make sure your current Prowatch readers and XPressEntry readers are mapped to Areas in Prowatch properly.

This is done from Database Configuration -> Area

Add or Select the areas you want the readers to go In/Out of. Click the Logical Device on the left, then the Reader in the middle. Then use the right arrow to move the device. Click the In/Out X to set whether the device puts the user in/out

5.Enable Data Manager Synchronization in XPressEntry #

Next is going to be setting up XPressEntry to synchronize the data from Prowatch. This is all managed from within the XPressEntry server application under Tools -> Settings -> Data Manager

At the top, check the Enable Data Manager and then set the Type to Prowatch DTU

Determine which Data Manager features you want to use with Prowatch

  1. Send Activities
  2. Receive Activities
  3. Occupancy
  4. Include specific features for the data manager

Here’s what the options do:

Pull Data Manager Activities into XPressEntry:

When SignalR is enabled, this adds the events from Prowatch into XPressEntry as badge activities.

Push XPressEntry Activities to Data Manager:

This will use the Channel/Panels/Readers above to send activities into Prowatch.

Pull Data Manager Occupancy

This synchronizes the Area Occupants from Prowatch with XPressEntry.

Watch Tables via Software Events

This enables the SignalR event piece

Default Role

The default role to assign to Badges(users) when synchronizing users from Prowatch.

No Synchronous Syncs

Used to make sure only one sync(Full,Partial,Occupancy,Activity) is running at any given time. Not necessary for this integration.

Activity Sync Now

Runs the Activity Sync process. For Prowatch this will Pull the occupancy AND send activities to the data manager immediately. This is not necessary, but was used in previous versions of the Prowatch Data Manager.

Occupancy Sync Now

Synchronizes the area occupants from Prowatch into XPressEntry. Needed for Mustering.

It’s suggested to set this to every 5 minutes. This will “catch up” any activities that were missed if either service was offline for a significant period of time.

Partial Sync Now

This synchronizes all non-user data. This includes Panels/Readers/Clearances/Companies, etc.

Full Sync Now

This runs a Partial Sync and also synchronizes user data

Prowatch Specific Data Manager Options

Next you should hit the big “Setup Data Manager” button in the top-right.

This will take you to the Prowatch Specific Data Manager options.

The following are required:

The Server IP(and port if you changed it), User and Password

Check the “Use Prowatch Areas/LogDevs as Doors for Occupancy” if you’re doing Mustering or occupancy tracking.

If you’re NOT doing Entry/Exit, check the “No Groups Data” checkbox.

If you want to use SignalR, set the Event User (likely the same as the API user) and the Event Workstation(this is the workstation from Prowatch for the XPressEntry service).

You can map fields from the Prowatch Badge to the XPressEntry User with the Source/Destination Columns on the left(don’t forget to hit the green plus button)

You can select which Prowatch Areas we are actually tracking Occupancy in the bottom right. Note that these will populate only after a Partial Sync has been done. The practical side of this means that you need to come in here, setup everything, then go out and press Partial Sync Now, then come back in here to setup the occupancy Areas.

The remainder of the options are self explanatory but can all be left blank/unchecked if in doubt.

“Test Connect” will tell you whether the API is connected(but not SignalR)

Hit OK when done and then press “Save” on the Data Manager page.

If SignalR is working, you should see something like this:

VERBOSE: No Errors in ProwatchDataManager while StartWatchingTables

INFO: SignalR Event Subscription Started

6.Initial Data Synchronization and Setup XPressEntry Data #

It’s suggested to run a Partial Sync first to get the Readers/Clearances/Zones all synchronized and set up.

After you’ve setup that data in XPressEntry, run a Full Sync.

7.Set up Prowatch Areas as XPressEntry Zones #

Before doing this, make sure you’ve done a Partial Sync with the Prowatch system

Prowatch Areas will be mapped to the XPressEntry Zones table.

For each area where you want to track occupancy, you’ll need to do the following.

  1. Make sure that “Zone is Outside” and “Zone is a Muster Point” are unchecked
  2. Make sure that “Zone is a Hazard Area” is checked

For Muster Points, they should be the opposite.

Troubleshooting occupancy

If occupants aren’t showing up in Zones in XPressEntry, there are some things to check.

  1. Check that the Channel you’re using in Prowatch is added to the Routing Groups for the user
  2. Make sure you have logical devices assigned to Areas in Prowatch
  3. In XPressEntry, make sure the zones are setup and selected as above. If all 3 checkboxes are set, the zone won’t track occupancy!
  4. Make sure the Data Manager options for “Pull Data Manager Occupancy” and “Watch Tables via Software Events” are checked.
  5. Make sure the Doors in XPressEntry are setup properly. (especially if you didn’t check the “Use Prowatch Areas/LogDevs as Doors for Occupancy” in the Prowatch Data Manager Setup form.

8.Set Up XPressEntry Handheld Readers and Doors #

Before doing this, make sure you’ve done a Partial Sync with the Prowatch system

Doors

Doors are directly mapped from the Logical Devices and Areas in Prowatch. These are only automatically created if the devices are assigned to an Area in Prowatch. Otherwise you CAN create local Doors and map them on your own.

If we have done everything correctly, we won’t have to do much here. Just verify that the doors we have will move people In/Out of areas properly.

The way to read these is the Start Zone will be where you are coming FROM on an Entry scan on the handheld device and the End Zone will be where you are going TO on an Entry scan. These are reversed for Exit scans.

The External Entry/Exit Reader fields should match the Logical Devices we’ve setup in Prowatch

Readers

Readers are directly mapped from logical devices in Prowatch.

If the timezone for the devices and the timezone for the server are different, you’ll need to do some additional setup.

First, enable the “Show Reader Timezones” option in Tools -> Settings -> General -> Add/Edit Display

Then, set the Reader Timezone under the Add/Edit Info -> Readers -> Handhelds section for each device in a different timezone.

Lastly, if you are using the devices for Mustering and want the muster activities sent to Prowatch, set the “External Muster Reader” option for each handheld device.

At this point, you should be able to proceed with the standard XPressEntry Reader Profile options to setup your device.

9.Troubleshooting #

If you’re seeing the following errors:

---Exception Message--------------------------
System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]
The type initializer for 'HoneywellAccess.ProWatch.PWLogger.Log' threw an exception.
---Exception Stack Trace----------------------

Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

You need to go and edit the PW-DTU-WinService.exe file and comment out the following two lines:

<add name="Rolling Flat File Trace Listener" />
<add name="Event Log Trace Listener" />

And by removing them or surrounding them with XML comment section:

<!--<add name="Rolling Flat File Trace Listener" />
<add name="Event Log Trace Listener" /> -->

Suggest Edit