node-red-contrib-voice-assistant
Version:
一个小度-小爱-猫精音箱控制NODE-RED自定义设备的节点
56 lines (55 loc) • 1.88 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const customModel_1 = __importDefault(require("../handleAttr/customModel"));
const baseService_1 = __importDefault(require("./baseService"));
class CustomService extends baseService_1.default {
constructor(devtype, brokerConn) {
super(brokerConn);
this.devtype = devtype;
}
//处理自定义设备设置数据
resSetData(cmd) {
var _a;
if (((_a = cmd.id) === null || _a === void 0 ? void 0 : _a.split('-')[1]) !== 'diy')
return;
console.log(cmd, this.did);
if (cmd.id !== this.did)
return;
cmd.status = 0;
try {
cmd.value = this.handleAttribute.changeVal(cmd);
}
catch (_b) {
cmd.status = -1;
console.error('不支持属性');
}
console.log('custom resSetData', cmd);
if (cmd.value === undefined || cmd.value === -1)
cmd.status = -1;
return new Promise((resolve) => resolve(cmd));
}
/**
* 创建设备
*/
createDevModel(name) {
const model = customModel_1.default.getModel(name, this.devtype);
if (!model)
return;
this.did = model.id = `${this.brokerConn.username}-diy-${this.brokerConn.localmac}-${this.devtype}-${this.models.length + 1}`;
return model;
}
updateState(data) {
if (!data.devid)
return;
const model = this.models.find((it) => it.id === data.devid);
if (!model)
return;
console.log(data.payload);
console.log(model);
this.handleAttribute.saveCustomState(data);
}
}
exports.default = CustomService;