homematic switch
This commit is contained in:
39
src/HomematicSwitchItem.js
Normal file
39
src/HomematicSwitchItem.js
Normal file
@ -0,0 +1,39 @@
|
||||
let logger = require('./log');
|
||||
let mqtt = require('./mqttHandler');
|
||||
let AHomematicItem = require('./AHomematicItem')
|
||||
|
||||
|
||||
class HomematicSwitchItem extends AHomematicItem {
|
||||
constructor(floor, room, item, hmId) {
|
||||
super(floor, room, item, hmId);
|
||||
this.stateTopic = `${this.topicFirstPart}/state`;
|
||||
this.stateFeedbackTopic = `${this.topicFirstPart}/state/feedback`;
|
||||
this.actionTopic = `${this.actionTopicPre}/1/STATE`;
|
||||
this.subscribeTopics = [
|
||||
this.stateTopic
|
||||
];
|
||||
this.state = 'OFF';
|
||||
this.oldState = undefined;
|
||||
}
|
||||
|
||||
|
||||
processMessage(topic, payload) {
|
||||
switch (topic) {
|
||||
case this.stateTopic:
|
||||
this.state = payload;
|
||||
mqtt.send(this.stateFeedbackTopic, this.state);
|
||||
if (this.state != this.oldState) {
|
||||
if (this.state == 'ON') {
|
||||
mqtt.send(this.actionTopic, 'true');
|
||||
} else {
|
||||
mqtt.send(this.actionTopic, 'false');
|
||||
}
|
||||
this.oldState = this.state;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = HomematicSwitchItem;
|
||||
|
@ -6,6 +6,7 @@ logger.info("Hello world!");
|
||||
|
||||
|
||||
let HomematicDimmerItemClass = require('./HomematicDimmerItem');
|
||||
let HomematicSwitchItemClass = require('./HomematicSwitchItem');
|
||||
let M433SwitchItem = require('./M433SwitchItem');
|
||||
let HomematicFourButtonThing = require('./HomematicFourButtonThing');
|
||||
let HomematicFourButtonSingleItem = require('./HomematicFourButtonSingleItem');
|
||||
@ -24,7 +25,7 @@ let testFourButton = new HomematicFourButtonThing('Gnd', 'Hallway', 'TestButton'
|
||||
new HomematicFourButtonSingleItem('button2', 'test/button/2'),
|
||||
new HomematicFourButtonSingleItem('button3', 'test/button/3'),
|
||||
new HomematicFourButtonSingleItem('button4', 'test/button/4')
|
||||
])
|
||||
]);
|
||||
testFourButton.start();
|
||||
|
||||
let testDimmerAdaptor = new DimmerAdaptor('Gnd', 'Hallway', 'Testlight');
|
||||
@ -33,8 +34,11 @@ testDimmerAdaptor.start();
|
||||
let testLight = new HomematicDimmerItemClass('Gnd', 'Hallway', 'Testlight', 8);
|
||||
testLight.start();
|
||||
|
||||
let testLight2 = new HomematicSwitchItemClass('Gnd', 'Hallway', 'Testlight2', 5);
|
||||
testLight2.start();
|
||||
|
||||
let testForwarder = new Forwarder('Gnd', 'Hallway', 'TestForwarder', 'state', [
|
||||
'dispatcher_ng/items/Gnd/Hallway/Testlight/state',
|
||||
'dispatcher_ng/items/Gnd/Hallway/Testlight2/state',
|
||||
'dispatcher_ng/items/Gnd/Hallway/DeskLight/state'
|
||||
]);
|
||||
testForwarder.start();
|
||||
|
Reference in New Issue
Block a user