mirror of
https://github.com/myronblair/jarvis
synced 2026-06-30 17:50:23 -05:00
feat: HA tab — filter scenes/media_player, nightly full resync cron, remove JS polling
- ha.php skipDomains: added media_player, scene - ha.php skipKeywords: konnected, energy/power/voltage/current, full camera list - stats_cache.php: same filter updates, removed scene/media_player from sync - Removed JS setInterval polling; entity state kept fresh by HA agent push - Added nightly 3am cron for full HA entity resync
This commit is contained in:
@@ -83,7 +83,7 @@ if ($method === 'POST' && $action === 'service') {
|
|||||||
// Serve entities from ha_entities table (real-time agent push data)
|
// Serve entities from ha_entities table (real-time agent push data)
|
||||||
$skipDomains = ['sensor','binary_sensor','button','update','select','number',
|
$skipDomains = ['sensor','binary_sensor','button','update','select','number',
|
||||||
'device_tracker','event','image','person','zone','tts','conversation',
|
'device_tracker','event','image','person','zone','tts','conversation',
|
||||||
'assist_satellite','input_button','media_player'];
|
'assist_satellite','input_button','media_player','scene'];
|
||||||
$skipKeywords = [
|
$skipKeywords = [
|
||||||
// HACS / system toggles
|
// HACS / system toggles
|
||||||
'pre_release','get_hacs','matter_server','zerotier','mariadb',
|
'pre_release','get_hacs','matter_server','zerotier','mariadb',
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ if (HA_TOKEN !== 'YOUR_HA_TOKEN_HERE' && strpos(HA_URL, '10.48.200.X') === false
|
|||||||
$config = $configRaw ? json_decode($configRaw, true) : [];
|
$config = $configRaw ? json_decode($configRaw, true) : [];
|
||||||
|
|
||||||
// Controllable domains only — skip read-only sensors to keep list manageable
|
// Controllable domains only — skip read-only sensors to keep list manageable
|
||||||
$interesting = ['light','switch','scene','media_player','alarm_control_panel',
|
$interesting = ['light','switch','alarm_control_panel',
|
||||||
'lawn_mower','water_heater','fan','lock','cover','climate','input_boolean'];
|
'lawn_mower','water_heater','fan','lock','cover','climate','input_boolean'];
|
||||||
// Switches that are HA internals / camera settings, not physical devices
|
// Switches that are HA internals / camera settings, not physical devices
|
||||||
$skipKeywords = ['pre_release','_record','_ftp_','_push_','_hub_ringtone',
|
$skipKeywords = ['pre_release','_record','_ftp_','_push_','_hub_ringtone',
|
||||||
|
|||||||
@@ -698,16 +698,6 @@ async function loadProxmox() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ── HOME ASSISTANT ────────────────────────────────────────────────────
|
// ── HOME ASSISTANT ────────────────────────────────────────────────────
|
||||||
let _haRefreshTimer = null;
|
|
||||||
function _startHARefresh() {
|
|
||||||
if (_haRefreshTimer) return;
|
|
||||||
_haRefreshTimer = setInterval(() => {
|
|
||||||
if (document.getElementById('tab-ha')?.classList.contains('active') ||
|
|
||||||
document.getElementById('tab-home')?.classList.contains('active')) {
|
|
||||||
loadHA();
|
|
||||||
}
|
|
||||||
}, 30000);
|
|
||||||
}
|
|
||||||
async function loadHA() {
|
async function loadHA() {
|
||||||
const data = await api('ha');
|
const data = await api('ha');
|
||||||
const el = document.getElementById('ha-list');
|
const el = document.getElementById('ha-list');
|
||||||
@@ -733,7 +723,6 @@ async function loadHA() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
renderHATable(entities);
|
renderHATable(entities);
|
||||||
_startHARefresh();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const _domainIcon = {
|
const _domainIcon = {
|
||||||
|
|||||||
Reference in New Issue
Block a user