request('POST', $url, [ 'json' => $postParam, 'headers' => [ 'Content-Type' => 'application/json' ], ]); if ($response->getStatusCode() == 200) { $result = $response->getBody()->getContents(); $result = str_replace('', '', $result); $result = js2php($result); return $result; } return false; } /** * 获取 AIBox 列表 * @return false|mixed */ public function getHosts() { $response = self::post('AiBoxDevice_GetList'); return $response; } /** * 添加 AIBox * @param $name * @param $code * @return false|mixed */ public function addHost($name, $code) { $response = self::post('AiBoxDevice_Add', [ 'HostCode' => $code, 'Name' => $name, ]); return $response; } /** * 添加 AIBox * @param $name * @param $code * @return false|mixed */ public function delHost($deviceId) { $response = self::post('AiBoxDevice_Delete', [ 'AiBoxDeviceId' => $deviceId, ]); return $response; } /** * @param $code * @return false|mixed] */ public function getHost($code) { $response = self::post('AiBoxDevice_GetModelByHostCode', [ 'HostCode' => $code, ]); return $response; } /** * 获得盒子下面的通道 * @param $deviceId * @return false|mixed */ public function getHostChannels($deviceId) { $response = self::post('AiChannel_GetListByAiBoxDeviceID', [ 'AiBoxDeviceId' => $deviceId, ]); return $response; } /** * 获取通道和规则 * @param $code * @return false|mixed */ public function getHostChannelsAndRules($code) { $response = self::post('AiBoxDevice_GetChannels', [ 'HostCode' => $code, ]); return $response; } /** * 重启盒子 * @param $code * @return false|mixed */ public function reboot($code) { $response = self::post('AiBoxDevice_Reboot', [ 'HostCode' => $code, ]); return $response; } /** * 重启盒子内核程序 * @param $code * @return false|mixed */ public function reStartup($code) { $response = self::post('AiBoxDevice_ReStartup', [ 'HostCode' => $code, ]); return $response; } /** * 通道下面的AI规则 * @param $channelId * @return false|mixed */ public function getChannelsRules($channelId) { $response = self::post('AiChannelRule_GetListByAiChannelID', [ 'AiChannelId' => $channelId, ]); return $response; } /** * 抓拍图片 * @param $code * @param $channelId * @return false|mixed */ public function takePicture($code, $channelId) { $response = self::post('GetAiBoxChannelOneLiveFrameJpegResponse', [ 'HostCode' => $code, 'ChannelId' => $channelId, ]); return $response; } /** * 获取抓拍历史纪录 * @param $code * @param $param * @return false|mixed */ public function getEvents($code, $param = []) { $response = self::post('AiBoxDevice_GetEventRecord', [ 'HostCode' => $code, ], $param); return $response; } /** * @param $code * @param $param * @return false|mixed */ public function getOutBoxs($code) { $response = self::post('AiBoxDevice_GetOutputDb_Json', [ 'HostCode' => $code, ]); return $response; } /** * 播放语音 * @param $code * @param $outputDeviceID * @param $text * @param $volume * @return false|mixed */ public function playVoice($code, $outputDeviceID, $text, $volume = 100) { $response = self::post('AiBoxDevice_TextToTtsVoice', [ "HostCode" => $code, ], [ "HostCode" => $code, "OutputDeviceID" => $outputDeviceID, "Text" => $text, "Volume" => $volume, ]); return $response; } /** * 控制继电器 * @param $code * @param $outputDeviceID * @param $Channel * @param $Value * @param $DelaySec * @param $OutputType * @return false|mixed */ public function openGate($code, $outputDeviceID, $Channel, $Value, $DelaySec = 0, $OutputType = 2) { $response = self::post('AiBoxDevice_RelayOutputControl', [ "HostCode" => $code, ], [ "OutputType" => $OutputType, "OutputDeviceID" => $outputDeviceID, "Channel" => $Channel, "Value" => $Value, "DelaySec" => $DelaySec, ]); return $response; } }