So siehts ganz gut aus !
This commit is contained in:
@@ -1,34 +1,53 @@
|
||||
var express = require('express');
|
||||
let router = express.Router();
|
||||
let mqtt = require('mqtt');
|
||||
let moment = require('moment');
|
||||
let toSend = null;
|
||||
let tio;
|
||||
|
||||
const brenndauer = 20; // 20sec Relais ON
|
||||
const brenndauer = 300; // 20sec Relais ON
|
||||
|
||||
// MQTT:
|
||||
let connected = false;
|
||||
let status = 'MIST';
|
||||
let relais = 'MIST';
|
||||
let client = mqtt.connect('mqtt://play.rexfue.de');
|
||||
let offtime = "";
|
||||
let retur = {};
|
||||
|
||||
client.on('connect', function() {
|
||||
connected = true;
|
||||
retur.connect = 'connected';
|
||||
client.subscribe('stat/laufschrift/POWER');
|
||||
})
|
||||
|
||||
client.on('message',function(topix,message) {
|
||||
let erg = message.toString();
|
||||
console.log("Status = ",erg);
|
||||
status = erg;
|
||||
relais = message.toString();
|
||||
console.log("Status = ",relais);
|
||||
retur.relais = relais;
|
||||
});
|
||||
|
||||
client.on('reconnect', function(){
|
||||
retur.connect = 'reconnect';
|
||||
});
|
||||
|
||||
|
||||
// beim start mal den Zustand abfragen
|
||||
doPublish("");
|
||||
|
||||
|
||||
function doPublish(payload) {
|
||||
status = 'pending';
|
||||
// retur.relais='pending';
|
||||
client.publish('cmnd/laufschrift/Power',payload);
|
||||
if (payload == 'On') {
|
||||
setTimeout(doPublish,brenndauer*1000,"Off");
|
||||
offtime = moment().add(brenndauer,'s').format("HH.mm");
|
||||
tio =setTimeout(doPublish,brenndauer*1000,"Off");
|
||||
retur.offtime = offtime;
|
||||
} else if (payload == 'Off') {
|
||||
clearTimeout(tio);
|
||||
delete retur.offtime;
|
||||
}
|
||||
}
|
||||
|
||||
// end MQTT
|
||||
|
||||
/* GET switch data */
|
||||
router.get('/:cmd', function(req, res, next) {
|
||||
@@ -42,11 +61,13 @@ router.get('/:cmd', function(req, res, next) {
|
||||
} else if (cmd == 'switch_off') {
|
||||
doPublish("Off");
|
||||
} else if (cmd == 'check') {
|
||||
|
||||
} else {
|
||||
erg = { error: "invalid command"};
|
||||
res.json(erg);
|
||||
retur = { error: "invalid command"};
|
||||
res.json(retur);
|
||||
}
|
||||
res.json({status:status});
|
||||
console.log("return: ",retur)
|
||||
res.json(retur);
|
||||
});
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user