From 09a15ab785d6865cb96ba367540f59a9d44c8b37 Mon Sep 17 00:00:00 2001 From: Dermot Duffy Date: Mon, 26 Aug 2024 13:10:19 -0700 Subject: [PATCH] Fix recording timezone issue. --- src/camera-manager/frigate/requests.ts | 10 ++++++++-- tests/camera-manager/frigate/requests.test.ts | 8 ++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/camera-manager/frigate/requests.ts b/src/camera-manager/frigate/requests.ts index c019f934..c378c5e4 100644 --- a/src/camera-manager/frigate/requests.ts +++ b/src/camera-manager/frigate/requests.ts @@ -36,7 +36,10 @@ export const getRecordingsSummary = async ( type: 'frigate/recordings/summary', instance_id: clientID, camera: camera_name, - timezone: Intl.DateTimeFormat().resolvedOptions().timeZone, + + // Ask for the summary relative to HA timezone + // See: https://github.com/dermotduffy/frigate-hass-card/issues/1267 + timezone: hass.config.time_zone, }, true, // See: https://github.com/colinhacks/zod/pull/1752 @@ -148,7 +151,10 @@ export const getEventSummary = async ( { type: 'frigate/events/summary', instance_id: clientID, - timezone: Intl.DateTimeFormat().resolvedOptions().timeZone, + + // Ask for the summary relative to HA timezone + // See: https://github.com/dermotduffy/frigate-hass-card/issues/1267 + timezone: hass.config.time_zone, }, true, ); diff --git a/tests/camera-manager/frigate/requests.test.ts b/tests/camera-manager/frigate/requests.test.ts index 461c1df2..89873775 100644 --- a/tests/camera-manager/frigate/requests.test.ts +++ b/tests/camera-manager/frigate/requests.test.ts @@ -34,6 +34,8 @@ describe('frigate requests', () => { day: new Date(), }; const hass = createHASS(); + hass.config.time_zone = 'Europe/Dublin'; + vi.mocked(homeAssistantWSRequest).mockResolvedValue(recordingSummary); expect(await getRecordingsSummary(hass, 'clientID', 'camera.office')).toBe( recordingSummary, @@ -45,7 +47,7 @@ describe('frigate requests', () => { type: 'frigate/recordings/summary', instance_id: 'clientID', camera: 'camera.office', - timezone: Intl.DateTimeFormat().resolvedOptions().timeZone, + timezone: 'Europe/Dublin', }), true, ); @@ -179,6 +181,8 @@ describe('frigate requests', () => { }, ]; const hass = createHASS(); + hass.config.time_zone = 'Europe/Dublin'; + vi.mocked(homeAssistantWSRequest).mockResolvedValue(eventSummary); expect(await getEventSummary(hass, 'clientID')).toBe(eventSummary); expect(homeAssistantWSRequest).toBeCalledWith( @@ -187,7 +191,7 @@ describe('frigate requests', () => { expect.objectContaining({ type: 'frigate/events/summary', instance_id: 'clientID', - timezone: Intl.DateTimeFormat().resolvedOptions().timeZone, + timezone: 'Europe/Dublin', }), true, );