Link Search Menu Expand Document

Commander iCal Integration

Jan 1 2022 at 12:00 AM

  1. Overview
    1. Definitions
    2. Configuration flow with steps
    3. Process flow (background)

Overview

The purpose of this document is to provide clear and precise detail of calendar event linking with a focus on BACnet.

The booking of rooms is done through third party calendar applications such as Outlook, Gmail etc. A room can be scheduled from the third party calendar or directly from Commander™. If a room is required, it is initiated by sending a request to a specific room. Dependent on the setup configured in Commander™ Calendar Management the room may require no approver, one, or a maximum of two approvers. If approval is needed it will be sent to approval mailbox and a manual intervention will be required by the approver. The request will be approved, if no approval is required it will directly go through to the Destination calendar and the organiser will receive an email for room acceptance. If multiple requests are received the calendar will check the mode (on/off/janitor) and the priority allocated to the request received to determine which takes precedence, then communication will be sent to the Raptor and BACnet to control the lights etc for that specific room.

high level

Definitions

Abbreviation / TermDefinitions / Note
IoTInternet of Things
iCalProtocol for scheduling calendars used by third party calendar applications such as Outlook, Gmail etc
BACnetis a communications protocol for Building Automation and Control (BAC) networks that leverage the ASHRAE, ANSI, and ISO 16484-5 standard protocol
KMCKMC Smart offers the most comprehensive voice controlled smart home experience with Alexa. Control your home lighting and other devices hands-free
VenstarVenstar Thermostats to Manage Energy Costs.
Feature flagDetermines whether functionality is enabled for the Tenant
Ical integration modesMode determines if the room is available for use (1)Off Mode (0) = (1), (2)On Mode (1) = (0), (3)Janitor Mode (2) = (2)
PriorityPriority is used when multiple events happen within the same time spot, the highest priority will take preference
CalendarIs used to book rooms, within the rooms you allocate a mode. Each mode will have an allocated priority, the priority determines the allocation of the mode based on the highest priority.
Source Calendar (Email entity)The source calendar(room) through gateway linking is setup to talk to a specific destination calendar. The Source calendar defines modes such as Holiday, Janitor, off.
Destination Calendar (Email entity)A destination calendar is usually connected to the BACnet. Actual Instance of a live calendar with endpoints and events.
SMTPThe Simple Mail Transfer Protocol. User-level email clients typically use SMTP only for sending messages to a mail server for relaying
IMAPInternet Message Access Protocol. Open standard that describes how to access messages in an email mailbox. While IMAP is an important part of receiving emails

Configuration flow with steps

config

Process flow (background)

