Feature request: BLE-600

BLE-600
7 in 1 Temp ORP EC TDS Salinity S.G PH Meter Online Blue Tooth Water Quality Tester APP Control for Drinking Laboratory Aquarium

https://vi.aliexpress.com/item/1005005048039871.html

Can you supply any BLE advertising data broadcasts, so we can see if there is any decodable information in these freely available broadcasts for creating a decoder for this device?

You will need to set Advertisement and Advanced Data to true, and copy and paste some received messages, best when using the device with different water quality, to see if the data changes.

with mqtt explorer and esp32+openmqttgateway:
{
“id”: “C0:00:00:02:69:19”,
“mac_type”: 0,
“adv_type”: 0,
“name”: “BLE-C600”,
“rssi”: -80
}

with nRF Connect for Mobile android scanner





Did you have Advertisement and Advanced Data set to true on your esp32+openmqttgateway for this message?

Visible in MQTT Explorer under the BTtoMQTT info of your gateway as

… "pubadvdata":true …

These service/chars will not help for being able to create an automatic decoder, but you might be able to figure out which service/chars might contain the information with the OpenMQTTGateway READ command.

How can i run this “READ” command from where?

Mqtt explorer shows only that:
{
“id”: “C0:00:00:02:69:19”,
“mac_type”: 0,
“adv_type”: 0,
“rssi”: -81
“rssi”: -79
}

If you only get messages like this, although you have BT: Publish Advertisement data ON in your gateway settings, I’m afraid it means that there is no freely broadcast encoded advertising data - making an automatic decoder not possible.

Personally I don’t know how you would implement READ commands in Home Assistant, maybe someone else can help here, but I would suggest you try with nRF Connect first to see if you can find out which service/chars contain which information that you want - by selecting the READ button (↓) on different service/chars to see which might make sense to you.

I logged bluetooth data transmission with nRF Connect , same time when app is showing numbers.
Is this helpful?

INFO LOG:

nRF Connect, 2023-11-07
BLE-C600 (C0:00:00:02:69:19)
D	20:12:00.787	[Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0)
E	20:12:00.788	Error 8 (0x8): GATT CONN TIMEOUT
I	20:12:00.788	Disconnected
D	20:12:00.843	[Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D	20:12:13.515	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
D	20:12:13.515	gatt.close()
D	20:12:13.584	wait(200)
V	20:12:13.785	Connecting to C0:00:00:02:69:19...
D	20:12:13.785	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D	20:12:13.798	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I	20:12:13.798	Connected to C0:00:00:02:69:19
I	20:12:13.858	Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
V	20:12:13.882	Discovering services...
D	20:12:13.882	gatt.discoverServices()
D	20:12:14.325	[Callback] Services discovered with status: 0
I	20:12:14.325	Services discovered
V	20:12:14.400	Generic Access (0x1800)
- Device Name [R] (0x2A00)
- Appearance [R] (0x2A01)
- Peripheral Preferred Connection Parameters [R] (0x2A04)
Generic Attribute (0x1801)
- Service Changed [I] (0x2A05)
   Client Characteristic Configuration (0x2902)
Device Information (0x180A)
- System ID [R] (0x2A23)
- Model Number String [R] (0x2A24)
- Serial Number String [R] (0x2A25)
- Firmware Revision String [R] (0x2A26)
- Hardware Revision String [R] (0x2A27)
- Software Revision String [R] (0x2A28)
- Manufacturer Name String [R] (0x2A29)
- IEEE 11073-20601 Regulatory Certification Data List [R] (0x2A2A)
- PnP ID [R] (0x2A50)
Battery Service (0x180F)
- Battery Level [N R] (0x2A19)
   Client Characteristic Configuration (0x2902)
   Report Reference (0x2908)
Unknown Service (0000ff01-0000-1000-8000-00805f9b34fb)
- Unknown Characteristic [N R W] (0000ff02-0000-1000-8000-00805f9b34fb)
   Client Characteristic Configuration (0x2902)
   Characteristic User Description (0x2901)
- Unknown Characteristic [R] (0000ff10-0000-1000-8000-00805f9b34fb)
   Characteristic User Description (0x2901)
D	20:12:14.401	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
D	20:12:14.403	gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true)
D	20:12:14.406	gatt.setCharacteristicNotification(0000ff02-0000-1000-8000-00805f9b34fb, true)
I	20:12:14.415	Connection parameters updated (interval: 50.0ms, latency: 0, timeout: 5000ms)
I	20:12:16.320	Notification received from 0000ff02-0000-1000-8000-00805f9b34fb, value: (0x) 01-02-0B-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-08
A	20:12:16.320	"(0x) 01-02-0B-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-08" received
I	20:12:16.418	Notification received from 0000ff02-0000-1000-8000-00805f9b34fb, value: (0x) 0B-02-00-09
A	20:12:16.418	"(0x) 0B-02-00-09" received
I	20:12:18.372	Notification received from 0000ff02-0000-1000-8000-00805f9b34fb, value: (0x) 01-00-0B-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-0A
A	20:12:18.372	"(0x) 01-00-0B-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-0A" received
I	20:12:18.766	Connection parameters updated (interval: 100.0ms, latency: 0, timeout: 5000ms)
I	20:12:20.670	Notification received from 0000ff02-0000-1000-8000-00805f9b34fb, value: (0x) FF-00-06-F9
A	20:12:20.670	"(0x) FF-00-06-F9" received
D	20:12:36.609	[Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0)
E	20:12:36.609	Error 8 (0x8): GATT CONN TIMEOUT
I	20:12:36.609	Disconnected
D	20:12:36.689	[Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED

someone has made esp32 & HA code for a similar device

Yes, these solutions all connect to the device to fetch the data.

Not something which can currently be implemented in Decoder and too complex for direct OpenMQTTGateway integration.

But these examples show the servce/chars for the different properties, so you could try the OMG READ command, assuming that the connection won’t require a paring/pin.

yes, no pin code or pairing required