diff --git a/.github/workflows/arduino-lint.yml b/.github/workflows/arduino-lint.yml index 548f91f..6274e91 100644 --- a/.github/workflows/arduino-lint.yml +++ b/.github/workflows/arduino-lint.yml @@ -27,5 +27,7 @@ jobs: - name: Compile Sketch run: | - arduino-cli compile --fqbn esp32:esp32:esp32 esp32_intercom.ino + mkdir -p esp32_intercom + cp esp32_intercom.ino esp32_intercom/ + arduino-cli compile --fqbn esp32:esp32:esp32 esp32_intercom diff --git a/esp32_intercom.ino b/esp32_intercom.ino index 61af3dd..500fe9e 100644 --- a/esp32_intercom.ino +++ b/esp32_intercom.ino @@ -174,8 +174,15 @@ void loop() { void generateClientId() { // Use MAC address to generate unique client ID + uint64_t chipid = ESP.getEfuseMac(); + // Extract MAC address bytes (6 bytes total) uint8_t mac[6]; - esp_read_mac(mac, ESP_MAC_WIFI_STA); + mac[0] = (chipid >> 40) & 0xFF; + mac[1] = (chipid >> 32) & 0xFF; + mac[2] = (chipid >> 24) & 0xFF; + mac[3] = (chipid >> 16) & 0xFF; + mac[4] = (chipid >> 8) & 0xFF; + mac[5] = chipid & 0xFF; char macStr[18]; sprintf(macStr, "%02X%02X%02X%02X", mac[2], mac[3], mac[4], mac[5]); clientId = "esp32-" + String(macStr).substring(0, 8);