Clients

This is the client who owns and/or operates one or many locations (e.g. ABC Pty Ltd.)

APIDescription
GET api/Clients/SubClients?id={id}&subLevels={subLevels}

Gets all of the SubClients for a specified Client

GET api/Clients?subLevels={subLevels}&includeLatestReadings={includeLatestReadings}

Gets all Clients you have access to.

GET api/Clients/{id}?subLevels={subLevels}&includeLatestReadings={includeLatestReadings}

Get a specific Client by ID

PUT api/Clients?subLevels={subLevels}

Update client

POST api/Clients

Create a new Client

Groups

This is an abstract structure that contains one or many SubGroups

APIDescription
PUT api/Groups/RequestReading?ids[0]={ids[0]}&ids[1]={ids[1]}

Request that a reading be taken of the physical device and the records updated as soon as possible. NOTE: the returned details may or may not contain the readings that have been requested. Check reading date/time

GET api/Groups?subLevels={subLevels}

Gets all Groups you have access to.

GET api/Groups/{id}?subLevels={subLevels}

Get a specific Group by ID

POST api/Groups

Create a Group

PUT api/Groups?subLevels={subLevels}

Update a Group

DELETE api/Groups/{id}

Delete a Group if you have the Credentials to do so. NOTE: This will also delete all associated SubGroups under this Group.

CalculatedDevices

A Calculated Device represents a Device that is calculated/devised based on a number of other devices.For example, this can represent the Sum of multiple Connected Devices, the Average, or even the difference over a specified time scale.

APIDescription
GET api/CalculatedDevices?subLevels={subLevels}&includeLatestReading={includeLatestReading}

Gets all CalculatedDevices you have access to.

GET api/CalculatedDevices?calculatedDeviceType={calculatedDeviceType}&subLevels={subLevels}&includeLatestReading={includeLatestReading}

Get all CalculatedDevices you have access to, by CalculatedDevice type

GET api/CalculatedDevices?category={category}&subLevels={subLevels}&includeLatestReading={includeLatestReading}

Get CalculatedDevices by Category

POST api/CalculatedDevices

Creates a new CalculatedDevice

PUT api/CalculatedDevices

Update the information for a specific CalculatedDevice

PUT api/CalculatedDevices/BackCalculate/{id}?startDate={startDate}&endDate={endDate}

No documentation available.

PUT api/CalculatedDevices/BackCalculate2/{id}?startDate={startDate}&endDate={endDate}

No documentation available.

GET api/CalculatedDevices/Logs?id={id}&numberOfEntries={numberOfEntries}&startDate={startDate}&endDate={endDate}&includeNR={includeNR}

Returns a log of readings for the specified Calculated Device, for the specified DateTimes. Note: Always expects a time value. i.e. if an end date of 2017-01-01 with no time is given, 00:00:00 of 2017-01-01 will be assumed and data from prior to this point in time will be returned. For a start date, the same assumption applies, and data after this point will be returned.

GET api/CalculatedDevices/Logs?ids[0]={ids[0]}&ids[1]={ids[1]}&numberOfEntries={numberOfEntries}&startDate={startDate}&endDate={endDate}&includeNR={includeNR}

Returns a log of readings for the specified device, for the specified DateTimes. Note: Always expects a time value. i.e. if an end date of 2017-01-01 with no time is given, 00:00:00 of 2017-01-01 will be assumed and data from prior to this point in time will be returned. For a start date, the same assumption applies, and data after this point will be returned.

PUT api/CalculatedDevices/Logs

No documentation available.

DELETE api/CalculatedDevices/Logs

Used to delete the CalculatedDevice Log that matches the input Integer ID

POST api/CalculatedDevices/{id}/Reading

Posts a new Reading for the input CalculatedDevice ID

GET api/CalculatedDevices/{id}?subLevels={subLevels}&includeLatestReading={includeLatestReading}

Get a specific CalculatedDevice by ID

POST api/CalculatedDevices?subLevels={subLevels}&includeLatestReading={includeLatestReading}

