diff --git a/src/HomeSpan.cpp b/src/HomeSpan.cpp index 757eddd..5479398 100644 --- a/src/HomeSpan.cpp +++ b/src/HomeSpan.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include "HomeSpan.h" #include "HAP.h" @@ -1471,6 +1472,8 @@ int Span::sprintfAttributes(char **ids, int numIDs, int flags, char *cBuf){ boolean Span::updateDatabase(boolean updateMDNS){ + std::sort(Accessories.begin(),Accessories.end(),SpanAccessory::compare); + uint8_t tHash[48]; TempBuffer tBuf(sprintfAttributes(NULL,GET_META|GET_PERMS|GET_TYPE|GET_DESC)+1); sprintfAttributes(tBuf.buf,GET_META|GET_PERMS|GET_TYPE|GET_DESC); diff --git a/src/HomeSpan.h b/src/HomeSpan.h index 966de42..5fe0739 100644 --- a/src/HomeSpan.h +++ b/src/HomeSpan.h @@ -288,6 +288,7 @@ struct SpanAccessory{ ~SpanAccessory(); int sprintfAttributes(char *cBuf, int flags); // prints Accessory JSON database into buf, unless buf=NULL; return number of characters printed, excluding null terminator, even if buf=NULL + static boolean compare(SpanAccessory *a, SpanAccessory *b){return(a->aidaid);} }; ///////////////////////////////