diff --git a/server/src/services/homeAssistantService/index.js b/server/src/services/homeAssistantService/index.js index 8baa332d..691a603c 100644 --- a/server/src/services/homeAssistantService/index.js +++ b/server/src/services/homeAssistantService/index.js @@ -227,8 +227,16 @@ function turnOffAllRoverNightVision() { function getActiveDriverCount() { const active = getActiveDrivers(); - if (!active || typeof active !== 'object') return 0; - return Object.keys(active).length; + const turnCount = active && typeof active === 'object' ? Object.keys(active).length : 0; + if (turnCount > 0) return turnCount; + // Fallback: trust live rover driver sets if turn-service tracking is temporarily out of sync. + let liveCount = 0; + roverManager.rovers.forEach((record) => { + if (record?.drivers?.size > 0) { + liveCount += 1; + } + }); + return liveCount; } function hasActiveDrivers() { diff --git a/server/src/services/roverManager/spectatorAccess.js b/server/src/services/roverManager/spectatorAccess.js index 88ee3ae7..c9386762 100644 --- a/server/src/services/roverManager/spectatorAccess.js +++ b/server/src/services/roverManager/spectatorAccess.js @@ -43,6 +43,10 @@ function createSpectatorAccess(deps) { privateNoUsersSince.delete(record.id); continue; } + if (record.drivers && record.drivers.size > 0) { + privateNoUsersSince.delete(record.id); + continue; + } if (onlineCount > 0) { privateNoUsersSince.delete(record.id); continue;