Converts the stored info to the info we want to send out via API..

DELETE api/CalculatedDevices/{id}

Delete a CalculatedDevice if you have the Credentials to do so

DataNodes

A DataNode is a collection of devices (e.g. An irrigation DataNode may have pumps, valves, and meters)This is the hardware that the actual devices connect to.

APIDescription
GET api/DataNodes/VersionInformation?hardwareType={hardwareType}&bootloaderType={bootloaderType}&bootloaderMajor={bootloaderMajor}&bootloaderMinor={bootloaderMinor}&bootloaderBeta={bootloaderBeta}&firmwareMajor={firmwareMajor}&firmwareMinor={firmwareMinor}&firmwareHotfix={firmwareHotfix}&firmwareBeta={firmwareBeta}

Finds all DataNodes that match the input Version-related criteria and returns them to the user.

PUT api/DataNodes/CheckFirmware?ids[0]={ids[0]}&ids[1]={ids[1]}

Marks the input DataNodes (by integer ID) for checking their Firmware Versions

PUT api/DataNodes/Command?ids[0]={ids[0]}&ids[1]={ids[1]}&cmd[0]={cmd[0]}&cmd[1]={cmd[1]}

Sends a custom command through to the input DataNodes

PUT api/DataNodes/CustomCommand

Sends any number of Custom Commands through to specified DataNodes, depending on the input

PUT api/DataNodes/SetPollingInterval?ids[0]={ids[0]}&ids[1]={ids[1]}&schedule[0]={schedule[0]}&schedule[1]={schedule[1]}&log[0]={log[0]}&log[1]={log[1]}

Sets the Schedule and Log Polling Interval properties of the input DataNodes to the respective input values

PUT api/DataNodes/EnableReadings?ids[0]={ids[0]}&ids[1]={ids[1]}

Used to enable performing network readings for the input DataNode IDs

PUT api/DataNodes/DisableReadings?ids[0]={ids[0]}&ids[1]={ids[1]}

Used to disable performing network readings for the input DataNode IDs

GET api/DataNodes?subLevels={subLevels}&includeLatestReadings={includeLatestReadings}

Gets all DataNodes you have access to.

GET api/DataNodes/{id}?subLevels={subLevels}&includeLatestReadings={includeLatestReadings}

Get a specific DataNode by ID

GET api/DataNodes?category={category}&subLevels={subLevels}&includeLatestReadings={includeLatestReadings}

Get DataNodes by Category

POST api/DataNodes

Creates a new DataNode within a Network

PUT api/DataNodes

Update DataNode

DELETE api/DataNodes/{id}

Delete a DataNode if you have the Credentials to do so

Users

This is the user who owns and/or operates one or many locations (e.g. ABC Pty Ltd.)

APIDescription
GET api/Users/{id}

Gets a specific user by integer ID

PUT api/Users/CheckIn

User Check-In

PUT api/Users/CheckOut

User Check-Out

GET api/Users/Logs?descending={descending}

Retrieve Check-In/Check-Out Logs, based on the current user

GET api/Users/Logs?username={username}&descending={descending}

Retrieve Check-In/Check-Out Logs, based on the input username

GET api/Users/Logs?clientID={clientID}&descending={descending}

Retrieve Check-In/Check-Out Logs, based on the input client

GET api/Users

Gets all Users you have access to.

GET api/Users?username={username}

Get a specific User by username

GET api/Users?clientID={clientID}

Get all Users under a specific Client ID

PUT api/Users

Update user

POST api/Users

Create User

DELETE api/Users?username={username}

Delete a User if you are a System Admin

SubGroups

This is an abstract structure that contains one or many devices

APIDescription
PUT api/SubGroups/RequestReading?ids[0]={ids[0]}&ids[1]={ids[1]}

Request that a reading be taken of the physical device and the records updated as soon as possible. NOTE: the returned details may or may not contain the readings that have been requested. Check reading date/time

PUT api/SubGroups/RequestReading?category={category}

