Commit Graph
185 Commits
Author SHA1 Message Date
Florian 86744b283b [SYS] Bump ESP32 platform to v6.1.0 and ESP8266 to v4.1.0 (#1547)
* Bump ESP32 platform to v6.1.0 and ESP8266 to v4.1.0

* Fix ESP32 not connecting to Ethernet

And remove check updates as it is now done every hour

* Do not define LED pins if not explicitly stated

* OLED need to be reset for Heltec Lora 32 V2

* Fix issue with SSD1306 saving
2023-03-23 11:24:49 -05:00
Florian 537d4849e5 [NTP] Only check NTP when user requires timestamp (#1569) 2023-03-23 10:44:05 -05:00
Florian b7b3bbb91a [OTA] Change topic for last update status (#1561)
To avoid conflict with the SYStoMQTT information
2023-03-21 15:36:15 -05:00
Die Peter Pan 7bae999435 [TEMT] Added Temt6000 light sensor using a d1 mini (#1550)
Added light sensor TEMPT6000
2023-03-18 09:33:35 -05:00
ilgrank c8510f2605 [SYS] Add utc & unix timestamp options to SYStoMQTT and Sensor messages (#1533)
Add optional timestamps to the SYStoMQTT and modules messages
Also, the sync with the NTP time server now occurs every hour (can be defined with TimeBetweenCheckingSYS in UserConfig.h)
2023-03-17 10:49:27 -05:00
Die Peter Panandandre 3b4af96990 [WIFI] Added macros for ESP - WifiGMode and WifiPower to reduce/eliminate Wifi interference on sensors like HC-SR501 (#1531)
* Fix WiFi interference on PIR

* Added to DOCS re: WiFi interference.

* Add sufficx -custom to configs without prod binaries

* Add ESP32 Wifi band and tx power to user_config.h

---------

Co-authored-by: andre <agreylin@gmail.com>
2023-03-16 17:50:14 -05:00
Florian 3f92e14ba6 [HA Discovery] Auto Off timer (#1541)
* [HA Discovery] Auto Off timer

Auto deactivate discovery after 30min from the last activation, goal is to avoid unwanted entities created
2023-03-16 10:43:18 -05:00
Florian 9219ff928c [OTA] Improve user feedback and regorganize processing (#1540)
To see OTA progress through MQTT messages or controller
And change the stopProcessing position so as to reduce chance of collision with other processes
2023-03-16 10:01:20 -05:00
Florian 17ce2debce [OTA] Add hourly update routine for update check (#1538)
Update check will be done at start and hourly
2023-03-16 07:59:39 -05:00
ilgrank dbba1bdaf7 [MQTT] Optional message retain flag (#1534)
* Define optional sensor_Retain

...with default : false to preserve current behaviour

* Support optional sensor message retaining
2023-03-15 13:20:08 -05:00
xopr 504463c5c2 [LORA] Added WiPhone LoRa support (#1458)
* Added WiPhone LoRa support

* Centralised raw-hex functions
2023-03-12 12:09:45 -05:00
Florian a9f8f803e5 [HA Discovery] Fix discovery switch (#1509)
extend scope of boards
2023-03-07 14:24:51 -06:00
Florian 1cdf6558a9 [ONOFF] ESP32 Attempt to recover previous actuator state when power has been lost and overcurrent detection change (#1494)
And set the trigger of overCurrent to 2 consecutive measures
2023-03-01 17:44:07 -06:00
DigiH a6e0f6094c Inverted position shifting idle logo (#1484)
* Inverted idle logo

Back on white background start-up logo.
Inverted idle logo with random positioning.

* Idle Logo display default true

DISPLAY_IDLE_LOGO true as burn-in screens saver, especially fo the constant heading and line

* Display Brightness added

* SSD1306toMQTT / MQTTtoSSD1306

Additional "onstate" and "brightness" setting and regular display state reporting

Docs - separate Displays section
2023-03-01 14:36:05 -06:00
Florian 454a062b3b [OTA] Enable 2 clicks OTA update / one simple MQTT command (#1485)
* [OTA] Add automatic OTA updates

This feature will enable to update the gateway with one button or a simple MQTT command.

* [CI] Enable automatic OTA for nightly development builds

And integrate the latest_version file creation into the CI

Enable to specify a particular version
and switch between dev and production builds
2023-02-27 12:54:30 -06:00
Florian 159d362f2a [TRIGGER] Enable reset at start when InputGPIO is used (#1447)
TimeToResetAtStart defines the start period
2023-02-10 17:04:58 -06:00
Florian 799d8e2e85 [WIFI] Increase delay between first wifi connection attempt (#1446)
This improves the chances of reconnection with this mode (before doing it with the wifi manager part)
2023-02-09 16:19:12 -06:00
Florian 23160ad8b4 [ONOFF] Publish state at start and at a given frequency (#1427)
To update state of the controllers
2023-01-26 20:13:16 -06:00
Florian 51357191df [ONOFF] Add overcurrent protection (#1426)
Add a function that switches OFF the actuator if the current measured is more than MAX_CURRENT_ACTUATOR
2023-01-26 19:51:12 -06:00
Florian 4e885a7cd0 [BT] Regular BT connect based on time (#1423)
instead of number of scans, as users changing the interval to continuous scanning may have connect attempts to frequently
2023-01-26 09:28:16 -06:00
Florian a64acab7c8 [BT] Regular BLE system parameter pub (#1422)
Publish BT config parameter at start so as to update the switch statuses in the controller
Also publish regularly in case of controller restart
Also move btqsum, btqsnd and btqavg to BTtoMQTT topic instead of SYStoMQTT as they are more relevant here
2023-01-26 08:18:44 -06:00
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