Compare commits
4 Commits
TwoLedSign
...
MySwitch
Author | SHA1 | Date | |
---|---|---|---|
499f90c080
|
|||
341829efe0 | |||
e1088083de | |||
f4d35b5e04
|
18
dispatcher.service
Executable file
18
dispatcher.service
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=dispatcher_ng
|
||||||
|
Wants=network-online.target
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
GuessMainPID=yes
|
||||||
|
ExecStart=/usr/bin/npm start -- -c dispatcher_ng.conf
|
||||||
|
ExecStop=kill -SIGINT $mainpid
|
||||||
|
Restart=on-failure
|
||||||
|
WorkingDirectory=/opt/services/dispatcher_ng
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
Alias=dispatcher
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
|
52
dist/MySwitchThing.js
vendored
Normal file
52
dist/MySwitchThing.js
vendored
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
const logger = require("./log");
|
||||||
|
const MqttDispatcher_1 = require("./MqttDispatcher");
|
||||||
|
const AItem_1 = require("./AItem");
|
||||||
|
class MySwitchSingleItem {
|
||||||
|
constructor(actionTopic) {
|
||||||
|
this.actionTopic = actionTopic;
|
||||||
|
}
|
||||||
|
processMessage(topic, payload) {
|
||||||
|
switch (payload) {
|
||||||
|
case 'PRESS_SHORT':
|
||||||
|
MqttDispatcher_1.mqttHandler.send(this.actionTopic, 'SHORT', true);
|
||||||
|
break;
|
||||||
|
case 'PRESS_LONG':
|
||||||
|
case 'PRESS_CONT':
|
||||||
|
MqttDispatcher_1.mqttHandler.send(this.actionTopic, 'LONG_HOLD', true);
|
||||||
|
break;
|
||||||
|
case 'PRESS_LONG_RELEASE':
|
||||||
|
MqttDispatcher_1.mqttHandler.send(this.actionTopic, 'LONG_END', true);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
logger.warn(`HM4BSI: no handling available for ${topic}`);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.MySwitchSingleItem = MySwitchSingleItem;
|
||||||
|
class MySwitchThing extends AItem_1.AItem {
|
||||||
|
constructor(floor, room, item, itemObjs) {
|
||||||
|
super(floor, room, item, '');
|
||||||
|
this.itemObjs = itemObjs;
|
||||||
|
if (this.itemObjs.length != 3) {
|
||||||
|
throw new Error('itemObjs for MySwitchThing must have three elements');
|
||||||
|
}
|
||||||
|
this.subscribeTopics = [
|
||||||
|
`${this.topicFirstPart}/#`
|
||||||
|
];
|
||||||
|
}
|
||||||
|
processMessage(topic, payload) {
|
||||||
|
logger.info(`MyT: ${topic}, ${payload}`);
|
||||||
|
let buttonIdx = parseInt(topic.substring(this.topicFirstPart.length + 1));
|
||||||
|
if (buttonIdx >= 1 && buttonIdx <= 3) {
|
||||||
|
this.itemObjs[buttonIdx - 1].processMessage('', payload);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
logger.warn(`MyT: no handling available for ${topic}, ${buttonIdx}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.MySwitchThing = MySwitchThing;
|
||||||
|
//# sourceMappingURL=MySwitchThing.js.map
|
4
dist/TwoLedSignal.js
vendored
4
dist/TwoLedSignal.js
vendored
@ -60,7 +60,7 @@ class TwoLedSignal extends AItem_1.AItem {
|
|||||||
}
|
}
|
||||||
// logger.info(`DBG: TwoLedSignal ${item.getSignalState()}, ${reds}`)
|
// logger.info(`DBG: TwoLedSignal ${item.getSignalState()}, ${reds}`)
|
||||||
});
|
});
|
||||||
let msg = (reds > 0) ? "RED" : "GREEN";
|
let msg = (reds > 0) ? "red" : "green";
|
||||||
MqttDispatcher_1.mqttHandler.send(`${this.topicFirstPart}/led1`, msg);
|
MqttDispatcher_1.mqttHandler.send(`${this.topicFirstPart}/led1`, msg);
|
||||||
reds = 0;
|
reds = 0;
|
||||||
this.led2Items.forEach((item) => {
|
this.led2Items.forEach((item) => {
|
||||||
@ -70,7 +70,7 @@ class TwoLedSignal extends AItem_1.AItem {
|
|||||||
}
|
}
|
||||||
// logger.info(`DBG: TwoLedSignal ${item.getSignalState()}, ${reds}`)
|
// logger.info(`DBG: TwoLedSignal ${item.getSignalState()}, ${reds}`)
|
||||||
});
|
});
|
||||||
msg = (reds > 0) ? "RED" : "GREEN";
|
msg = (reds > 0) ? "red" : "green";
|
||||||
MqttDispatcher_1.mqttHandler.send(`${this.topicFirstPart}/led2`, msg);
|
MqttDispatcher_1.mqttHandler.send(`${this.topicFirstPart}/led2`, msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
50
dist/main.js
vendored
50
dist/main.js
vendored
@ -22,6 +22,7 @@ const TouchSwitchMultiButtonThing_1 = require("./TouchSwitchMultiButtonThing");
|
|||||||
const RelayBox_1 = require("./RelayBox");
|
const RelayBox_1 = require("./RelayBox");
|
||||||
const HeatingScene_1 = require("./HeatingScene");
|
const HeatingScene_1 = require("./HeatingScene");
|
||||||
const TwoLedSignal_1 = require("./TwoLedSignal");
|
const TwoLedSignal_1 = require("./TwoLedSignal");
|
||||||
|
const MySwitchThing_1 = require("./MySwitchThing");
|
||||||
logger.info("Dispatcher starting");
|
logger.info("Dispatcher starting");
|
||||||
let allLabeledItems = new Array();
|
let allLabeledItems = new Array();
|
||||||
let allThermostatItems = new Array();
|
let allThermostatItems = new Array();
|
||||||
@ -81,7 +82,7 @@ let matthiasSpeaker = new M433SwitchItem_1.M433SwitchItem('1st', 'Matthias', 'Sp
|
|||||||
matthiasSpeaker.start();
|
matthiasSpeaker.start();
|
||||||
allLabeledItems.push(matthiasSpeaker);
|
allLabeledItems.push(matthiasSpeaker);
|
||||||
allRelevantLights.push(matthiasSpeaker);
|
allRelevantLights.push(matthiasSpeaker);
|
||||||
let windowContactMatthias = new MaxWindowContact_1.MaxWindowContact('1st', 'Matthias', 'WindowContact', 'Fenster', 24);
|
let windowContactMatthias = new MaxWindowContact_1.MaxWindowContact('1st', 'Matthias', 'WindowContact', 'Fenster Matthias', 24);
|
||||||
windowContactMatthias.start();
|
windowContactMatthias.start();
|
||||||
allLabeledItems.push(windowContactMatthias);
|
allLabeledItems.push(windowContactMatthias);
|
||||||
allWindows.push(windowContactMatthias);
|
allWindows.push(windowContactMatthias);
|
||||||
@ -110,6 +111,19 @@ let diningRoomNaehkaestchenLight = new HueColorBulbItem_1.HueColorBulbItem('Gnd'
|
|||||||
diningRoomNaehkaestchenLight.start();
|
diningRoomNaehkaestchenLight.start();
|
||||||
allLabeledItems.push(diningRoomNaehkaestchenLight);
|
allLabeledItems.push(diningRoomNaehkaestchenLight);
|
||||||
allRelevantLights.push(diningRoomNaehkaestchenLight);
|
allRelevantLights.push(diningRoomNaehkaestchenLight);
|
||||||
|
let windowContactDiningRoom1 = new MaxWindowContact_1.MaxWindowContact('Gnd', 'DiningRoom', 'WindowContact1', 'Fenster Esszimmer Straße links', 26);
|
||||||
|
windowContactDiningRoom1.start();
|
||||||
|
allLabeledItems.push(windowContactDiningRoom1);
|
||||||
|
allWindows.push(windowContactDiningRoom1);
|
||||||
|
let windowContactDiningRoom2 = new MaxWindowContact_1.MaxWindowContact('Gnd', 'DiningRoom', 'WindowContact2', 'Fenster Esszimmer Straße rechts', 27);
|
||||||
|
windowContactDiningRoom2.start();
|
||||||
|
allLabeledItems.push(windowContactDiningRoom2);
|
||||||
|
allWindows.push(windowContactDiningRoom2);
|
||||||
|
let thermostatDiningRoom = new MaxThermostat_1.MaxThermostat('Gnd', 'DiningRoom', 'Thermostat', 'Thermostat Esszimmer', 31, [windowContactDiningRoom1, windowContactDiningRoom2]);
|
||||||
|
thermostatDiningRoom.start();
|
||||||
|
thermostatDiningRoom.setPresetTemperature(21.0);
|
||||||
|
allLabeledItems.push(thermostatDiningRoom);
|
||||||
|
allThermostatItems.push(thermostatDiningRoom);
|
||||||
// Wohnzimmer -----------------------------------------------------------------------------------------------
|
// Wohnzimmer -----------------------------------------------------------------------------------------------
|
||||||
// Wohnzimmer grosse Lampe 65557 24 1 65556 24 1
|
// Wohnzimmer grosse Lampe 65557 24 1 65556 24 1
|
||||||
let livingRoomLargeLight = new M433SwitchItem_1.M433SwitchItem('Gnd', 'LivingRoom', 'LargeLight', 'große Lampe Wohnzimmer', '65557 24 1', '65556 24 1');
|
let livingRoomLargeLight = new M433SwitchItem_1.M433SwitchItem('Gnd', 'LivingRoom', 'LargeLight', 'große Lampe Wohnzimmer', '65557 24 1', '65556 24 1');
|
||||||
@ -131,6 +145,19 @@ let livingRoomStandLight = new M433SwitchItem_1.M433SwitchItem('Gnd', 'LivingRoo
|
|||||||
livingRoomStandLight.start();
|
livingRoomStandLight.start();
|
||||||
allLabeledItems.push(livingRoomStandLight);
|
allLabeledItems.push(livingRoomStandLight);
|
||||||
allRelevantLights.push(livingRoomStandLight);
|
allRelevantLights.push(livingRoomStandLight);
|
||||||
|
let windowContactLivingRoom1 = new MaxWindowContact_1.MaxWindowContact('Gnd', 'LivingRoom', 'WindowContact1', 'Fenster Wohnzimmer Garten rechts', 28);
|
||||||
|
windowContactLivingRoom1.start();
|
||||||
|
allLabeledItems.push(windowContactLivingRoom1);
|
||||||
|
allWindows.push(windowContactLivingRoom1);
|
||||||
|
let windowContactLivingRoom2 = new MaxWindowContact_1.MaxWindowContact('Gnd', 'LivingRoom', 'WindowContact2', 'Fenster Wohnzimmer Garten links', 29);
|
||||||
|
windowContactLivingRoom2.start();
|
||||||
|
allLabeledItems.push(windowContactLivingRoom2);
|
||||||
|
allWindows.push(windowContactLivingRoom2);
|
||||||
|
let thermostatLivingRoom = new MaxThermostat_1.MaxThermostat('Gnd', 'LivingRoom', 'Thermostat', 'Thermostat Wohnzimmer', 30, [windowContactLivingRoom1, windowContactLivingRoom2]);
|
||||||
|
thermostatLivingRoom.start();
|
||||||
|
thermostatLivingRoom.setPresetTemperature(21.0);
|
||||||
|
allLabeledItems.push(thermostatLivingRoom);
|
||||||
|
allThermostatItems.push(thermostatLivingRoom);
|
||||||
// Flur -----------------------------------------------------------------------------------------------------
|
// Flur -----------------------------------------------------------------------------------------------------
|
||||||
// Flur Schreibtisch 83221 24 1 83220 24 1
|
// Flur Schreibtisch 83221 24 1 83220 24 1
|
||||||
let hallwayDeskLight = new M433SwitchItem_1.M433SwitchItem('Gnd', 'Hallway', 'DeskLight', 'Schreibtischlampe Flur', '83221 24 1', '83220 24 1');
|
let hallwayDeskLight = new M433SwitchItem_1.M433SwitchItem('Gnd', 'Hallway', 'DeskLight', 'Schreibtischlampe Flur', '83221 24 1', '83220 24 1');
|
||||||
@ -147,6 +174,20 @@ let hallwayWardrobeLight = new M433SwitchItem_1.M433SwitchItem('Gnd', 'Hallway',
|
|||||||
hallwayWardrobeLight.start();
|
hallwayWardrobeLight.start();
|
||||||
allLabeledItems.push(hallwayWardrobeLight);
|
allLabeledItems.push(hallwayWardrobeLight);
|
||||||
allRelevantLights.push(hallwayWardrobeLight);
|
allRelevantLights.push(hallwayWardrobeLight);
|
||||||
|
let windowContactHallway = new MaxWindowContact_1.MaxWindowContact('Gnd', 'Hallway', 'WindowContact', 'Fenster Flur', 25);
|
||||||
|
windowContactHallway.start();
|
||||||
|
allLabeledItems.push(windowContactHallway);
|
||||||
|
allWindows.push(windowContactHallway);
|
||||||
|
let thermostatHallway1 = new MaxThermostat_1.MaxThermostat('Gnd', 'Hallway', 'Thermostat1', 'Thermostat Flur vorne', 32, []);
|
||||||
|
thermostatHallway1.start();
|
||||||
|
thermostatHallway1.setPresetTemperature(19.0);
|
||||||
|
allLabeledItems.push(thermostatHallway1);
|
||||||
|
allThermostatItems.push(thermostatHallway1);
|
||||||
|
let thermostatHallway2 = new MaxThermostat_1.MaxThermostat('Gnd', 'Hallway', 'Thermostat2', 'Thermostat Flur hinten', 33, []);
|
||||||
|
thermostatHallway2.start();
|
||||||
|
thermostatHallway2.setPresetTemperature(5.0);
|
||||||
|
allLabeledItems.push(thermostatHallway2);
|
||||||
|
allThermostatItems.push(thermostatHallway2);
|
||||||
// Küche ----------------------------------------------------------------------------------------------------
|
// Küche ----------------------------------------------------------------------------------------------------
|
||||||
// Küche Fensterbank 66837 24 1 66836 24 1
|
// Küche Fensterbank 66837 24 1 66836 24 1
|
||||||
let kitchenWindowLight = new M433SwitchItem_1.M433SwitchItem('Gnd', 'Kitchen', 'WindowLight', 'Fensterbanklicht Küche', '66837 24 1', '66836 24 1');
|
let kitchenWindowLight = new M433SwitchItem_1.M433SwitchItem('Gnd', 'Kitchen', 'WindowLight', 'Fensterbanklicht Küche', '66837 24 1', '66836 24 1');
|
||||||
@ -182,6 +223,13 @@ let bedRoomWindowLight = new M433SwitchItem_1.M433SwitchItem('1st', 'BedRoom', '
|
|||||||
bedRoomWindowLight.start();
|
bedRoomWindowLight.start();
|
||||||
allLabeledItems.push(bedRoomWindowLight);
|
allLabeledItems.push(bedRoomWindowLight);
|
||||||
allRelevantLights.push(bedRoomWindowLight);
|
allRelevantLights.push(bedRoomWindowLight);
|
||||||
|
// MySwitchTHing
|
||||||
|
let mySwitchThingWolfgang = new MySwitchThing_1.MySwitchThing('1st', 'BedRoom', 'WolfgangsSwitch', [
|
||||||
|
new MySwitchThing_1.MySwitchSingleItem(bedRoomWolfgangBedLightDimmerAdaptor.getInTopic()),
|
||||||
|
new MySwitchThing_1.MySwitchSingleItem('IoT/InsLeere/1'),
|
||||||
|
new MySwitchThing_1.MySwitchSingleItem('IoT/InsLeere/2'),
|
||||||
|
]);
|
||||||
|
mySwitchThingWolfgang.start();
|
||||||
let windowContactBedroomStreet1st = new MaxWindowContact_1.MaxWindowContact('1st', 'Bedroom', 'WindowContactStreet', 'Fenster Schlafzimmer Strasse', 17);
|
let windowContactBedroomStreet1st = new MaxWindowContact_1.MaxWindowContact('1st', 'Bedroom', 'WindowContactStreet', 'Fenster Schlafzimmer Strasse', 17);
|
||||||
windowContactBedroomStreet1st.start();
|
windowContactBedroomStreet1st.start();
|
||||||
allLabeledItems.push(windowContactBedroomStreet1st);
|
allLabeledItems.push(windowContactBedroomStreet1st);
|
||||||
|
118
homekit.json
118
homekit.json
@ -105,7 +105,7 @@
|
|||||||
},
|
},
|
||||||
"1st_Matthias_WindowContact": {
|
"1st_Matthias_WindowContact": {
|
||||||
"id": "1st_Matthias_WindowContact",
|
"id": "1st_Matthias_WindowContact",
|
||||||
"name": "Fenster",
|
"name": "Fenster Matthias",
|
||||||
"service": "ContactSensor",
|
"service": "ContactSensor",
|
||||||
"topic": {
|
"topic": {
|
||||||
"statusContactSensorState": "dispatcher_ng/items/1st/Matthias/WindowContact/state/feedback"
|
"statusContactSensorState": "dispatcher_ng/items/1st/Matthias/WindowContact/state/feedback"
|
||||||
@ -165,6 +165,23 @@
|
|||||||
},
|
},
|
||||||
"config": {}
|
"config": {}
|
||||||
},
|
},
|
||||||
|
"Gnd_DiningRoom_ShelfLight": {
|
||||||
|
"id": "Gnd_DiningRoom_ShelfLight",
|
||||||
|
"name": "Regallicht Esszimmer",
|
||||||
|
"service": "Lightbulb",
|
||||||
|
"topic": {
|
||||||
|
"setOn": "dispatcher_ng/items/Gnd/DiningRoom/ShelfLight/state",
|
||||||
|
"statusOn": "dispatcher_ng/items/Gnd/DiningRoom/ShelfLight/state/feedback"
|
||||||
|
},
|
||||||
|
"payload": {
|
||||||
|
"onTrue": "ON",
|
||||||
|
"onFalse": "OFF",
|
||||||
|
"brightnessFactor": "",
|
||||||
|
"hueFactor": "",
|
||||||
|
"saturationFactor": ""
|
||||||
|
},
|
||||||
|
"config": {}
|
||||||
|
},
|
||||||
"Gnd_DiningRoom_NaehkaestchenLight": {
|
"Gnd_DiningRoom_NaehkaestchenLight": {
|
||||||
"id": "Gnd_DiningRoom_NaehkaestchenLight",
|
"id": "Gnd_DiningRoom_NaehkaestchenLight",
|
||||||
"name": "Lampe Naehkaestchen",
|
"name": "Lampe Naehkaestchen",
|
||||||
@ -191,6 +208,39 @@
|
|||||||
"saturationFactor": 1
|
"saturationFactor": 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"Gnd_DiningRoom_WindowContact1": {
|
||||||
|
"id": "Gnd_DiningRoom_WindowContact1",
|
||||||
|
"name": "Fenster Esszimmer Straße links",
|
||||||
|
"service": "ContactSensor",
|
||||||
|
"topic": {
|
||||||
|
"statusContactSensorState": "dispatcher_ng/items/Gnd/DiningRoom/WindowContact1/state/feedback"
|
||||||
|
},
|
||||||
|
"payload": {
|
||||||
|
"onContactDetected": "CLOSED"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Gnd_DiningRoom_WindowContact2": {
|
||||||
|
"id": "Gnd_DiningRoom_WindowContact2",
|
||||||
|
"name": "Fenster Esszimmer Straße rechts",
|
||||||
|
"service": "ContactSensor",
|
||||||
|
"topic": {
|
||||||
|
"statusContactSensorState": "dispatcher_ng/items/Gnd/DiningRoom/WindowContact2/state/feedback"
|
||||||
|
},
|
||||||
|
"payload": {
|
||||||
|
"onContactDetected": "CLOSED"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Gnd_DiningRoom_Thermostat": {
|
||||||
|
"id": "Gnd_DiningRoom_Thermostat",
|
||||||
|
"name": "Thermostat Esszimmer",
|
||||||
|
"service": "Thermostat",
|
||||||
|
"topic": {
|
||||||
|
"setTargetTemperature": "dispatcher_ng/items/Gnd/DiningRoom/Thermostat/temperature",
|
||||||
|
"statusTargetTemperature": "dispatcher_ng/items/Gnd/DiningRoom/Thermostat/temperature/feedback",
|
||||||
|
"statusCurrentTemperature": "dispatcher_ng/items/Gnd/DiningRoom/Thermostat/temperature/feedback"
|
||||||
|
},
|
||||||
|
"payload": {}
|
||||||
|
},
|
||||||
"Gnd_LivingRoom_LargeLight": {
|
"Gnd_LivingRoom_LargeLight": {
|
||||||
"id": "Gnd_LivingRoom_LargeLight",
|
"id": "Gnd_LivingRoom_LargeLight",
|
||||||
"name": "große Lampe Wohnzimmer",
|
"name": "große Lampe Wohnzimmer",
|
||||||
@ -259,6 +309,39 @@
|
|||||||
},
|
},
|
||||||
"config": {}
|
"config": {}
|
||||||
},
|
},
|
||||||
|
"Gnd_LivingRoom_WindowContact1": {
|
||||||
|
"id": "Gnd_LivingRoom_WindowContact1",
|
||||||
|
"name": "Fenster Wohnzimmer Garten rechts",
|
||||||
|
"service": "ContactSensor",
|
||||||
|
"topic": {
|
||||||
|
"statusContactSensorState": "dispatcher_ng/items/Gnd/LivingRoom/WindowContact1/state/feedback"
|
||||||
|
},
|
||||||
|
"payload": {
|
||||||
|
"onContactDetected": "CLOSED"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Gnd_LivingRoom_WindowContact2": {
|
||||||
|
"id": "Gnd_LivingRoom_WindowContact2",
|
||||||
|
"name": "Fenster Wohnzimmer Garten links",
|
||||||
|
"service": "ContactSensor",
|
||||||
|
"topic": {
|
||||||
|
"statusContactSensorState": "dispatcher_ng/items/Gnd/LivingRoom/WindowContact2/state/feedback"
|
||||||
|
},
|
||||||
|
"payload": {
|
||||||
|
"onContactDetected": "CLOSED"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Gnd_LivingRoom_Thermostat": {
|
||||||
|
"id": "Gnd_LivingRoom_Thermostat",
|
||||||
|
"name": "Thermostat Wohnzimmer",
|
||||||
|
"service": "Thermostat",
|
||||||
|
"topic": {
|
||||||
|
"setTargetTemperature": "dispatcher_ng/items/Gnd/LivingRoom/Thermostat/temperature",
|
||||||
|
"statusTargetTemperature": "dispatcher_ng/items/Gnd/LivingRoom/Thermostat/temperature/feedback",
|
||||||
|
"statusCurrentTemperature": "dispatcher_ng/items/Gnd/LivingRoom/Thermostat/temperature/feedback"
|
||||||
|
},
|
||||||
|
"payload": {}
|
||||||
|
},
|
||||||
"Gnd_Hallway_DeskLight": {
|
"Gnd_Hallway_DeskLight": {
|
||||||
"id": "Gnd_Hallway_DeskLight",
|
"id": "Gnd_Hallway_DeskLight",
|
||||||
"name": "Schreibtischlampe Flur",
|
"name": "Schreibtischlampe Flur",
|
||||||
@ -310,6 +393,39 @@
|
|||||||
},
|
},
|
||||||
"config": {}
|
"config": {}
|
||||||
},
|
},
|
||||||
|
"Gnd_Hallway_WindowContact": {
|
||||||
|
"id": "Gnd_Hallway_WindowContact",
|
||||||
|
"name": "Fenster Flur",
|
||||||
|
"service": "ContactSensor",
|
||||||
|
"topic": {
|
||||||
|
"statusContactSensorState": "dispatcher_ng/items/Gnd/Hallway/WindowContact/state/feedback"
|
||||||
|
},
|
||||||
|
"payload": {
|
||||||
|
"onContactDetected": "CLOSED"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Gnd_Hallway_Thermostat1": {
|
||||||
|
"id": "Gnd_Hallway_Thermostat1",
|
||||||
|
"name": "Thermostat Flur vorne",
|
||||||
|
"service": "Thermostat",
|
||||||
|
"topic": {
|
||||||
|
"setTargetTemperature": "dispatcher_ng/items/Gnd/Hallway/Thermostat1/temperature",
|
||||||
|
"statusTargetTemperature": "dispatcher_ng/items/Gnd/Hallway/Thermostat1/temperature/feedback",
|
||||||
|
"statusCurrentTemperature": "dispatcher_ng/items/Gnd/Hallway/Thermostat1/temperature/feedback"
|
||||||
|
},
|
||||||
|
"payload": {}
|
||||||
|
},
|
||||||
|
"Gnd_Hallway_Thermostat2": {
|
||||||
|
"id": "Gnd_Hallway_Thermostat2",
|
||||||
|
"name": "Thermostat Flur hinten",
|
||||||
|
"service": "Thermostat",
|
||||||
|
"topic": {
|
||||||
|
"setTargetTemperature": "dispatcher_ng/items/Gnd/Hallway/Thermostat2/temperature",
|
||||||
|
"statusTargetTemperature": "dispatcher_ng/items/Gnd/Hallway/Thermostat2/temperature/feedback",
|
||||||
|
"statusCurrentTemperature": "dispatcher_ng/items/Gnd/Hallway/Thermostat2/temperature/feedback"
|
||||||
|
},
|
||||||
|
"payload": {}
|
||||||
|
},
|
||||||
"Gnd_Kitchen_WindowLight": {
|
"Gnd_Kitchen_WindowLight": {
|
||||||
"id": "Gnd_Kitchen_WindowLight",
|
"id": "Gnd_Kitchen_WindowLight",
|
||||||
"name": "Fensterbanklicht Küche",
|
"name": "Fensterbanklicht Küche",
|
||||||
|
@ -6,18 +6,32 @@ Number Preset_1st_Anna_Thermostat "Preset_Thermostat Anna [%.1f °C]" {mqtt=">[l
|
|||||||
Switch 1st_Matthias_StandLight "Stehlampen Matthias"{mqtt=">[localbroker:dispatcher_ng/items/1st/Matthias/StandLight/state:command:*:default],<[localbroker:dispatcher_ng/items/1st/Matthias/StandLight/state/feedback:state:default]"}
|
Switch 1st_Matthias_StandLight "Stehlampen Matthias"{mqtt=">[localbroker:dispatcher_ng/items/1st/Matthias/StandLight/state:command:*:default],<[localbroker:dispatcher_ng/items/1st/Matthias/StandLight/state/feedback:state:default]"}
|
||||||
Switch 1st_Matthias_BedLight "Bettlicht Matthias"{mqtt=">[localbroker:dispatcher_ng/items/1st/Matthias/BedLight/state:command:*:default],<[localbroker:dispatcher_ng/items/1st/Matthias/BedLight/state/feedback:state:default]"}
|
Switch 1st_Matthias_BedLight "Bettlicht Matthias"{mqtt=">[localbroker:dispatcher_ng/items/1st/Matthias/BedLight/state:command:*:default],<[localbroker:dispatcher_ng/items/1st/Matthias/BedLight/state/feedback:state:default]"}
|
||||||
Switch 1st_Matthias_Speaker "Lautsprecher Matthias"{mqtt=">[localbroker:dispatcher_ng/items/1st/Matthias/Speaker/state:command:*:default],<[localbroker:dispatcher_ng/items/1st/Matthias/Speaker/state/feedback:state:default]"}
|
Switch 1st_Matthias_Speaker "Lautsprecher Matthias"{mqtt=">[localbroker:dispatcher_ng/items/1st/Matthias/Speaker/state:command:*:default],<[localbroker:dispatcher_ng/items/1st/Matthias/Speaker/state/feedback:state:default]"}
|
||||||
Contact 1st_Matthias_WindowContact "Fenster" {mqtt="<[localbroker:dispatcher_ng/items/1st/Matthias/WindowContact/state/feedback:state:default]"}
|
Contact 1st_Matthias_WindowContact "Fenster Matthias" {mqtt="<[localbroker:dispatcher_ng/items/1st/Matthias/WindowContact/state/feedback:state:default]"}
|
||||||
Switch Gnd_DiningRoom_SmallLight "kleine Lampe Esszimmer"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/DiningRoom/SmallLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/DiningRoom/SmallLight/state/feedback:state:default]"}
|
Switch Gnd_DiningRoom_SmallLight "kleine Lampe Esszimmer"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/DiningRoom/SmallLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/DiningRoom/SmallLight/state/feedback:state:default]"}
|
||||||
Switch Gnd_DiningRoom_StandLight "Stehlampe Esszimmer"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/DiningRoom/StandLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/DiningRoom/StandLight/state/feedback:state:default]"}
|
Switch Gnd_DiningRoom_StandLight "Stehlampe Esszimmer"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/DiningRoom/StandLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/DiningRoom/StandLight/state/feedback:state:default]"}
|
||||||
Switch Gnd_DiningRoom_CupboardLight "Schranklicht Esszimmer"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/DiningRoom/CupboardLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/DiningRoom/CupboardLight/state/feedback:state:default]"}
|
Switch Gnd_DiningRoom_CupboardLight "Schranklicht Esszimmer"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/DiningRoom/CupboardLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/DiningRoom/CupboardLight/state/feedback:state:default]"}
|
||||||
|
Switch Gnd_DiningRoom_ShelfLight "Regallicht Esszimmer"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/DiningRoom/ShelfLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/DiningRoom/ShelfLight/state/feedback:state:default]"}
|
||||||
|
|
||||||
|
Contact Gnd_DiningRoom_WindowContact1 "Fenster Esszimmer Straße links" {mqtt="<[localbroker:dispatcher_ng/items/Gnd/DiningRoom/WindowContact1/state/feedback:state:default]"}
|
||||||
|
Contact Gnd_DiningRoom_WindowContact2 "Fenster Esszimmer Straße rechts" {mqtt="<[localbroker:dispatcher_ng/items/Gnd/DiningRoom/WindowContact2/state/feedback:state:default]"}
|
||||||
|
Number Gnd_DiningRoom_Thermostat "Thermostat Esszimmer [%.1f °C]" {mqtt=">[localbroker:dispatcher_ng/items/Gnd/DiningRoom/Thermostat/temperature:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/DiningRoom/Thermostat/temperature/feedback:state:default]"}
|
||||||
|
Number Preset_Gnd_DiningRoom_Thermostat "Preset_Thermostat Esszimmer [%.1f °C]" {mqtt=">[localbroker:dispatcher_ng/items/Gnd/DiningRoom/Thermostat/presetTemperature:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/DiningRoom/Thermostat/presetTemperature/feedback:state:default]"}
|
||||||
Switch Gnd_LivingRoom_LargeLight "große Lampe Wohnzimmer"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/LivingRoom/LargeLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/LivingRoom/LargeLight/state/feedback:state:default]"}
|
Switch Gnd_LivingRoom_LargeLight "große Lampe Wohnzimmer"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/LivingRoom/LargeLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/LivingRoom/LargeLight/state/feedback:state:default]"}
|
||||||
Switch Gnd_LivingRoom_SmallLight "kleine Lampe Wohnzimmer"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/LivingRoom/SmallLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/LivingRoom/SmallLight/state/feedback:state:default]"}
|
Switch Gnd_LivingRoom_SmallLight "kleine Lampe Wohnzimmer"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/LivingRoom/SmallLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/LivingRoom/SmallLight/state/feedback:state:default]"}
|
||||||
Switch Gnd_LivingRoom_Stars "Sterne Wohnzimmer"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/LivingRoom/Stars/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/LivingRoom/Stars/state/feedback:state:default]"}
|
Switch Gnd_LivingRoom_Stars "Sterne Wohnzimmer"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/LivingRoom/Stars/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/LivingRoom/Stars/state/feedback:state:default]"}
|
||||||
Switch Gnd_LivingRoom_StandLight "Stehlampe Wohnzimmer"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/LivingRoom/StandLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/LivingRoom/StandLight/state/feedback:state:default]"}
|
Switch Gnd_LivingRoom_StandLight "Stehlampe Wohnzimmer"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/LivingRoom/StandLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/LivingRoom/StandLight/state/feedback:state:default]"}
|
||||||
|
Contact Gnd_LivingRoom_WindowContact1 "Fenster Wohnzimmer Garten rechts" {mqtt="<[localbroker:dispatcher_ng/items/Gnd/LivingRoom/WindowContact1/state/feedback:state:default]"}
|
||||||
|
Contact Gnd_LivingRoom_WindowContact2 "Fenster Wohnzimmer Garten links" {mqtt="<[localbroker:dispatcher_ng/items/Gnd/LivingRoom/WindowContact2/state/feedback:state:default]"}
|
||||||
|
Number Gnd_LivingRoom_Thermostat "Thermostat Wohnzimmer [%.1f °C]" {mqtt=">[localbroker:dispatcher_ng/items/Gnd/LivingRoom/Thermostat/temperature:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/LivingRoom/Thermostat/temperature/feedback:state:default]"}
|
||||||
|
Number Preset_Gnd_LivingRoom_Thermostat "Preset_Thermostat Wohnzimmer [%.1f °C]" {mqtt=">[localbroker:dispatcher_ng/items/Gnd/LivingRoom/Thermostat/presetTemperature:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/LivingRoom/Thermostat/presetTemperature/feedback:state:default]"}
|
||||||
Switch Gnd_Hallway_DeskLight "Schreibtischlampe Flur"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/Hallway/DeskLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Hallway/DeskLight/state/feedback:state:default]"}
|
Switch Gnd_Hallway_DeskLight "Schreibtischlampe Flur"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/Hallway/DeskLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Hallway/DeskLight/state/feedback:state:default]"}
|
||||||
Switch Gnd_Hallway_StandLight "Stehlampe Flur"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/Hallway/StandLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Hallway/StandLight/state/feedback:state:default]"}
|
Switch Gnd_Hallway_StandLight "Stehlampe Flur"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/Hallway/StandLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Hallway/StandLight/state/feedback:state:default]"}
|
||||||
Switch Gnd_Hallway_WardrobeLight "Schranklicht Flur"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/Hallway/WardrobeLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Hallway/WardrobeLight/state/feedback:state:default]"}
|
Switch Gnd_Hallway_WardrobeLight "Schranklicht Flur"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/Hallway/WardrobeLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Hallway/WardrobeLight/state/feedback:state:default]"}
|
||||||
|
Contact Gnd_Hallway_WindowContact "Fenster Flur" {mqtt="<[localbroker:dispatcher_ng/items/Gnd/Hallway/WindowContact/state/feedback:state:default]"}
|
||||||
|
Number Gnd_Hallway_Thermostat1 "Thermostat Flur vorne [%.1f °C]" {mqtt=">[localbroker:dispatcher_ng/items/Gnd/Hallway/Thermostat1/temperature:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Hallway/Thermostat1/temperature/feedback:state:default]"}
|
||||||
|
Number Preset_Gnd_Hallway_Thermostat1 "Preset_Thermostat Flur vorne [%.1f °C]" {mqtt=">[localbroker:dispatcher_ng/items/Gnd/Hallway/Thermostat1/presetTemperature:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Hallway/Thermostat1/presetTemperature/feedback:state:default]"}
|
||||||
|
Number Gnd_Hallway_Thermostat2 "Thermostat Flur hinten [%.1f °C]" {mqtt=">[localbroker:dispatcher_ng/items/Gnd/Hallway/Thermostat2/temperature:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Hallway/Thermostat2/temperature/feedback:state:default]"}
|
||||||
|
Number Preset_Gnd_Hallway_Thermostat2 "Preset_Thermostat Flur hinten [%.1f °C]" {mqtt=">[localbroker:dispatcher_ng/items/Gnd/Hallway/Thermostat2/presetTemperature:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Hallway/Thermostat2/presetTemperature/feedback:state:default]"}
|
||||||
Switch Gnd_Kitchen_WindowLight "Fensterbanklicht Küche"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/Kitchen/WindowLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Kitchen/WindowLight/state/feedback:state:default]"}
|
Switch Gnd_Kitchen_WindowLight "Fensterbanklicht Küche"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/Kitchen/WindowLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Kitchen/WindowLight/state/feedback:state:default]"}
|
||||||
Switch Gnd_Kitchen_CeilingLight "Deckenlampe Küche"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/Kitchen/CeilingLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Kitchen/CeilingLight/state/feedback:state:default]"}
|
Switch Gnd_Kitchen_CeilingLight "Deckenlampe Küche"{mqtt=">[localbroker:dispatcher_ng/items/Gnd/Kitchen/CeilingLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Kitchen/CeilingLight/state/feedback:state:default]"}
|
||||||
Switch 1st_BedRoom_WolfgangsSide "Wolfgangs Seite Schlafzimmer"{mqtt=">[localbroker:dispatcher_ng/items/1st/BedRoom/WolfgangsSide/state:command:*:default],<[localbroker:dispatcher_ng/items/1st/BedRoom/WolfgangsSide/state/feedback:state:default]"}
|
Switch 1st_BedRoom_WolfgangsSide "Wolfgangs Seite Schlafzimmer"{mqtt=">[localbroker:dispatcher_ng/items/1st/BedRoom/WolfgangsSide/state:command:*:default],<[localbroker:dispatcher_ng/items/1st/BedRoom/WolfgangsSide/state/feedback:state:default]"}
|
||||||
|
56
src/MySwitchThing.ts
Normal file
56
src/MySwitchThing.ts
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
import * as logger from './log'
|
||||||
|
import { mqttHandler } from './MqttDispatcher'
|
||||||
|
import { AItem } from './AItem'
|
||||||
|
|
||||||
|
export class MySwitchSingleItem {
|
||||||
|
private actionTopic: string
|
||||||
|
|
||||||
|
constructor(actionTopic: string) {
|
||||||
|
this.actionTopic = actionTopic
|
||||||
|
}
|
||||||
|
|
||||||
|
processMessage(topic: string, payload: string) {
|
||||||
|
switch(payload) {
|
||||||
|
case 'PRESS_SHORT':
|
||||||
|
mqttHandler.send(this.actionTopic, 'SHORT', true)
|
||||||
|
break
|
||||||
|
case 'PRESS_LONG':
|
||||||
|
case 'PRESS_CONT':
|
||||||
|
mqttHandler.send(this.actionTopic, 'LONG_HOLD', true)
|
||||||
|
break
|
||||||
|
case 'PRESS_LONG_RELEASE':
|
||||||
|
mqttHandler.send(this.actionTopic, 'LONG_END', true)
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
logger.warn(`HM4BSI: no handling available for ${topic}`)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class MySwitchThing extends AItem {
|
||||||
|
private itemObjs: MySwitchSingleItem[]
|
||||||
|
|
||||||
|
constructor(floor: string, room: string, item: string, itemObjs: MySwitchSingleItem[]) {
|
||||||
|
super(floor, room, item, '')
|
||||||
|
this.itemObjs = itemObjs
|
||||||
|
if (this.itemObjs.length != 3) {
|
||||||
|
throw new Error('itemObjs for MySwitchThing must have three elements')
|
||||||
|
}
|
||||||
|
this.subscribeTopics = [
|
||||||
|
`${this.topicFirstPart}/#`
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
processMessage(topic: string, payload: string) {
|
||||||
|
logger.info(`MyT: ${topic}, ${payload}`)
|
||||||
|
let buttonIdx = parseInt(topic.substring(this.topicFirstPart.length+1))
|
||||||
|
if (buttonIdx >= 1 && buttonIdx <= 3) {
|
||||||
|
this.itemObjs[buttonIdx-1].processMessage('', payload)
|
||||||
|
} else {
|
||||||
|
logger.warn(`MyT: no handling available for ${topic}, ${buttonIdx}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -73,7 +73,7 @@ export class TwoLedSignal extends AItem {
|
|||||||
}
|
}
|
||||||
// logger.info(`DBG: TwoLedSignal ${item.getSignalState()}, ${reds}`)
|
// logger.info(`DBG: TwoLedSignal ${item.getSignalState()}, ${reds}`)
|
||||||
})
|
})
|
||||||
let msg = (reds > 0) ? "RED" : "GREEN"
|
let msg = (reds > 0) ? "red" : "green"
|
||||||
mqttHandler.send(`${this.topicFirstPart}/led1`, msg)
|
mqttHandler.send(`${this.topicFirstPart}/led1`, msg)
|
||||||
|
|
||||||
reds = 0
|
reds = 0
|
||||||
@ -84,7 +84,7 @@ export class TwoLedSignal extends AItem {
|
|||||||
}
|
}
|
||||||
// logger.info(`DBG: TwoLedSignal ${item.getSignalState()}, ${reds}`)
|
// logger.info(`DBG: TwoLedSignal ${item.getSignalState()}, ${reds}`)
|
||||||
})
|
})
|
||||||
msg = (reds > 0) ? "RED" : "GREEN"
|
msg = (reds > 0) ? "red" : "green"
|
||||||
mqttHandler.send(`${this.topicFirstPart}/led2`, msg)
|
mqttHandler.send(`${this.topicFirstPart}/led2`, msg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
56
src/main.ts
56
src/main.ts
@ -24,6 +24,8 @@ import { TouchSwitchMultiButtonThing, TouchSwitchButtonSingleItem } from './Touc
|
|||||||
import { RelayBoxThing } from './RelayBox'
|
import { RelayBoxThing } from './RelayBox'
|
||||||
import { HeatingScene } from './HeatingScene'
|
import { HeatingScene } from './HeatingScene'
|
||||||
import { TwoLedSignal } from './TwoLedSignal'
|
import { TwoLedSignal } from './TwoLedSignal'
|
||||||
|
import { MySwitchThing, MySwitchSingleItem } from './MySwitchThing'
|
||||||
|
|
||||||
|
|
||||||
logger.info("Dispatcher starting")
|
logger.info("Dispatcher starting")
|
||||||
|
|
||||||
@ -100,7 +102,7 @@ matthiasSpeaker.start()
|
|||||||
allLabeledItems.push(matthiasSpeaker)
|
allLabeledItems.push(matthiasSpeaker)
|
||||||
allRelevantLights.push(matthiasSpeaker)
|
allRelevantLights.push(matthiasSpeaker)
|
||||||
|
|
||||||
let windowContactMatthias = new MaxWindowContact('1st', 'Matthias', 'WindowContact', 'Fenster', 24)
|
let windowContactMatthias = new MaxWindowContact('1st', 'Matthias', 'WindowContact', 'Fenster Matthias', 24)
|
||||||
windowContactMatthias.start()
|
windowContactMatthias.start()
|
||||||
allLabeledItems.push(windowContactMatthias)
|
allLabeledItems.push(windowContactMatthias)
|
||||||
allWindows.push(windowContactMatthias)
|
allWindows.push(windowContactMatthias)
|
||||||
@ -137,6 +139,21 @@ diningRoomNaehkaestchenLight.start()
|
|||||||
allLabeledItems.push(diningRoomNaehkaestchenLight)
|
allLabeledItems.push(diningRoomNaehkaestchenLight)
|
||||||
allRelevantLights.push(diningRoomNaehkaestchenLight)
|
allRelevantLights.push(diningRoomNaehkaestchenLight)
|
||||||
|
|
||||||
|
let windowContactDiningRoom1 = new MaxWindowContact('Gnd', 'DiningRoom', 'WindowContact1', 'Fenster Esszimmer Straße links', 26)
|
||||||
|
windowContactDiningRoom1.start()
|
||||||
|
allLabeledItems.push(windowContactDiningRoom1)
|
||||||
|
allWindows.push(windowContactDiningRoom1)
|
||||||
|
let windowContactDiningRoom2 = new MaxWindowContact('Gnd', 'DiningRoom', 'WindowContact2', 'Fenster Esszimmer Straße rechts', 27)
|
||||||
|
windowContactDiningRoom2.start()
|
||||||
|
allLabeledItems.push(windowContactDiningRoom2)
|
||||||
|
allWindows.push(windowContactDiningRoom2)
|
||||||
|
|
||||||
|
let thermostatDiningRoom = new MaxThermostat('Gnd', 'DiningRoom', 'Thermostat', 'Thermostat Esszimmer', 31, [windowContactDiningRoom1, windowContactDiningRoom2])
|
||||||
|
thermostatDiningRoom.start()
|
||||||
|
thermostatDiningRoom.setPresetTemperature(21.0)
|
||||||
|
allLabeledItems.push(thermostatDiningRoom)
|
||||||
|
allThermostatItems.push(thermostatDiningRoom)
|
||||||
|
|
||||||
// Wohnzimmer -----------------------------------------------------------------------------------------------
|
// Wohnzimmer -----------------------------------------------------------------------------------------------
|
||||||
// Wohnzimmer grosse Lampe 65557 24 1 65556 24 1
|
// Wohnzimmer grosse Lampe 65557 24 1 65556 24 1
|
||||||
let livingRoomLargeLight = new M433SwitchItem('Gnd', 'LivingRoom', 'LargeLight', 'große Lampe Wohnzimmer', '65557 24 1', '65556 24 1')
|
let livingRoomLargeLight = new M433SwitchItem('Gnd', 'LivingRoom', 'LargeLight', 'große Lampe Wohnzimmer', '65557 24 1', '65556 24 1')
|
||||||
@ -162,6 +179,20 @@ livingRoomStandLight.start()
|
|||||||
allLabeledItems.push(livingRoomStandLight)
|
allLabeledItems.push(livingRoomStandLight)
|
||||||
allRelevantLights.push(livingRoomStandLight)
|
allRelevantLights.push(livingRoomStandLight)
|
||||||
|
|
||||||
|
let windowContactLivingRoom1 = new MaxWindowContact('Gnd', 'LivingRoom', 'WindowContact1', 'Fenster Wohnzimmer Garten rechts', 28)
|
||||||
|
windowContactLivingRoom1.start()
|
||||||
|
allLabeledItems.push(windowContactLivingRoom1)
|
||||||
|
allWindows.push(windowContactLivingRoom1)
|
||||||
|
let windowContactLivingRoom2 = new MaxWindowContact('Gnd', 'LivingRoom', 'WindowContact2', 'Fenster Wohnzimmer Garten links', 29)
|
||||||
|
windowContactLivingRoom2.start()
|
||||||
|
allLabeledItems.push(windowContactLivingRoom2)
|
||||||
|
allWindows.push(windowContactLivingRoom2)
|
||||||
|
|
||||||
|
let thermostatLivingRoom = new MaxThermostat('Gnd', 'LivingRoom', 'Thermostat', 'Thermostat Wohnzimmer', 30, [windowContactLivingRoom1, windowContactLivingRoom2])
|
||||||
|
thermostatLivingRoom.start()
|
||||||
|
thermostatLivingRoom.setPresetTemperature(21.0)
|
||||||
|
allLabeledItems.push(thermostatLivingRoom)
|
||||||
|
allThermostatItems.push(thermostatLivingRoom)
|
||||||
|
|
||||||
// Flur -----------------------------------------------------------------------------------------------------
|
// Flur -----------------------------------------------------------------------------------------------------
|
||||||
// Flur Schreibtisch 83221 24 1 83220 24 1
|
// Flur Schreibtisch 83221 24 1 83220 24 1
|
||||||
@ -182,6 +213,22 @@ hallwayWardrobeLight.start()
|
|||||||
allLabeledItems.push(hallwayWardrobeLight)
|
allLabeledItems.push(hallwayWardrobeLight)
|
||||||
allRelevantLights.push(hallwayWardrobeLight)
|
allRelevantLights.push(hallwayWardrobeLight)
|
||||||
|
|
||||||
|
let windowContactHallway = new MaxWindowContact('Gnd', 'Hallway', 'WindowContact', 'Fenster Flur', 25)
|
||||||
|
windowContactHallway.start()
|
||||||
|
allLabeledItems.push(windowContactHallway)
|
||||||
|
allWindows.push(windowContactHallway)
|
||||||
|
|
||||||
|
let thermostatHallway1 = new MaxThermostat('Gnd', 'Hallway', 'Thermostat1', 'Thermostat Flur vorne', 32, [])
|
||||||
|
thermostatHallway1.start()
|
||||||
|
thermostatHallway1.setPresetTemperature(19.0)
|
||||||
|
allLabeledItems.push(thermostatHallway1)
|
||||||
|
allThermostatItems.push(thermostatHallway1)
|
||||||
|
|
||||||
|
let thermostatHallway2 = new MaxThermostat('Gnd', 'Hallway', 'Thermostat2', 'Thermostat Flur hinten', 33, [])
|
||||||
|
thermostatHallway2.start()
|
||||||
|
thermostatHallway2.setPresetTemperature(5.0)
|
||||||
|
allLabeledItems.push(thermostatHallway2)
|
||||||
|
allThermostatItems.push(thermostatHallway2)
|
||||||
|
|
||||||
// Küche ----------------------------------------------------------------------------------------------------
|
// Küche ----------------------------------------------------------------------------------------------------
|
||||||
// Küche Fensterbank 66837 24 1 66836 24 1
|
// Küche Fensterbank 66837 24 1 66836 24 1
|
||||||
@ -228,6 +275,13 @@ bedRoomWindowLight.start()
|
|||||||
allLabeledItems.push(bedRoomWindowLight)
|
allLabeledItems.push(bedRoomWindowLight)
|
||||||
allRelevantLights.push(bedRoomWindowLight)
|
allRelevantLights.push(bedRoomWindowLight)
|
||||||
|
|
||||||
|
// MySwitchTHing
|
||||||
|
let mySwitchThingWolfgang = new MySwitchThing('1st', 'BedRoom', 'WolfgangsSwitch', [
|
||||||
|
new MySwitchSingleItem(bedRoomWolfgangBedLightDimmerAdaptor.getInTopic()),
|
||||||
|
new MySwitchSingleItem('IoT/InsLeere/1'),
|
||||||
|
new MySwitchSingleItem('IoT/InsLeere/2'),
|
||||||
|
])
|
||||||
|
mySwitchThingWolfgang.start()
|
||||||
|
|
||||||
|
|
||||||
let windowContactBedroomStreet1st = new MaxWindowContact('1st', 'Bedroom', 'WindowContactStreet', 'Fenster Schlafzimmer Strasse', 17)
|
let windowContactBedroomStreet1st = new MaxWindowContact('1st', 'Bedroom', 'WindowContactStreet', 'Fenster Schlafzimmer Strasse', 17)
|
||||||
|
Reference in New Issue
Block a user