Request that a reading be taken of the physical device and the records updated as soon as possible. for a particular category. NOTE: the returned details may or may not contain the readings that have been requested. Check reading date/time

PUT api/SubGroups

Update a SubGroup

GET api/SubGroups

Gets all SubGroups you have access to.

GET api/SubGroups/{id}

Get a specific SubGroup by ID

GET api/SubGroups?category={category}

Get SubGroups by Category

POST api/SubGroups

Create a SubGroup

DELETE api/SubGroups/{id}

Delete a SubGroup if you have the Credentials to do so. NOTE: This will remove the relationship with all associated devices under this SubGroup, however the devices are un-touched.

Schedules

This is an abstract structure that contains one or many Steps

APIDescription
PUT api/Schedules/RequestReading?ids[0]={ids[0]}&ids[1]={ids[1]}

Requests readings from the devices in a schedule

PUT api/Schedules/Approve?ids[0]={ids[0]}&ids[1]={ids[1]}

Approve schedules

PUT api/Schedules/FastApprove?ids[0]={ids[0]}&ids[1]={ids[1]}

Approve schedules using the "Fast Approve" methodology

PUT api/Schedules/Cancel?ids[0]={ids[0]}&ids[1]={ids[1]}

Cancel a schedule

PUT api/Schedules/FastCancel?ids[0]={ids[0]}&ids[1]={ids[1]}

Cancel a Schedule using the "Fast Cancel" methodology

PUT api/Schedules/ForceCancel?ids[0]={ids[0]}&ids[1]={ids[1]}

Cancel a Schedule using the "Force Cancel" methodology

PUT api/Schedules/SkipStep

No documentation available.

PUT api/Schedules/AdjustStep

No documentation available.

PUT api/Schedules/AcknowledgeError?scheduleID={scheduleID}&stepIDs[0]={stepIDs[0]}&stepIDs[1]={stepIDs[1]}

No documentation available.

GET api/Schedules?subLevels={subLevels}

Gets all Schedules you have access to.

GET api/Schedules?scheduleStatusGroup={scheduleStatusGroup}&subLevels={subLevels}

Gets all Schedules for the given schedule status group you have access to.

GET api/Schedules/{id}?subLevels={subLevels}

Get a specific Schedule by ID

GET api/Schedules?deviceId={deviceId}&subLevels={subLevels}

Get any active Schedules using the input Device ID

GET api/Schedules?networkId={networkId}&subLevels={subLevels}

Get any active Schedules in the network defined by the supplied Network ID

POST api/Schedules

Create a Schedule

PUT api/Schedules

Update a schedule

DELETE api/Schedules/{id}

Delete a Schedule if you have the Credentials to do so, and all steps within it

DELETE api/Schedules?scheduleStatus={scheduleStatus}

Deletes all Schedules of the input Status Group, i.e. all Drafts

AlertSubscriptions

Controller for Alert Subscriptions

APIDescription
GET api/AlertSubscriptions

Gets all Alert Subscriptions you have access to.

GET api/AlertSubscriptions/{id}

Gets all Alert Subscriptions you have access to.

GET api/AlertSubscriptions?username={username}

Gets all Alert Subscriptions by Username.

POST api/AlertSubscriptions

Creates a new instance of an AlertSubscription in the database.

PUT api/AlertSubscriptions

Update AlertSubscription

PUT api/AlertSubscriptions/Enable?ids[0]={ids[0]}&ids[1]={ids[1]}

Enables a number of Alert Subscriptions by Integer ID determined by the input array

PUT api/AlertSubscriptions/EnableAll?username={username}

Enables all Alert Subscriptions for the input username, if allowed

PUT api/AlertSubscriptions/Disable?ids[0]={ids[0]}&ids[1]={ids[1]}

Enables a number of Alert Subscriptions by Integer ID determined by the input array

PUT api/AlertSubscriptions/DisableAll?username={username}

Disables all Alert Subscriptions for the input username, if allowed

DELETE api/AlertSubscriptions/{id}

Delete an AlertSubscription if you have the Credentials to do so

Networks

