fix: deletes send their removal after the reply; test_reboot waits for the restart

- shadeRemoved, groupRemoved and roomRemoved went out from the deletes,
  before the edit's reply. They now come from editChanges and go out with
  the edit's other events, after it (test_adding_and_deleting_a_room).
- test_reboot reconnected in the moment between the sockets closing and the
  restart, and waited for a hello that never came. It now waits, retries a
  connect without hello, and checks the uptime went back.

e2e on the device (esp32s3dbg): 72 passed, 3 skipped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
cjkas 2026-10-25 13:07:17 +01:00
parent 17bb571635
commit 2c815d30f1
7 changed files with 53 additions and 20 deletions

View file

@ -6,7 +6,6 @@
#include "ConfigFile.h"
#include "ModelEditor.h"
#include "ShadeChanges.h"
#include "outputs/ProtoSocket.h"
static const char *TAG = "Somfy";
@ -291,7 +290,6 @@ bool SomfyShadeController::deleteShade(uint8_t shadeId) {
for(uint8_t i = 0; i < SOMFY_MAX_SHADES; i++) {
if(this->shades[i].getShadeId() == shadeId) {
shades[i].emitState("shadeRemoved");
protoSocket.shadeRemoved(shadeId);
shades[i].unpublish();
this->shades[i].clear();
}
@ -322,7 +320,6 @@ bool SomfyShadeController::deleteRoom(uint8_t roomId) {
}
}
rooms[i].emitState("roomRemoved");
protoSocket.roomRemoved(roomId);
this->rooms[i].clear();
}
}
@ -338,7 +335,6 @@ bool SomfyShadeController::deleteGroup(uint8_t groupId) {
if(shade) shade->configChanged();
}
groups[i].emitState("groupRemoved");
protoSocket.groupRemoved(groupId);
groups[i].unpublish();
this->groups[i].clear();
}