import { hacore, showMore } from "./common.ts"; import Fuse from 'fuse.js'; const beginTime = Date.now(); const devices = await hacore.getInfoList(); console.log('getInfo', Date.now() - beginTime, 'ms'); // console.log(showMore(devices)); const fuse = new Fuse(devices, { keys: ['name'], // 搜索字段 threshold: 0.4, // 匹配宽松度:0~1,越小越严格 includeScore: true, minMatchCharLength: 1, // 允许单字匹配 }); // const searchKeyword = '次卧灯'; // const searchKeyword = '阳台 灯'; // const searchKeyword = '晾衣机的 灯'; const searchKeyword = ' 阳台 灯'; const result = fuse.search(searchKeyword); console.log('fuse search', Date.now() - beginTime, 'ms'); // 输出搜索结果 console.log(`搜索关键词: "${searchKeyword}"`); console.log(showMore(result.map(r => r.item))); const toggleDevice = await hacore.runService({ entity_id: result[0].item.entity_id, service: 'toggle', }); console.log('toggleDevice', Date.now() - beginTime, 'ms'); // devices 2 const devices2 = await hacore.getInfoList(); console.log('getInfo 2', Date.now() - beginTime, 'ms');