This is the network at a particular location which may have 1 or more DataNodes operating from that network.A network has a Gateway DataNode (with attached modem and other equipment) that handles all communications to and from the other DataNodes in the network.A particular network might consist of one or more actual boxes with the capability to communicate with the other boxes on the network.

APIDescription
PUT api/Networks/EnableScheduleQueue?ids[0]={ids[0]}&ids[1]={ids[1]}

Enables the Schedule Queue on the input Networks

PUT api/Networks/DisableScheduleQueue?ids[0]={ids[0]}&ids[1]={ids[1]}

Disables the Schedule Queue on the input Networks

PUT api/Networks/EnableReadings?ids[0]={ids[0]}&ids[1]={ids[1]}

Enables performing network readings for the input Network IDs

PUT api/Networks/DisableReadings?ids[0]={ids[0]}&ids[1]={ids[1]}

Disables performing network readings for the input Network IDs

PUT api/Networks/AddressUpdate

No documentation available.

GET api/Networks?subLevels={subLevels}&includeLatestReadings={includeLatestReadings}

Gets all Networks you have access to.

GET api/Networks/{id}?subLevels={subLevels}&includeLatestReadings={includeLatestReadings}

Get a specific Network by ID

POST api/Networks

Create a network (gateway)

PUT api/Networks

Update Network

DELETE api/Networks/{id}

Delete a Network if you have the Credentials to do so

Devices

A device is an abstract object that represents the basic info about physical devices, such as sensors, pumps, valves, etc.The individual devices are physically connected to the DataNode and the DataNode is configured to handle this type of device.

APIDescription
GET api/Devices?includeLatestReading={includeLatestReading}

Gets all Devices you have access to.

GET api/Devices?deviceType={deviceType}&includeLatestReading={includeLatestReading}

Get all Devices you have access to, by Device type

GET api/Devices?category={category}&includeLatestReading={includeLatestReading}

Get Devices by Category

POST api/Devices

Creates a new Device

PUT api/Devices

Update the information for one particular Device

PUT api/Devices/TurnOn?ids[0]={ids[0]}&ids[1]={ids[1]}

If possible, turn on Devices by passed in IDs

PUT api/Devices/TurnOff?ids[0]={ids[0]}&ids[1]={ids[1]}

If possible, turn off Devices by passed in IDs

PUT api/Devices/Set?ids[0]={ids[0]}&ids[1]={ids[1]}&values[0]={values[0]}&values[1]={values[1]}

If possible, set the analog output on the Devices passed in via IDs, to the values provided, in respective order

GET api/Devices/Logs?id={id}&numberOfEntries={numberOfEntries}&startDate={startDate}&endDate={endDate}&includeNR={includeNR}

Returns a log of readings for the specified device, for the specified DateTimes. Note: Always expects a time value. i.e. if an end date of 2017-01-01 with no time is given, 00:00:00 of 2017-01-01 will be assumed and data from prior to this point in time will be returned. For a start date, the same assumption applies, and data after this point will be returned.

GET api/Devices/Logs?ids[0]={ids[0]}&ids[1]={ids[1]}&numberOfEntries={numberOfEntries}&startDate={startDate}&endDate={endDate}&includeNR={includeNR}

Returns a log of readings for the specified device, for the specified DateTimes. Note: Always expects a time value. i.e. if an end date of 2017-01-01 with no time is given, 00:00:00 of 2017-01-01 will be assumed and data from prior to this point in time will be returned. For a start date, the same assumption applies, and data after this point will be returned.

PUT api/Devices/Logs

No documentation available.

DELETE api/Devices/Logs

Used to delete the Device Log that matches the input Integer ID

POST api/Devices/{id}/Reading

Posts a new Reading for the input Device ID

PUT api/Devices/RequestReading?ids[0]={ids[0]}&ids[1]={ids[1]}

Request that a reading be taken of the physical device and the records updated as soon as possible. NOTE: the returned details may or may not contain the readings that have been requested. Check reading date/time

GET api/Devices/{id}?includeLatestReading={includeLatestReading}

Get a specific Device by ID

