Я бы поставил работу такой системы через mqtt, в общем у меня так и сделано. Каждое устройство после загрузки запрашивает mqtt брокер на свое последнее состояние, соответственно если последней командой было "выключить", то он приведет реле в соответствующее состояние. Ну а все управление посылает команды в брокера и ему не важно в сети устройство или нет. Как только устройство будет в сети, так сразу получит свое последнее актуальное состояние.