node-red-contrib-home-assistant-websocket
Version:
Node-RED integration with Home Assistant through websocket and REST API
36 lines (35 loc) • 1.42 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const homeAssistant_1 = require("../../homeAssistant");
const BidirectionalEntityIntegration_1 = __importDefault(require("./BidirectionalEntityIntegration"));
const Integration_1 = require("./Integration");
class ValueEntityIntegration extends BidirectionalEntityIntegration_1.default {
onHaEventMessage(evt) {
var _a;
super.onHaEventMessage(evt);
if (evt.type === homeAssistant_1.HaEvent.ValueChange) {
const value = evt.value;
const previousValue = (_a = this.state.getLastPayload()) === null || _a === void 0 ? void 0 : _a.state;
this.updateValue(value);
this.entityConfigNode.emit(Integration_1.IntegrationEvent.ValueChange, value, previousValue);
}
}
getStateData(state) {
const lastPayload = state === null || state === void 0 ? void 0 : state.getLastPayload();
if (!lastPayload) {
return {};
}
return lastPayload;
}
async updateValue(value) {
await this.state.setLastPayload({
state: value,
attributes: {},
});
await this.updateHomeAssistant(value);
}
}
exports.default = ValueEntityIntegration;
;