createSchedule method
Helper function for adding a default Rainmaker schedule.
Takes an action
parameter that triggers at the
given time. The action parameter is identical to
the parameters used by the other state functions.
E.g.
{
'Light': {
'brightness': 0,
'output': true,
},
'Switch': {
'output': true,
}
}
Implementation
Future<void> createSchedule(String nodeId, String name, String id,
List<ScheduleTrigger> triggers, Map<String, dynamic> action) async {
final parsedTriggers = <Map<String, dynamic>>[];
for (final trigger in triggers) {
if (trigger is DayOfWeekTrigger) {
parsedTriggers.add({
'd': _getBitList<DaysOfWeek>(trigger.daysOfWeek),
'm': trigger.minutesSinceMidnight,
});
} else if (trigger is DateTrigger) {
parsedTriggers.add({
'dd': trigger.day,
'mm': _getBitList<MonthsOfYear>(trigger.months),
'yy': trigger.year,
'r': trigger.repeatEveryYear,
'm': trigger.minutesSinceMidnight,
});
}
}
await updateState(nodeId, {
'Schedule': {
'Schedules': [
{
'name': name,
'id': id,
'operation': 'add',
'triggers': parsedTriggers,
'action': action,
}
],
}
});
}