mirror of
https://github.com/rstrouse/ESPSomfy-RTS.git
synced 2025-12-13 02:52:11 +01:00
Code cleanup
Clean up code for version 1.0.9
This commit is contained in:
parent
92ea0f6c99
commit
0ab2444104
7 changed files with 35 additions and 16 deletions
|
|
@ -48,10 +48,9 @@ void Network::loop() {
|
||||||
}
|
}
|
||||||
void Network::emitSockets() {
|
void Network::emitSockets() {
|
||||||
if(WiFi.status() == WL_CONNECTED) {
|
if(WiFi.status() == WL_CONNECTED) {
|
||||||
|
|
||||||
if(abs(abs(WiFi.RSSI()) - abs(this->lastRSSI)) > 2 || WiFi.channel() != this->lastChannel) {
|
if(abs(abs(WiFi.RSSI()) - abs(this->lastRSSI)) > 2 || WiFi.channel() != this->lastChannel) {
|
||||||
char buf[128];
|
char buf[128];
|
||||||
sprintf(buf, "{\"ssid\":\"%s\",\"strength\":%d,\"channel\":%d}", WiFi.SSID(), WiFi.RSSI(), WiFi.channel());
|
snprintf(buf, sizeof(buf), "{\"ssid\":\"%s\",\"strength\":%d,\"channel\":%d}", WiFi.SSID(), WiFi.RSSI(), WiFi.channel());
|
||||||
sockEmit.sendToClients("wifiStrength", buf);
|
sockEmit.sendToClients("wifiStrength", buf);
|
||||||
this->lastRSSI = WiFi.RSSI();
|
this->lastRSSI = WiFi.RSSI();
|
||||||
this->lastChannel = WiFi.channel();
|
this->lastChannel = WiFi.channel();
|
||||||
|
|
|
||||||
10
Sockets.cpp
10
Sockets.cpp
|
|
@ -16,7 +16,7 @@ char g_buffer[1024];
|
||||||
* ClientSocketEvent class members
|
* ClientSocketEvent class members
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
void ClientSocketEvent::prepareMessage(const char *evt, const char *payload) {
|
void ClientSocketEvent::prepareMessage(const char *evt, const char *payload) {
|
||||||
sprintf(this->msg, "42[%s,%s]", evt, payload);
|
snprintf(this->msg, sizeof(this->msg), "42[%s,%s]", evt, payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -33,6 +33,7 @@ void SocketEmitter::begin() {
|
||||||
void SocketEmitter::loop() {
|
void SocketEmitter::loop() {
|
||||||
sockServer.loop();
|
sockServer.loop();
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
bool SocketEmitter::sendToClients(const char *evt, JsonObject &obj) {
|
bool SocketEmitter::sendToClients(const char *evt, JsonObject &obj) {
|
||||||
serializeJson(obj, g_buffer, sizeof(g_buffer));
|
serializeJson(obj, g_buffer, sizeof(g_buffer));
|
||||||
return this->sendToClients(evt, g_buffer);
|
return this->sendToClients(evt, g_buffer);
|
||||||
|
|
@ -41,6 +42,7 @@ bool SocketEmitter::sendToClient(uint8_t num, const char *evt, JsonObject &obj)
|
||||||
serializeJson(obj, g_buffer, sizeof(g_buffer));
|
serializeJson(obj, g_buffer, sizeof(g_buffer));
|
||||||
return this->sendToClient(num, evt, g_buffer);
|
return this->sendToClient(num, evt, g_buffer);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
bool SocketEmitter::sendToClients(const char *evt, const char *payload) {
|
bool SocketEmitter::sendToClients(const char *evt, const char *payload) {
|
||||||
if(settings.status == DS_FWUPDATE) return true;
|
if(settings.status == DS_FWUPDATE) return true;
|
||||||
this->evt.prepareMessage(evt, payload);
|
this->evt.prepareMessage(evt, payload);
|
||||||
|
|
@ -62,7 +64,7 @@ void SocketEmitter::wsEvent(uint8_t num, WStype_t type, uint8_t *payload, size_t
|
||||||
{
|
{
|
||||||
IPAddress ip = sockServer.remoteIP(num);
|
IPAddress ip = sockServer.remoteIP(num);
|
||||||
Serial.printf("Socket [%u] Connected from %d.%d.%d.%d url: %s\n", num, ip[0], ip[1], ip[2], ip[3], payload);
|
Serial.printf("Socket [%u] Connected from %d.%d.%d.%d url: %s\n", num, ip[0], ip[1], ip[2], ip[3], payload);
|
||||||
// Send all the current Sensor readings to the client.
|
// Send all the current shade settings to the client.
|
||||||
sockServer.sendTXT(num, "Connected");
|
sockServer.sendTXT(num, "Connected");
|
||||||
settings.emitSockets();
|
settings.emitSockets();
|
||||||
somfy.emitState(num);
|
somfy.emitState(num);
|
||||||
|
|
@ -84,5 +86,9 @@ void SocketEmitter::wsEvent(uint8_t num, WStype_t type, uint8_t *payload, size_t
|
||||||
// send message to client
|
// send message to client
|
||||||
// sockServer.sendBIN(num, payload, length);
|
// sockServer.sendBIN(num, payload, length);
|
||||||
break;
|
break;
|
||||||
|
case WStype_PING:
|
||||||
|
Serial.printf("Ping from %u\n", num);
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,8 @@ class SocketEmitter {
|
||||||
void disconnect();
|
void disconnect();
|
||||||
bool sendToClients(const char *evt, const char *data);
|
bool sendToClients(const char *evt, const char *data);
|
||||||
bool sendToClient(uint8_t num, const char *evt, const char *data);
|
bool sendToClient(uint8_t num, const char *evt, const char *data);
|
||||||
bool sendToClients(const char *evt, JsonObject &obj);
|
//bool sendToClients(const char *evt, JsonObject &obj);
|
||||||
bool sendToClient(uint8_t num, const char *evt, JsonObject &obj);
|
//bool sendToClient(uint8_t num, const char *evt, JsonObject &obj);
|
||||||
static void wsEvent(uint8_t num, WStype_t type, uint8_t *payload, size_t length);
|
static void wsEvent(uint8_t num, WStype_t type, uint8_t *payload, size_t length);
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -604,7 +604,8 @@ void SomfyShade::moveToTarget(uint8_t target) {
|
||||||
Serial.print("% using ");
|
Serial.print("% using ");
|
||||||
Serial.println(translateSomfyCommand(cmd));
|
Serial.println(translateSomfyCommand(cmd));
|
||||||
this->target = target;
|
this->target = target;
|
||||||
this->seekingPos = true;
|
if(target > 0 && target != 100) this->seekingPos = true;
|
||||||
|
else this->seekingPos = false;
|
||||||
SomfyRemote::sendCommand(cmd);
|
SomfyRemote::sendCommand(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -6,6 +6,7 @@
|
||||||
<link rel="stylesheet" href="main.css" type="text/css" />
|
<link rel="stylesheet" href="main.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="icons.css" type="text/css" />
|
<link rel="stylesheet" href="icons.css" type="text/css" />
|
||||||
<script>
|
<script>
|
||||||
|
//{"ssid":"Casa Del Mar Resort and Spa 2.4","strength":-53,"channel":2}
|
||||||
/******* SPRING TYPE BLUE ********/
|
/******* SPRING TYPE BLUE ********/
|
||||||
/******** E07-M1101D-SMA *********/
|
/******** E07-M1101D-SMA *********/
|
||||||
// 1 Black: GND
|
// 1 Black: GND
|
||||||
|
|
@ -1238,7 +1239,8 @@
|
||||||
var tConnect = null;
|
var tConnect = null;
|
||||||
var sockIsOpen = false;
|
var sockIsOpen = false;
|
||||||
var connecting = false;
|
var connecting = false;
|
||||||
function initSockets() {
|
var connects = 0;
|
||||||
|
async function initSockets() {
|
||||||
if (connecting) return;
|
if (connecting) return;
|
||||||
console.log('Connecting to socket...');
|
console.log('Connecting to socket...');
|
||||||
connecting = true;
|
connecting = true;
|
||||||
|
|
@ -1250,7 +1252,6 @@
|
||||||
}
|
}
|
||||||
waitMessage(document.getElementById('divContainer')).classList.add('socket-wait');
|
waitMessage(document.getElementById('divContainer')).classList.add('socket-wait');
|
||||||
try {
|
try {
|
||||||
console.log(location);
|
|
||||||
socket = new WebSocket(`ws://${window.location.hostname}:8080/`);
|
socket = new WebSocket(`ws://${window.location.hostname}:8080/`);
|
||||||
socket.onmessage = (evt) => {
|
socket.onmessage = (evt) => {
|
||||||
if (evt.data.startsWith('42')) {
|
if (evt.data.startsWith('42')) {
|
||||||
|
|
@ -1298,22 +1299,33 @@
|
||||||
console.log({ msg: 'open', evt: evt });
|
console.log({ msg: 'open', evt: evt });
|
||||||
sockIsOpen = true;
|
sockIsOpen = true;
|
||||||
connecting = false;
|
connecting = false;
|
||||||
|
connects++;
|
||||||
let wms = document.getElementsByClassName('socket-wait');
|
let wms = document.getElementsByClassName('socket-wait');
|
||||||
for (let i = 0; i < wms.length; i++) {
|
for (let i = 0; i < wms.length; i++) {
|
||||||
wms[i].remove();
|
wms[i].remove();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
socket.onclose = (evt) => {
|
socket.onclose = (evt) => {
|
||||||
waitMessage(document.getElementById('divContainer')).classList.add('socket-wait');
|
if(document.getElementsByClassName('socket-wait') === 0)
|
||||||
|
waitMessage(document.getElementById('divContainer')).classList.add('socket-wait');
|
||||||
if (evt.wasClean) {
|
if (evt.wasClean) {
|
||||||
console.log({ msg: 'close-clean', evt: evt });
|
console.log({ msg: 'close-clean', evt: evt });
|
||||||
tConnect = setTimeout(() => { reopenSocket(); }, 10000);
|
tConnect = setTimeout(async () => { await reopenSocket(); }, 10000);
|
||||||
console.log('Reconnecting socket in 10 seconds');
|
console.log('Reconnecting socket in 10 seconds');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
console.log({ msg: 'close-died', reason: evt.reason, evt: evt, sock: socket });
|
console.log({ msg: 'close-died', reason: evt.reason, evt: evt, sock: socket });
|
||||||
tConnect = setTimeout(() => { reopenSocket(); }, 3000);
|
if (connects > 0) {
|
||||||
|
console.log('Reconnecting socket in 3 seconds');
|
||||||
|
tConnect = setTimeout(async () => { await reopenSocket(); }, 3000);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log('Connecting socket in .5 seconds');
|
||||||
|
tConnect = setTimeout(async () => { await reopenSocket(); }, 500);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
connecting = false;
|
||||||
};
|
};
|
||||||
socket.onerror = (evt) => {
|
socket.onerror = (evt) => {
|
||||||
console.log({ msg: 'socket error', evt: evt, sock: socket });
|
console.log({ msg: 'socket error', evt: evt, sock: socket });
|
||||||
|
|
@ -1322,13 +1334,13 @@
|
||||||
console.log({
|
console.log({
|
||||||
msg: 'Websocket connection error', err: err
|
msg: 'Websocket connection error', err: err
|
||||||
});
|
});
|
||||||
tConnect = setTimeout(() => { reopenSocket(); }, 5000);
|
tConnect = setTimeout(async () => { await reopenSocket(); }, 5000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function reopenSocket() {
|
async function reopenSocket() {
|
||||||
if (tConnect) clearTimeout(tConnect);
|
if (tConnect) clearTimeout(tConnect);
|
||||||
tConnect = null;
|
tConnect = null;
|
||||||
initSockets();
|
await initSockets();
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
|
|
@ -1645,7 +1657,8 @@
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
initSockets();
|
(async () => { await initSockets(); })();
|
||||||
|
//initSockets();
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue