getHistory method
Implementation
Future<(List<HaState>?, HaFailure?)> getHistory({
required String entityId,
DateTime? startTime,
DateTime? endTime,
}) async {
final startTimeStr = startTime?.toIso8601String();
final params = {
'filter_entity_id': entityId,
};
if (endTime != null) params['end_time'] = endTime.toIso8601String();
final endpoint =
'/api/history/period${startTimeStr != null ? '/$startTimeStr' : ''}'
'${_formUrlParameters(params)}';
final response = await sl.get<HttpClient>().get(url + endpoint, _headers);
if (response.success) {
final states = <HaState>[];
final list = (jsonDecode(response.dataStr) as List?);
for (var innerList in list ?? []) {
for (var stateJson in innerList ?? []) {
states.add(HaState.fromJson(stateJson));
}
}
return (states, null);
} else {
return (null, HaFailure(message: response.dataStr));
}
}