src.nth.io/

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--esp-homekit-intercom.code-workspace3
-rw-r--r--main/src/bell.c3
-rw-r--r--main/src/event_queue.c4
-rw-r--r--main/src/lock.c22
4 files changed, 20 insertions, 12 deletions
diff --git a/esp-homekit-intercom.code-workspace b/esp-homekit-intercom.code-workspace
index 27d7c81..0d5d87d 100644
--- a/esp-homekit-intercom.code-workspace
+++ b/esp-homekit-intercom.code-workspace
@@ -15,6 +15,7 @@
"task.h": "c"
},
"git.ignoreLimitWarning": true,
- "idf.port": "/dev/cu.usbserial-01D11E9B"
+ "idf.port": "/dev/cu.usbserial-01D11E9B",
+ "idf.flashType": "UART"
}
} \ No newline at end of file
diff --git a/main/src/bell.c b/main/src/bell.c
index 228179e..689856c 100644
--- a/main/src/bell.c
+++ b/main/src/bell.c
@@ -26,7 +26,10 @@ bool is_bell_ringing(int val)
void IRAM_ATTR intercom_bell_isr(void *arg)
{
if (is_intercom_bell_blocked)
+ {
+ ESP_LOGI(TAG, "Intercom bell ring BLOCKED");
return;
+ }
int val = adc1_get_raw(CONFIG_HOMEKIT_INTERCOM_BELL_ADC1_CHANNEL);
if (is_bell_ringing(val))
diff --git a/main/src/event_queue.c b/main/src/event_queue.c
index 2f4a93d..dfd0d7b 100644
--- a/main/src/event_queue.c
+++ b/main/src/event_queue.c
@@ -15,21 +15,25 @@ static xQueueHandle intercom_event_queue = NULL;
void intercom_event_queue_bell_ring()
{
+ ESP_LOGI(TAG, "Intercom event queued BELL RING");
xQueueSendFromISR(intercom_event_queue, (void *)&INTERCOM_EVENT_QUEUE_BELL_RING, NULL);
}
void intercom_event_queue_lock_unsecure()
{
+ ESP_LOGI(TAG, "Intercom event queued LOCK UNSECURE");
xQueueSendToBack(intercom_event_queue, (void *)&INTERCOM_EVENT_QUEUE_LOCK_UNSECURE, 10);
}
void intercom_event_queue_lock_secure()
{
+ ESP_LOGI(TAG, "Intercom event queued LOCK SECURE");
xQueueSendToBack(intercom_event_queue, (void *)&INTERCOM_EVENT_QUEUE_LOCK_SECURE, 10);
}
void intercom_event_queue_lock_timeout()
{
+ ESP_LOGI(TAG, "Intercom event queued LOCK TIMEOUT");
xQueueSendToBack(intercom_event_queue, (void *)&INTERCOM_EVENT_QUEUE_LOCK_TIMEOUT, 10);
}
diff --git a/main/src/lock.c b/main/src/lock.c
index a088d03..ac99864 100644
--- a/main/src/lock.c
+++ b/main/src/lock.c
@@ -16,8 +16,9 @@
#define HAP_LOCK_TARGET_STATE_UNSECURED 0
#define HAP_LOCK_TARGET_STATE_SECURED 1
-static hap_val_t HAP_LOCK_CURRENT_STATE_UNSECURED = {.u = 0};
-static hap_val_t HAP_LOCK_CURRENT_STATE_SECURED = {.u = 1};
+static hap_val_t HAP_VAL_LOCK_CURRENT_STATE_UNSECURED = {.u = 0};
+static hap_val_t HAP_VAL_LOCK_CURRENT_STATE_SECURED = {.u = 1};
+static hap_val_t HAP_VAL_LOCK_TARGET_STATE_SECURED = {.u = HAP_LOCK_TARGET_STATE_SECURED};
static TimerHandle_t intercom_lock_timer = NULL; // lock the door when timer triggered
static hap_char_t *intercom_lock_current_state;
@@ -25,25 +26,24 @@ static hap_char_t *intercom_lock_target_state;
void intercom_lock_unsecure()
{
- ESP_LOGI(TAG, "Intercom unlock event processed");
+ ESP_LOGI(TAG, "Intercom lock unsecure event processed");
gpio_set_level(CONFIG_HOMEKIT_INTERCOM_LOCK_GPIO_PIN, INTERCOM_LOCK_GPIO_UNLOCKED);
- hap_char_update_val(intercom_lock_current_state, &HAP_LOCK_CURRENT_STATE_UNSECURED);
+ hap_char_update_val(intercom_lock_current_state, &HAP_VAL_LOCK_CURRENT_STATE_UNSECURED);
xTimerReset(intercom_lock_timer, 10);
}
void intercom_lock_secure()
{
- ESP_LOGI(TAG, "Intercom lock event processed");
+ ESP_LOGI(TAG, "Intercom lock secure event processed");
gpio_set_level(CONFIG_HOMEKIT_INTERCOM_LOCK_GPIO_PIN, INTERCOM_LOCK_GPIO_LOCKED);
- hap_char_update_val(intercom_lock_current_state, &HAP_LOCK_CURRENT_STATE_SECURED);
+ hap_char_update_val(intercom_lock_current_state, &HAP_VAL_LOCK_CURRENT_STATE_SECURED);
}
void intercom_lock_timeout()
{
ESP_LOGI(TAG, "Intercom lock timeout event processed");
intercom_event_queue_lock_secure();
- hap_val_t target_lock_secured = {.u = HAP_LOCK_TARGET_STATE_SECURED};
- hap_char_update_val(intercom_lock_target_state, &target_lock_secured);
+ hap_char_update_val(intercom_lock_target_state, &HAP_VAL_LOCK_TARGET_STATE_SECURED);
}
int intercom_lock_write_cb(hap_write_data_t write_data[], int count, void *serv_priv, void *write_priv)
@@ -55,7 +55,7 @@ int intercom_lock_write_cb(hap_write_data_t write_data[], int count, void *serv_
write = &write_data[i];
if (!strcmp(hap_char_get_type_uuid(write->hc), HAP_CHAR_UUID_LOCK_TARGET_STATE))
{
- ESP_LOGI(TAG, "Received Write. Intercom lock %d", write->val.u);
+ ESP_LOGI(TAG, "Intercom lock received write [%d]", write->val.u);
switch (write->val.u)
{
@@ -81,13 +81,13 @@ int intercom_lock_write_cb(hap_write_data_t write_data[], int count, void *serv_
void intercom_lock_timer_cb(TimerHandle_t timer)
{
- ESP_LOGI(TAG, "Intercom lock timer fired - event queued");
+ ESP_LOGI(TAG, "Intercom lock timer fired");
intercom_event_queue_lock_timeout();
}
hap_serv_t *intercom_lock_init(uint32_t key_gpio_pin)
{
- hap_serv_t *intercom_lock_service = hap_serv_lock_mechanism_create(HAP_LOCK_CURRENT_STATE_SECURED.u, HAP_LOCK_TARGET_STATE_SECURED);
+ hap_serv_t *intercom_lock_service = hap_serv_lock_mechanism_create(HAP_VAL_LOCK_CURRENT_STATE_SECURED.u, HAP_LOCK_TARGET_STATE_SECURED);
hap_serv_add_char(intercom_lock_service, hap_char_name_create("Intercom Lock"));
intercom_lock_current_state = hap_serv_get_char_by_uuid(intercom_lock_service, HAP_CHAR_UUID_LOCK_CURRENT_STATE);