feat(规则管理): 添加主题规则自动发现设备功能
实现设备自动发现规则管理系统,包含以下主要功能: 1. 新增规则管理页面和API,支持创建、编辑和删除主题匹配规则 2. 添加规则匹配引擎,支持+和#通配符匹配设备主题 3. 实现Broker设备注册表,自动发现并管理符合规则的设备 4. 扩展仪表盘显示Broker信息和活跃主题 5. 修改设备卡片和详情页以区分规则发现的设备 6. 添加相关测试用例确保功能稳定性
This commit is contained in:
@@ -63,8 +63,55 @@ class BrokerTopic(BaseModel):
|
||||
node: Optional[str] = None
|
||||
|
||||
|
||||
class BrokerDeviceResponse(BaseModel):
|
||||
id: str
|
||||
name: str
|
||||
type: str
|
||||
protocol: str = "topic_rule"
|
||||
mqtt_topic: str
|
||||
command_topic: str | None = None
|
||||
state: str | None = None
|
||||
is_online: bool = False
|
||||
last_seen: datetime | None = None
|
||||
rule_id: int = 0
|
||||
|
||||
|
||||
class DashboardStats(BaseModel):
|
||||
total_devices: int
|
||||
online_devices: int
|
||||
offline_devices: int
|
||||
recent_logs: list[DeviceLogResponse]
|
||||
broker_topics: list[str] = []
|
||||
broker_device_count: int = 0
|
||||
broker_online_count: int = 0
|
||||
mqtt_connected: bool = False
|
||||
|
||||
|
||||
class RuleCreate(BaseModel):
|
||||
name: str
|
||||
topic_pattern: str
|
||||
device_type: str = "switch"
|
||||
command_template: str | None = None
|
||||
state_value_path: str | None = None
|
||||
is_enabled: bool = True
|
||||
|
||||
|
||||
class RuleUpdate(BaseModel):
|
||||
name: str | None = None
|
||||
topic_pattern: str | None = None
|
||||
device_type: str | None = None
|
||||
command_template: str | None = None
|
||||
state_value_path: str | None = None
|
||||
is_enabled: bool | None = None
|
||||
|
||||
|
||||
class RuleResponse(BaseModel):
|
||||
id: int
|
||||
name: str
|
||||
topic_pattern: str
|
||||
device_type: str
|
||||
command_template: str | None = None
|
||||
state_value_path: str | None = None
|
||||
is_enabled: bool
|
||||
created_at: datetime
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
Reference in New Issue
Block a user