several quick fixes
This commit is contained in:
@ -7,7 +7,7 @@ After=network-online.target
|
||||
[Service]
|
||||
Type=simple
|
||||
GuessMainPID=yes
|
||||
ExecStart=/usr/bin/npm start -- -c dispatcher_ng.conf
|
||||
ExecStart=/usr/bin/npm start -- -c dispatcher_ng.conf
|
||||
ExecStop=kill -SIGINT $mainpid
|
||||
Restart=on-failure
|
||||
WorkingDirectory=/opt/services/dispatcher_ng
|
||||
|
@ -10,5 +10,8 @@
|
||||
"homekitFile": "homekit.json",
|
||||
"openhabItemFile": "openhab.items",
|
||||
"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";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const logger = require("./log");
|
||||
const MqttDispatcher_1 = require("./MqttDispatcher");
|
||||
const AItem_1 = require("./AItem");
|
||||
const Export_1 = require("./Export");
|
||||
@ -30,13 +31,18 @@ class UrlSwitchItem extends AItem_1.AItem {
|
||||
this.state = payload;
|
||||
MqttDispatcher_1.mqttHandler.send(this.stateFeedbackTopic, this.state);
|
||||
if (this.state != this.oldState) {
|
||||
if (this.state == 'ON') {
|
||||
http.get(this.onUrl);
|
||||
try {
|
||||
if (this.state == 'ON') {
|
||||
http.get(this.onUrl);
|
||||
}
|
||||
else {
|
||||
http.get(this.offUrl);
|
||||
}
|
||||
this.oldState = this.state;
|
||||
}
|
||||
else {
|
||||
http.get(this.offUrl);
|
||||
catch (_a) {
|
||||
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);
|
||||
// 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');
|
||||
diningRoomShelfLight.start();
|
||||
allLabeledItems.push(diningRoomShelfLight);
|
||||
allRelevantLights.push(diningRoomShelfLight);
|
||||
// diningRoomShelfLight.start()
|
||||
// allLabeledItems.push(diningRoomShelfLight)
|
||||
// allRelevantLights.push(diningRoomShelfLight)
|
||||
let diningRoomNaehkaestchenLight = new HueColorBulbItem_1.HueColorBulbItem('Gnd', 'DiningRoom', 'NaehkaestchenLight', 'Lampe Naehkaestchen', 15);
|
||||
diningRoomNaehkaestchenLight.start();
|
||||
allLabeledItems.push(diningRoomNaehkaestchenLight);
|
||||
@ -438,6 +438,12 @@ let heartbeatTimer = setInterval(() => {
|
||||
heartbeatCounter += 1;
|
||||
MqttDispatcher_1.mqttHandler.send(config.dict.heartbeatTopic, `${heartbeatCounter}`);
|
||||
}, 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
|
||||
let homekitObject = {};
|
||||
|
17
homekit.json
17
homekit.json
@ -165,23 +165,6 @@
|
||||
},
|
||||
"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",
|
||||
|
@ -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_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]"}
|
||||
|
@ -44,12 +44,16 @@ export class UrlSwitchItem extends AItem implements HasStateAndFeedbackTopic {
|
||||
this.state = payload;
|
||||
mqttHandler.send(this.stateFeedbackTopic, this.state);
|
||||
if (this.state != this.oldState) {
|
||||
try {
|
||||
if (this.state == 'ON') {
|
||||
http.get(this.onUrl,)
|
||||
} else {
|
||||
http.get(this.offUrl)
|
||||
}
|
||||
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
|
||||
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()
|
||||
allLabeledItems.push(diningRoomShelfLight)
|
||||
allRelevantLights.push(diningRoomShelfLight)
|
||||
// diningRoomShelfLight.start()
|
||||
// allLabeledItems.push(diningRoomShelfLight)
|
||||
// allRelevantLights.push(diningRoomShelfLight)
|
||||
|
||||
let diningRoomNaehkaestchenLight = new HueColorBulbItem('Gnd', 'DiningRoom', 'NaehkaestchenLight', 'Lampe Naehkaestchen', 15)
|
||||
diningRoomNaehkaestchenLight.start()
|
||||
@ -553,6 +553,13 @@ let heartbeatTimer = setInterval(() => {
|
||||
mqttHandler.send(config.dict.heartbeatTopic, `${heartbeatCounter}`)
|
||||
}, 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