matterbridge-roborock-vacuum-plugin
Version:
Matterbridge Roborock Vacuum Plugin
33 lines (28 loc) • 932 B
text/typescript
import { AnsiLogger, debugStringify } from 'matterbridge/logger';
import { ServiceArea } from 'matterbridge/matter/clusters';
import { Scene } from '../roborockCommunication/index.js';
import { randomInt } from 'node:crypto';
export function getSupportedScenes(scenes: Scene[], log?: AnsiLogger): ServiceArea.Area[] {
log?.debug('getSupportedScenes', debugStringify(scenes));
if (!scenes || scenes.length === 0) {
log?.error('No scenes found');
return [];
}
const supportedAreas: ServiceArea.Area[] = scenes
.filter((s) => s.enabled && s.id)
.map((scene) => {
return {
areaId: scene.id ?? 0 + randomInt(5000, 9000),
mapId: null,
areaInfo: {
locationInfo: {
locationName: `Scene: ${scene.name}`,
floorNumber: null,
areaType: null,
},
landmarkInfo: null,
},
};
});
return supportedAreas;
}