* Move minRssi in config_BT.h
Move var definitions next to compilation var definitions
* Introduce UseExtDecoder when is def MQTTDecodeTopic
Replace #ifdef MQTTDecodeTopic by #if UseExtDecoder
* Rename AttemptBLECOnnect to AttemptBLEConnect
* Create a struct (BTConfig_s) for BT configuration data
Create a default config for BTConfig_s (BTConfig_default) based on defines
Create a global variable (BTConfig) to hold live BT configuration data and initialize it
Move bleConnect to BTConfig
* Move BLEscanBeforeConnect in BTConfig
* Move BLEinterval in BTConfig
* Move PublishOnlySensors in BTConfig
* Move hassPresence in BTConfig
* Move minRssi into BTConfig
* Introduce presenceTopic into BTConfig
* Move MQTTDecodeTopic as extDecoderTopic into BTConfig
* Mutate UseExtDecoder as runtime var BTConfig.extDecoderTopic
* Remove ServicedataMinLength (unused)
Always declare AttemptBLEConnect & BLE_FILTER_CONNECTABLE
* Mutate BLE_FILTER_CONNECTABLE as runtime parameter BTConfig.filterConnectable
* Mutate pubKnownBLEServiceData as runtime var in BTConfig
Mutate pubUnknownBLEServiceData as runtime var in BTConfig
Mutate pubBLEManufacturerData as runtime var in BTConfig
Mutate pubUnknownBLEManufacturerData as runtime var in BTConfig
Mutate pubBLEServiceUUID as runtime var in BTConfig
* Mutate useBeaconUuidForTopic as runtime var in BTConfig
Mutate useBeaconUuidForPresence as runtime var in BTConfig
* Small optimization
* Formatting of config_BT
Co-authored-by: Florian <1technophile@users.noreply.github.com>
* Publishing/receiving inconsistencies
* General platformio.ini changes
General platformio.ini changes to allow for publishing/receiving settings to be defined in User_cofig.h instead of them only working if defined in the environments. Kept separate so far for discussion.
* 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
* Behaviour when MQTT and/or Wifi is not available
I was looking into why all my OpenMQTTGateway devices were not responding after a recent power failure and am speculating that the ESP32 was able to restart faster than my Wifi and MQTT Server was able to restart and resume operations. And was thinking that a generic ESP.restart may be a reasonable approach with repeated Wifi and/or MQTT connection failures.
As mentioned here https://community.openmqttgateway.com/t/behaviour-when-mqtt-and-or-wifi-is-not-available/1747
Added new variable maxRetryWatchDog, which is the maximum number of mqtt or wifi connection attempts before restarting gateway device.
* fix wifi manager portal missing parameters on esp8266
on esp8266 with ZgatewayBT
Reducing the scope of the parameters on wifi manager for esp8266 to enable to enter properly the configuration
* Add ability to change MQTT topic and or gateway name by MQTT command.
This adds new commands to allow changing the MQTT topic and or gateway name from a command.
The new topic/name will be saved in flash memory and used on subsequent reboots.
Either/both parameters can be sent or combined with other commands.
Example use:
```
mosquitto_pub -t "home/OpenMQTTGateway/commands/MQTTtoSYS/config" -m
'{
"mqtt_topic": "topic/",
"gateway_name: "name"
}'
```
* Update example with /
Co-authored-by: Florian <1technophile@users.noreply.github.com>
* Allow for hiding mqtt config settings in wifimanager setup.
Adds the macro `WIFIMNG_HIDE_MQTT_CONFIG` that when defined will hide the mqtt configuration in the wifimanager setup.
Co-authored-by: Florian <1technophile@users.noreply.github.com>
When updating from the MQTT command from a SSL enabled server this adds an option to provide
the server SSL certificate with the command.
This is useful if connecting to different servers or if the configured certificate has expired
and requires updating to not lose the ability to update via OTA.
The certificate provided will be saved to flash memory for use on subsequent restarts.
* Set OTA name as Gateway_Short_Name + MAC if using mac as gateway name.
This will set the OTA name of the gateway to the *Gateway_Short_Name*_*MAC* when USE_MAC_AS_GATEWAY_NAME is defined in the config.
* Log OTA hostname when using MAC as gateway name.
* Define MQTTsetMQTT for configuring MQTT over MQTT
* Enable MQTTsetMQTT per default on all ESP except RFBridge
Co-authored-by: Dave <d.kneisz@gmail.com>
This allows for setting the WiFimanager debug level for more or less verbosity using the WM_DEBUG_LEVEL macro.
Valid values are:
DEBUG_ERROR = 0,
DEBUG_NOTIFY = 1, // default
DEBUG_VERBOSE = 2,
DEBUG_DEV = 3,
DEBUG_MAX = 4
Adds the macro USE_MAC_AS_GATEWAY_NAME, when defined the gateway name will default to
OMG_XXXXXXXXXXXX, where the X's are the mac address characters.
This can still be changed in WiFiManager.
This will provide the expected funtionality for the reset trigger when the button is pressed for more than 10 seconds.
Also allows the same pin to be used as an actuator/relay trigger if pressed for less than 10 seconds.
This will enable using button on the gateway to switch any controlled attached actuators/relays when pressed.
Adds the following macros:
- ACTUATOR_ON; 0 or 1, set to the output level of the gpio pin to turn the actuator on.
- ACTUATOR_ONOFF_DEFAULT; ACTUATOR_ON or !ACTUATOR_ON, set to the state desired on reset.
- ACTUATOR_BUTTON_TRIGGER_LEVEL; 0 or 1, set to the sensing level which to detect a button press to change the actuator state.
* 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.
Merges LED_RECEIVE/LED_SEND into LED_SEND_RECEIVE pin definition.
Adds LED_ERROR to display error status based on blink times as follows:
Disconnected from Wifi: 2 seconds on 2 seconds off.
Disconnected from broker: 2 seconds on 5 seconds off.
Other status LED indications added:
WifiManager configuration web portal active: LED_INFO and LED_SEND_RECEIVE = ON.
OTA Update in progress: LED_SEND_RECIEVE and LED_ERROR = ON.
- Adds MQTT command to change the WiFi access point.
- Adds MQTT command to change the MQTT broker and update username and password.
This will test the connection changes first and, if unsuccessful, fallback to the current connection.
If successful the new configuration will be saved in non-volatile memory.
This adds the ability to specify if the MQTT broker connection is secure via a checkbox on the config page of WiFiManager.
Also added to the WiFiManager config page is a text box to enter the brokers TLS certificate.
In the case of using manual configuration a new macro is created MQTT_SECURE_DEFAULT.
When defined as true a secure connection will be requested and the certificate defined in user_config.h will be used.
* Update to SmartRC-CC1101-Driver-Lib@^2.5.4 and removal of workaround from #847
Tks to @LSatan workaround no longer needed
https://github.com/LSatan/SmartRC-CC1101-Driver-Lib/issues/65
* Default to value as subject for rtl_433 and receiver switching
* Default to not publishing unparsed signals
* Fix for missing String for uint64_t
* Fix is only required when value a subject is defined and not PiLight
Co-authored-by: Northern Man <sgracey@Heisenberg.local>
If enabled in user_config.h this will trigger the OMG to update it's firmware from the link
provided in the MQTT message.
Example message:
{\"version\":\"test\",\"password\":\"OMGPASSWORD\",\"url\":\"https://github.com/1technophile/OpenMQTTGateway/releases/download/v0.9.6/esp32dev-ble-cont-firmware.bin\"}
If the firmware version in the message is not the same as the current OMG version the device will self update using the link in the url of the message.
* PR #934
* Active Receiver Switching
Switching of the active receiver module is available between the RF,
RF2, RTL_433 and Pilight Gateway modules, allowing for changing of
signal decoders without redploying the openMQTTGateway package.
Sending a JSON message to the command topic of the desired receiver
will change the active receiver module.
Other minor adjustments/improvements
1 - Improved startup serial logging that includes
- OpenMQTTGateway Version
- OpenMQTTGateway Modules
2 - Trace logging of full Gateway module command topic
- Enabled in RF, RF2, PiLight and RTL_433
3 - Updated RTL_433 Documentation to only include enabled ASK/OOK
device decoders
4 - Trace logging of MQTT Callback topic
* Regression testing
* Adding valueAsASubject support to rtl_433_ESP
- model and id keys are appended to message topic
* Increased memory size for receiver switching in blocking build all
Co-authored-by: Northern Man <sgracey@Heisenberg.local>
* Increased ESP32 base capabilities
1 - Expose SERIAL_BAUD as an optional compiler directive.
2 - Enabled mDNS based MQTT Host name lookup for ESP32 devices.
3 - Expand capability of ESPWifiManualSetup mode for multiple SSID’s.
Tested with ESP32
* Regression testing of ESP8266 and ESP32
* Removal of Wifi Debuging
* Fix lint issue
Co-authored-by: Northern Man <sgracey@Heisenberg.local>
Deep sleep should be activated only when failing connect on low power mode.
Correct reconnection on esp8266. Unfortunately WiFi.reconnect(); prevent the esp8266 from reconnecting, so we reduce its scope to ESP32