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