I got error: initializer element is not constant, how can i pass ip to MANUFACTURER? I dont know how to convert..
static const char* get_my_ip(void)
{
static char ip[16] = "0.0.0.0";
ip[0] = 0;
struct ip_info ipinfo;
(void) sdk_wifi_get_ip_info(STATION_IF, &ipinfo);
snprintf(ip, sizeof(ip), IPSTR, IP2STR(&ipinfo.ip));
return (char*) ip;
}
homekit_characteristic_t name = HOMEKIT_CHARACTERISTIC_(NAME, "Switch");
homekit_characteristic_t serial = HOMEKIT_CHARACTERISTIC_(SERIAL_NUMBER, "N/A");
homekit_characteristic_t ne = HOMEKIT_CHARACTERISTIC_(MANUFACTURER, get_my_ip());
homekit_accessory_t *accessories[] = {
HOMEKIT_ACCESSORY(.id=1, .category=homekit_accessory_category_switch, .services=(homekit_service_t*[]){
HOMEKIT_SERVICE(ACCESSORY_INFORMATION, .characteristics=(homekit_characteristic_t*[]){
&name,
// HOMEKIT_CHARACTERISTIC(MANUFACTURER, get_my_ip() ),
&ne,
&serial,
HOMEKIT_CHARACTERISTIC(MODEL, "Basic"),
HOMEKIT_CHARACTERISTIC(FIRMWARE_REVISION, "1.0"),
HOMEKIT_CHARACTERISTIC(IDENTIFY, identify),
NULL
}),
HOMEKIT_SERVICE(SWITCH, .primary=true, .characteristics=(homekit_characteristic_t*[]){
HOMEKIT_CHARACTERISTIC(NAME, "Switch"),
&switch_on,
NULL
}),
NULL
}),
NULL
};
/esp-homekit-devices/devices/1/main.c:171:1: error: initializer element is not constant
homekit_characteristic_t ne = HOMEKIT_CHARACTERISTIC_(MANUFACTURER, get_my_ip());
^
/esp-homekit-devices/devices/1/main.c:171:1: error: (near initialization for 'ne.value..string_value')
make: *** [build/program//main.o] Error 1