false, 'error' => 'vendor not found: ' . __DIR__ . '/../vendor/autoload.php']); exit; } require __DIR__ . '/../vendor/autoload.php'; use PhpMqtt\Client\MqttClient; use PhpMqtt\Client\ConnectionSettings; $uid = trim($_POST['uid'] ?? ''); $value = (int)($_POST['value'] ?? -1); if ($uid === '' || $value < 0 || $value > 255) { http_response_code(400); echo json_encode(['ok' => false, 'error' => 'parametros invalidos']); exit; } try { $settings = (new ConnectionSettings()) ->setUsername('xupa') ->setPassword('xupa') ->setUseTls(true) ->setTlsSelfSignedAllowed(true) ->setConnectTimeout(5) ->setSocketTimeout(3); $mqtt = new MqttClient('mqtt.xupas.mywire.org', 8883, 'web-brightness-' . getmypid()); $mqtt->connect($settings, false); $payload = json_encode(['cmd' => 'BRIGHTNESS', 'value' => $value]); $mqtt->publish("esp/$uid/cmd", $payload, 1, false); $mqtt->disconnect(); echo json_encode(['ok' => true, 'uid' => $uid, 'value' => $value]); } catch (Throwable $e) { http_response_code(500); echo json_encode(['ok' => false, 'error' => $e->getMessage()]); }