Прошу обратить внимание на WIFI розетки Orvibo S20.
Написал код для Majordomo для управления путем UDP запросов.
Можно добавить в функционал esp8266 и выполнять управление розетками путем GET запросов server/orvibo?socket=[1,2,3,4...]&state=[1,0]
так как реализовать UDP пакет в домашней сети без какого либо сервера нет возможности.
Настройка состоит в добавлении в память esp8266 двух параметров:
- IP адреса розетки
- MAC адреса розетки
Для каждого добавленного устройства будет уникальный ID [socket] по которому можно менять статус розетки [state] ВКЛ или ВЫКЛ
//Orvibo S20
error_reporting(E_ALL | E_STRICT);
//================ CHANGE ME ================
$macAddress = strtolower('AA-BB-CC-DD-EE-FF'); //MAC адрес розетки
$localIPAddress = '192.168.1.146'; //IP адрес розетки
//===========================================
$port = 10000;
$twenties = '202020202020';
$ma = implode('', explode('-', $macAddress));
$maReverse = implode('', array_reverse(explode('-', $macAddress)));
$subscribe = pack('H*', '6864001e636c' . $ma . $twenties . $maReverse . $twenties); //Регистрация розетки
$on = pack('H*', '686400176463' . $ma . $twenties . '0000000001'); //Включить розетку
$off = pack('H*', '686400176463' . $ma . $twenties . '0000000000'); //Выключить розетку
$socket = socket_create(AF_INET, SOCK_DGRAM, 0);
socket_sendto($socket, $subscribe, strlen($subscribe), 0, $localIPAddress, $port);
sleep(1);
socket_sendto($socket, $on, strlen($on), 0, $localIPAddress, $port);
sleep(1);
socket_sendto($socket, $off, strlen($off), 0, $localIPAddress, $port);
socket_close($socket);