fix: Improve state handling to avoid stuck triggered cameras (#2348)

- Related:
https://github.com/dermotduffy/advanced-camera-card/issues/2342
This commit is contained in:
Dermot Duffy
2026-02-15 19:26:56 -08:00
committed by GitHub
parent be61d7fa24
commit b1467dc4bd
11 changed files with 723 additions and 127 deletions
@@ -879,6 +879,7 @@ describe('FrigateCamera', () => {
callEventWatcherCallback(eventWatcher, {
type: 'new',
before: {
id: 'event-1',
camera: 'camera.front_door',
snapshot: null,
has_clip: false,
@@ -887,6 +888,7 @@ describe('FrigateCamera', () => {
current_zones: [],
},
after: {
id: 'event-1',
camera: 'camera.front_door',
snapshot: null,
has_clip: hasClip,
@@ -900,6 +902,7 @@ describe('FrigateCamera', () => {
expect(eventCallback).toBeCalledWith({
type: 'new',
cameraID: 'CAMERA_1',
id: 'event-1',
clip: hasClip && events.includes('clips'),
snapshot: hasSnapshot && events.includes('snapshots'),
fidelity: 'high',
@@ -944,6 +947,7 @@ describe('FrigateCamera', () => {
callEventWatcherCallback(eventWatcher, {
type: 'new',
before: {
id: 'event-1',
camera: 'camera.front_door',
snapshot: null,
has_clip: false,
@@ -952,6 +956,7 @@ describe('FrigateCamera', () => {
current_zones: [],
},
after: {
id: 'event-1',
camera: 'camera.front_door',
snapshot: null,
has_clip: false,
@@ -997,6 +1002,7 @@ describe('FrigateCamera', () => {
callEventWatcherCallback(eventWatcher, {
type: 'new',
before: {
id: 'event-1',
camera: 'camera.front_door',
snapshot: null,
has_clip: false,
@@ -1007,6 +1013,7 @@ describe('FrigateCamera', () => {
current_zones: [],
},
after: {
id: 'event-1',
camera: 'camera.front_door',
snapshot: null,
has_clip: false,
@@ -1047,6 +1054,7 @@ describe('FrigateCamera', () => {
callEventWatcherCallback(eventWatcher, {
type: 'new',
before: {
id: 'event-1',
camera: 'camera.front_door',
snapshot: null,
has_clip: false,
@@ -1055,6 +1063,7 @@ describe('FrigateCamera', () => {
current_zones: [],
},
after: {
id: 'event-1',
camera: 'camera.front_door',
snapshot: null,
has_clip: false,
@@ -8,6 +8,7 @@ const createEventChange = (): FrigateEventChange => {
return {
type: 'new',
before: {
id: '1234.5678',
camera: 'front_door',
snapshot: null,
has_clip: false,
@@ -16,6 +17,7 @@ const createEventChange = (): FrigateEventChange => {
current_zones: [],
},
after: {
id: '1234.5678',
camera: 'front_door',
snapshot: null,
has_clip: true,