Good day!
the idea is simple, to make a universal ble sensor that can be used in the future as;
-street meteorological station
- water leakage sensor
-control of the state of various devices and systems.
the main advantage is the work from battery for a long time.
based on the esp32_ble examples, I was able to make a beacon (label) that sends 12 bytes of data once every 5 minutes.
I divided all sensor values into two parts.
t = 25.12, h = 60.13%
1 byte = 25
2 bytes = 12
3 bytes = 60
4 bytes = 13
and so on for all values
using the examples in esphome I was able to accept these bytes.
there is only one problem left to solve and I need your help.
how to combine two values into one using esphome code ??? x[0] + “.” + x[1] = 25.12
esphome code snippet
on_ble_service_data_advertise:
- mac_address: '30:AE:A4:9C:B5:EE'
service_uuid: 'AAAA'
then:
- lambda: |-
id(ble_sensor).publish_state(x[0]);
id(ble_sensor1).publish_state(x[1]);
id(ble_sensor2).publish_state(x[2]);
id(ble_sensor3).publish_state(x[3]);
sensor:
- platform: template
name: "t"
id: ble_sensor
unit_of_measurement: "°C"
icon: "mdi:thermometer"
- platform: template
name: "h"
id: ble_sensor2
unit_of_measurement: "%"
icon: "mdi:water-percent"