Line 19: |
Line 19: |
| | | |
| ==Upload backup from server A to server B== | | ==Upload backup from server A to server B== |
− | # Save backup on A; | + | # Save backup on server A; |
| # Download it; | | # Download it; |
| # Switch module ID on server B to A's ID; | | # Switch module ID on server B to A's ID; |
Line 53: |
Line 53: |
| Send command <code>bootrw</code>, then <code>bootro</code>.<br> | | Send command <code>bootrw</code>, then <code>bootro</code>.<br> |
| Edit /boot/config.txt with data from another server, where all works correctly. | | Edit /boot/config.txt with data from another server, where all works correctly. |
| + | |
| + | ==How to add http-API2 converter== |
| + | # Create folder /home/html/api_v2. |
| + | # Put the file (index.php) into the folder. |
| + | # Enable API in LTsetup |
| + | # Request example: <nowiki>http://192.168.67.154/api_v2/?{"request":"status-get","addr":"395:14","API-KEY":"08283242722612433"}</nowiki> |
| + | <div class="mw-collapsible mw-collapsed" style="width:800px"> |
| + | <center>'''index.php'''</center> |
| + | <div class="mw-collapsible-content"> |
| + | <syntaxhighlight lang="php"> |
| + | <?php |
| + | |
| + | function api_send($sock, $req) { |
| + | $r = '-JSON-'.$req; |
| + | return fwrite($sock, pack('I', strlen($r)) . $r); |
| + | } |
| + | |
| + | function api_recv($sock) { |
| + | $s = fread($sock, 4); |
| + | $size = unpack("I", $s)[1]; |
| + | $data = fread($sock, $size); |
| + | if (strpos($data, '"error"')) { |
| + | die(substr($data, 7)); |
| + | } |
| + | return substr($data, 7); |
| + | } |
| + | |
| + | $headers = apache_request_headers(); |
| + | if ($_SERVER['REQUEST_METHOD'] === 'POST') { |
| + | $post = file_get_contents('php://input'); |
| + | } else { |
| + | $post = urldecode($_SERVER['QUERY_STRING']); |
| + | } |
| + | |
| + | if (!isset($headers['API-KEY'])) { // API key not found in header, Checking request |
| + | $req = json_decode($post, true); |
| + | if (!isset($req['API-KEY'])) die('No API-KEY provided'); |
| + | $key = $req['API-KEY']; |
| + | unset($req['API-KEY']); |
| + | $post = json_encode($req); |
| + | } else $key = $headers['API-KEY']; |
| + | |
| + | $sock = stream_socket_client('unix:///tmp/sh.socket', $errno, $errst); |
| + | $auth_req = '{"request": "authorize","key": "'.$key.'"}'; |
| + | api_send($sock, $auth_req); |
| + | api_recv($sock); |
| + | api_send($sock, $post); |
| + | echo api_recv($sock); |
| + | fclose($sock); |
| + | </syntaxhighlight> |
| + | </div> |
| + | </div> |