rgbwifi/devserver.js

112 lines
1.9 KiB
JavaScript

/*
* ESP8266 RGBW controller
* Copyright 2020 (c) Mark van Renswoude
*
* https://git.x2software.net/pub/RGBWifi
*/
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(express.static('web'));
app.use(express.static('web/dist'));
app.get('/api/status', function(req, res)
{
res.send({
systemID: 'dev-server',
version: 'dev-server',
resetReason: 2,
stackTrace: true
});
});
app.get('/api/connection', function(req, res)
{
res.send({
hostname: 'dev-server',
accesspoint: true,
station: true,
ssid: 'MyWiFiSSID',
password: 'supersecret',
dhcp: true,
ip: '192.168.1.234',
subnetmask: '255.255.255.0',
gateway: '192.168.1.0'
});
});
app.get('/api/connection/status', function(req, res)
{
res.send({
"ap": {
"enabled": true,
"ip": "192.168.4.1"
},
"station": {
"enabled": true,
"status": 1,
"ip": "0.0.0.0"
}
});
});
app.post('/api/connection', function(req, res)
{
res.sendStatus(200);
});
app.post('/api/firmware', function(req, res)
{
res.sendStatus(200);
});
var system = {
pins: {
ledAP: 4,
ledSTA: 5,
apButton: 2,
}
};
app.get('/api/system', function(req, res)
{
res.send(system);
});
app.post('/api/system', function(req, res)
{
var body = req.body;
if (body)
{
system.pins.ledAP = body.pins.ledAP || system.pins.ledAP;
system.pins.ledSTA = body.pins.ledSTA || system.pins.ledSTA;
system.pins.apButton = body.pins.apButton || system.pins.apButton;
res.sendStatus(200);
}
else
res.sendStatus(400);
});
app.get('/api/stacktrace/get', function(req, res)
{
res.send("Nothing to see here, move along!");
});
app.get('/api/stacktrace/delete', function(req, res)
{
res.sendStatus(200);
});
app.listen(3000, function()
{
console.log('Development server listening on port 3000')
console.log('Press Ctrl-C to stop')
});