"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const MqttDispatcher_1 = require("./MqttDispatcher"); const AItem_1 = require("./AItem"); const Export_1 = require("./Export"); class M433SwitchItem extends AItem_1.AItem { getLabel() { return this.label; } getRoom() { return this.room; } getStateTopic() { return this.stateTopic; } getInTopic() { return this.stateTopic; } getStateFeedbackTopic() { return this.stateFeedbackTopic; } constructor(floor, room, item, label, onCode, offCode, type = 'bulb') { super(floor, room, item, label); this.stateTopic = `${this.topicFirstPart}/state`; this.subscribeTopics = [this.stateTopic]; this.stateFeedbackTopic = `${this.topicFirstPart}/state/feedback`; this.actionTopic = 'IoT/Mqtt433Gateway/Message'; this.state = 'OFF'; this.oldState = undefined; this.onCode = onCode; this.offCode = offCode; this.type = type; } exportItem() { return Export_1.SwitchExport(this.itemId, this.label, this.stateTopic, this.stateFeedbackTopic, this.type); } processMessage(topic, payload) { this.state = payload; MqttDispatcher_1.mqttHandler.send(this.stateFeedbackTopic, this.state); if (this.state != this.oldState) { if (this.state == 'ON') { MqttDispatcher_1.mqttHandler.send(this.actionTopic, this.onCode); } else { MqttDispatcher_1.mqttHandler.send(this.actionTopic, this.offCode); } this.oldState = this.state; } } } exports.M433SwitchItem = M433SwitchItem; //# sourceMappingURL=M433SwitchItem.js.map