Tue, 23 Apr 2024 19:50:05 +0200
Added device delete
<?php function open_socket() { $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if (!($sock === false)) { if (socket_connect($sock, "localhost", 6554)) { socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 15, 'usec' => 0)); } else { socket_close($sock); } } return $sock; } /** * @param string $command to send to the server. * @return string with the complete reply from the * server. This can be a multiline reply. */ function send_cmd($command) { $sock = open_socket(); if ($sock == false) { return ""; } socket_write($sock, $command . "\r\n", 4096); $answer = ""; while (1) { $line = socket_read($sock, 4096); if ($line === '') break; $answer .= $line; } socket_close($sock); return $answer; } function startsWith($haystack, $needle) { return !strncmp($haystack, $needle, strlen($needle)); } $answer = send_cmd("DEVICES JSON"); $arr = explode("\r\n", $answer); if (startsWith($arr[0], "212")) { /* * Build reply with only temperature sensors. */ $sensors[] = array( 'uuid' => '', 'name' => 'Not Assigned' ); $rows = json_decode($arr[1], true); foreach($rows as $item) { if ($item['direction'] == "IN_ANALOG") { $sensors[] = array( 'uuid' => $item['uuid'], 'name' => $item['description']." ".$item['comment'] ); } } header("Content-type: application/json"); exit(json_encode($sensors)); } header("Content-type: application/json"); echo '{}'; ?>