Improve engine identification and id generation.
This commit is contained in:
@@ -96,6 +96,11 @@ export class CameraManagerEngineFactory {
|
||||
// Frigate technically does not need an entity, if the camera name is
|
||||
// manually set the camera is assumed to be Frigate.
|
||||
engine = Engine.Frigate;
|
||||
} else if (
|
||||
cameraConfig.webrtc_card?.url ||
|
||||
(cameraConfig.go2rtc?.url && cameraConfig.go2rtc?.stream)
|
||||
) {
|
||||
engine = Engine.Generic;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ import {
|
||||
RecordingSegmentsQuery,
|
||||
RecordingSegmentsQueryResultsMap,
|
||||
} from '../types';
|
||||
import { getDefaultGo2RTCEndpoint } from '../utils.js';
|
||||
import { getCameraEntityFromConfig, getDefaultGo2RTCEndpoint } from '../utils.js';
|
||||
|
||||
export class GenericCameraManagerEngine implements CameraManagerEngine {
|
||||
public getEngineType(): Engine {
|
||||
@@ -159,6 +159,7 @@ export class GenericCameraManagerEngine implements CameraManagerEngine {
|
||||
hass: HomeAssistant,
|
||||
cameraConfig: CameraConfig,
|
||||
): CameraManagerCameraMetadata {
|
||||
const cameraEntity = getCameraEntityFromConfig(cameraConfig);
|
||||
return {
|
||||
title:
|
||||
cameraConfig.title ??
|
||||
@@ -166,7 +167,9 @@ export class GenericCameraManagerEngine implements CameraManagerEngine {
|
||||
getEntityTitle(hass, cameraConfig.webrtc_card?.entity) ??
|
||||
cameraConfig.id ??
|
||||
'',
|
||||
icon: cameraConfig?.icon ?? getEntityIcon(hass, cameraConfig.camera_entity),
|
||||
icon:
|
||||
cameraConfig?.icon ??
|
||||
(cameraEntity ? getEntityIcon(hass, cameraEntity, 'mdi:video') : 'mdi:video'),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -259,6 +259,9 @@ export class CameraManager {
|
||||
);
|
||||
}
|
||||
|
||||
// Always ensure the actual ID used in the card is in the configuration itself.
|
||||
result.initializedConfig.id = id;
|
||||
|
||||
this._store.addCamera(id, result.initializedConfig, result.engine);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user