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);