Commit Graph
164 Commits
Author SHA1 Message Date
Florian 76b5e9269f Fix internal temperature reading on ESP32 (#1391)
The previous macro used SENS_SAR_MEAS_WAIT2_REG to identify if we have the reading capability was not working, so replacing it by a fresh one NO_INT_TEMP_READING, defined as a negation due to the fact that most of the ESP32 supports internal temperature reading.
2023-01-12 18:05:40 -06:00
Florian 4678783db5 Enable connection with encryption without certificate validation (#1386)
* Enable connection with encryption without certificate validation
* Add the cert validation for AWS env
2023-01-12 10:35:42 -06:00
Northern Man 9d6f7a0764 ssd1306 display of module messages (#1383)
* ssd1306 display of module messages

Supported Modules Include
- rtl_433
- bme280

* Switch to use convertTemp_CtoF
2023-01-11 20:31:12 -06:00
Florian c1cedcf333 Add ESP32 internal temperature measurement and automatic Actuator switch Off (#1384)
* Add automatic stop of relay following ESP32 temperature

To avoid overheating when too much current goes through the device.

Add internal temperature reporting to SYStoMQTT

This function is not available with ESP32 S3 and C3

* Temp update and error log

Update of the temperature to get closer to the datasheet of the ESP32 -40 +85C
and add the module name to the error log
2023-01-10 11:32:56 -06:00
DigiH 8a767cf4b8 Typo fixes (#1381) 2023-01-08 07:43:15 -06:00
FlorianandNorthernMan54 16815f51da Add RTL_433 discovery with Home Assistant convention inspired from rtl_433_mqtt_hass.py (#1379)
This also changes the topic structure when using the macro valueAsATopic=true, it adds as sub-topics the `type, subtype, and channel` when they exist.
The id is the last subtopic to facilitate filtering, as it may change when replacing the batteries.

Co-authored-by: NorthernMan54 <19808920+NorthernMan54@users.noreply.github.com>
2023-01-07 20:34:43 -06:00
Northern Man 2e0d1708c3 Update to rtl_433_ESP 0.1.5 and support for LILYGO® LoRa32 V2.1_1.6.1 433 Mhz (#1371)
* Update to rtl_433_ESP 0.1.5

Includes support for LILYGO® LoRa32 V2.1_1.6.1 433 Mhz

* Fix lint issue

* Fix build and lint issues

* Add lilygo-rtl_433 to build.yml
2022-12-26 13:48:08 -06:00
melyux b2666dcc83 Add BMP280 support, compiler directive support for oversampling (#1344) 2022-12-05 09:51:45 -06:00
h2zero b9e6c4faba Workaround unsecure AP bug on restart. (#1343) 2022-12-04 18:21:12 -06:00
Florian 5a42b02ad8 Enable to configure the OTA password from the Wifi Manager portal (#1339)
So as to enable the user to change the default one when setting up the gateway
2022-11-30 14:51:37 -06:00
Florian dee3ef4de5 Improve reset mechanism when MQTT is not connected (#1338)
This enables to wait less for the reset to trigger
2022-11-30 14:27:27 -06:00
Florianandh2zero 8ee1c4e524 RN8209 energy sensor support with watt, voltage and current. (#1337)
Co-authored-by: h2zero <powellperalta@gmail.com>
2022-11-29 18:41:47 -06:00
Florian c58e765253 Enable to keep actuator on off state in case of restart (#1334)
and publish status as a json when triggering actuator on off through a button
2022-11-28 20:28:40 -06:00
Florian 66588149a8 Change Error color to orange on RGB (#1333)
And enable its display when entering the WM portal
2022-11-28 20:28:03 -06:00
Florian c98511ba36 Set the AP name with the short name plus the 4 first digits of the ESP mac (#1331)
so as to don't disclose the password used for WM.
Also change the wm password from MAc to be the last 8 digits, as these will change more than the first 8 ones.
Also make consistent the ifndef qnd the parsing between WM_PWD_FROM_MAC and USE_MAC_AS_GATEWAY_NAME
2022-11-28 20:06:36 -06:00
Florian 3e9fbb21ff Move the button check at start of the program (#1330)
So as to enable to trigger the wm portal before the setup of all the modules
2022-11-28 20:04:48 -06:00
Florian 2ada47c3bc Enable to set the WM pwd from the Mac (#1323)
So as to reinforce security for AP configuration access, enable to set the Wifi Manager Password from the 8 first digits of the ESP Mac address
2022-11-28 13:21:03 -06:00
David Furey ec96b72d96 Support LM75 temperature sensor (#1327)
* First draft of LM75 sensor based on HTU21 sensor

* Initialise I2C on ESP8266

* Add LM75 sensor to test builds

So that it will be tested with the continuous integration
2022-11-28 11:31:46 -06:00
Florian ec21cbb880 Update default certificate of Github (#1322)
So as to enable updates with a payload without the cert, and add a command example. Also so change the update message to notice level
2022-11-16 15:16:32 -06:00
Florian 33e162111a Add RGB Led management for errors, infos, and send receive events (#1320)
* Add RGB Led management for errors, infos, and send receive events

Add RGB led management for indicators, integrate it for M5 Atom and ESP32 C3 and S3 dev board
Update Fastled version to 3.5.0.

The default behavior is with regular LED, to use RGB Led the macro RGB_INDICATORS needs to be define, along with the FASTLED_IND_TYPE, FASTLED_IND_DATA_GPIO and FASTLED_IND_NUM_LEDS
Note that some RGB led need to have a different color scheme, so in this case it can be entered along with the data PIN definition: -DFASTLED_IND_DATA_GPIO=27,GRB

* Add FastLed library to the environments
2022-11-16 12:58:22 -06:00
h2zero 9d7086558b Update Arduino core and BLE/WiFiManager libs. (#1310)
* Update Arduino core and BLE/WiFiManager libs.

* Add esp32-s3 and esp32-c3 environments.

* Update build script to use matrix.

* Update release build.

* Fix WiFiManager crash

* Use espressif32 version 3.5.0 for standard ESP32.

* Resolves BLE scan_evt timeout issue with latest version (5.2.0).

* ESP32C3 and ESP32S3 Env's use espressif32 version 5.2.0.

* Update LED pins for C3/S3 environments.
2022-11-13 12:35:18 -06:00
Sami Salonen 3d589ffa90 Handle OTA actively when MQTT is not connected (#1307)
* Handle OTA actively when MQTT is not connected

Resolves #1292

* Fix compilation for targets not having OTA

* ArduinoOTA.handle() only with non-ESP targets

* OTA check before reboot: fix condition and add more comments


Signed-off-by: Sami Salonen <ssalonen@gmail.com>
2022-11-13 09:34:20 -06:00
Sami Salonen 941b1e109f Re-publish BTtoMQTT Theengs discovery topics on MQTT re-connect (#1290)
* Re-publish BTtoMQTT Theengs discovery topics on MQTT re-connect

- Improved version of #1274, this should re-publish more
- Handle return value of (MQTT) client.loop() to detect connection loss
  faster

Signed-off-by: Sami Salonen <ssalonen@gmail.com>
2022-10-23 10:57:39 -05:00
Northern Man 8bc65d62dc Update of rtl_433_ESP to version 0.1.3 - Support for SX127X transceiver module (#1291)
The main features of the upgrade to 0.1.3 of rtl_433_ESP are

1 - Change Transceiver Library to RadioLib

2 - Add support for SX127X transceiver module ( I used the 433 Mhz version of this Heltec module for development ).

3 - Added automatic calibration of the RSSI Signal detection Threshold

4 - Removed dependency on loop for start and end of signal detection, and moved to a ESP32 Task

5 - Moved received signal decoding to a ESP32 Task

6 - Identified Blueline PowerCost Monitor decoder as source of significant memory overhead and disabled.

7 - Multi Receiver support has been validated with RF, RF2 and PiLight
2022-10-20 11:14:45 -05:00
Northern Man c45181ef7e Heltec SSD1306 Display Support (#1283)
My environment

[env:heltec-display]   ; Heltec ESP32 Board with SSD1306 display
platform = ${com.esp32_platform}
board = heltec_wifi_lora_32_V2
build_type = debug
monitor_filters = esp32_exception_decoder
board_build.partitions = min_spiffs.csv
extra_scripts = pre:scripts/omg_firmware_version.py
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager32}
  ${libraries.heltec}
;  ${libraries.m5stickcp}

build_flags =
  ${com-esp.build_flags}
  ${test_env.build_flags}
; *** OpenMQTTGateway Config ***
  '-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DvalueAsATopic=true'
  '-DLOG_LEVEL=LOG_LEVEL_TRACE'
; *** OpenMQTTGateway Modules ***
  '-DZboardHELTEC="HELTEC"'
; *** Heltec Board Options ***
  '-DDEBUG_OLEDDISPLAY(...)=Serial.printf( __VA_ARGS__ )'
  '-DLOG_TO_LCD=true'         ; Enable log to LCD
  '-DLED_ERROR=2'
  '-DONBOARD_LED=25'          ; Onboard LED is GPIO 25 on the Heltec Board

monitor_port = /dev/cu.SLAB_USBtoUART
monitor_speed = 921600
upload_port = /dev/cu.SLAB_USBtoUART
upload_speed = 921600

1 - Set default LCD log level to WARNING
2 - Implemented a macro based displayPrint function that will be usable across different displays

- Added logo display when idle
- Fixed log-lcd mqtt function
- Enable OLED Display on Heltec Boards
2022-10-13 21:17:25 -05:00
Sami Salonen e9449f567b Re-publish discovery topics on re-connect (via cfg, disabled by default) (#1274)
Resolves https://github.com/1technophile/OpenMQTTGateway/issues/1273

Signed-off-by: Sami Salonen <ssalonen@gmail.com>

Signed-off-by: Sami Salonen <ssalonen@gmail.com>
2022-09-26 15:49:02 -05:00
DigiH b16fbcbef2 valueAsASubject to valueAsATopic inconsistency fix (#1260) 2022-09-03 18:51:52 -05:00
BadandFlorian 9120d06932 Mutate relevant compilation variables into config (#1256)
* 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>
2022-08-20 14:28:25 -05:00
DigiH c4300a002f MQTT-MAC-IP-mDNS (#1245) 2022-07-19 12:10:51 -05:00
Bad 612c3f6322 Fix wrong base topic if gateway_name is changed (#1242)
* Rectify and match parameters sizes.
Increase mqtt_topic_max_size from 100/50 to 150/75 bytes

* Faster and safer compare in cmpToMainTopic()
2022-07-19 07:52:46 +02:00
DigiH a388f14e75 Publishing/receiving inconsistencies fix (#1229)
* 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.
2022-07-01 07:17:02 -05:00
CY e43f7b3c15 Add Wifi BSSID as SYSdata (#1194)
* Add Wifi BSSID as SYSdata

Publish BSSID as a SYS sensor.
2022-03-30 23:56:34 -05:00
Florian ef41546c94 ESP8266: Fix partial erase of connection settings (#1150)
* Fix partial erase of connection settings

#1149

* Update WM version and add disconnect
2022-01-27 15:47:55 -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
Florian 749c1592b4 Add M5Tough board (#1135) 2022-01-17 19:22:26 -06:00
Northern Man 9546f43cd6 Behaviour when MQTT and/or Wifi is not available (#1126)
* 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.
2022-01-17 16:16:43 -06:00
Florian 76b2f0a0e1 fix wifi manager portal missing parameters on esp8266 (#1132)
* 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
2022-01-15 18:28:11 -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
Florian dcbce352be AWS IOT compatibility
implement compatibility with Amazon Web Services IOT through an MQTT connection with certificates. (#1099)
2021-11-07 07:44:50 -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
Thomas KernandKern, Thomas c5f7a3a55e Save currently active receiver and restore on reboot (#1091)
* save active receiver and restore on reboot

Co-authored-by: Kern, Thomas <thomas@kernwelt.de>
2021-10-29 16:53:05 -05:00
Florian 9a8606bd29 Fix self signed certificate function (#1084)
when using mqttset
and add the macro into a test environment
2021-10-05 17:58:01 -05:00
Florian dbedcf065d Add mqtt_secure connection condition for logging (#1082)
* Add mqtt_secure connection condition

when logging SSL error status
2021-09-21 17:43:18 -05:00
h2zero ed4949f769 Update to use ArduinoJson 6+ (#1071) 2021-09-01 19:18:19 -05:00
Florian 0ede075843 Add esp32-wt32-eth01 ethernet board (#1064)
* Add esp32-wt32-eth01 ethernet board
2021-08-17 18:48:11 -05:00
h2zeroandFlorian ca616939b8 Add ability to change MQTT topic and or gateway name by MQTT command. (#1053)
* 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>
2021-08-05 05:50:16 -05:00
h2zeroandFlorian 702c4b7fea Allow for hiding mqtt config settings in wifimanager setup. (#1049)
* 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>
2021-08-04 06:12:19 -05:00
Florian a4106cf0e9 MQTT secure improvements (#1047)
* Add SYStoMQTT mqtt secure infos

* BugFix: correct retrieving of mqtt broker secure status and cert from memory
2021-08-01 15:46:14 -05:00
h2zero 2dedabc52f Add "server_cert" parameter to firmware_update command. (#1043)
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.
2021-07-29 16:13:30 -05:00
h2zero 379df34701 Set OTA name as Gateway_Short_Name + MAC if using mac as gateway name. (#1023)
* 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.
2021-07-17 07:50:08 -05:00