Difference between revisions of "Troubleshooting unsorted"
m |
m |
||
| Line 54: | Line 54: | ||
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: http://192.168.67.154/api_v2/?{"request":"status-get","addr":"395:14","API-KEY":"08283242722612433"} | ||
<div class="mw-collapsible mw-collapsed" style="width:400px"> | <div class="mw-collapsible mw-collapsed" style="width:400px"> | ||
| − | index.php | + | '''index.php''' |
| − | <div class="mw-collapsible-content"> | + | <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> | </div> | ||
Revision as of 15:30, 8 February 2022
Disk usage error
Check what folder is full:
cd /storage
du -h -d 1
If folder is /storage/history, then write in screen:
history delete old
This will delete history of connected devices.
Registering email with no verification
testemail@gmail.com.no-check if there is ".no-check" in the email address it will not send email for vefirication
Alice
https://dialogs.yandex.ru/store/skills/f636b340-larnitech
Upload backup from server A to server B
- Save backup on A;
- Download it;
- Switch module ID on server B to A's ID;
- Copy and save somewhere B server's sn from logic->hw;
- Install needed plugins;
- Switch server mode to 'Gateway';
- Upload backup to B and restore it;
- Switch sn="xxxxxxxx" on B in logic.xml to the sn from p.4;
- Switch back server mode to 'Default'
Find out password from LT_Setup
sqlite3 /home/settings/db/larnitech.db
select * from accounts;
Control valve-heating from script
sprintf(strCommand, "%03d:%03d0ts:%d",ID, SID, setpoint);
strCommand[7]=0;
setStatus(1000:102, &strCommand);
Bluetooth
- Connect the module.
- Find item in logic with type="json".
- Add sub-type="btunreg" json item.
- Turn on "Edit mode" in the app.
- Connect BT device from menu-> setup-> Bluetooth.
No modules in lt_setup after reset to factory defaults via web on the new (3.xx) lt_setup
You need to be very carefully. If any errors in the file system - it will not boot and you will need to send the device to repair!
Send command bootrw, then bootro.
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: http://192.168.67.154/api_v2/?{"request":"status-get","addr":"395:14","API-KEY":"08283242722612433"}
index.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);