Skip to content

Commit

Permalink
Add unique HK device and serial names based on ratgdo's MAC addr
Browse files Browse the repository at this point in the history
Switch to snprintf. Use chipId for SERIAL_NUMBER.

Rename to "Garage Door XXXXXX"

Add unique HK device name from .getChipID()
  • Loading branch information
Avi0n authored and Avi0n committed Dec 13, 2023
1 parent 016d188 commit 6204ed9
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 2 deletions.
13 changes: 13 additions & 0 deletions src/homekit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
#include "ratgdo.h"
#include "comms.h"
#include "log.h"
#include <ESP8266WiFi.h>

#define DEVICE_NAME_SIZE 19
#define SERIAL_NAME_SIZE 18

// Bring in config and characteristics defined in homekit_decl.c
extern "C" homekit_server_config_t config;
Expand All @@ -23,13 +27,22 @@ void target_door_state_set(const homekit_value_t new_value);
homekit_value_t obstruction_detected_get();
homekit_value_t active_state_get();

// Make device_name available
extern "C" char device_name[DEVICE_NAME_SIZE];

// Make serial_number available
extern "C" char serial_number[SERIAL_NAME_SIZE];

/********************************** MAIN LOOP CODE *****************************************/

void homekit_loop() {
arduino_homekit_loop();
}

void setup_homekit() {
snprintf(device_name, DEVICE_NAME_SIZE, "Garage Door %06X", ESP.getChipId());
String macAddress = WiFi.macAddress();
snprintf(serial_number, SERIAL_NAME_SIZE, "%s", macAddress.c_str());

current_door_state.getter = current_door_state_get;
target_door_state.getter = target_door_state_get;
Expand Down
7 changes: 5 additions & 2 deletions src/homekit_decl.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ void identify(homekit_value_t _value) {
printf("accessory identify\n");
}

char device_name[19];
char serial_number[18];

homekit_characteristic_t active_state = HOMEKIT_CHARACTERISTIC_(
STATUS_ACTIVE, false,
);
Expand Down Expand Up @@ -51,9 +54,9 @@ homekit_characteristic_t obstruction_detected = HOMEKIT_CHARACTERISTIC_(
homekit_accessory_t *accessories[] = {
HOMEKIT_ACCESSORY(.id=1, .category=homekit_accessory_category_garage, .services=(homekit_service_t*[]){
HOMEKIT_SERVICE(ACCESSORY_INFORMATION, .characteristics=(homekit_characteristic_t*[]){
HOMEKIT_CHARACTERISTIC(NAME, "Garage Door"),
HOMEKIT_CHARACTERISTIC(NAME, device_name),
HOMEKIT_CHARACTERISTIC(MANUFACTURER, "ratCloud llc"),
HOMEKIT_CHARACTERISTIC(SERIAL_NUMBER, "123456"),
HOMEKIT_CHARACTERISTIC(SERIAL_NUMBER, serial_number),
HOMEKIT_CHARACTERISTIC(MODEL, "ratgdo"),
HOMEKIT_CHARACTERISTIC(FIRMWARE_REVISION, AUTO_VERSION),
HOMEKIT_CHARACTERISTIC(IDENTIFY, identify),
Expand Down

0 comments on commit 6204ed9

Please sign in to comment.