LogoLogo
OverviewDemos and ResourcesContact
  • What is Engine?
  • Key Concepts
    • Drivers
    • Modules
    • Systems
    • Zones
    • Settings
    • Interfaces
    • Triggers
  • Security
  • Deployment
    • System Architecture
    • Single Sign-On
      • Configuring Engine for SAML2
      • SAML2 with Azure AD
      • SAML2 with ADFS
      • SAML2 with Auth0
      • SAML2 with GSuite
      • OAuth2
  • Integrations
    • Supported Integrations
    • Directory Services
      • Microsoft Office365
    • IoT
      • Device Drivers
      • Node-RED
      • Azure IOT Hub
    • Location Services
      • Locating Users on a Network
      • SVG Map Creation
      • Cisco CMX
      • Cisco Meraki RTLS
      • Desk Sensors
  • Administration
    • Backoffice
      • Systems
      • Devices
      • Drivers
      • Zones
      • Triggers
      • Metrics
      • Users
      • Domains
        • Applications
  • Developer Guide
    • Development Environment
    • Building Drivers
      • Discovery and Metadata
      • State
      • Scheduling Actions
      • Response Tokenisation
      • Device Drivers
      • SSH Drivers
      • Service Drivers
      • Logic Drivers
      • Testing
      • Live Monitoring
      • Logging
      • Security
      • Utilities and Helpers
    • User Interfaces
      • Composer
      • Virtual Systems
      • Widgets
      • Settings.json
  • API
    • Authentication
    • Control
      • Systems
      • Modules
      • Dependencies
      • Zones
      • Websocket
        • Commands
          • bind
          • unbind
          • exec
          • debug
          • ignore
        • Heartbeat
        • Errors
  • Support
    • Service Desk
Powered by GitBook
On this page

Was this helpful?

  1. Developer Guide
  2. Building Drivers

Discovery and Metadata

PreviousBuilding DriversNextState

Last updated 5 years ago

Was this helpful?

Drivers the system can access are represented by database entries. To simplify the creation of these entries available drivers can be scanned for and made available as a searchable list.

You can click scan from the Backoffice UI:

Metadata used to describe the drivers, is defined as part of the driver. For Example:

class Clipsal::CBus
    include ::Orchestrator::Constants
    include ::Orchestrator::Transcoder

    # Discovery Information
    tcp_port 10001
    descriptive_name 'Lighting Gateway'
    generic_name :Lighting

    # Communication settings
    tokenize delimiter: "\x0D"
    wait_response false
    delay between_sends: 100

    # ...
end

The discovery methods are made available to the driver by the line include ::Orchestrator::Constants. Without any discovery methods the driver is listed by its class name.

Discovery Methods

Method

Arguments

Description

descriptive_name

String

Used to describe the driver. This is what will be displayed in backoffice

generic_name

Symbol

The default generic name value

implements

Symbol

Defines the driver type, one of :ssh, :device, :service or :logic

description

String

A default description for the driver, supports markdown formatting

default_settings

Hash

Default settings that will be saved as JSON

tcp_port

Integer

Sets the default port and calls implements :device or implements :ssh if the port is 22

udp_port

Integer

Sets the default port and calls implements :device

uri_base

String

Expects a URI origin, such as http://overclockers.com.au:8080 and calls implements :service

makebreak!

Indicates that the TCP connection should not be held open