mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-17 10:00:46 -04:00
jfhdskljh
This commit is contained in:
@@ -38,7 +38,14 @@ function createRuntimeEngine(deps) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
logger.info('Loaded Home Assistant entities', { count: entityConfig.size });
|
logger.info('Loaded Home Assistant entities', {
|
||||||
|
count: entityConfig.size,
|
||||||
|
entities: Array.from(entityConfig.values()).map((entry) => ({
|
||||||
|
id: entry.id,
|
||||||
|
type: entry.type,
|
||||||
|
domain: entry.domain,
|
||||||
|
})),
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadTriggerConfig() {
|
function loadTriggerConfig() {
|
||||||
@@ -81,7 +88,19 @@ function createRuntimeEngine(deps) {
|
|||||||
async function setAllControllableEntitiesState(desiredState, options = {}) {
|
async function setAllControllableEntitiesState(desiredState, options = {}) {
|
||||||
const source = String(options?.source || 'unknown');
|
const source = String(options?.source || 'unknown');
|
||||||
const ids = getControllableEntityIds();
|
const ids = getControllableEntityIds();
|
||||||
if (!ids.length) return;
|
if (!ids.length) {
|
||||||
|
logger.warn('Home Assistant bulk state update skipped; no controllable entities configured', {
|
||||||
|
desiredState: desiredState === 'on' ? 'on' : 'off',
|
||||||
|
source,
|
||||||
|
});
|
||||||
|
return {
|
||||||
|
desiredState: desiredState === 'on' ? 'on' : 'off',
|
||||||
|
source,
|
||||||
|
total: 0,
|
||||||
|
succeeded: [],
|
||||||
|
failures: [],
|
||||||
|
};
|
||||||
|
}
|
||||||
logger.info('Issuing Home Assistant bulk state update', {
|
logger.info('Issuing Home Assistant bulk state update', {
|
||||||
desiredState: desiredState === 'on' ? 'on' : 'off',
|
desiredState: desiredState === 'on' ? 'on' : 'off',
|
||||||
source,
|
source,
|
||||||
|
|||||||
@@ -92,9 +92,13 @@ const idleActions = [
|
|||||||
|
|
||||||
async function runIdleActions() {
|
async function runIdleActions() {
|
||||||
const results = [];
|
const results = [];
|
||||||
|
logger.info('Idle action pipeline starting', {
|
||||||
|
actions: idleActions.map((action) => action.name),
|
||||||
|
});
|
||||||
for (const action of idleActions) {
|
for (const action of idleActions) {
|
||||||
try {
|
try {
|
||||||
const result = await action();
|
const result = await action();
|
||||||
|
logger.info('Idle action completed', { action: action.name, result });
|
||||||
results.push({ ok: true, result });
|
results.push({ ok: true, result });
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.warn('Idle action failed', { action: action.name, error: err.message });
|
logger.warn('Idle action failed', { action: action.name, error: err.message });
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ function clearIdleTimer() {
|
|||||||
if (runtime.timer) {
|
if (runtime.timer) {
|
||||||
clearTimeout(runtime.timer);
|
clearTimeout(runtime.timer);
|
||||||
runtime.timer = null;
|
runtime.timer = null;
|
||||||
|
logger.info('Idle timer cleared');
|
||||||
}
|
}
|
||||||
runtime.deadlineAt = null;
|
runtime.deadlineAt = null;
|
||||||
}
|
}
|
||||||
@@ -43,6 +44,10 @@ function clearIdleTimer() {
|
|||||||
function scheduleIdleTimer() {
|
function scheduleIdleTimer() {
|
||||||
if (runtime.timer) return;
|
if (runtime.timer) return;
|
||||||
runtime.deadlineAt = Date.now() + IDLE_TIMEOUT_MS;
|
runtime.deadlineAt = Date.now() + IDLE_TIMEOUT_MS;
|
||||||
|
logger.info('Idle timer scheduled', {
|
||||||
|
timeoutMs: IDLE_TIMEOUT_MS,
|
||||||
|
deadlineAt: runtime.deadlineAt,
|
||||||
|
});
|
||||||
runtime.timer = setTimeout(async () => {
|
runtime.timer = setTimeout(async () => {
|
||||||
runtime.timer = null;
|
runtime.timer = null;
|
||||||
runtime.deadlineAt = null;
|
runtime.deadlineAt = null;
|
||||||
@@ -64,6 +69,7 @@ function scheduleIdleTimer() {
|
|||||||
|
|
||||||
function refreshIdleState() {
|
function refreshIdleState() {
|
||||||
const activity = getActivitySnapshot();
|
const activity = getActivitySnapshot();
|
||||||
|
logger.info('Idle state refresh', activity);
|
||||||
if (activity.totalActive > 0) {
|
if (activity.totalActive > 0) {
|
||||||
clearIdleTimer();
|
clearIdleTimer();
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user