From e1088083dee74d140b968889e2fa534cd2c03643 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Fri, 27 Apr 2018 22:52:38 +0200 Subject: [PATCH] some more window contacts --- dispatcher.service | 18 +++++++++++ dist/TwoLedSignal.js | 4 +-- dist/main.js | 22 ++++++++++++- homekit.json | 74 +++++++++++++++++++++++++++++++++++++++++++- openhab.items | 8 ++++- src/main.ts | 25 ++++++++++++++- 6 files changed, 145 insertions(+), 6 deletions(-) create mode 100755 dispatcher.service diff --git a/dispatcher.service b/dispatcher.service new file mode 100755 index 0000000..ecf1414 --- /dev/null +++ b/dispatcher.service @@ -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 + diff --git a/dist/TwoLedSignal.js b/dist/TwoLedSignal.js index 1a059a4..6c4af34 100644 --- a/dist/TwoLedSignal.js +++ b/dist/TwoLedSignal.js @@ -60,7 +60,7 @@ class TwoLedSignal extends AItem_1.AItem { } // 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); reds = 0; this.led2Items.forEach((item) => { @@ -70,7 +70,7 @@ class TwoLedSignal extends AItem_1.AItem { } // 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); } } diff --git a/dist/main.js b/dist/main.js index cd4dc55..06cd202 100644 --- a/dist/main.js +++ b/dist/main.js @@ -81,7 +81,7 @@ let matthiasSpeaker = new M433SwitchItem_1.M433SwitchItem('1st', 'Matthias', 'Sp matthiasSpeaker.start(); allLabeledItems.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(); allLabeledItems.push(windowContactMatthias); allWindows.push(windowContactMatthias); @@ -110,6 +110,14 @@ let diningRoomNaehkaestchenLight = new HueColorBulbItem_1.HueColorBulbItem('Gnd' diningRoomNaehkaestchenLight.start(); allLabeledItems.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); // Wohnzimmer ----------------------------------------------------------------------------------------------- // 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'); @@ -131,6 +139,14 @@ let livingRoomStandLight = new M433SwitchItem_1.M433SwitchItem('Gnd', 'LivingRoo livingRoomStandLight.start(); allLabeledItems.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); // Flur ----------------------------------------------------------------------------------------------------- // 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'); @@ -147,6 +163,10 @@ let hallwayWardrobeLight = new M433SwitchItem_1.M433SwitchItem('Gnd', 'Hallway', hallwayWardrobeLight.start(); allLabeledItems.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); // Küche ---------------------------------------------------------------------------------------------------- // 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'); diff --git a/homekit.json b/homekit.json index 2625b76..6b3183a 100644 --- a/homekit.json +++ b/homekit.json @@ -105,7 +105,7 @@ }, "1st_Matthias_WindowContact": { "id": "1st_Matthias_WindowContact", - "name": "Fenster", + "name": "Fenster Matthias", "service": "ContactSensor", "topic": { "statusContactSensorState": "dispatcher_ng/items/1st/Matthias/WindowContact/state/feedback" @@ -165,6 +165,23 @@ }, "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": { "id": "Gnd_DiningRoom_NaehkaestchenLight", "name": "Lampe Naehkaestchen", @@ -191,6 +208,28 @@ "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_LivingRoom_LargeLight": { "id": "Gnd_LivingRoom_LargeLight", "name": "große Lampe Wohnzimmer", @@ -259,6 +298,28 @@ }, "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_Hallway_DeskLight": { "id": "Gnd_Hallway_DeskLight", "name": "Schreibtischlampe Flur", @@ -310,6 +371,17 @@ }, "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_Kitchen_WindowLight": { "id": "Gnd_Kitchen_WindowLight", "name": "Fensterbanklicht Küche", diff --git a/openhab.items b/openhab.items index 97fac32..ce8f579 100644 --- a/openhab.items +++ b/openhab.items @@ -6,18 +6,24 @@ 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_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]"} -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_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_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]"} 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_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]"} +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]"} 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_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]"} 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 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]"} diff --git a/src/main.ts b/src/main.ts index e20dbc2..275c4a8 100644 --- a/src/main.ts +++ b/src/main.ts @@ -100,7 +100,7 @@ matthiasSpeaker.start() allLabeledItems.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() allLabeledItems.push(windowContactMatthias) allWindows.push(windowContactMatthias) @@ -137,6 +137,16 @@ diningRoomNaehkaestchenLight.start() allLabeledItems.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) + + // Wohnzimmer ----------------------------------------------------------------------------------------------- // 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') @@ -162,6 +172,14 @@ livingRoomStandLight.start() allLabeledItems.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) // Flur ----------------------------------------------------------------------------------------------------- // Flur Schreibtisch 83221 24 1 83220 24 1 @@ -182,6 +200,11 @@ hallwayWardrobeLight.start() allLabeledItems.push(hallwayWardrobeLight) allRelevantLights.push(hallwayWardrobeLight) +let windowContactHallway = new MaxWindowContact('Gnd', 'Hallway', 'WindowContact', 'Fenster Flur', 25) +windowContactHallway.start() +allLabeledItems.push(windowContactHallway) +allWindows.push(windowContactHallway) + // Küche ---------------------------------------------------------------------------------------------------- // Küche Fensterbank 66837 24 1 66836 24 1