7 in 1 Temp ORP EC TDS Salinity S.G PH Meter Online Blue Tooth Water Quality Tester APP Control for Drinking Laboratory Aquarium
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:
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:
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?
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