process

  1. Check feature flags are enabled (Refer to Fig 1)

    1. Go to Core Portal, Client Management
      1. Enable Scheduler Gateway flag
      2. A prequisite to communicate to Edge devices
    2. Enable Integration of iCal format
      1. A prerequisite to use “ical and Calendar linking
    3. Enable Gateway scheduler notify v3
      1. The default is version 3
      2. The gateway Upsync version needs to be insync with the feature flag version.
      3. The Raptor will ignore any message/s that does not correlate to its own version.

    Feature flags

    Figure 1 - Client Management - check feature flags are enabled

  2. Confirm Raptor is on Version 3 (Refer to Fig 2)

    1. Go to Raptor Scheduling, confirm Cloud (Upsync) as Version: 3
    2. Note: The default is Version3 so this may not be required
      1. Version 3 can handle priorities and mode, which is translated via a previously configured Mode translator. From Cloud to Raptor:
        • Off Mode 0 = 1
        • On Mode 1 = 0
        • Janitor Mode 2 = 2
      2. Version 2 cannot handle this as it sends through a endpoint with a specific value only
        • Off Mode 1
        • On Mode 0
        • Janitor Mode 2

    Raptor

    Figure 2 - Confirm Raptor is on Version 3- Raptor Scheduling

  3. Create endpoint of type string (Refer to Fig 3)
    1. Go to Portal, Entity Management to create source and destination entities/endpoints.
      1. Create a group:
        1. Name example : Scheduler Gateway
      2. Create endpoint : (Endpoint required to integrate with the scheduling functionality on the Raptor, a BACnet simulator was used)
        1. Name example: BACnet
        2. Data type: String

    Create endpoint

    Figure 3 - Create endpoint of type string

  4. Create source and destination calendar entities with edge control type (Refer to Fig 4)
    1. Continue in Entity Management within the same group created in previous step.
      1. Create a Calendar entity: Source Calendar
        1. Default event control type: Edge
        2. Source calendar is linked in ical to the room
      2. Create a Calendar entity: Source Calendar Holidays
        1. Default event control type: Edge
      3. Create a Calendar entity: Destination Calendar
        1. Default event control type: Edge

    Create source

    Figure 4 - Create source and destination calendar entities

  5. Link endpoint to final destination calendar (Refer to Fig 5)
    1. Continue in Entity Management
      1. Destination Calendar
        1. Drag the endpoint created to the Destination Calendar linked endpoints section
        2. Note :The endpoint is required because it is linked to Raptor that talks to BACnet Driver and BMS

    Link endpoint to destination

    Figure 5 - Link endpoint to final destination calendar

  6. Link endpoint to gateway property (Refer to Fig 6)
    1. Continue in Entity Management
      1. BACnet endpoint
        1. Go to Gateways tab and find the required Gateway/Raptor
        2. Drop the property that is created for the scheduling functionality received from Gateways

    Link endpoint to gateway

    Figure 6 - Link endpoint to gateway property

  7. Raptor configuration (Refer to Fig 7)
    1. Require a device and endpoint for scheduling created on the Raptor
      1. Connection required for BACnet
      2. Through the message we integrate to the Raptor device that is connected to BACnet
  8. Create view (Refer to Fig 8)
    1. Create a view to view calendar entities and subscriptions created in the previous step.

    create view

    Figure 7 - Create view

  9. Setup Ical integration (email outbox and ical service in Commander™)(Refer to Fig 9)
    1. Before continuing in Commander™ and go to the next step in Calendar Management, it is a prerequisite that you have your thirdparty mailbox (Outlook) setup for each room.
      1. Configure account email with IMAP capability for sorce calendar integration
      2. Click File → Info → Add account.
      3. The Outlook wizard for setting up a new account will open.
      4. Enter an email address to add your account.
      5. Click Advanced options and check the box for Let me set up my account manually.
      6. Click Connect.
      7. Choose the account type IMAP.
      8. The dialog IMAP Account Settings will open up.
      9. Use the following settings:
      10. Incoming mail: Server imap.mail.com with port 993 and check the option This server requires an encrypted conncetion (SSL/TLS)
      11. Outgoing mail: Server smtp.mail.com with port 587 and the encryption method STARTTLS
      12. Click Connect.
      13. A login dialog will appear.
      14. Enter your e-mail-address and your password, check Save the password in your password list and click OK.
      15. Outlook 2016 will now sync with your mail.com account.

    setup ical

    Figure 9 - Configure account email

  10. Calendar integration setup (Refer to Fig 10)
    1. Go to Calendar management to to setup the Calendar integration configuration which allows for a connection to a calendar application mailbox using SMTP for sending and IMAP for email receiving purposes.
    2. If a booking request is made using Outlook it will hit the ical service defined below and follow any conditions specified ie. before a request is processed it must go to the following approvers etc
      1. Calendar: Use your created Calendar endpoint (Source Calendar for the room that is to be linked for ical integration).
      2. The below fields are setup by IT Admin - Pieter or Gerhard can assist
      3. IMAP Host
      4. IMAP Port
      5. IMAP SSL
      6. SMTP Host
      7. SMTP Port
      8. SMPTP SSL
      9. Approvers: Enter email address/es, individual or group email
      10. Username: Each room will have its own user account and username
      11. Password: Each room will have its own user account and password
      12. Status: once the integration is enabled, status will change to running
      13. Enabled
      14. Once all the above fields are configured in full the user can test IMAP and SMPT to test if the integration is functional when an email is sent to the room it will run the completed conditions and send to endpoint.
    3. Email address: email for the SMTP packet to send to
      1. Test SMTP/Test IMAP
      2. If at this point an email is sent from Outbox, it will go to the Source Room Calendar until the Source and Destination Calendar is linked in the next step.

    integration

    integration 2

    Figure 10 - Setup ical integration

  11. Setup Calendar Linker (setup between source and destination calendar) (Refer to Fig 11)
    1. Calendar linking links Source Calendars to Destination Calendars, the behaviour of how the Destination Calendar actions the events will be defined here.
      1. Remain in Calendar management (second tab)
        1. Select “+ Add link”
      2. 1 Source Calendar to many Destination Calendars
        1. Source Calendar: Use your created Calendar endpoint (Source Calendar for the room that is to be linked for ical integration).
        2. Destination Calendar: Use your created Calendar endpoint (is linked to the endpoint on the Raptor that talks to BACnet Driver and BMS.)
        3. Priority: If two events happen within the same time spot, the highest priority will take precedence)
          1. Decide if a room booking has higher priority over a holiday booking so that as events take place the one will have precedence over the other
          2. Only allows for positive numbers
          3. Defaults are set to Priority 0 (BMS)
          4. The Range for priorities is 0-9
        4. Mode: As discussed in Point 2.
        5. Enabled

    calendar linker

    Figure 11 - Setup calendar linker

  12. Create Calendar Widgets (Source and Destination) (Refer to Fig 12)
    1. Go to Dashboard
      1. Drop three calendar widgets
      2. Label as Destination Calendar
        1. Change to week view if preferred
      3. Label as Source Calendar (Room)
        1. Change to week view if preferred
      4. Label as Source Calendar (holidays)
        1. Change to week view if preferred

    calendar widgets

    Figure 12 - Calendar setup

  13. Drag endpoints on widget (Refer to Fig 13)
    1. Destination Calendar
      1. Drag created calendar entity on to the widget
    2. Source Calendar (Room)
      1. Drag created calendar entity on to the widget
    3. Source Calendar (holidays)
      1. Drag created calendar entity on to the widget

    endpoint linking

    Figure 13 - Endpoint linking

  14. View Calendar - tentative event created (Refer to Fig 13)
    1. The endpoints have been setup, one destination calendar although there can be many. Two Source calendars (Holiday and Room), holiday calendar is created so that with one event can affect multiple rooms.
      1. Create an event on the Holiday Source Calendar in Commander™(example holiday event)
      2. OR go to Outlook and select a room to send a request to.
        1. Fields populated that do not align with the calendar linker priority and mode will be over written once saved.
      3. After the creation of the event, a tentative event will be visible in destination calendar as tentative/pending
        1. If the event was created in outlook the request would go to the Room Source Calendar until it is approved then it will move through to the Destination Calendar.
      4. Priority level will be applied within the Raptor and passes through the exception events as per the calculated priority back to BACnet

    view calendar

    Figure 14 - Tentative event

  15. View Calendar (confirmed event created)
    1. Events can be viewed side by side, after the higher prioritised event is complete, the lower priority event will kick off. The calculation on the Raptor will make this possible.
  16. Additional information for BACnet
    1. BACnet schedule only applies to current week
    2. BACnet is connected to Raptor, The Raptor is connected to the Destination calendar
      1. One scheduled week at a time
      2. From the Cloud scheduler you can enable/disable Maintenance Mode
      3. if you no longer want information to be sent, between Raptor and BACnet

    bacnet

    Figure 15 - Raptor schedule

  17. Go to Raptor to view full schedule within Raptor Scheduler
    1. With an exception, should it have been created (events scheduled at the same time)

    full schedule

    Figure 16 - Raptor schedule

  18. Go to Raptor to view exceptions
    1. View the event being applied on the Raptor

    exceptions

    Figure 17 - Raptor results

  19. Go to BACnet Simulator

    simulator

    Figure 18 - BACnet