PUT api/Devices?ids[0]={ids[0]}&ids[1]={ids[1]}

Request that a reading be taken of the physical device and the records updated as soon as possible. NOTE: the returned details may or may not contain the readings that have been requested. Check reading date/time

POST api/Devices?fillWithData={fillWithData}

Converts the stored info to the info we want to send out via API..

DELETE api/Devices/{id}

Delete a ConnectedDevice if you have the Credentials to do so

Programs

This is an abstract structure that contains one or many ProgramGroups, which in turn contain one or many ProgramSteps. This is used to create/spawn Schedules for sending to DataNodes, similar to a Template but with much more detail included.

APIDescription
GET api/Programs?subLevels={subLevels}

Gets all you have access to.

GET api/Programs/{id}?subLevels={subLevels}

Get a specific by ID

POST api/Programs

Create a

PUT api/Programs

Update a

PUT api/Programs/CreateSchedule/{id}?startDate={startDate}&status={status}

Creates a based on the input ID

DELETE api/Programs/{id}

Delete a if you have the Credentials to do so, and all that fall under it

UserAccess

API Controller for User Access. Used to allow or deny access to various systems for an individual user

APIDescription
GET api/UserAccess/{id}

Get by a specific User Access integer ID

DELETE api/UserAccess/{id}

Deletes a UserAccess item

GET api/UserAccess

Gets all of user access items

GET api/UserAccess?username={username}

Returns a list of User Access settings for a specified user

GET api/UserAccess?username={username}&ownerID={ownerID}&ownerType={ownerType}

Returns a User Access setting for a specific object for the specified user

POST api/UserAccess?username={username}&accessType={accessType}

Returns a response indicating whether a user has access to a specified object at the specified access level

POST api/UserAccess

Creates User Access settings for a user

PUT api/UserAccess

Updates User Access settings for a user

DELETE api/UserAccess?userName={userName}&objectID={objectID}&objectType={objectType}

Deletes a user access item

Alert

Controller for the alert page

APIDescription
GET api/Alert

Gets all Alerts you have access to

GET api/Alert/{id}

Gets an Alert by id

GET api/Alert/Subscriptions

No documentation available.

GET api/Alert/Subscriptions/{id}

Gets an Alert Subscription by ID

GET api/Alert/GetByFilter?alertType={alertType}&message={message}&isSent={isSent}&requiresAcknowledgement={requiresAcknowledgement}&acknowledgedDate={acknowledgedDate}&category={category}&subCategory={subCategory}

GET: Alerts

GET api/Alert/UnacknowledgedAlerts

No documentation available.

POST api/Alert/Acknowledge/{id}

No documentation available.

POST api/Alert/Ignore/{id}

No documentation available.

POST api/Alert

Creates a new instance of an Alert in the database.

ConfiguredAlert

Controller for the alert page

APIDescription
GET api/ConfiguredAlert

Gets all Alerts you have access to

GET api/ConfiguredAlert/{id}

Gets an ConfiguredAlert by id

POST api/ConfiguredAlert

Creates a new instance of an ConfiguredAlert in the database.

PUT api/ConfiguredAlert

Update an existing ConfiguredAlert in the database.

Locations

This is the general location of one or more networks (e.g. Cattle station 1 or base hospital) Details of the location are stored here.

APIDescription
GET api/Locations?subLevels={subLevels}&includeLatestReadings={includeLatestReadings}

Gets all Locations you have access to.

GET api/Locations/{id}?subLevels={subLevels}&includeLatestReadings={includeLatestReadings}

Get a specific Location by ID

POST api/Locations

Creates a new location

PUT api/Locations

Update Location

Timetables

This is the Controller for handling Timetable-related actions, such as creating and editing

APIDescription
GET api/Timetables

Gets all Timetables you have access to.

GET api/Timetables/{id}

Get a specific Timetable by ID

POST api/Timetables

Create a Timetable

PUT api/Timetables

Update a Timetable

DELETE api/Timetables/{id}

Delete a Timetable if you have the Credentials to do so