28 lines
842 B
TypeScript
28 lines
842 B
TypeScript
import { AItem } from './AItem'
|
|
import * as logger from './log'
|
|
import { mqttHandler } from './MqttDispatcher'
|
|
|
|
|
|
export class Forwarder extends AItem {
|
|
private targetTopics: string[]
|
|
private inTopic: string
|
|
|
|
constructor(floor: string, room: string, item: string, topicLastPart: string, label: string, targetTopics: string[]) {
|
|
super(floor, room, item, label)
|
|
this.inTopic = `${this.topicFirstPart}/${topicLastPart}`
|
|
this.subscribeTopics = [ this.inTopic ]
|
|
this.targetTopics = targetTopics
|
|
}
|
|
|
|
|
|
processMessage(topic: string, payload: string) : void {
|
|
switch (topic) {
|
|
case this.inTopic:
|
|
this.targetTopics.forEach((targetTopic) => {
|
|
mqttHandler.send(targetTopic, payload, true)
|
|
})
|
|
break
|
|
}
|
|
}
|
|
}
|