custom-components / ble_monitor

BLE monitor for passive BLE sensors
https://community.home-assistant.io/t/passive-ble-monitor-integration/
MIT License
1.91k stars 247 forks source link

[New Sensor]: SeeLevel 709-BT tank level sensor #1181

Open kevinkey619 opened 1 year ago

kevinkey619 commented 1 year ago

Sensor Description

SeeLevel 709-BT

Additional information

I'm hoping to be able to get Home Assistant to receive the BLE data from this device.

BLE advertisements

2023-05-22 23:30:55.887 INFO (MainThread) [custom_components.ble_monitor] Attention! Option report_unknown is enabled for sensor with id(s): ['00A0500C499A']
2023-05-22 23:30:56.476 INFO (Thread-2) [custom_components.ble_monitor.ble_parser] BLE advertisement received from MAC/UUID 00a0500c499a: service data: []manufacturer specific data: [b'\x11\xff1\x01\x0cI\x9a\x02 00000000']local name: 709-BT UUID16: None,UUID128: None
2023-05-22 23:30:56.477 INFO (Thread-2) [custom_components.ble_monitor.ble_parser] BLE advertisement received from MAC/UUID 00a0500c499a: service data: [b'\x08\x16\n\x182.2.0']manufacturer specific data: []local name: UUID16: None,UUID128: None
2023-05-22 23:30:56.526 INFO (Thread-2) [custom_components.ble_monitor.ble_parser] BLE advertisement received from MAC/UUID 00a0500c499a: service data: []manufacturer specific data: [b'\x11\xff1\x01\x0cI\x9a\x03OPN0000000']local name: 709-BT UUID16: None,UUID128: None
2023-05-22 23:30:56.536 INFO (Thread-2) [custom_components.ble_monitor.ble_parser] BLE advertisement received from MAC/UUID 00a0500c499a: service data: [b'\x08\x16\n\x182.2.0']manufacturer specific data: []local name: UUID16: None,UUID128: None
2023-05-22 23:30:56.773 INFO (Thread-2) [custom_components.ble_monitor.ble_parser] BLE advertisement received from MAC/UUID 00a0500c499a: service data: []manufacturer specific data: [b'\x11\xff1\x01\x0cI\x9a\x00 310000000']local name: 709-BT UUID16: None,UUID128: None
2023-05-22 23:30:56.779 INFO (Thread-2) [custom_components.ble_monitor.ble_parser] BLE advertisement received from MAC/UUID 00a0500c499a: service data: [b'\x08\x16\n\x182.2.0']manufacturer specific data: []local name: UUID16: None,UUID128: None
kevinkey619 commented 1 year ago

Garnet 709BT BLE Technical Document

The Garnet 709BT hardware supports Bluetooth Low Energy (BLE), and is configured as a Broadcaster transmitting advertisement packets. It continuously cycles through its connected sensors sending out sensor data. No BLE connection is required to read the data, instead the smartphone application implements Receiver functionality to receive these packets. When the application receives these packets it must decode the Manufacturer Specific Data to determine the Garnet Sensor Data. The first 2 bytes represent a company identifier code. Company ID 305 Cypress Semiconductor The following bytes represent the Garnet Sensor Data payload: Byte 0, 1, 2 Coach ID Unique number – hardware assigned Byte 3 Sensor Number 0-255 0 = Fresh 1 = Black 2 = Gray 3 = LPG 4 = LPG 2 5 = Galley 6 = Galley 2 7 = Temp 8 = Temp 2 9 = Temp 3 10 = Temp 4 11 = Chemical 12 = Chemical 2 13 = Battery x 10 Byte 4, 5, 6 Sensor Data ascii characters representing data value or sensor status Byte 7, 8, 9 Sensor Volume Byte 10, 11, 12 Sensor Total Byte 13 Sensor Alarm Appendix:

Bluetooth Company Identifiers: https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers

Cypress Semiconductor: http://www.cypress.com/

BLE Broadcaster: This is an advertising role that is used to broadcast data; this role cannot form BLE connections and engage in data exchange (no request/response operations). This role works similar to a radio station: it sends data continuously without bothering if anyone is listening; it is a one-way data communication. A typical example of a GAP Broadcaster is a beacon, which continuously broadcasts information but does not expect any response. BLE Receiver: This is a listening role that scans for advertisements but does not connect to the advertising device. This is the opposite of the Broadcaster role. This works similar to a radio receiver that can continuously listen for information but cannot communicate back with the information source. A typical example of a GAP Observer is a smartphone app that continuously listens for beacons. 

Ernst79 commented 4 months ago

I tried some of the messages. looks like we can decode it

11 = length ff3101 = UUID

0c499a0 = Coach ID Unique number – hardware assigned 03 = LPG 4f504e = OPN --> Open 303030 = 000 (hex to ascii) --> sensor volume 303030 = 000 (hex to ascii) --> sensor total 30 = 0 (hex to ascii) --> sensor alarm

11ff3101  0c499a  02  203030  303030303030
11ff3101  0c499a  03  4f504e  30303030303030
11ff3101  0c499a  00  203331  30303030303030
rsposato06 commented 1 month ago

Hello, wondering the status of getting this integrated. I recently got a 709-BT7 and willing to help out. I did see documentation in the project but something about only reading 0s. Love to help with a little bit of guidance as this would be my first BLE project. Thanks