Commit Graph
99 Commits
Author SHA1 Message Date
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
Florian f01b7184a0 Resolve issue with wifi reconnection on M5Stack boards (#907)
And update libraries
2021-03-27 09:26:15 -05:00
Florian cd55f0dfd5 Add CGPR1 Qingping PIR and luminance sensor (#905) 2021-03-25 19:40:35 -05:00
Florian b9151bb6ac BLE low power mode and settings optimization (#902)
* BLE low power mode and settings optimization
-low power mode settings example
-take into account parameters following #891
-add esp32dev-ble-cont for door/window sensor listening

* Disable WDT during scan

* update esp32 arduino framework
2021-03-25 18:53:47 -05:00
Florian ad72211d71 Add CGH1 Qingping Cleargrass window and door sensor (#899) 2021-03-16 19:24:35 -05:00
Florian 625f7f358b Publish SYStoMQTT scan count (#896) 2021-03-14 15:05:09 -05:00
Florian 8afb1c5223 Enable deactivation of BLE connect (#895)
Useful if you want to scan continuously for BLE device, in this case you should deactivate the BLE connect to avoid concurrency between scan and connect
2021-03-14 12:53:26 -05:00
Csiki bcd45d68f4 Minor BT refactor (service_len) (#890) 2021-03-10 17:48:08 -06:00
Csiki fd0518ae46 Support pvvx firmware custom type messages from LYWSD03MMC (#889) 2021-03-10 15:09:06 -06:00
Florian 48791b2c88 Correct parameters count on discovery (#887) 2021-03-08 18:03:03 -06:00
Florian 244dc903b0 Add CGDK2 BLE temperature and humidity BLE sensor (#884)
* Add CGDK2 BLE temperature and humidity BLE sensor

and remove batt from CGD1 (this sensor does not advertise battery value)
2021-03-04 19:26:50 -06:00
Florian a6fb17595e [BREAKING] remove tem key (#883)
* [BREAKING] remove tem key

we rely now on tempc and tempf only
2021-03-03 18:38:37 -06:00
Csiki ebd6bb8031 Bt discovery fix (#880)
* launchDiscovery fix for esp32 (sending the discovery mqtt messages on the main core)
2021-03-02 17:13:14 -06:00
Florian 28ff1a553a Correct build issue when discovery is disable (#877)
#875
2021-02-26 15:47:38 -06:00
Florian 452233258f Add check on stabilisation fo weight and LBS handling (#868) 2021-02-26 15:08:13 -06:00
Csiki 1b7f83c014 BT lockless queue (#867)
* Lockless json queue for ESP32 BT to avoid SYStoMQTT concurrency issue

* BT haRoomPresence handle with lockless queue
2021-02-26 14:30:55 -06:00
Florian 557cf340db Improve low power mode (#859)
-add switch on HASS
-avoid issue when using ESPWifiManualSetup
-Correct issue on gateway discovery on first connect
-stop processing during discovery
2021-02-05 15:19:43 -06:00
Florian 2d377a1c3f Auto discovery deactivation at runtime by MQTT command (#856)
and switch automatic creation for it in HASS (by autodiscovery :-)
2021-01-31 13:41:22 -06:00
Florian 717bdb1f06 Disconnect after a timeout (#842)
So as to save the devices battery
2021-01-30 15:32:53 -06:00
Nikolay Chapkin 3884630727 Fix ClearGlass CGG1 and CGP1W sensors recognition (#849)
* Fix ClearGlass CGG1 and CGP1W sensors recognition

* CGG1 parsing refactoring
2021-01-29 16:34:28 -06:00
Thibault Cohen 0c01ded583 HASS Discovery - Create BLE devices automatically to gather entities (#826)
Create automatically devices into Home Assistant through MQTT auto discovery

Before, only entities were created automaticaly and they were not linked to a device.
2020-12-22 06:31:13 -06:00
Florian e17b5b9c9d Add low power to M5StickC Plus (#830) 2020-12-06 16:59:36 -06:00
Florian 6ae09d8bb6 Add board M5Stickc Plus (#828) 2020-12-06 12:06:50 -06:00
Thibault Cohen 979211ab7e Add Qingping CGP1W support (#820) 2020-12-02 19:40:57 -06:00
Florian b2c05156b2 Srfb bugs (#807)
* Correct buffer processing

was missing an instruction due to a previous refactoring

* Correct duplicate condition

* Avoid publishing \n into the raw value

* Merge extract_char and value_from_service_data functions
2020-11-28 17:16:15 -06:00
adamrbell 5890bf7be6 Fix for CGD1 detection (#810)
Before the fix:
{"id":"58:2D:34:50:A0:D0","name":"Qingping Alarm Clock","rssi":-82,"distance":11.4949,"servicedata":"080cd0a050342d580104c0007c02"}
The servicedata string does not match any pattern so is not parsed

After the fix:
{"id":"58:2D:34:50:A0:D0","name":"Qingping Alarm Clock","rssi":-83,"distance":12.61001,"model":"CGD1","tem":19.2,"tempc":19.2,"tempf":66.56,"hum":63.5}
The parser is invoked and the data is output as expected.

There are probably too many brackets (I'm not a C dev) and I can't test on whatever version of CGD1 broadcasts 080caf or 080c09 servicedata strings.
2020-11-24 10:19:28 -06:00
Tiutiu Marius Cristianandmtiutiu a6e6d98262 [ESP32 OTA] Critical fix - Make sure that the BT coreTask gets suspended when not needed (#795)
* make sure that coreTask gets supended when not needed

Co-authored-by: mtiutiu <marius.tiutiu@softvision.com>
2020-11-06 14:02:05 -06:00
Florian 9a66c9ef09 HASS gateway Discovery improvements (#792)
* MQTT discovery improvements

-remove gatewayBT
-remove device class formaldehyde (not existing in HASS)
-add SYStoMQTT new parameters
-attach connectivity parameter to the device
-add BT gateway infos and switches
-refactor modules storage and publication
2020-11-04 11:53:55 -06:00
orrpan 03ab7f7d0e update temperature unit to work in HA (#768)
* update temperature unit to work in HA
* use only one temperature sensor for HA
2020-10-04 14:56:34 -05:00
Florian 55436c29fa [BT] Fix rssi value type
value can be be negative or positive from the user MQTT command
2020-09-17 13:45:25 -05:00
Michał Rybicki caad5dde1a Add iNode Energy Meter support (#755) 2020-09-03 16:09:34 -05:00
Florian 0600b89190 Add LYWSD03MMC from ATC (#754)
https://github.com/atc1441/ATC_MiThermometer

long instead of double
and cast when used
2020-09-03 06:18:11 -05:00