mirror of
https://github.com/manuelbl/ttn-esp32.git
synced 2025-07-13 06:32:51 +02:00
Generate device EUI from MAC
This commit is contained in:
@ -104,6 +104,32 @@ public:
|
||||
*/
|
||||
bool provision(const char *devEui, const char *appEui, const char *appKey);
|
||||
|
||||
/**
|
||||
* @brief Sets the information needed to activate the device via OTAA, using the MAC to generate the device EUI
|
||||
* and without actually activating.
|
||||
*
|
||||
* The generated device EUI and the provided app EUI and app key are saved in non-volatile memory. Before
|
||||
* this function is called, 'nvs_flash_init' must have been called once.
|
||||
*
|
||||
* The device EUI is generated by retrieving the ESP32's WiFi MAC address and expanding it into a device EUI
|
||||
* by adding FFFE in the middle. So the MAC address A0:B1:C2:01:02:03 becomes the EUI A0:B1:C2:FF:FE:01:02:03.
|
||||
* The TTN console requires the device EUI in MSB format, so it has to be reversed and entered as
|
||||
* "03 02 01 FE FF C2 B1 A0".
|
||||
*
|
||||
* Generating the device EUI from the MAC address allows to flash the same app EUI and app key to a batch of
|
||||
* devices. However, using the same app key for multiple devices is insecure. Only use this approach if
|
||||
* it is okay for that the LoRa communication of your application can easily be intercepted and that
|
||||
* forged data can be injected.
|
||||
*
|
||||
* Call join() without arguments to activate.
|
||||
*
|
||||
* @param appEui Application EUI of the device (16 character string with hexadecimal data)
|
||||
* @param appKey App Key of the device (32 character string with hexadecimal data)
|
||||
* @return true if the provisioning was successful
|
||||
* @return false if the provisioning failed
|
||||
*/
|
||||
bool provisionWithMAC(const char *appEui, const char *appKey);
|
||||
|
||||
/**
|
||||
* @brief Start task that listens on configured UART for provisioning commands.
|
||||
*
|
||||
|
Reference in New Issue
Block a user