Initial creation of getStatusURL() web log
Built basic framework to response to "GET /status". Next up: Add timeclock.
This commit is contained in:
parent
71071198c3
commit
ae4b6e8df1
52
src/HAP.cpp
52
src/HAP.cpp
|
|
@ -342,6 +342,11 @@ void HAPClient::processRequest(){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!strncmp(body,"GET /status ",12)){ // GET STATUS - AN OPTIONAL, NON-HAP-R2 FEATURE
|
||||||
|
getStatusURL();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
notFoundError();
|
notFoundError();
|
||||||
Serial.print("\n*** ERROR: Bad GET request - URL not found\n\n");
|
Serial.print("\n*** ERROR: Bad GET request - URL not found\n\n");
|
||||||
return;
|
return;
|
||||||
|
|
@ -1249,6 +1254,52 @@ int HAPClient::putPrepareURL(char *json){
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
int HAPClient::getStatusURL(){
|
||||||
|
|
||||||
|
char uptime[16];
|
||||||
|
int seconds=esp_timer_get_time()/1e6;
|
||||||
|
int secs=seconds%60;
|
||||||
|
int mins=(seconds/=60)%60;
|
||||||
|
int hours=(seconds/=60)%24;
|
||||||
|
int days=(seconds/=24);
|
||||||
|
|
||||||
|
sprintf(uptime,"%d:%02d:%02d:%02d",days,hours,mins,secs);
|
||||||
|
|
||||||
|
String response="HTTP/1.1 200 OK\r\nContent-type: text/html\r\n\r\n";
|
||||||
|
|
||||||
|
response+="<html><head><title>HomeSpan Status</title>\n";
|
||||||
|
response+="<style>td {padding-right: 40px;}";
|
||||||
|
response+="</style></head>\n";
|
||||||
|
response+="<body style=\"background-color:lightblue;\">\n";
|
||||||
|
response+="<p><b>" + String(homeSpan.displayName) + "</b></p>\n";
|
||||||
|
|
||||||
|
response+="<table>\n";
|
||||||
|
response+="<tr><td>Uptime:</td><td>" + String(uptime) + "</td></tr>\n";
|
||||||
|
response+="<tr><td>ESP32 Board:</td><td>" + String(ARDUINO_BOARD) + "</td></tr>\n";
|
||||||
|
response+="<tr><td>Arduino-ESP Version:</td><td>" + String(ARDUINO_ESP_VERSION) + "</td></tr>\n";
|
||||||
|
response+="<tr><td>ESP-IDF Version:</td><td>" + String(ESP_IDF_VERSION_MAJOR) + "." + String(ESP_IDF_VERSION_MINOR) + "." + String(ESP_IDF_VERSION_PATCH) + "</td></tr>\n";
|
||||||
|
response+="<tr><td>HomeSpan Version:</td><td>" + String(HOMESPAN_VERSION) + "</td></tr>\n";
|
||||||
|
response+="<tr><td>Sketch Version:</td><td>" + String(homeSpan.getSketchVersion()) + "</td></tr>\n";
|
||||||
|
response+="</table>\n";
|
||||||
|
|
||||||
|
response+="</body></html>";
|
||||||
|
|
||||||
|
LOG2("\n>>>>>>>>>> ");
|
||||||
|
LOG2(client.remoteIP());
|
||||||
|
LOG2(" >>>>>>>>>>\n");
|
||||||
|
LOG2(response);
|
||||||
|
LOG2("\n");
|
||||||
|
client.print(response);
|
||||||
|
LOG2("------------ SENT! --------------\n");
|
||||||
|
|
||||||
|
delay(1);
|
||||||
|
client.stop();
|
||||||
|
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////////
|
||||||
|
|
||||||
void HAPClient::callServiceLoops(){
|
void HAPClient::callServiceLoops(){
|
||||||
|
|
||||||
homeSpan.snapTime=millis(); // snap the current time for use in ALL loop routines
|
homeSpan.snapTime=millis(); // snap the current time for use in ALL loop routines
|
||||||
|
|
@ -1304,7 +1355,6 @@ void HAPClient::checkTimedWrites(){
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
void HAPClient::eventNotify(SpanBuf *pObj, int nObj, int ignoreClient){
|
void HAPClient::eventNotify(SpanBuf *pObj, int nObj, int ignoreClient){
|
||||||
|
|
||||||
for(int cNum=0;cNum<homeSpan.maxConnections;cNum++){ // loop over all connection slots
|
for(int cNum=0;cNum<homeSpan.maxConnections;cNum++){ // loop over all connection slots
|
||||||
|
|
|
||||||
|
|
@ -118,6 +118,7 @@ struct HAPClient {
|
||||||
int getCharacteristicsURL(char *urlBuf); // GET /characteristics (HAP Section 6.7.4)
|
int getCharacteristicsURL(char *urlBuf); // GET /characteristics (HAP Section 6.7.4)
|
||||||
int putCharacteristicsURL(char *json); // PUT /characteristics (HAP Section 6.7.2)
|
int putCharacteristicsURL(char *json); // PUT /characteristics (HAP Section 6.7.2)
|
||||||
int putPrepareURL(char *json); // PUT /prepare (HAP Section 6.7.2.4)
|
int putPrepareURL(char *json); // PUT /prepare (HAP Section 6.7.2.4)
|
||||||
|
int getStatusURL(); // GET / status (an optional, non-HAP feature)
|
||||||
|
|
||||||
void tlvRespond(); // respond to client with HTTP OK header and all defined TLV data records (those with length>0)
|
void tlvRespond(); // respond to client with HTTP OK header and all defined TLV data records (those with length>0)
|
||||||
void sendEncrypted(char *body, uint8_t *dataBuf, int dataLen); // send client complete ChaCha20-Poly1305 encrypted HTTP mesage comprising a null-terminated 'body' and 'dataBuf' with 'dataLen' bytes
|
void sendEncrypted(char *body, uint8_t *dataBuf, int dataLen); // send client complete ChaCha20-Poly1305 encrypted HTTP mesage comprising a null-terminated 'body' and 'dataBuf' with 'dataLen' bytes
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue