* 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
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
Create automatically devices into Home Assistant through MQTT auto discovery
Before, only entities were created automaticaly and they were not linked to a device.
Enable HASS to retrieve data of remote sensors from multiple gateways by using wildcards for the location (instead of default:home) and the gateway name (instead of default:OpenMQTTGateway)
* 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
* Add Home Assistant auto discovery feature
Add HA auto discovery to RF2.
For each unique combination of unit, groupbit and address a switch will be added to Home Assistant called: "RF2_[unit]_[groupbit])_[address].
As RF2 433Mhz switches do not render their state, no state topic will be provided in the discovery.
This will cause the switch to be in optimistic mode in HA with separate on and off icons.
The two separate on/off icons allow for subsequent on commands to support the dimming feature of KAKU switches like ACM-300.
Co-authored-by: hbraam <hbraam@users.noreply.github.com>
* 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>
* 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
Rename set commands to config
correct json buffer size and gateway name
replace state to cmd
replace set by config
add restart and erase command
add unicity to gateway command switches
BLE devices shouldn't be child of the gateway
make the BTtoMQTT topic consistent with other definitions