light driver thread implemented
This commit is contained in:
@@ -12,13 +12,10 @@ static char manufacturer[] = "\x05""Drath";
|
||||
static char model[] = "\x15""Dimmable Zigbee Light";
|
||||
static const uint8_t endpoint_no = 1;
|
||||
|
||||
static const uint16_t transition_on_off_ms = 500;
|
||||
static const uint16_t transition_level_ms = 100; // looks like it gets lvl updates from HA every 100ms
|
||||
|
||||
static esp_err_t deferred_driver_init(void) {
|
||||
static bool is_inited = false;
|
||||
if (!is_inited) {
|
||||
light_driver_init(LIGHT_DEFAULT_OFF);
|
||||
xTaskCreate(light_driver_task, "light task", 4096, NULL, 6, NULL);
|
||||
is_inited = true;
|
||||
}
|
||||
return is_inited ? ESP_OK : ESP_FAIL;
|
||||
@@ -60,7 +57,7 @@ static esp_err_t zigbee_attribute_handler(const esp_zb_zcl_set_attr_value_messag
|
||||
bool light_state = false;
|
||||
light_state = message->attribute.data.value ? *(bool*)message->attribute.data.value : light_state;
|
||||
ESP_LOGI(TAG, "Light sets to %s", light_state ? "On" : "Off");
|
||||
light_driver_set_power(light_state, transition_on_off_ms);
|
||||
light_driver_set_power(light_state);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -68,7 +65,7 @@ static esp_err_t zigbee_attribute_handler(const esp_zb_zcl_set_attr_value_messag
|
||||
if (message->attribute.id == ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID && message->attribute.data.type == ESP_ZB_ZCL_ATTR_TYPE_U8) {
|
||||
uint8_t light_level = 0;
|
||||
light_level = message->attribute.data.value ? *(uint8_t*)message->attribute.data.value : light_level;
|
||||
light_driver_set_level(light_level, transition_level_ms);
|
||||
light_driver_set_level(light_level);
|
||||
ESP_LOGI(TAG, "Light level changes to %d", light_level);
|
||||
}
|
||||
break;
|
||||
@@ -166,9 +163,9 @@ void zigbee_endpoint_init(esp_zb_ep_list_t *ep_list, esp_zb_cluster_list_t *clus
|
||||
}
|
||||
|
||||
/* appearently you cant rename this? */
|
||||
void esp_zb_app_signal_handler(esp_zb_app_signal_t* signal_struct) {
|
||||
uint32_t* p_sg_p = signal_struct->p_app_signal;
|
||||
const esp_err_t err_status = signal_struct->esp_err_status;
|
||||
void esp_zb_app_signal_handler(const esp_zb_app_signal_t* signal_s) {
|
||||
uint32_t* p_sg_p = signal_s->p_app_signal;
|
||||
const esp_err_t err_status = signal_s->esp_err_status;
|
||||
const esp_zb_app_signal_type_t sig_type = *p_sg_p;
|
||||
|
||||
switch (sig_type) {
|
||||
|
||||
Reference in New Issue
Block a user