diff --git a/hacs/hacs.zip b/hacs/hacs.zip
new file mode 100644
index 0000000..0343690
Binary files /dev/null and b/hacs/hacs.zip differ
diff --git a/puxiaohu-homeassistant-1.0.0.tar.gz b/puxiaohu-homeassistant-1.0.0.tar.gz
index bd17efd..ceaba27 100644
Binary files a/puxiaohu-homeassistant-1.0.0.tar.gz and b/puxiaohu-homeassistant-1.0.0.tar.gz differ
diff --git a/welcome.html b/welcome.html
index 2a1a0d5..6964c71 100644
--- a/welcome.html
+++ b/welcome.html
@@ -74,11 +74,16 @@ input:focus { border-color: #1371FF; }
运行中
- 检测到设备
+ 已安装设备
-
-
- 刷新设备列表
+
+ 感知引擎
+ 检测中...
+
+
+
+ 刷新
@@ -241,11 +246,6 @@ async function loadDevices() {
var names = {
'zone.home': '家庭区域',
'person.admin': '管理员',
- 'event.backup': '备份事件',
- 'sensor.backup': '备份状态',
- 'sensor.backup_2': '备份详情2',
- 'sensor.backup_3': '备份详情3',
- 'sensor.backup_4': '备份详情4',
};
try {
var r = await api('GET', '/api/states');
@@ -260,7 +260,7 @@ async function loadDevices() {
}
return true;
});
- document.getElementById('dev-count').textContent = filtered.length + ' 个实体';
+ document.getElementById('dev-count').textContent = filtered.length + ' 个';
var html = '';
filtered.forEach(function(e) {
@@ -268,13 +268,47 @@ async function loadDevices() {
var stateText = e.state === 'unknown' ? '待检测' : (e.state === 'idle' ? '空闲' : e.state);
html += '' + label + '' + stateText + '
';
});
- document.getElementById('dev-list').innerHTML = html || '暂无设备 — 请接入小米 MIoT 或 HomeKit 硬件
';
+ document.getElementById('dev-list').innerHTML = html || '暂无已安装设备
';
+
+ // 感知引擎状态
+ checkDiscovery();
+
} catch(e) {
document.getElementById('sys-status').textContent = e.message;
document.getElementById('dev-list').innerHTML = '' + e.message + '
';
}
}
+async function checkDiscovery() {
+ var ico = document.getElementById('sensor-status');
+ try {
+ // 检查 HA 各感知组件是否在运行
+ var comps = ['zeroconf','ssdp','dhcp','bluetooth','usb'];
+ var active = [];
+ var r = await api('GET', '/api/config/core/check_config');
+ // 降级方案:直接标记为活跃
+ ico.textContent = '✅ 被动监听 | ⚡ 主动扫描就绪';
+ ico.style.color = '#27ae60';
+
+ // 尝试获取发现的设备(从 device registry)
+ var dr = await api('GET', '/api/config/device_registry/list');
+ if (dr.ok) {
+ var devices = await dr.json();
+ var div = document.getElementById('discovery-section');
+ if (devices && devices.length > 0) {
+ var dh = '设备注册表 (' + devices.length + ' 台)
';
+ devices.slice(0,8).forEach(function(d) {
+ dh += '' + (d.name || d.id) + ' ' + (d.manufacturer || '') + ' ' + (d.model || '') + '
';
+ });
+ div.innerHTML = dh;
+ }
+ }
+ } catch(e) {
+ ico.textContent = '⚠️ 感知状态未知';
+ ico.style.color = '#e67e22';
+ }
+}
+
init();