modified: app.php renamed: update.php -> device-api.php new file: integration.php deleted: registration.php deleted: report.php
38 lines
1.3 KiB
PHP
38 lines
1.3 KiB
PHP
<?php
|
|
|
|
// Returns a new ID for device to use for future communication.
|
|
$router->get('/api/id', function($req) {
|
|
http_response_code(200);
|
|
});
|
|
|
|
// Device reports temperature back on this endpoint.
|
|
$router->post('/api/report', function($req) {
|
|
echo 'body:' . var_dump($req->getBody()) . "\n";
|
|
DumpHTTPRequestToFile::execute("/tmp/out.txt");
|
|
http_response_code(200);
|
|
});
|
|
|
|
$router->get('/api/update', function() {
|
|
if ( $_SERVER['HTTP_USER_AGENT'] == 'ESP8266-http-Update' && isset($_SERVER['HTTP_X_ESP8266_SKETCH_MD5']) ) {
|
|
$user_agent = $_SERVER['HTTP_USER_AGENT'];
|
|
$curr_firmware_md5 = $_SERVER['HTTP_X_ESP8266_SKETCH_MD5'];
|
|
$firmware_file = __DIR__ . '/firmware.bin';
|
|
$firmware_md5 = md5_file($firmware_file);
|
|
echo "USER_AGENT -> ESP8266-http-Update\n";
|
|
echo 'X_ESP8266_SKETCH_MD5 -> ' . $_SERVER['HTTP_X_ESP8266_SKETCH_MD5'] . "\n";
|
|
echo 'MD5 file hash of ' . $firmware_file . ': ' . $firmware_md5;
|
|
if ( $curr_firmware_md5 == $firmware_md5 ) {
|
|
http_response_code(204);
|
|
}
|
|
else {
|
|
$fwdata = file_get_contents($firmware_file);
|
|
header('Content-Length:' . strlen($fwdata));
|
|
echo $fwdata;
|
|
http_response_code(200);
|
|
}
|
|
return;
|
|
}
|
|
|
|
http_response_code(400);
|
|
});
|