From e6a12e42152323c10244c8c33e7510f029fb72fa Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Tue, 6 Mar 2018 12:20:01 +0100 Subject: [PATCH] change cron to numbers --- dist/Export.js | 6 +++++- dist/main.js | 14 ++++++++++++++ homekit.json | 11 +++++++++++ openhab.items | 19 ++++++++++--------- src/main.ts | 44 ++++++++++++++++++++++++++++++-------------- 5 files changed, 70 insertions(+), 24 deletions(-) diff --git a/dist/Export.js b/dist/Export.js index 888e7d2..1b181cd 100644 --- a/dist/Export.js +++ b/dist/Export.js @@ -21,7 +21,7 @@ function ThermostatExport(itemId, label, temperatureTopic, temperatureFeedbackTo } exports.ThermostatExport = ThermostatExport; function ContactExport(itemId, label, status) { - return { 'homekit': ContactHomekitExport(itemId, label, status), 'openhab': '' }; + return { 'homekit': ContactHomekitExport(itemId, label, status), 'openhab': ContactOpenHABExport(itemId, label, status) }; } exports.ContactExport = ContactExport; function HueColorLightExport(itemId, label, stateTopic, stateFeedbackTopic, brightnessTopic, brightnessFeedbackTopic, hueTopic, hueFeedbackTopic, saturationTopic, saturationFeedbackTopic, colorTemperatureTopic, colorTemperatureFeedbackTopic) { @@ -97,6 +97,10 @@ function SwitchOpenHABExport(id, label, setOn, statusOn) { // Switch windowLightKitchen {mqtt=">[localbroker:nodered/items/windowLightKitchen:command:*:default]", mqtt="<[localbroker:nodered/items/windowLightKitchen/feedback:state:default]"} return `Switch ${id} {mqtt=">[localbroker:${setOn}:command:*:default],<[localbroker:${statusOn}:state:default]"}`; } +function ContactOpenHABExport(id, label, status) { + // Switch windowLightKitchen {mqtt=">[localbroker:nodered/items/windowLightKitchen:command:*:default]", mqtt="<[localbroker:nodered/items/windowLightKitchen/feedback:state:default]"} + return `Switch ${id} {mqtt="<[localbroker:${status}:state:default]"}`; +} function ThermostatOpenHAPExport(id, label, setTemperature, statusTemperature) { return `Number ${id} {mqtt=">[localbroker:${setTemperature}:command:*:default],<[localbroker:${statusTemperature}:state:default]"}`; } diff --git a/dist/main.js b/dist/main.js index 4ffee92..ebb3187 100644 --- a/dist/main.js +++ b/dist/main.js @@ -41,6 +41,20 @@ allLabeledItems.push(annaBedLight); let windowContactAnna1st = new MaxWindowContact_1.MaxWindowContact('1st', 'Anna', 'WindowContact', 'Fenster Anna', 20); windowContactAnna1st.start(); allLabeledItems.push(windowContactAnna1st); +let thermostatAnna1st = new MaxThermostat_1.MaxThermostat('1st', 'Anna', 'Thermostat', 'Thermostat Anna', 21, [windowContactAnna1st]); +thermostatAnna1st.start(); +allLabeledItems.push(thermostatAnna1st); +let thermostatAnna1stCron = new Cron_1.Cron('thermostatAnna1stCron', thermostatAnna1st, [ + { cronTime: '00 05 06 * * *', output: '23.0' }, + { cronTime: '00 05 08 * * mon-fri', output: '5.0' }, + { cronTime: '00 05 16 * * mon', output: '23.0' }, + { cronTime: '00 05 14 * * tue', output: '23.0' }, + { cronTime: '00 05 14 * * wed', output: '23.0' }, + { cronTime: '00 05 16 * * thu', output: '23.0' }, + { cronTime: '00 05 14 * * fri', output: '23.0' }, + { cronTime: '00 58 23 * * *', output: '5.0' } +]); +thermostatAnna1stCron.start(); // Matthias ------------------------------------------------------------------------------------------------- // Matthias Stehlampen 7 24 1 6 24 1 let matthiasStandLights = new M433SwitchItem_1.M433SwitchItem('1st', 'Matthias', 'StandLight', 'Stehlampen Matthias', '7 24 1', '6 24 1'); diff --git a/homekit.json b/homekit.json index 60edff8..160a187 100644 --- a/homekit.json +++ b/homekit.json @@ -44,6 +44,17 @@ "onContactDetected": "CLOSED" } }, + "1st_Anna_Thermostat": { + "id": "1st_Anna_Thermostat", + "name": "Thermostat Anna", + "service": "Thermostat", + "topic": { + "setTargetTemperature": "dispatcher_ng/items/1st/Anna/Thermostat/temperature", + "statusTargetTemperature": "dispatcher_ng/items/1st/Anna/Thermostat/temperature/feedback", + "statusCurrentTemperature": "dispatcher_ng/items/1st/Anna/Thermostat/temperature/feedback" + }, + "payload": {} + }, "1st_Matthias_StandLight": { "id": "1st_Matthias_StandLight", "name": "Stehlampen Matthias", diff --git a/openhab.items b/openhab.items index e86d8a5..7b6295a 100644 --- a/openhab.items +++ b/openhab.items @@ -1,6 +1,7 @@ Switch 1st_Anna_AquariumLight {mqtt=">[localbroker:dispatcher_ng/items/1st/Anna/AquariumLight/state:command:*:default],<[localbroker:dispatcher_ng/items/1st/Anna/AquariumLight/state/feedback:state:default]"} Switch 1st_Anna_BedLight {mqtt=">[localbroker:dispatcher_ng/items/1st/Anna/BedLight/state:command:*:default],<[localbroker:dispatcher_ng/items/1st/Anna/BedLight/state/feedback:state:default]"} - +Switch 1st_Anna_WindowContact {mqtt="<[localbroker:dispatcher_ng/items/1st/Anna/WindowContact/state/feedback:state:default]"} +Number 1st_Anna_Thermostat {mqtt=">[localbroker:dispatcher_ng/items/1st/Anna/Thermostat/temperature:command:*:default],<[localbroker:dispatcher_ng/items/1st/Anna/Thermostat/temperature/feedback:state:default]"} Switch 1st_Matthias_StandLight {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 {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 {mqtt=">[localbroker:dispatcher_ng/items/1st/Matthias/Speaker/state:command:*:default],<[localbroker:dispatcher_ng/items/1st/Matthias/Speaker/state/feedback:state:default]"} @@ -22,18 +23,18 @@ Switch 1st_BedRoom_WolfgangsSide {mqtt=">[localbroker:dispatcher_ng/items/1st/Be Switch 1st_BedRoom_PattysSide {mqtt=">[localbroker:dispatcher_ng/items/1st/BedRoom/PattysSide/state:command:*:default],<[localbroker:dispatcher_ng/items/1st/BedRoom/PattysSide/state/feedback:state:default]"} Switch 1st_BedRoom_WindowLight {mqtt=">[localbroker:dispatcher_ng/items/1st/BedRoom/WindowLight/state:command:*:default],<[localbroker:dispatcher_ng/items/1st/BedRoom/WindowLight/state/feedback:state:default]"} - - +Switch 1st_Bedroom_WindowContactStreet {mqtt="<[localbroker:dispatcher_ng/items/1st/Bedroom/WindowContactStreet/state/feedback:state:default]"} +Switch 1st_Bedroom_WindowContactGarden {mqtt="<[localbroker:dispatcher_ng/items/1st/Bedroom/WindowContactGarden/state/feedback:state:default]"} Number 1st_Bedroom_Thermostat {mqtt=">[localbroker:dispatcher_ng/items/1st/Bedroom/Thermostat/temperature:command:*:default],<[localbroker:dispatcher_ng/items/1st/Bedroom/Thermostat/temperature/feedback:state:default]"} Switch Gnd_Hallway_DayLight {mqtt=">[localbroker:dispatcher_ng/items/Gnd/Hallway/DayLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Hallway/DayLight/state/feedback:state:default]"} Switch Gnd_Hallway_EcoLight {mqtt=">[localbroker:dispatcher_ng/items/Gnd/Hallway/EcoLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Hallway/EcoLight/state/feedback:state:default]"} Switch Gnd_Hallway_MorningLight {mqtt=">[localbroker:dispatcher_ng/items/Gnd/Hallway/MorningLight/state:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Hallway/MorningLight/state/feedback:state:default]"} - +Switch Gnd_Bathroom_WindowContact {mqtt="<[localbroker:dispatcher_ng/items/Gnd/Bathroom/WindowContact/state/feedback:state:default]"} Number Gnd_Bathroom_Thermostat {mqtt=">[localbroker:dispatcher_ng/items/Gnd/Bathroom/Thermostat/temperature:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Bathroom/Thermostat/temperature/feedback:state:default]"} - +Switch 1st_Bathroom_WindowContact {mqtt="<[localbroker:dispatcher_ng/items/1st/Bathroom/WindowContact/state/feedback:state:default]"} Number 1st_Bathroom_Thermostat {mqtt=">[localbroker:dispatcher_ng/items/1st/Bathroom/Thermostat/temperature:command:*:default],<[localbroker:dispatcher_ng/items/1st/Bathroom/Thermostat/temperature/feedback:state:default]"} - - - - +Switch Gnd_Kitchen_WindowContact1 {mqtt="<[localbroker:dispatcher_ng/items/Gnd/Kitchen/WindowContact1/state/feedback:state:default]"} +Switch Gnd_Kitchen_WindowContact2 {mqtt="<[localbroker:dispatcher_ng/items/Gnd/Kitchen/WindowContact2/state/feedback:state:default]"} +Switch Gnd_Kitchen_WindowContact3 {mqtt="<[localbroker:dispatcher_ng/items/Gnd/Kitchen/WindowContact3/state/feedback:state:default]"} +Switch Gnd_Kitchen_WindowContact4 {mqtt="<[localbroker:dispatcher_ng/items/Gnd/Kitchen/WindowContact4/state/feedback:state:default]"} Number Gnd_Kitchen_Thermostat {mqtt=">[localbroker:dispatcher_ng/items/Gnd/Kitchen/Thermostat/temperature:command:*:default],<[localbroker:dispatcher_ng/items/Gnd/Kitchen/Thermostat/temperature/feedback:state:default]"} \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index 5b8fbce..3f0df9d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -34,8 +34,8 @@ aquariumLight.start() allLabeledItems.push(aquariumLight) let aquariumLightCron = new Cron('aquariumLightCron', aquariumLight, [ - {cronTime: '00 00 07 * * mon-fri', output: 'ON'}, - {cronTime: '00 00 09 * * sat-sun', output: 'ON'}, + {cronTime: '00 00 07 * * 1-5', output: 'ON'}, + {cronTime: '00 00 09 * * 6,0', output: 'ON'}, {cronTime: '00 00 13 * * *', output: 'OFF'}, {cronTime: '00 00 14 * * *', output: 'ON'}, {cronTime: '00 00 22 * * *', output: 'OFF'} @@ -53,6 +53,22 @@ let windowContactAnna1st = new MaxWindowContact('1st', 'Anna', 'WindowContact', windowContactAnna1st.start() allLabeledItems.push(windowContactAnna1st) +let thermostatAnna1st = new MaxThermostat('1st', 'Anna', 'Thermostat', 'Thermostat Anna', 21, [windowContactAnna1st]) +thermostatAnna1st.start() +allLabeledItems.push(thermostatAnna1st) + +let thermostatAnna1stCron = new Cron('thermostatAnna1stCron', thermostatAnna1st, [ + {cronTime: '00 05 06 * * *', output: '23.0'}, + {cronTime: '00 05 08 * * 1-5', output: '5.0'}, + {cronTime: '00 05 16 * * 1', output: '23.0'}, + {cronTime: '00 05 14 * * 2', output: '23.0'}, + {cronTime: '00 05 14 * * 3', output: '23.0'}, + {cronTime: '00 05 16 * * 4', output: '23.0'}, + {cronTime: '00 05 14 * * 5', output: '23.0'}, + {cronTime: '00 58 23 * * *', output: '5.0'} +]) +thermostatAnna1stCron.start() + // Matthias ------------------------------------------------------------------------------------------------- // Matthias Stehlampen 7 24 1 6 24 1 let matthiasStandLights = new M433SwitchItem('1st', 'Matthias', 'StandLight', 'Stehlampen Matthias', '7 24 1', '6 24 1') @@ -186,10 +202,10 @@ thermostatBedroom1st.start() allLabeledItems.push(thermostatBedroom1st) let thermostatBedroom1stCron = new Cron('thermostatBedroom1stCron', thermostatBedroom1st, [ - {cronTime: '00 01 06 * * mon-fri', output: '21.0'}, - {cronTime: '00 01 09 * * mon-fri', output: '5.0'}, - {cronTime: '00 01 08 * * sat-sun', output: '21.0'}, - {cronTime: '00 01 11 * * sat-sun', output: '5.0'}, + {cronTime: '00 01 06 * * 1-5', output: '21.0'}, + {cronTime: '00 01 09 * * 1-5', output: '5.0'}, + {cronTime: '00 01 08 * * 6,0', output: '21.0'}, + {cronTime: '00 01 11 * * 6,0', output: '5.0'}, {cronTime: '00 00 17 * * *', output: '23.0'}, {cronTime: '00 59 23 * * *', output: '5.0'} ]) @@ -248,8 +264,8 @@ thermostatBathroomGnd.start() allLabeledItems.push(thermostatBathroomGnd) let thermostatBathroomGndCron = new Cron('thermostatBathroomGndCron', thermostatBathroomGnd, [ - {cronTime: '00 02 06 * * mon-fri', output: '21.0'}, - {cronTime: '00 02 08 * * sat-sun', output: '21.0'}, + {cronTime: '00 02 06 * * 1-5', output: '21.0'}, + {cronTime: '00 02 08 * * 6,0', output: '21.0'}, {cronTime: '00 02 11 * * *', output: '5.0'}, {cronTime: '00 02 19 * * *', output: '21.0'}, {cronTime: '00 00 23 * * *', output: '5.0'} @@ -266,8 +282,8 @@ thermostatBathroom1st.start() allLabeledItems.push(thermostatBathroom1st) let thermostatBathroom1stCron = new Cron('thermostatBathroom1stCron', thermostatBathroom1st, [ - {cronTime: '00 00 06 * * mon-fri', output: '21.0'}, - {cronTime: '00 00 08 * * sat-sun', output: '21.0'}, + {cronTime: '00 00 06 * * 1-5', output: '21.0'}, + {cronTime: '00 00 08 * * 6,0', output: '21.0'}, {cronTime: '00 00 11 * * *', output: '5.0'}, {cronTime: '00 00 19 * * *', output: '21.0'}, {cronTime: '00 00 23 * * *', output: '5.0'} @@ -295,10 +311,10 @@ thermostatKitchen.start() allLabeledItems.push(thermostatKitchen) let thermostatKitchenCron = new Cron('thermostatKitchenCron', thermostatKitchen, [ - {cronTime: '00 00 06 * * mon-fri', output: '19.0'}, - {cronTime: '00 00 08 * * sat-sun', output: '19.0'}, - {cronTime: '00 00 10 * * mon-wed', output: '5.0'}, - {cronTime: '00 30 13 * * mon-wed', output: '19.0'}, + {cronTime: '00 00 06 * * 1-5', output: '19.0'}, + {cronTime: '00 00 08 * * 6,0', output: '19.0'}, + {cronTime: '00 00 10 * * 1-3', output: '5.0'}, + {cronTime: '00 30 13 * * 1-3', output: '19.0'}, {cronTime: '00 00 23 * * *', output: '5.0'} ]) thermostatKitchenCron.start()