Commit Graph
70 Commits
Author SHA1 Message Date
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
Florian 6d1d1ac50d [BT] Remove voltage class (#750)
and correct wrong comment
2020-09-02 14:49:38 -05:00
Florian 7b9944d1ca Refactor LED management (#745)
-replace low power led by led info
-enable to change the led ON value
-go upper case for the led macros

Also transform BLE connect warning to notice in log
Add Sonoff RF Bridge LED
2020-08-27 16:24:23 -05:00
Florian 5e2d86e963 Add publish only BLE sensors function (#741)
don't publish the non identified BLE devices when requested (at build or by MQTT setting)
2020-08-26 17:24:23 -05:00
Florian 9d22f242e8 [BLE] Callback leads to memory decrease correction (#740)
and library update
2020-08-22 20:45:39 -05:00
Florian d6d42bfce5 BLE sensors data through a connect, LYWSD03MMC and MHO-C401 add (#736)
* Add LYWSD03MMC and MHO-C401 device
and an associated BLE connect mechanism as these devices advertise only encrypted data
-free manufacturer data
-update library

* Implement scans number before connect
-Add the possibility to do a connect every X scan
-Rename variables for consistency
-Some refactoring for improved code reading
2020-08-18 12:28:45 -05:00
Florian e9910a9165 Arduino NimBLE support (#732)
* NimBLE-arduino support

* Decorrelate discovery from BLEScan

To avoid Stack canary watchpoint triggered and store sensor model into BLEdevice vector
2020-08-17 09:51:58 -05:00
Jon 418c1d0c81 Minimize decompose, remove calls to extract_char, check data length before parsing (#724) 2020-08-15 08:12:27 -05:00
Florian da63fd3606 JQJCY01YM BLE formaldehyde, temperature, humidity and battery sensor integration (#722)
* Add JQJCY01YM Formaldcehyde detector

The device publish also the temperature, humidity and battery

* Reduce ServicedataMinLength

so as to read battery data of this device and others
2020-08-05 19:46:50 -05:00
Jon 0cd2464bf1 BT MAC addr ':' fix (#721) 2020-08-05 10:17:05 -05:00
Florian 8d79bebab8 [breaking] Refactor the BLE devices identification (#720)
* [breaking] Refactor the BLE devices identification

generalize the use of the mac address with : for the lists, white, black and internal identification
Move structures from config_BT.h to ZgatewayBT.ino
update doc

* Move minRssi to INO and optimizations

change Minrssi name to match other variable convention
Optimize the add of : to mac address
Reduce the use of abs()

Note: I cannot move BLEinterval to the ZgatewayBT.ino due to its use on main.ino
2020-08-04 12:03:22 -05:00
Florian d4457f817a Enable BT use for Arduino Mega (#718)
* Enable BT use for Arduino boards

by adding a ArduinoSTL library

* Update doc
2020-08-04 11:40:16 -05:00
Florian 60d173ff51 Correct value entered into temperature conversion (#713)
from C to F
The division by 10 must be done before the conversion.
2020-07-27 07:57:55 -05:00
JonandJonathan Michael Wells 4f1b49d135 Standardize MQTTDiscovery Temp Keys [deprecate tem key] (#703)
* Detect when sensor isn't available or read fails

* Add temperature conversion macros

* Add 'tempc' & 'tempf' keys to published values

* Unique Values for HA Discovery

* Remove degree symbol from temp sensors

Co-authored-by: Jonathan Michael Wells <jonathan-wells@oist.jp>
2020-07-24 10:10:44 -05:00
Florian a3ab39b04e Initial support of INKBIRD IBS-TH1 (#644) 2020-07-02 19:03:20 -05:00
Florian 7482b34fa2 BLE gateway HM10 Correct token offset for service data 2020-06-21 14:39:17 -05:00
Florian 022643381f BT Low power: remove duplicate wifi stop 2020-06-19 16:17:04 -05:00
Florian 9bba730e84 Add a lock mechanism to improve the OTA chances of success with ESP32 and BLE (#634)
* Add a lock mechanism to improve the OTA chances of success
change TimeBeforeMQTTconnect to InitialMQTTConnectionTimeout
move delay(BLEinterval); after the scan so  the first scan will always be done at start now
remove non relevant delay
add stopProcessing and startProcessing functions
2020-06-19 12:44:53 -05:00
Florian 1e10783a28 [DISCOVERY] replace unit of measurement lu by lx (#628)
#603
2020-06-10 20:16:46 -05:00
Leon Kiefer 10a9d00aaf Added clang-format (#623)
* added .clang-format
* added names to travis jobs
removed deprecated travis option
* check github action
* added .gitignore
2020-06-09 16:09:23 -05:00
Florian 661ef9c55e Refactor BLE gateways (#617)
* Refactor BLE gateways:
-merge HM10 and ESP32 code
-publish sensor values with the other BLE device parameters to avoid MQTT multiple publication
-make uniform the case of mac adress id between HM10 and ESP32
-add the possibility to remove service data publishing either when sensors is recognised or not
-correct manufacturing data display
-merge process cleargrass methods
-check service data validity before processing
2020-06-05 08:09:49 -05:00
Florian f6fa1e52da Hm10 details (#614)
* Add infos and change HM10 speed to a macro
* remove unnecessaries macros
2020-05-12 20:27:05 -05:00
Florian 489ce99659 Implement OpenHAB autodiscovery (#612) 2020-05-12 15:05:37 -05:00
Florian a82bbe684a Optimizations when using low power mode (#608) 2020-05-07 17:28:27 -05:00
Jonathan 9fc5ba99f5 Allow pins/settings to be defined in INI file (#597)
* Allow pins/settings to be defined in INI file

* Open to make publishing ManufacturerData optional
2020-05-03 08:56:40 -05:00
Jonathan 125e7d4f70 Fixing Issues #593 & #591 (#594)
* Add condition to check Low Power Mode

* Added WeatherStation libs platform.ini
2020-05-01 08:18:56 -05:00
Florian 30147140bd Add M5 boards compatibility and low power mode (#586) 2020-04-26 19:56:10 -05:00
ThomasL 133d4c6467 Fixed invalid device_class values (#572)
Removed device_class values unknown to Home-Assistant. Fixes #570 and fixes #571.
2020-03-21 15:07:46 -05:00
Peter Becker 033a583f0a remove duplicate code in main\ZgatewayBT.ino (#557)
* merge duplicate code into function setWorBMac

* rename setWorBMac to updateWorB

* add helper getDeviceByMac

* change updateWorB to use helper getDeviceByMac

* change isWhite to use helper getDeviceByMac

* change isBlack to use helper getDeviceByMac

* change isDiscovered to use helper getDeviceByMac

* eliminate duplicate devices walk for isWhite, isBlack and isDiscovered check

* fix a data corruption race between MQTTtoBT and discovery-functions

the ***Discovery functions every time create a new device unless this device is set to white-list before. as a result of this, the devices list contains the same mac multiple times with different flags

* eliminate duplicate devices walk for oneWhite check

because now we have a utility function 'createOrUpdateDevice' we can globally cache this as a single flag

* secure createOrUpdateDevice agains data races on multicore esp32

* fix the concept of the createOrUpdateDevice

c / c++ does not allow NULL as function parameter like modern languages

* use nkolban Semaphore helper class (already included and used from eos1d3/ESP32_BLE librarie)

this makes the semaphore handling more cleaner and readable

* merge duplicate code during createDiscovery into new helper createDiscoveryFromList

* replace excessive use of ZmqttDiscovery precompiler directive in ble advertised callbacks with dummy functions

for a better readability we can remove this because isDiscovered does not do a devices walk anymore

* fix build errors found by travis-ci
2020-03-02 13:54:53 -06:00
Peter Becker 0681d09b41 fix 'LoadProhibited' in dumpdevice (#555)
booleans can not interpreted as null terminated strings
2020-02-20 22:03:12 +01:00