several quick fixes
This commit is contained in:
@ -7,7 +7,7 @@ After=network-online.target
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
GuessMainPID=yes
|
GuessMainPID=yes
|
||||||
ExecStart=/usr/bin/npm start -- -c dispatcher_ng.conf
|
ExecStart=/usr/bin/npm start -- -c dispatcher_ng.conf
|
||||||
ExecStop=kill -SIGINT $mainpid
|
ExecStop=kill -SIGINT $mainpid
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
WorkingDirectory=/opt/services/dispatcher_ng
|
WorkingDirectory=/opt/services/dispatcher_ng
|
||||||
|
@ -10,5 +10,8 @@
|
|||||||
"homekitFile": "homekit.json",
|
"homekitFile": "homekit.json",
|
||||||
"openhabItemFile": "openhab.items",
|
"openhabItemFile": "openhab.items",
|
||||||
"heartbeatTopic": "dispatcher_ng/i/am/alive",
|
"heartbeatTopic": "dispatcher_ng/i/am/alive",
|
||||||
"heartbeatInterval": 10000
|
"heartbeatInterval": 10000,
|
||||||
|
"watchdogTopic": "IoT/Watchdog",
|
||||||
|
"watchdogInterval": 1000,
|
||||||
|
"watchdogMessage": "WauWau!"
|
||||||
}
|
}
|
||||||
|
16
dist/UrlSwitchItem.js
vendored
16
dist/UrlSwitchItem.js
vendored
@ -1,5 +1,6 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
const logger = require("./log");
|
||||||
const MqttDispatcher_1 = require("./MqttDispatcher");
|
const MqttDispatcher_1 = require("./MqttDispatcher");
|
||||||
const AItem_1 = require("./AItem");
|
const AItem_1 = require("./AItem");
|
||||||
const Export_1 = require("./Export");
|
const Export_1 = require("./Export");
|
||||||
@ -30,13 +31,18 @@ class UrlSwitchItem extends AItem_1.AItem {
|
|||||||
this.state = payload;
|
this.state = payload;
|
||||||
MqttDispatcher_1.mqttHandler.send(this.stateFeedbackTopic, this.state);
|
MqttDispatcher_1.mqttHandler.send(this.stateFeedbackTopic, this.state);
|
||||||
if (this.state != this.oldState) {
|
if (this.state != this.oldState) {
|
||||||
if (this.state == 'ON') {
|
try {
|
||||||
http.get(this.onUrl);
|
if (this.state == 'ON') {
|
||||||
|
http.get(this.onUrl);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
http.get(this.offUrl);
|
||||||
|
}
|
||||||
|
this.oldState = this.state;
|
||||||
}
|
}
|
||||||
else {
|
catch (_a) {
|
||||||
http.get(this.offUrl);
|
logger.error(`Failed to handle ${this.onUrl} or ${this.offUrl}`);
|
||||||
}
|
}
|
||||||
this.oldState = this.state;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
12
dist/main.js
vendored
12
dist/main.js
vendored
@ -105,9 +105,9 @@ allLabeledItems.push(diningRoomCupboardLight);
|
|||||||
allRelevantLights.push(diningRoomCupboardLight);
|
allRelevantLights.push(diningRoomCupboardLight);
|
||||||
// Esszimmer Regallicht
|
// Esszimmer Regallicht
|
||||||
let diningRoomShelfLight = new UrlSwitchItem_1.UrlSwitchItem('Gnd', 'DiningRoom', 'ShelfLight', 'Regallicht Esszimmer', 'http://172.16.2.43/dv?dv=1023', 'http://172.16.2.43/dv?dv=0');
|
let diningRoomShelfLight = new UrlSwitchItem_1.UrlSwitchItem('Gnd', 'DiningRoom', 'ShelfLight', 'Regallicht Esszimmer', 'http://172.16.2.43/dv?dv=1023', 'http://172.16.2.43/dv?dv=0');
|
||||||
diningRoomShelfLight.start();
|
// diningRoomShelfLight.start()
|
||||||
allLabeledItems.push(diningRoomShelfLight);
|
// allLabeledItems.push(diningRoomShelfLight)
|
||||||
allRelevantLights.push(diningRoomShelfLight);
|
// allRelevantLights.push(diningRoomShelfLight)
|
||||||
let diningRoomNaehkaestchenLight = new HueColorBulbItem_1.HueColorBulbItem('Gnd', 'DiningRoom', 'NaehkaestchenLight', 'Lampe Naehkaestchen', 15);
|
let diningRoomNaehkaestchenLight = new HueColorBulbItem_1.HueColorBulbItem('Gnd', 'DiningRoom', 'NaehkaestchenLight', 'Lampe Naehkaestchen', 15);
|
||||||
diningRoomNaehkaestchenLight.start();
|
diningRoomNaehkaestchenLight.start();
|
||||||
allLabeledItems.push(diningRoomNaehkaestchenLight);
|
allLabeledItems.push(diningRoomNaehkaestchenLight);
|
||||||
@ -438,6 +438,12 @@ let heartbeatTimer = setInterval(() => {
|
|||||||
heartbeatCounter += 1;
|
heartbeatCounter += 1;
|
||||||
MqttDispatcher_1.mqttHandler.send(config.dict.heartbeatTopic, `${heartbeatCounter}`);
|
MqttDispatcher_1.mqttHandler.send(config.dict.heartbeatTopic, `${heartbeatCounter}`);
|
||||||
}, config.dict.heartbeatInterval);
|
}, config.dict.heartbeatInterval);
|
||||||
|
// watchdog
|
||||||
|
let watchdogCounter = 0;
|
||||||
|
let watchdogTimer = setInterval(() => {
|
||||||
|
watchdogCounter += 1;
|
||||||
|
MqttDispatcher_1.mqttHandler.send(config.dict.watchdogTopic, `${config.dict.watchdogMessage} ${watchdogCounter}`);
|
||||||
|
}, config.dict.watchdogInterval);
|
||||||
// ----------------------------------------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------------------------------------
|
||||||
// Homekit export
|
// Homekit export
|
||||||
let homekitObject = {};
|
let homekitObject = {};
|
||||||
|
17
homekit.json
17
homekit.json
@ -165,23 +165,6 @@
|
|||||||
},
|
},
|
||||||
"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",
|
||||||
|
@ -10,7 +10,6 @@ Contact 1st_Matthias_WindowContact "Fenster Matthias" {mqtt="<[localbroker:dispa
|
|||||||
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_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]"}
|
Contact Gnd_DiningRoom_WindowContact2 "Fenster Esszimmer Straße rechts" {mqtt="<[localbroker:dispatcher_ng/items/Gnd/DiningRoom/WindowContact2/state/feedback:state:default]"}
|
||||||
|
@ -44,12 +44,16 @@ export class UrlSwitchItem extends AItem implements HasStateAndFeedbackTopic {
|
|||||||
this.state = payload;
|
this.state = payload;
|
||||||
mqttHandler.send(this.stateFeedbackTopic, this.state);
|
mqttHandler.send(this.stateFeedbackTopic, this.state);
|
||||||
if (this.state != this.oldState) {
|
if (this.state != this.oldState) {
|
||||||
|
try {
|
||||||
if (this.state == 'ON') {
|
if (this.state == 'ON') {
|
||||||
http.get(this.onUrl,)
|
http.get(this.onUrl,)
|
||||||
} else {
|
} else {
|
||||||
http.get(this.offUrl)
|
http.get(this.offUrl)
|
||||||
}
|
}
|
||||||
this.oldState = this.state;
|
this.oldState = this.state;
|
||||||
|
} catch {
|
||||||
|
logger.error(`Failed to handle ${this.onUrl} or ${this.offUrl}`)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
13
src/main.ts
13
src/main.ts
@ -131,9 +131,9 @@ allRelevantLights.push(diningRoomCupboardLight)
|
|||||||
|
|
||||||
// Esszimmer Regallicht
|
// Esszimmer Regallicht
|
||||||
let diningRoomShelfLight = new UrlSwitchItem('Gnd', 'DiningRoom', 'ShelfLight', 'Regallicht Esszimmer', 'http://172.16.2.43/dv?dv=1023', 'http://172.16.2.43/dv?dv=0')
|
let diningRoomShelfLight = new UrlSwitchItem('Gnd', 'DiningRoom', 'ShelfLight', 'Regallicht Esszimmer', 'http://172.16.2.43/dv?dv=1023', 'http://172.16.2.43/dv?dv=0')
|
||||||
diningRoomShelfLight.start()
|
// diningRoomShelfLight.start()
|
||||||
allLabeledItems.push(diningRoomShelfLight)
|
// allLabeledItems.push(diningRoomShelfLight)
|
||||||
allRelevantLights.push(diningRoomShelfLight)
|
// allRelevantLights.push(diningRoomShelfLight)
|
||||||
|
|
||||||
let diningRoomNaehkaestchenLight = new HueColorBulbItem('Gnd', 'DiningRoom', 'NaehkaestchenLight', 'Lampe Naehkaestchen', 15)
|
let diningRoomNaehkaestchenLight = new HueColorBulbItem('Gnd', 'DiningRoom', 'NaehkaestchenLight', 'Lampe Naehkaestchen', 15)
|
||||||
diningRoomNaehkaestchenLight.start()
|
diningRoomNaehkaestchenLight.start()
|
||||||
@ -553,6 +553,13 @@ let heartbeatTimer = setInterval(() => {
|
|||||||
mqttHandler.send(config.dict.heartbeatTopic, `${heartbeatCounter}`)
|
mqttHandler.send(config.dict.heartbeatTopic, `${heartbeatCounter}`)
|
||||||
}, config.dict.heartbeatInterval)
|
}, config.dict.heartbeatInterval)
|
||||||
|
|
||||||
|
// watchdog
|
||||||
|
let watchdogCounter = 0
|
||||||
|
let watchdogTimer = setInterval(() => {
|
||||||
|
watchdogCounter += 1
|
||||||
|
mqttHandler.send(config.dict.watchdogTopic, `${config.dict.watchdogMessage} ${watchdogCounter}`)
|
||||||
|
}, config.dict.watchdogInterval)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user