diff --git a/Network.cpp b/Network.cpp
index e54c2af..f855179 100644
--- a/Network.cpp
+++ b/Network.cpp
@@ -48,10 +48,9 @@ void Network::loop() {
}
void Network::emitSockets() {
if(WiFi.status() == WL_CONNECTED) {
-
if(abs(abs(WiFi.RSSI()) - abs(this->lastRSSI)) > 2 || WiFi.channel() != this->lastChannel) {
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);
this->lastRSSI = WiFi.RSSI();
this->lastChannel = WiFi.channel();
diff --git a/Sockets.cpp b/Sockets.cpp
index 1f9b5ef..2b35aad 100644
--- a/Sockets.cpp
+++ b/Sockets.cpp
@@ -16,7 +16,7 @@ char g_buffer[1024];
* ClientSocketEvent class members
********************************************************************/
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() {
sockServer.loop();
}
+/*
bool SocketEmitter::sendToClients(const char *evt, JsonObject &obj) {
serializeJson(obj, g_buffer, sizeof(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));
return this->sendToClient(num, evt, g_buffer);
}
+*/
bool SocketEmitter::sendToClients(const char *evt, const char *payload) {
if(settings.status == DS_FWUPDATE) return true;
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);
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");
settings.emitSockets();
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
// sockServer.sendBIN(num, payload, length);
break;
+ case WStype_PING:
+ Serial.printf("Ping from %u\n", num);
+ break;
+
}
}
diff --git a/Sockets.h b/Sockets.h
index 53389b7..2c1310c 100644
--- a/Sockets.h
+++ b/Sockets.h
@@ -17,8 +17,8 @@ class SocketEmitter {
void disconnect();
bool sendToClients(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 sendToClient(uint8_t num, const char *evt, JsonObject &obj);
+ //bool sendToClients(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);
};
#endif
diff --git a/Somfy.cpp b/Somfy.cpp
index f005282..6fe533a 100644
--- a/Somfy.cpp
+++ b/Somfy.cpp
@@ -604,7 +604,8 @@ void SomfyShade::moveToTarget(uint8_t target) {
Serial.print("% using ");
Serial.println(translateSomfyCommand(cmd));
this->target = target;
- this->seekingPos = true;
+ if(target > 0 && target != 100) this->seekingPos = true;
+ else this->seekingPos = false;
SomfyRemote::sendCommand(cmd);
}
diff --git a/SomfyController.ino.esp32.bin b/SomfyController.ino.esp32.bin
index b025b17..11f4815 100644
Binary files a/SomfyController.ino.esp32.bin and b/SomfyController.ino.esp32.bin differ
diff --git a/SomfyController.littlefs.bin b/SomfyController.littlefs.bin
index 1bed716..6ed296c 100644
Binary files a/SomfyController.littlefs.bin and b/SomfyController.littlefs.bin differ
diff --git a/data/index.html b/data/index.html
index 54db206..43705be 100644
--- a/data/index.html
+++ b/data/index.html
@@ -6,6 +6,7 @@
@@ -1645,7 +1657,8 @@
});
});
- initSockets();
+ (async () => { await initSockets(); })();
+ //initSockets();