The Rachio Controller API contains four distinct data objects
- Person
- Device
- Zone
- ScheduleRule
These objects are explained below.
Webhooks are explained in detail in the webhooks section
Person
{
"email" : "[email protected]",
"id" : "xxxxxx-xxxx-xxxx-xxx-xxxxxxxxx",
"username" : "test",
"devices" : [
{}
],
"createDate" : 1520380702000,
"deleted" : false,
"fullName" : "Testy McTest"
}
Device
{
"id" : "55e57aff-d8a2-4e3b-9836-25cf7f6839e7",
"flexScheduleRules" : [],
"serialNumber" : "VR1231212",
"homeKitCompatible" : false,
"name" : "Rachio-E1323B",
"zones" : [],
"on" : false,
"latitude" : 39.739174,
"longitude" : -105.04316,
"createDate" : 1520381260000,
"status" : "OFFLINE",
"deleted" : false,
"scheduleModeType" : "MANUAL",
"model" : "GENERATION2_8ZONE",
"macAddress" : "80A589E1323B",
"scheduleRules" : []
}
Zone
{
"zoneNumber" : 4,
"runtime" : 1391,
"id" : "108e23aa-4999-4da2-994a-62aa6e207221",
"rootZoneDepth" : 6,
"efficiency" : 0.8,
"fixedRuntime" : 0,
"imageUrl" : "https://prod-media-photo.rach.io/8107d244-1176-44a4-9a7e-d1de3b803f82",
"scheduleDataModified" : false,
"customShade" : {
"name" : "LOTS_OF_SUN"
},
"depthOfWater" : 0.51,
"managementAllowedDepletion" : 0.5,
"customCrop" : {
"name" : "Cool Season Grass",
"coefficient" : 0.8
},
"saturatedDepthOfWater" : 0.56,
"customSoil" : {
"name" : "LOAM"
},
"customNozzle" : {
"name" : "FIXED_SPRAY_HEAD",
"inchesPerHour" : 1.5
},
"availableWater" : 0.17,
"yardAreaSquareFeet" : 500,
"runtimeNoMultiplier" : 1391,
"maxRuntime" : 10800,
"name" : "Zone 4",
"enabled" : true,
"lastWateredDate" : 1520343540000,
"wateringAdjustmentRuntimes" : {
"3" : 1391,
"1" : 2086,
"5" : 695,
"2" : 1739,
"4" : 1043
}
}
ScheduleRule
{
"id": "xxxxx-xxxxxx",
"zones": [
{
"zoneId": "xxxxx-xxxxxx",
"duration": 780,
"sortOrder": 1
},
{
"zoneId": "b15ed92d-d171-4730-98f2-e82d9a6aacb0",
"duration": 840,
"sortOrder": 3
},
{
"zoneId": "bf7ed8bd-99af-4598-8857-e71c0d26520a",
"duration": 840,
"sortOrder": 0
},
{
"zoneId": "108e23aa-4999-4da2-994a-62aa6e207221",
"duration": 840,
"sortOrder": 2
},
{
"zoneId": "08b73293-4f42-4105-8a67-48d3ed4c209e",
"duration": 840,
"sortOrder": 5
},
{
"zoneId": "0bf273be-a81d-4e6e-9047-d3e1f703a956",
"duration": 840,
"sortOrder": 4
}
],
"scheduleJobTypes": [
"ANY"
],
"operator": "AFTER",
"cycleSoakStatus": "OFF",
"startDate": 1523219613691,
"name": "My Flex Monthly",
"enabled": true,
"startDay": 8,
"startMonth": 3,
"startYear": 2018,
"totalDuration": 4980,
"endDate": -62167404386309,
"etSkip": true,
"externalName": "My Flex Monthly",
"cycleSoak": false
}
Webhooks
All webhooks follow the same object structure, and will provide different string description of the event.
{
"id": "8c3f5e90-fb30-3425-a95d-11fa31244f66", // ID of the webhook
"summary": "Scheduled waterings will now run on controller Rachio-E1323B.", //Summary of the event
"hidden": false, // Whether the event is hidden to the consumer or not
"externalId": "123221231", // External ID provided by the POST event when you create a webhook
"category": "DEVICE", // Category of the event (device, zone, schedule)
"type": "RAIN_DELAY", // type of event (varies by Hook type)
"subType": "RAIN_DELAY_ON", // description of the type of event
"deviceId": "15c388d3-ca86-4c49-96d1-de11c965988d", // Controller ID
"eventDate": 1520803848658, // date the event happend
"createDate": 1520803848658, // date event was created
"lastUpdateDate": 1520803848658 // date event was updated
}