Profiles and Schedules allow users to change BI functionality depending on time. For example, maybe alerts to guards are turned on during off hours for cameras facing the front door and off during business hours.
The Profiles and Schedules 101 webinar walks through many of the common use cases to provide a holistic view on how to use these features.
Similar to the other 101 series onboarding webinars, this webinar complements the corresponding section in the Help file, Shields, Profiles and Schedules.
Geofencing
Geofencing allows users to use their phone to switch profiles based on location. For example, many users want to turn their indoor cameras off when entering the house and on when leaving the house. If you prefer to watch instead of read, the Profiles and Schedules webinar walks through setting up Geofencing. Geofencing is discussed at 1:00 hr into the webinar.
Below is a simple implementation of geofencing.
Scenario
Turn the shield to red (disarm BI) when user enters the house. Turn shield to green (arm BI) when user leaves the house. The webinar discusses switching profiles, a similar but more more challenging setup with profiles.
Setup
BI Server
Enter / Exit Actions
Global settings -> Mobile devices tab. Select a device.
When the mobile app enters or leaves the geofence, the app notifies the server. It does so by calling the functions set by the Enter / Exit geofence features. Setup the mobile device to turn the Shield to red when exiting the geofence and green when entering the geofence.
Location settings
For best results, use google maps or some other internet service to get the GPS coordinates for your home / office and manually set GPS coordinates. Global settings->Schedule tab. Latitude/Longitude values. Help button has more details. Not setting the server location correctly leads to inaccuracy and missed geo-fence updates.
For geofence to work correctly, Always needs to be selected for Location services. The screenshot also shows good phone settings for the app to work in general.
Mobile app settings
Select the geofence radius. 50m generally provides good results for homes/offices. When asked, select Server location, NOT Your current location. If you followed steps above, the server location should be set correctly.
I also enable the geofence notifications. I like knowing when the phone updates the geofence status. Particularly good to enable when troubleshooting.
Example of geofence update notification on the phone. If you do NOT receive these notifications when entering / leaving the home / office, then your phone is not providing location services to the BI app.
The logs tell you what is happening behind the scenes. After you leave/enter the home/office, visit the debug logs if your server is not updating.
In the mobile app go to the debug logs (? -> debug log).
Hit the forward button (top right) and send an email to yourself with the logs.
Go to the email and scroll to the bottom. Sometimes the logs are long and gmail will provide a link to go to the entire message. Unfortunately the logs are chronological so the latest commands will exist at the bottom of the logs.
Code: Select all
2021-20-12 7:36:13: http://10.0.0.5:7000/json <-- {"result":"success","session":"120a393377c7609350e071d84b1d5b95"}
At 6:14 pm I left the house. Mobile app identified so.
Code: Select all
2021-19-12 18:14:31: didExitRegion: Mabury Square
Code: Select all
2021-19-12 18:14:31: http://10.0.0.5:7000/json --> {
cmd = geofence;
inside = 0;
session = 8837a256b21b0ea5510e1266e3e304e3;
uuid = "35B6C6BB-5CAE-4FEC-92C8-6F60BA874CC2";
}
Code: Select all
2021-19-12 18:14:31: https://a444-99-57-143-35.ngrok.io/json --> {
cmd = geofence;
inside = 0;
session = 8837a256b21b0ea5510e1266e3e304e3;
uuid = "35B6C6BB-5CAE-4FEC-92C8-6F60BA874CC2";
}
Code: Select all
2021-19-12 18:14:31: didDetermineState: 2
2021-19-12 18:14:31: https://a444-99-57-143-35.ngrok.io/json <-- {"result":"success","session":"8837a256b21b0ea5510e1266e3e304e3"}
2021-19-12 18:14:31: Geofence status updated successfully: Mabury Square
2021-19-12 18:14:31: UNMutableNotificationContent
Code: Select all
2021-19-12 20:34:25: didEnterRegion: Mabury Square
Code: Select all
2021-19-12 20:34:25: http://10.0.0.5:7000/json --> {
cmd = geofence;
inside = 1;
session = 72f5bf0d98256d676780c99020b467cd;
uuid = "35B6C6BB-5CAE-4FEC-92C8-6F60BA874CC2";
}
Code: Select all
2021-19-12 20:34:25: https://a444-99-57-143-35.ngrok.io/json --> {
cmd = geofence;
inside = 1;
session = 72f5bf0d98256d676780c99020b467cd;
uuid = "35B6C6BB-5CAE-4FEC-92C8-6F60BA874CC2";
}
Code: Select all
2021-19-12 20:34:25: didDetermineState: 1
2021-19-12 20:34:26: https://a444-99-57-143-35.ngrok.io/json <-- {"result":"success","session":"72f5bf0d98256d676780c99020b467cd"}
2021-19-12 20:34:26: Geofence status updated successfully: Mabury Square
Code: Select all
2021-19-12 20:34:26: UNMutableNotificationContent
2021-19-12 20:34:53: didDetermineState: 1
2021-19-12 20:34:53: https://a444-99-57-143-35.ngrok.io --> {
cmd = geofence;
inside = 1;
session = 34e417dd1ca061fd06c843953cb0189e;
}
2021-19-12 20:34:53: https://a444-99-57-143-35.ngrok.io/json <-- {"result":"success","session":"34e417dd1ca061fd06c843953cb0189e"}
2021-19-12 21:18:45: didDetermineState: 1
2021-19-12 21:18:45: http://10.0.0.5:7000 --> {
cmd = geofence;
inside = 1;
session = 08fb4ab6675179c1299245835db04647;
}
One check at 21:18:45. Another at 21:31:23.
Code: Select all
2021-19-12 21:18:45: http://10.0.0.5:7000/json <-- {"result":"success","session":"08fb4ab6675179c1299245835db04647"}
2021-19-12 21:31:23: didDetermineState: 1
2021-19-12 21:31:23: http://10.0.0.5:7000 --> {
cmd = geofence;
inside = 1;
session = 37c64a3c0f882a0a5dad681e19b40b05;
}
2021-19-12 21:31:23: http://10.0.0.5:7000/json <-- {"result":"success","session":"37c64a3c0f882a0a5dad681e19b40b05"}
2021-20-12 7:36:13: didDetermineState: 1
2021-20-12 7:36:13: http://10.0.0.5:7000 --> {
cmd = geofence;
inside = 1;
session = 120a393377c7609350e071d84b1d5b95;
}