I used the following code to generate the defrost schedule for the air chiller object. For refrigerated warehouse a more frequent defrost schedule than typical may be required.
# Create a new defrost schedule using ScheduleCompact
defrost_schedule = OpenStudio::Model::ScheduleCompact.new(model)
defrost_schedule.setName("RefrigeratedWarehouse.idf Defrost Schedule")
# Set schedule type limits
discrete_type_limits = OpenStudio::Model::ScheduleTypeLimits.new(model)
discrete_type_limits.setName("ON/OFF")
discrete_type_limits.setLowerLimitValue(0)
discrete_type_limits.setUpperLimitValue(1)
discrete_type_limits.setNumericType("Discrete")
defrost_type_limits = discrete_type_limits
defrost_schedule.setScheduleTypeLimits(defrost_type_limits)
# Define the schedule values using Schedule:Compact format
# Defrost schedule matches AirChillerDefrostSched1 in RefrigeratedWarehouse.idf
defrost_schedule.addValue("Through: 12/31")
defrost_schedule.addValue("For: AllDays")
defrost_schedule.addValue("Until: 05:00", 0)
defrost_schedule.addValue("Until: 05:20", 1)
defrost_schedule.addValue("Until: 22:00", 0)
defrost_schedule.addValue("Until: 22:40", 1)
defrost_schedule.addValue("Until: 24:00", 0)
# Create an air chiller using defrost_schedule above
air_chiller = OpenStudio::Model::RefrigerationAirChiller.new(model, defrost_schedule)