false, 'error' => 'parametros invalidos']); exit; } // Validar JSON if (json_decode($payload) === null) { http_response_code(400); echo json_encode(['ok' => false, 'error' => 'payload invalido']); 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-pub-' . getmypid()); $mqtt->connect($settings, false); $mqtt->publish("esp/$uid/cmd", $payload, 1, false); $mqtt->disconnect(); echo json_encode(['ok' => true, 'uid' => $uid]); } catch (Throwable $e) { http_response_code(500); echo json_encode(['ok' => false, 'error' => $e->getMessage()]); }