Commit Graph
130 Commits
Author SHA1 Message Date
Florian f4700be523 Fix discovery entity id for DT24 and LYWSD03MMC (#1210) 2022-05-04 06:08:20 -05:00
Florian 1916f62895 Auto discovery: Recover MiFlora discovery and remove model if from entity id (#1209)
* Recovery MiFlora discovery

after https://github.com/theengs/decoder/pull/107

* BREAKING remove model_id from entity id
2022-05-03 19:45:28 -05:00
h2zero 8d6acbee12 Add Switchbot support and discovery. (#995)
* Use a task to process immediate BLE actions to prevent MQTT disconnection if the action takes too long to complete.

* Add state_on and state_off parameters to createDiscovery
2022-04-30 09:16:06 -05:00
Florian fb56162c52 Remove servicedatauuid only when model is present (#1186)
keep it if we haven't decoded the message
2022-03-15 17:44:39 -05:00
Florian 3d2b15bd6c Remove auto discovery for Ibeacon, GAEN and MS CDP (#1183)
to avoid creating hundred of entities and devices in the controller due to their changing MAC addresses
2022-03-13 09:38:38 -05:00
Amy Nagle 0e45f7cca0 Fix discovery of connectable devices (#1173) 2022-03-04 16:22:35 -06:00
Amy Nagle 257b39da81 Add support for XMWSDJ04MMC (#1162) 2022-02-09 16:16:41 -06:00
h2zeroandFlorian 0a8458f156 Update decoder version. (#1151)
* Update decoder version.

* Add new devices and sort list

Co-authored-by: Florian <1technophile@users.noreply.github.com>
2022-01-27 15:48:29 -06:00
Florian a9342f743f Change unique id structure for HASS discovery (#1147)
Now:
"uniq_id":"882D777014C-pres"
before it was:
"uniq_id":"882D7770014C-CLEARGRASSTRHKPA-pres"
This will impact BLE and gateways entities
2022-01-27 15:47:29 -06:00
h2zero f8b4b3ca21 Add "mac_type" parameter to BLE connection commands. (#1146)
This allows for connecting to devices that do not use the MAC address type 0.
This also adds the logging of the "mac_type" so it is visible to users trying to connect to broadcasting devices.

Additionally this will allow for future connectable devices using a MAC address type other than 0 to be automatically connected to
when support is added for them, similar to LYWSD03MMC etc..
2022-01-25 06:19:50 -06:00
h2zero e838d3cee0 Remove std::string as the model id and use decoder enum. (#1143)
* Remove std::string as the model id and use decoder enum.

* Update decoder version

* Check model id is in decoder range when launching discovery.

* Add BLEconnect enum MIN/MAX
2022-01-24 20:09:15 -06:00
h2zero 91ab8dcdf1 Fix some incorrect timeouts when taking semaphores. (#1145) 2022-01-24 05:50:14 -06:00
h2zero 5dac1a7035 Add immediate parameter to BLE connection commands. (#1137)
* Add immediate parameter to BLE connection commands.

When sending a command to read/write a characteristic on a BLE server this adds a new parameter to cause the action to be
performed immediately. This will stop the scan in progress to perform the actions queued.

Example use:
```
mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{
  "ble_write_address":"AA:BB:CC:DD:EE:FF",
  "ble_write_service":"cba20d00-224d-11e6-9fb8-0002a5d5c51b",
  "ble_write_char":"cba20002-224d-11e6-9fb8-0002a5d5c51b",
  "ble_write_value":"TEST",
  "value_type":"STRING",
  "ttl":4,
  "immediate":true }'
```

Stop BLE processing when immeditate command sent.

* Use a shorter connection timeout.

* Update docs.

* Remove MQTT spam for connection retrys

* Prevent crashing when the normal connection process occurs at the same time as an immediate action.

* Use a semaphore to protect BLE device vector.
2022-01-23 19:47:17 -06:00
Florian 749c1592b4 Add M5Tough board (#1135) 2022-01-17 19:22:26 -06:00
Florian 00709675bc Correct log display for std::string (#1111) 2021-12-13 18:50:40 -06:00
h2zero 8e6ebe87c9 Use a queue and separate task to process BLE devices. (#1110)
This avoids excess processing in the BLE advertised device callback and prevents overflowing the BLE host stack.
2021-12-13 17:29:44 -06:00
h2zero d590c34c03 Fix memory leak introduced in #1092 (#1109) 2021-12-12 09:41:25 -06:00
Florian 7dc49165a0 Discovery with theengs decoder (#1106)
* Discovery with theengs decoder

* Add devices to doc

* Correct missing suffix for DT24
2021-12-11 11:54:08 -06:00
Alessandro Staniscia bdda5df839 rationalisation of logs and removal of duplicate codes (it should fix also #931) (#1093)
* Rationalisation of logs and removal of duplicate codes
2021-11-02 16:46:01 -05:00
Florian 10f0d4cff4 Theengs decoder integration (#1092)
* Use Theengs Decoder for BLE device decoding
2021-10-31 16:51:05 -05:00
Alessandro Staniscia e14a78e9c0 Support Home Assistant Long-term Statistics #1087 (#1088) 2021-10-14 18:46:13 -05:00
MountComb 36f4f89fbb fix BT not connected issue when using whitelist (#1080) 2021-09-19 09:40:41 -05:00
h2zero ed4949f769 Update to use ArduinoJson 6+ (#1071) 2021-09-01 19:18:19 -05:00
Florian 01301a1485 Change BLE TPMS count to match associated number (#1070)
Currently this count start at 0 whereas it should start at 1
2021-08-28 20:21:20 -05:00
Florian 7f296ff5fa update Ibeacon keys naming (#1045)
lower case as the other json keys
2021-07-31 14:45:31 -05:00
h2zero ad782c4b1f Remove duplicate BLE service data sent over MQTT(#1044)
This will remove the sending of BLE service data when multiple service data attributes are advertised by a broadcasting device.

Instead the data for known device types will be consolidated into a single message to reduce overhead.
2021-07-31 10:08:53 -05:00
h2zero a4a85ff14b Bugfix: missing break in BLE connect switch. (#1042)
Fixes #1041, GENERIC device case was falling through to MiFlora.
2021-07-28 16:43:06 -05:00
Florian c2107da1c7 Add BLE TPMS sensors (#1031)
* Add BLE TPMS sensors

tire pressure monitoring system
2021-07-27 06:34:45 -05:00
Marc Plano-Lesay 91497da71c Advertise discovery of the battery sensor for MiFlora devices (#1032)
Follow-up on #992, #217
2021-07-21 06:30:45 -05:00
Ray Cielencki 910ff91d08 fix: add code for miscale_v2 lbs (#1029) 2021-07-18 12:53:05 -05:00
h2zero 45e9ba79d1 Add support for iBeacons. (#1016) 2021-07-11 19:50:06 -05:00
h2zero 3f13984f44 Bugfix: switching brokers with self signed certs. (#1007)
* Fixes BLE scanning being disabled after switching server fails.

* Fixes crash caused by BLE scan results arriving while switching servers.

* Adds documentation to use the server switching command.
2021-07-05 19:40:40 -05:00
h2zero 76f880dc15 Add support for Mokosmart beacons. (#1003) 2021-06-30 22:16:29 -05:00
h2zero 02c371b0f5 Use native FreeRTOS semaphore functions. (#998) 2021-06-28 15:20:58 -05:00
Florian 90f42990df Add miflora battery (#992) 2021-06-24 20:11:50 -05:00
h2zero 7cfbd3d050 Ble read/write characteristics over MQTT. (#988)
* EXPERIMENTAL: Ble read/write characteristics over MQTT.

Uses #979

This allows reading and writing BLE characteristics from an MQTT message.

Example format:
mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{"ble_write_address":"AA:BB:CC:DD:EE:FF", "ble_write_service":"cba20d00-224d-11e6-9fb8-0002a5d5c51b", "ble_write_char":"cba20002-224d-11e6-9fb8-0002a5d5c51b", "ble_write_value":"TEST", "ttl":4 }'
mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{"ble_read_address":"30:AE:A4:7C:3C:A6", "ble_read_service":"cba20d00-224d-11e6-9fb8-0002a5d5c51b", "ble_read_char":"cba20002-224d-11e6-9fb8-0002a5d5c51b", "ttl": 2 }'
The ttl parameter is the number of calls to connect (defaults to 1), which occur after the BLE scan completes.

A response is provided over MQTT in the format:
write : {"id":"30:AE:A4:7C:3C:A6","service":"cba20d00-224d-11e6-9fb8-0002a5d5c51b","characteristic":"cba20002-224d-11e6-9fb8-0002a5d5c51b","write":"TEST","success":true}
read : {"id":"30:AE:A4:7C:3C:A6","service":"cba20d00-224d-11e6-9fb8-0002a5d5c51b","characteristic":"cba20002-224d-11e6-9fb8-0002a5d5c51b","read":"TEST","success":true}

* Add generic BLE connect class and read data as hex.

* Add value_type parameter and document usage

* Add note to docs
2021-06-21 20:27:06 -05:00
Northern ManandNorthern Man ac23235327 DT24 - Update messages to support temp (#991)
With the additional functionality added by @h2zero I’m able to extract
the temperate data from the 2nd part of the bluetooth message.

Co-authored-by: Northern Man <sgracey@Heisenberg.local>
2021-06-18 21:20:07 -05:00
h2zero 792807e6e5 Create BLE connect class and add derivatives (#979) 2021-06-17 16:52:03 -05:00
Northern ManandNorthern Man 09596697b9 Adjustment of DT24 Bluetooth voltmeter MQTT Discovery message (#983)
Updating of DT24 messages to align with MQTT Discovery messages.

Co-authored-by: Northern Man <sgracey@Heisenberg.local>
2021-06-11 22:46:22 -04:00
Florian 2737a4cbf7 Add Eddystone TLM BLE protocol (#972)
supporting battery, temperature, count and time from start in s
2021-06-08 17:53:58 -05:00
Northern ManandNorthern Man 6bb65ca12a DT24 bluetooth Voltmeter (#975)
* DT24 bluetooth Voltmeter

* Initial checkin of Home Assistant Discovery

Co-authored-by: Northern Man <sgracey@Heisenberg.local>
2021-06-08 16:50:39 -05:00
Florian 8ef3a61e75 Add INKBIRD IBBQ IBT-4XS (#955)
* Add INKBIRD IBBQ IBT-4XS

BBQ temperature sensor with 4 probes
2021-05-23 14:45:57 -05:00
Florian fb7ad1b2ca Add Inkbird IBS-TH2 (#954)
Temperature sensor for freezer, fridge
2021-05-23 10:14:02 -05:00
h2zero 4706d75adc Remove unsubscribe and disconnect calls in BLEconnect. (#948)
These calls were unecessary as the client object swill be deleted when finished with the connection.
2021-05-16 21:07:21 -05:00
h2zero c82f6cadb6 Remove reinitializing the BLE stack on each scan. (#949)
Using NimBLE requires less resources than bluedroid so it is much less beneficial to
deinitialize the stack. Instead this initializes it once in initial setup and only deinitializes
before entering deep sleep.
2021-05-16 20:12:04 -05:00
h2zero e3731bdccf Cleanup compiler warnings in strict environment. (#945) 2021-05-16 19:47:50 -05:00
Florian 9fb3d90da9 Add BLE WS02 SensorBlue beacon (#932)
https://github.com/h2zero/NimBLE-Arduino/issues/215
2021-05-08 17:59:32 -05:00
Florian 4d49f5b08e Correct build error if discovery deactivated (#930)
#920
2021-04-23 21:28:33 -05:00
Florian e1aef48296 [Breaking] Deactivate Home Assistant presence per default (#915)
And enable to activate it by MQTT
2021-04-04 19:34:36 -05:00
Florian 6c8ba53276 Add BLE setScanDuplicateCacheSize (#911)
#906
2021-04-03 07:44:28 -05:00