feat: 升级至v2.0.0,新增人员/人脸管理服务与摄像头支持
- 新增 create_person、delete_person、create_face、delete_face 服务 - 支持通过摄像头实体获取图片 (camera_entity_id 参数) - 添加配置选项支持,可通过 Options Flow 修改配置 - 传感器采用 CoordinatorEntity 模式,优化数据更新机制 - 改进重试逻辑与错误处理 - 重构代码结构,清理冗余代码
This commit is contained in:
@@ -1,15 +1,13 @@
|
||||
"""腾讯云人脸识别插件常量定义"""
|
||||
|
||||
DOMAIN = "tencent_face_recognition"
|
||||
PLATFORMS = []
|
||||
PLATFORMS = ["sensor"]
|
||||
|
||||
# 配置项键
|
||||
CONF_SECRET_ID = "secret_id"
|
||||
CONF_SECRET_KEY = "secret_key"
|
||||
CONF_REGION = "region"
|
||||
CONF_PERSON_GROUP_ID = "person_group_id"
|
||||
|
||||
# 默认值
|
||||
DEFAULT_REGION = "ap-shanghai"
|
||||
DEFAULT_PERSON_GROUP_ID = "Hass"
|
||||
DEFAULT_MAX_FACE_NUM = 1
|
||||
@@ -19,37 +17,46 @@ DEFAULT_QUALITY_CONTROL = 1
|
||||
DEFAULT_NEED_ROTATE_CHECK = 1
|
||||
DEFAULT_FACE_MATCH_THRESHOLD = 60.0
|
||||
|
||||
# 服务
|
||||
SERVICE_FACE_SEARCH = "face_search"
|
||||
SERVICE_DETECT_FACE = "detect_face"
|
||||
SERVICE_GET_FACE_ATTRIBUTES = "get_face_attributes"
|
||||
SERVICE_CREATE_PERSON = "create_person"
|
||||
SERVICE_DELETE_PERSON = "delete_person"
|
||||
SERVICE_CREATE_FACE = "create_face"
|
||||
SERVICE_DELETE_FACE = "delete_face"
|
||||
|
||||
# 服务参数
|
||||
ATTR_IMAGE_URL = "image_url"
|
||||
ATTR_IMAGE_PATH = "image_path"
|
||||
ATTR_IMAGE_FILE = "image_file"
|
||||
ATTR_CAMERA_ENTITY_ID = "camera_entity_id"
|
||||
ATTR_CONFIG_ENTRY_ID = "config_entry_id"
|
||||
ATTR_GROUP_ID = "group_id"
|
||||
ATTR_MAX_FACE_NUM = "max_face_num"
|
||||
ATTR_MIN_FACE_SIZE = "min_face_size"
|
||||
ATTR_MAX_USER_NUM = "max_user_num"
|
||||
ATTR_QUALITY_CONTROL = "quality_control"
|
||||
ATTR_NEED_ROTATE_CHECK = "need_rotate_check"
|
||||
ATTR_FACE_MATCH_THRESHOLD = "face_match_threshold"
|
||||
ATTR_PERSON_ID = "person_id"
|
||||
ATTR_PERSON_NAME = "person_name"
|
||||
ATTR_GENDER = "gender"
|
||||
ATTR_FACE_ID = "face_id"
|
||||
ATTR_PERSON_TAG = "person_tag"
|
||||
|
||||
EVENT_FACE_DETECTED = "face_detected"
|
||||
|
||||
# 错误消息
|
||||
ERROR_INVALID_CONFIG = "无效的配置"
|
||||
ERROR_API_ERROR = "API调用错误"
|
||||
ERROR_IMAGE_NOT_FOUND = "图片未找到"
|
||||
ERROR_FACE_NOT_DETECTED = "未检测到人脸"
|
||||
|
||||
# 状态
|
||||
STATE_CONNECTED = "已连接"
|
||||
STATE_DISCONNECTED = "未连接"
|
||||
STATE_CONNECTING = "连接中"
|
||||
STATE_ERROR = "连接错误"
|
||||
STATE_PARTIALLY_CONNECTED = "部分连接"
|
||||
|
||||
# 日志级别
|
||||
LOG_LEVEL_DEBUG = "DEBUG"
|
||||
LOG_LEVEL_INFO = "INFO"
|
||||
LOG_LEVEL_WARNING = "WARNING"
|
||||
LOG_LEVEL_ERROR = "ERROR"
|
||||
|
||||
def get_entry_value(entry, key, default=None):
|
||||
"""Get a config value from entry.options with fallback to entry.data."""
|
||||
return entry.options.get(key, entry.data.get(key, default))
|
||||
|
||||
Reference in New Issue
Block a user