Skip to content

Instantly share code, notes, and snippets.

@Hacksore
Last active August 2, 2021 20:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Hacksore/22339df4a045f5a5133f3f62bde28c88 to your computer and use it in GitHub Desktop.
Save Hacksore/22339df4a045f5a5133f3f62bde28c88 to your computer and use it in GitHub Desktop.
test bluelinky
const express = require("express");
const BlueLinky = require("bluelinky");
const bodyParser = require("body-parser");
const config = {
validation_key: 'something you make',
username: 'username',
password: 'password',
vin: 'vin',
pin: 'pin',
};
const app = express();
app.use(bodyParser.json());
let client;
let vehicle;
const middleWare = async (req, res, next) => {
const ip = req.connection.remoteAddress;
console.log(req.path, ip);
if (req.body.VALIDATION_KEY !== config.validation_key) {
console.log("Bad key used by: " + ip);
return res.send({ error: "bad key" });
}
if (client === undefined) {
client = new BlueLinky({
username: config.username,
password: config.password
});
//login
await client.login();
vehicle = await client.registerVehicle(config.vin, config.pin);
}
return next();
};
app.use(middleWare);
app.post("/start", async (req, res) => {
let response;
try {
response = await vehicle.start({
airCtrl: true,
igniOnDuration: 10,
airTempvalue: 60
});
} catch (e) {
response = {
error: e.message
};
}
res.send(response);
});
app.post("/lock", async (req, res) => {
let response;
try {
response = await vehicle.lock();
} catch (e) {
console.log(e);
response = {
error: e.message
};
}
res.send(response);
});
app.post("/status", async (req, res) => {
let response;
try {
response = await vehicle.status();
} catch (e) {
console.log(e);
response = {
error: e.message
};
}
res.send(response);
});
app.listen(8080, "0.0.0.0");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment