mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-29 22:24:26 +00:00 
			
		
		
		
	[esp32_ble_server] Create custom services, characteristics and descriptors (#7009)
Co-authored-by: Clyde Stubbs <2366188+clydebarrow@users.noreply.github.com>
This commit is contained in:
		| @@ -1,3 +1,66 @@ | ||||
| esp32_ble_server: | ||||
|   id: ble | ||||
|   id: ble_server | ||||
|   manufacturer_data: [0x72, 0x4, 0x00, 0x23] | ||||
|   manufacturer: ESPHome | ||||
|   model: Test | ||||
|   on_connect: | ||||
|     - lambda: |- | ||||
|         ESP_LOGD("BLE", "Connection from %d", id); | ||||
|   on_disconnect: | ||||
|     - lambda: |- | ||||
|         ESP_LOGD("BLE", "Disconnection from %d", id); | ||||
|   services: | ||||
|     - uuid: 2a24b789-7aab-4535-af3e-ee76a35cc12d | ||||
|       advertise: false | ||||
|       characteristics: | ||||
|         - id: test_notify_characteristic | ||||
|           description: "Notify characteristic" | ||||
|           uuid: cad48e28-7fbe-41cf-bae9-d77a6c233423 | ||||
|           read: true | ||||
|           notify: true | ||||
|           value: [1, 2, 3, 4] | ||||
|           descriptors: | ||||
|             - uuid: cad48e28-7fbe-41cf-bae9-d77a6c111111 | ||||
|               on_write: | ||||
|                 logger.log: | ||||
|                   format: "Descriptor write id %u, data %s" | ||||
|                   args: [id, 'format_hex_pretty(x.data(), x.size()).c_str()'] | ||||
|               value: | ||||
|                 data: "123.1" | ||||
|                 type: float | ||||
|                 endianness: BIG | ||||
|     - uuid: 2a24b789-7a1b-4535-af3e-ee76a35cc42d | ||||
|       advertise: false | ||||
|       characteristics: | ||||
|         - id: test_change_characteristic | ||||
|           uuid: 2a24b789-7a1b-4535-af3e-ee76a35cc11c | ||||
|           read: true | ||||
|           value: | ||||
|             data: "Initial" | ||||
|             string_encoding: utf-8 | ||||
|           description: Change characteristic | ||||
|           descriptors: | ||||
|             - uuid: 0x4414 | ||||
|               id: test_change_descriptor | ||||
|               value: "Initial descriptor value" | ||||
|             - uuid: 0x2312 | ||||
|               value: | ||||
|                 data: 0x12 | ||||
|                 type: uint16_t | ||||
|               on_write: | ||||
|                 - lambda: |- | ||||
|                     ESP_LOGD("BLE", "Descriptor received: %s from %d", std::string(x.begin(), x.end()).c_str(), id); | ||||
|         - uuid: 2a24b789-7a1b-4535-af3e-ee76a35cc99a | ||||
|           write: true | ||||
|           on_write: | ||||
|             then: | ||||
|               - lambda: |- | ||||
|                   ESP_LOGD("BLE", "Characteristic received: %s from %d", std::string(x.begin(), x.end()).c_str(), id); | ||||
|               - ble_server.characteristic.set_value: | ||||
|                   id: test_change_characteristic | ||||
|                   value: !lambda 'return bytebuffer::ByteBuffer::wrap({0x00, 0x01, 0x02}).get_data();' | ||||
|               - ble_server.characteristic.notify: | ||||
|                   id: test_notify_characteristic | ||||
|               - ble_server.descriptor.set_value: | ||||
|                   id: test_change_descriptor | ||||
|                   value: !lambda return bytebuffer::ByteBuffer::wrap({0x03, 0x04, 0x05}).get_data(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user