mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-16 01:21:20 -04:00
promp
This commit is contained in:
@@ -17,9 +17,10 @@ function toStateUpdate({ mode, homeAssistantState, neatoState, liftState, roster
|
||||
}
|
||||
const roverLines = (Array.isArray(roster) ? roster : []).slice(0, 6).map((rover) => {
|
||||
const roverId = rover?.id || 'unknown';
|
||||
const driver = rover?.driverNickname || 'none';
|
||||
const drivers = Array.isArray(rover?.drivers) ? rover.drivers.filter(Boolean) : [];
|
||||
const driver = drivers.length ? drivers.join(',') : 'none';
|
||||
const status = rover?.statusTag || 'unknown';
|
||||
return `- ${roverId} status=${status} driver=${driver}`;
|
||||
return `- ${roverId} status=${status} drivers=${driver}`;
|
||||
});
|
||||
if (roverLines.length) {
|
||||
lines.push('rovers:');
|
||||
|
||||
@@ -126,11 +126,34 @@ function buildRosterSummary() {
|
||||
return roverManager
|
||||
.getRoster()
|
||||
.filter((rover) => roverManager.canReplayRoverId(rover?.id))
|
||||
.map((rover) => ({
|
||||
id: rover?.id || 'unknown',
|
||||
statusTag: rover?.statusTag || 'unknown',
|
||||
driverNickname: rover?.driverNickname || null,
|
||||
}));
|
||||
.map((rover) => {
|
||||
const roverId = String(rover?.id || '');
|
||||
const record = roverManager.rovers.get(roverId);
|
||||
const driverSocketIds = record?.drivers ? Array.from(record.drivers) : [];
|
||||
const drivers = driverSocketIds
|
||||
.map((socketId) => {
|
||||
const socket = io.sockets.sockets.get(socketId);
|
||||
const nickname = String(socket?.data?.nickname || socket?.data?.user?.username || '').trim();
|
||||
return nickname || socketId;
|
||||
})
|
||||
.filter(Boolean);
|
||||
const sensors = record?.lastSensor?.decoded || {};
|
||||
const docked = Boolean(record?.docked || sensors?.chargingSources?.homeBase);
|
||||
const oiMode = String(sensors?.oiMode?.label || '').toLowerCase();
|
||||
let statusTag = 'docking';
|
||||
if (docked) {
|
||||
statusTag = 'docked';
|
||||
} else if (oiMode === 'safe' || oiMode === 'full') {
|
||||
statusTag = 'driving';
|
||||
} else if (oiMode === 'passive' || oiMode === 'off' || oiMode === 'unknown' || !oiMode) {
|
||||
statusTag = 'docking';
|
||||
}
|
||||
return {
|
||||
id: roverId || 'unknown',
|
||||
statusTag,
|
||||
drivers,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
function computeTriggerReason() {
|
||||
|
||||
Reference in New Issue
Block a user