
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;                                 ENVIRONMENTS LIST                                    ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;List of environments that can be build                                                ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[env:rfbridge]
platform = ${com.esp8266_platform}
board = esp8285
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.esp8266_mdns}
build_flags =
  ${com-esp.build_flags}
  '-DZgatewaySRFB="SRFB"'
  '-DLED_INFO=13'
  '-DLED_INFO_ON=0'
  '-DGateway_Name="OMG_SRFB"'
  '-UMQTTsetMQTT' ;We remove this function to have sufficient FLASH available for OTA, you should also use ESPWifiManualSetup to save flash memory and have OTA working
board_build.flash_mode = dout
board_build.ldscript = eagle.flash.1m64.ld ;this frees more space for firmware uplad via OTA.
;extra_scripts = scripts/compressFirmware.py ;uncomment this to compress the firmware. This helps updating e.g. Sonoff RF Bridge via OTA flash by saving space for the uploaded firmware.
custom_description = RF gateway for the Sonoff RF Bridge relying on the internal decoder
custom_hardware = RFBridge v1

[env:rfbridge-direct]
platform = ${com.esp8266_platform}
board = esp8285
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.esppilight}
build_flags =
  ${com-esp.build_flags}
  '-DZgatewayPilight="Pilight"'
  '-DRF_RECEIVER_GPIO=4'
  '-DRF_EMITTER_GPIO=5'
  '-DLED_INFO=13'
  '-DLED_INFO_ON=0'
  '-DZsensorGPIOInput="GPIOInput"'
  '-DINPUT_GPIO=0'
  '-DGateway_Name="OMG_SRFB_Direct"'
  '-fcommon'
board_build.flash_mode = dout
board_build.ldscript = eagle.flash.1m64.ld ;this frees more space for firmware uplad via OTA.
;extra_scripts = scripts/compressFirmware.py ;uncomment this to compress the firmware. This helps updating e.g. Sonoff RF Bridge via OTA flash by saving space for the uploaded firmware.
custom_description = RF gateway for the Sonoff RF Bridge requiring direct hack, relying on ESPilight library, [tutorial](https://1technophile.blogspot.com/2019/04/sonoff-rf-bridge-pilight-or-how-to.html).
custom_hardware = RFBridge v1

[env:theengs-bridge]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.adafruit_neopixel}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_PIN=2'
  '-DLED_PIN_ON=0'
  '-DESP32_ETHERNET=true'
  '-DETH_PHY_TYPE=ETH_PHY_LAN8720'
  '-DETH_PHY_ADDR=0'
  '-DETH_PHY_POWER=5'
  '-DETH_PHY_MDC=23'
  '-DETH_PHY_MDIO=18'
  '-DETH_CLK_MODE=ETH_CLOCK_GPIO16_OUT'
  '-DLED_ADDRESSABLE_PIN1=32'
  '-DLED_ADDRESSABLE_NUM=4'
  '-DLED_BROKER=0'
  '-DLED_PROCESSING=1'
  '-DLED_ERROR=1'
  '-DDEFAULT_ADJ_BRIGHTNESS=10'
  '-DLED_ADDRESSABLE=true'
  '-DAttemptBLEConnect=false'
  '-DUSE_MAC_AS_GATEWAY_NAME'
  '-DGATEWAY_MANUFACTURER="Theengs"'
  '-DGATEWAY_MODEL="TBRIDGE01"'
  ;'-DBOARD_HAS_PSRAM'
  ;'-mfix-esp32-psram-cache-issue'
custom_description = BLE gateway with external antenna and Ethernet/WiFi connectivity, [user guide](https://tbridge01.theengs.io/)
custom_hardware = Theengs Bridge gateway ethernet

[env:theengs-bridge-v11]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.adafruit_neopixel}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DESP32_ETHERNET=true'
  '-DETH_PHY_TYPE=ETH_PHY_LAN8720'
  '-DETH_PHY_ADDR=0'
  '-DETH_PHY_POWER=5'
  '-DETH_PHY_MDC=23'
  '-DETH_PHY_MDIO=18'
  '-DETH_CLK_MODE=ETH_CLOCK_GPIO16_OUT'
  '-DLED_ADDRESSABLE=true'
  '-DLED_ADDRESSABLE_PIN1=32'
  '-DLED_ADDRESSABLE_NUM=4'
  '-DLED_ERROR=3'
  '-DLED_PROCESSING=3'
  '-DLED_BROKER=2'
  '-DLED_NETWORK=1'
  '-DLED_POWER=0'
  '-DAttemptBLEConnect=false'
  '-DTRIGGER_GPIO=4'
  '-DUSE_MAC_AS_GATEWAY_NAME'
  '-DGATEWAY_MANUFACTURER="Theengs"'
  '-DGATEWAY_MODEL="TBRIDGE02"'
  ;'-DBOARD_HAS_PSRAM'
  ;'-DSELF_TEST=true'
  ;'-mfix-esp32-psram-cache-issue'
custom_description = BLE gateway with external antenna and Ethernet/WiFi connectivity, [user guide](https://tbridge02.theengs.io/)
custom_hardware = Theengs Bridge gateway ethernet

; DISCLAIMER: This is the default environment for Theengs Plug.
; Any modifications to this configuration are not covered by warranty.
; Proceed with caution when making changes.
;
; SAFETY WARNING: Do not modify values related to current limits MAX_CURRENT_ACTUATOR or other
; safety-critical parameters. Doing so may lead to fire hazards or damage to the device.
[env:theengs-plug]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.adafruit_neopixel}
  ${libraries.rn8209}
build_flags =
  ${env.build_flags}
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DZsensorRN8209="RN8209"'
  '-DRN8209_KU=18570'
  '-DRN8209_KIA=265263'
  '-DRN8209_EC=26675'
  '-DTRIGGER_GPIO=4'
  '-DZactuatorONOFF="ONOFF"'
  '-DACTUATOR_ON=1'
  '-DACTUATOR_OFF=0'
  '-DACTUATOR_BUTTON_TRIGGER_LEVEL=0'
  '-ACTUATOR_TRIGGER=true'
  '-DZsensorGPIOInput="GPIOInput"'
  '-DINPUT_GPIO=4'
  '-DACTUATOR_ONOFF_GPIO=25'
  '-DAttemptBLEConnect=false'
  '-DLED_ADDRESSABLE=true'
  '-DLED_ADDRESSABLE_PIN1=26'
  '-DLED_ADDRESSABLE_PIN2=27'
  '-DLED_ADDRESSABLE_NUM=2'
  '-DLED_ADDRESSABLE_POWER=16'
  '-DLED_ERROR=0'
  '-DLED_PROCESSING=0'
  '-DLED_BROKER=0'
  '-DLED_NETWORK=0'
  '-DLED_ACTUATOR_ONOFF=1'
  ; Maximum current in A DO NOT MODIFY MAX_CURRENT_ACTUATOR
  ;-----------------------------
  '-DMAX_CURRENT_ACTUATOR=15.0'
  ;-----------------------------
  '-DWM_PWD_FROM_MAC=true'
  '-DUSE_MAC_AS_GATEWAY_NAME'
  '-DDEFAULT_LOW_POWER_MODE=DEACTIVATED'
  '-DGATEWAY_MANUFACTURER="Theengs"'
  '-DGATEWAY_MODEL="TPLUG01"'
  '-UZwebUI="WebUI"' ; Disable WebUI
custom_description = Smart Plug, BLE Gateway and energy monitoring, [user guide](https://tplug01.theengs.io/)
custom_hardware = Theengs Plug

[env:esp32dev-all-test]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = partitions/alltest_large.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.irremoteesp}
  ${libraries.lora}
  ${libraries.rfm69}
  ${libraries.rfm69spi}
  ${libraries.rc-switch}
  ${libraries.newremoteswitch}
  ${libraries.bme280}
  ${libraries.bmp180}
  ${libraries.htu21}
  ${libraries.lm75}
  ${libraries.ahtx0}
  ${libraries.unifiedsensor}
  ${libraries.dht}
  ${libraries.tsl2561}
  ${libraries.ina226}
  ${libraries.fastled}
  ${libraries.adafruit_neopixel}
  ${libraries.onewire}
  ${libraries.dallastemperature}
  ${libraries.rfWeatherStation}
  ${libraries.shtc3}
  ${libraries.rn8209}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayRF="RF"'
  '-DZgatewayLORA="LORA"'
  '-DZgatewayRF2="RF2"'
  '-DZgatewayIR="IR"'
  '-DZgatewayBT="BT"'
  '-DZactuatorONOFF="ONOFF"'
  '-DACTUATOR_BUTTON_TRIGGER_LEVEL=0'
  '-ACTUATOR_TRIGGER=true'
  '-DZactuatorFASTLED="FASTLED"'
  '-DZactuatorPWM="PWM"'
  '-DZsensorINA226="INA226"'
  '-DZsensorHCSR501="HCSR501"'
  '-DZsensorADC="ADC"'
  '-DZsensorBH1750="BH1750"'
  '-DZsensorBME280="BME280"'
  '-DBME280Correction=-3.4'
  '-DZsensorHTU21="HTU21"'
  '-DZsensorAHTx0="AHTx0"'
  '-DZsensorTEMT6000="TEMT6000"'
  '-DZsensorMQ2="MQ2"'
  '-DZsensorTSL2561="TSL2561"'
  '-DZsensorDHT="DHT"'
  '-DZsensorDS1820="DS1820"'
  '-DZgatewayRFM69="RFM69"'
  '-DZsensorGPIOInput="GPIOInput"'
  '-DZsensorGPIOKeyCode="GPIOKeyCode"'
  '-DZsensorRN8209="RN8209"'
  '-DMAX_TEMP_ACTUATOR=80'
  '-DZgatewayWeatherStation="WeatherStation"'
  '-DsimplePublishing=true'
  '-DWM_PWD_FROM_MAC=true'
  '-DUSE_MAC_AS_GATEWAY_NAME=true'
  '-DZsensorC37_YL83_HMRD="HMRD"'
  '-DESPWifiManualSetup=true'
  '-Dwifi_ssid="wifissid"'
  '-Dwifi_password="wifipassword"'
  '-DMQTT_SERVER="192.168.0.20"'
  '-DMQTT_USER=""'
  '-DMQTT_PASS=""'
  '-DMQTT_PORT="1883"'
  '-DMDNS_SD=true'
  '-DDEEP_SLEEP_IN_US=120000000' ; Deep sleep for a period of time to conserve battery
  '-DESP32_EXT0_WAKE_PIN=GPIO_NUM_14' ;Should a water leak be detected immediatly wake the ESP32 and report the problem
  '-DESP32_EXT0_WAKE_PIN_STATE=0' ;Should a water leak be detected immediatly wake the ESP32 and report the problem, sensor state to look for wakeup
  '-UMQTT_HTTPS_FW_UPDATE' ;disable HTTPS firmware updating
  '-DNetworkAdvancedSetup=true'
  '-DNET_IP="192.168.1.99"'
  '-DNET_MASK="255.255.255.0"'
  '-DNET_GW="192.168.1.1"'
  '-DNET_DNS="1.1.1.1"'

[env:esp32dev-rf]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.rc-switch}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayRF="RF"'
  '-DGateway_Name="OMG_ESP32_RF"'
  '-DvalueAsATopic=true'
custom_description = RF gateway using RCSwitch library

[env:esp32dev-pilight]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.esppilight}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayPilight="Pilight"'
  '-DGateway_Name="OMG_ESP32_Pilight"'
custom_description = RF gateway using ESPilight library

[env:esp32dev-pilight-cc1101]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
extra_scripts = pre:scripts/add_c_flags.py
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.esppilight}
  ${libraries.smartrc-cc1101-driver-lib}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayPilight="Pilight"'
  '-DZradioCC1101="CC1101"'
  '-DGateway_Name="OMG_ESP32_Pilight-CC1101"'
custom_description = Gateway using ESPilight library only, need CC1101

[env:esp32dev-somfy-cc1101]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.somfy_remote}
  ${libraries.smartrc-cc1101-driver-lib}
build_flags =
  ${com-esp32.build_flags}
  '-DZactuatorSomfy="Somfy"'
  '-DZradioCC1101="CC1101"'
  '-DGateway_Name="OMG_ESP32_Somfy-CC1101"'
custom_description = Gateway using Somfy Remote library, need CC1101

[env:esp32dev-pilight-somfy-cc1101]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
extra_scripts = pre:scripts/add_c_flags.py
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.esppilight}
  ${libraries.somfy_remote}
  ${libraries.smartrc-cc1101-driver-lib}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayPilight="Pilight"'
  '-DZactuatorSomfy="Somfy"'
  '-DZradioCC1101="CC1101"'
  '-DGateway_Name="OMG_ESP32_Pilight-Somfy-CC1101"'
custom_description = Gateway using Somfy Remote and ESPilight library, need CC1101

[env:esp32dev-weatherstation]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.rfWeatherStation}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayWeatherStation="WeatherStation"'
  '-DGateway_Name="OMG_ESP32_WeatherStation"'
custom_description = Gateway to retrieve weather station data Ventus W174/W132 (tested), Auriol H13726, Hama EWS 1500, Meteoscan W155/W160 using WeatherStationDataRx

[env:esp32dev-gf-sun-inverter]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.emodbus}
  ${libraries.gfSunInverter}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayGFSunInverter="GFSunInverter"'
  '-DGateway_Name="OMG_ESP32_GFSunInverter"'
custom_description = RS232 reading of GridFree Sun Inverter

[env:esp32dev-ir]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.irremoteesp}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayIR="IR"'
  '-DGateway_Name="OMG_ESP32_IR"'
custom_description = Infrared (Emitting and receiving) using IRremoteESP8266

[env:esp32dev-ble]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_PIN=2'
  '-DLED_PIN_ON=0'
  '-DGateway_Name="OMG_ESP32_BLE"'
custom_description = Regular BLE gateway with adaptive scanning activated, automatically adapts the scan parameters depending on your devices

[env:esp32dev-ble-broker]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_PIN=2'
  '-DLED_PIN_ON=0'
  '-DGateway_Name="OMG_ESP32_BLE"'
  '-DMQTT_BROKER_MODE=true'
custom_description = MQTT Broker with BLE gateway with adaptive scanning activated, automatically adapts the scan parameters depending on your devices

[env:esp32dev-ble-mqtt-undecoded]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
build_flags =
  ${com-esp32.build_flags}
  '-DBLEDecoder=false'
  '-DZgatewayBT="BT"'
  '-DLED_PIN=2'
  '-DLED_PIN_ON=0'
  '-DGateway_Name="OMG_ESP32_BLE"'
  '-DMQTTDecodeTopic="undecoded"'
custom_description = BLE gateway with the decoding offloaded to Theengs Gateway

[env:esp32dev-ble-aws]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-UZmqttDiscovery="HADiscovery"'
  '-DZgatewayBT="BT"'
  '-DLED_PIN=2'
  '-DLED_PIN_ON=0'
  '-DARDUINO_LOOP_STACK_SIZE=17500'
  '-DMQTT_SECURE_DEFAULT=true'
  '-DMQTT_CERT_VALIDATE_DEFAULT=true'
  '-DMQTT_SECURE_SIGNED_CLIENT=true'
  '-DMQTT_SERVER="xxxxxxxxxxxxx-ats.iot.eu-west-2.amazonaws.com"'
  '-DMQTT_PORT="8883"'
  '-DMQTT_USER=""'
  '-DMQTT_PASS=""'
  '-DAWS_IOT=true'
custom_description = BLE gateway with AWS integration capability

[env:esp32feather-ble]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = featheresp32
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_PIN=13'
  '-DLED_PIN_ON=0'
  '-DGateway_Name="OMG_ESP32_FTH_BLE"'
custom_description =  BLE Gateway
custom_hardware = ESP32 Feather Adafruit

[env:esp32-lolin32lite-ble]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = lolin32
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_PIN=22'
  '-DLED_PIN_ON=0'
  '-DGateway_Name="OMG_LOLIN32LITE_BLE"'
;; Low power parameters, uncomment and fill credentials
  '-DDEFAULT_LOW_POWER_MODE=INTERVAL'
;  '-DTimeBtwRead=155000'
;  '-DScan_duration=2000'
;  '-DAttemptBLEConnect=false'
;  '-DAdaptiveBLEScan=false'
;  '-DESPWifiManualSetup=true'
;  '-DMQTT_USER="lolin-esp32"'
;  '-DMQTT_PASS="your_password"'
;  '-DMQTT_SERVER="192.168.1.17"'
;  '-Dwifi_ssid="WIFI_SSID"'
;  '-Dwifi_password="WIFI_PASSWORD"'
custom_description = Suitable for low power with BLE gateway, [tutorial](https://1technophile.blogspot.com/2021/04/low-power-esp32-ble-gateway.html)
custom_hardware = LOLIN 32 Lite

[env:esp32-olimex-gtw-ble-eth]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32-gateway
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_PIN=33'
  '-DLED_PIN_ON=1'
  '-DTRIGGER_GPIO=34'
  '-DESP32_ETHERNET=true'
  '-DGateway_Name="OMG_ESP32_OLM_GTWE"'
custom_description = BLE gateway using ethernet or wifi
custom_hardware = OLIMEX ESP32 Gateway

[env:esp32-olimex-gtw-ble-poe]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32-poe
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DESP32_ETHERNET=true'
  '-DGateway_Name="OMG_ESP32_OLM_POE"'
custom_description = BLE gateway using ethernet, need to be configured through PIO
custom_hardware = OLIMEX ESP32 Gateway with POE

[env:esp32-olimex-gtw-ble-poe-iso]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32-poe-iso
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DESP32_ETHERNET=true'
  '-DGateway_Name="OMG_ESP32_OLM_POE"'
custom_description = BLE gateway using ethernet, need to be configured through PIO
custom_hardware = OLIMEX ESP32 Gateway with POE and ISO

[env:esp32-wt32-eth01-ble-eth]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32-gateway
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DESP32_ETHERNET=true'
  '-DETH_PHY_ADDR=1'
  '-DETH_PHY_POWER=16'
  '-DETH_CLK_MODE=ETH_CLOCK_GPIO0_IN'
  '-DGateway_Name="OMG_ESP32_WT32-ETH01"'
custom_description = BLE gateway using ethernet, need to be configured through PIO
custom_hardware = WT32

[env:esp32-olimex-gtw-ble-wifi]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32-gateway
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_INFO=33'
  '-DLED_INFO_ON=1'
  '-DTRIGGER_GPIO=34'
  '-DGateway_Name="OMG_ESP32_OLM_GTWW"'
custom_description = BLE gateway using wifi
custom_hardware = OLIMEX ESP32 Gateway

[env:esp32-m5stick-ble]
platform = espressif32@6.1.0
board = m5stack-core-esp32
board_build.partitions = partitions/no_coredump.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.irremoteesp}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DZgatewayIR="IR"'
  '-DLED_PIN=19'
  '-DLED_PIN_ON=1'
  '-DTRIGGER_GPIO=35'
  '-DIR_EMITTER_GPIO=17'
  '-DDEFAULT_LOW_POWER_MODE=ALWAYS_ON'
  '-DGateway_Name="OMG_ESP32_M5STICK_BLE_IR"'
board_upload.speed = 921600
custom_description = Expandable module with BLE gateway, display, and little IR emitter
custom_hardware = M5Stick Grey

[env:esp32-m5stack-ble]
platform = espressif32@6.1.0
board = m5stack-core-esp32
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.m5stack}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DZsensorGPIOInput="GPIOInput"'
  '-DZboardM5STACK="M5Stack"'
  '-DLED_PIN=15'
  '-DTRIGGER_GPIO=37'
  '-DSLEEP_BUTTON=38'
  '-DINPUT_GPIO=39'
  '-DDEFAULT_LOW_POWER_MODE=ALWAYS_ON'
  '-DGateway_Name="OMG_ESP32_M5STACK_BLE"'
board_upload.speed = 921600
custom_description = Expandable module with BLE gateway and display
custom_hardware = M5Stack Core

[env:esp32-m5tough-ble]
platform = espressif32@6.1.0
board = m5stack-core-esp32
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.m5tough}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DZboardM5TOUGH="M5Tough"'
  '-DGateway_Name="OMG_ESP32_M5TOUGH_BLE"'
board_upload.speed = 921600
custom_description = Expandable module with BLE gateway and display, suitable for outdoor
custom_hardware = M5Tough rugged

[env:esp32-m5stick-c-ble]
platform = espressif32@6.1.0
board = m5stick-c
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.m5stickc}
  ${libraries.irremoteesp}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DZgatewayIR="IR"'
  '-DZsensorGPIOInput="GPIOInput"'
  '-DZboardM5STICKC="M5StickC"'
  '-DACTUATOR_ONOFF_GPIO=10'
  '-DINPUT_GPIO=37'
  '-DLED_PIN=10'
  '-DLED_PIN_ON=0'
  '-DSLEEP_BUTTON=39'
  '-DTRIGGER_GPIO=39'
  '-DIR_EMITTER_INVERTED=true'
  '-DIR_EMITTER_GPIO=9'
  '-DDEFAULT_LOW_POWER_MODE=ALWAYS_ON'
  '-DGateway_Name="OMG_ESP32_M5STICK_C_BLE_IR"'
board_upload.speed = 1500000
custom_description = Expandable module with BLE gateway, display, and little IR emitter
custom_hardware = M5Stick C

[env:esp32-m5stick-cp-ble]
platform = espressif32@6.1.0
board = pico32
board_build.partitions = partitions/no_coredump.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.m5stickcp}
  ${libraries.irremoteesp}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DZgatewayIR="IR"'
  '-DZsensorGPIOInput="GPIOInput"'
  '-DZboardM5STICKCP="M5StickCP"'
  '-DACTUATOR_ONOFF_GPIO=10'
  '-DINPUT_GPIO=37'
  '-DLED_PIN=10'
  '-DLED_PIN_ON=0'
  '-DSLEEP_BUTTON=39'
  '-DTRIGGER_GPIO=39'
  '-DIR_EMITTER_INVERTED=true'
  '-DIR_EMITTER_GPIO=9'
  '-DDEFAULT_LOW_POWER_MODE=ALWAYS_ON'
  '-DGateway_Name="OMG_ESP32_M5STICK_CP_BLE_IR"'
board_upload.speed = 1500000
custom_description = Expandable module with BLE gateway, display, and little IR emitter
custom_hardware = M5Stick CP

[env:esp32-m5atom-matrix]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = pico32
board_build.partitions = partitions/no_coredump.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.irremoteesp}
  ${libraries.adafruit_neopixel}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DZgatewayIR="IR"'
  '-DTRIGGER_GPIO=39'
  '-DSLEEP_BUTTON=39'
  '-DIR_EMITTER_GPIO=12'
  '-DLED_ADDRESSABLE_PIN1=27'
  '-DLED_ADDRESSABLE_NUM=25'
  '-DLED_ADDRESSABLE=true'
  '-DLED_ERROR=4'
  '-DLED_PROCESSING=3'
  '-DLED_BROKER=2'
  '-DLED_NETWORK=1'
  '-DLED_POWER=0'
  '-DGateway_Name="OMG_ATOM_M"'
board_upload.speed = 1500000
custom_description = Compact enclosure ESP32 with BLE gateway
custom_hardware = M5 ATOM Matrix

[env:esp32-m5atom-lite]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = pico32
board_build.partitions = partitions/no_coredump.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.irremoteesp}
  ${libraries.adafruit_neopixel}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DZgatewayIR="IR"'
  '-DTRIGGER_GPIO=39'
  '-DSLEEP_BUTTON=39'
  '-DIR_EMITTER_GPIO=12'
  '-DLED_ADDRESSABLE_PIN1=27'
  '-DLED_ADDRESSABLE_NUM=1'
  '-DLED_ADDRESSABLE=true'
  '-DGateway_Name="OMG_ATOM_L"'
board_upload.speed = 1500000
custom_description = Compact enclosure ESP32 with BLE gateway
custom_hardware = M5 ATOM Lite

[env:esp32doitv1-aithinker-r01-sx1278]
platform = espressif32@6.1.0
board = esp32doit-devkit-v1
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.rtl_433_ESP}
build_flags =
  ${com-esp32.build_flags}
; *** OpenMQTTGateway Config ***
  ;'-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DvalueAsATopic=true'       ; MQTT topic includes model and device
  '-DGateway_Name="OMG_rtl_433_ESP"'
; *** OpenMQTTGateway Modules ***
  '-DZgatewayRTL_433="rtl_433"'
  '-DZradioSX127x="SX127x"'
; *** rtl_433_ESP Options ***
   '-DONBOARD_LED=LED_BUILTIN'
;  '-DRTL_DEBUG=4'           ; rtl_433 verbose mode
;  '-DRTL_VERBOSE=58'          ; LaCrosse TX141-Bv2, TX141TH-Bv2, TX141-Bv3, TX141W, TX145wsdth sensor
;  '-DRAW_SIGNAL_DEBUG=true'   ; display raw received messages
;  '-DMEMORY_DEBUG=true'   ; display memory usage information
;  '-DDEMOD_DEBUG=true'  ; display signal debug info
;	 '-DMY_DEVICES=true'		; subset of devices
;  '-DPUBLISH_UNPARSED=true'   ; publish unparsed signal details
;  '-DRSSI_THRESHOLD=12'         ; Apply a delta of 12 (default 9)
;  '-DOOK_FIXED_THRESHOLD=0x50'  ; Inital OOK Threhold - Only for SX127X (default 5A)
;  '-DAVERAGE_RSSI=5000'     ; Display RSSI floor ( Average of 5000 samples )
;  '-DSIGNAL_RSSI=true'             ; Display during signal receive
; *** RF Module Options ***
  '-DRF_SX1278="SX1278"'   ;
  '-DRF_MODULE_DIO0=15'    ; SX1278 pin DIO0
  '-DRF_MODULE_DIO1=4'     ; SX1278 pin DIO1
  '-DRF_MODULE_DIO2=16'    ; SX1278 pin DIO2
  '-DRF_MODULE_RST=17'     ; pin to be used as hardware reset
;  '-DRF_MODULE_INIT_STATUS=true'    ; Display transceiver config during startup
; *** Heltec module requires non-standard SPI Config ***
  '-DRF_MODULE_CS=5'      ; pin to be used as chip select
;  '-DRF_MODULE_MOSI=23'
;  '-DRF_MODULE_MISO=19'
;  '-DRF_MODULE_SCK=18'
; *** RadioLib Options ***
;  '-DRADIOLIB_DEBUG=true'
;  '-DRADIOLIB_VERBOSE=true'
custom_description = Gateway using RTL_433_ESP library, need SX1278
custom_hardware = ESP32 DOIT DevKit V1 & external Ai Thinker Ra01 Loraboard SX1278 on VPSI and (DIO0=15, DIO1=4, DIO2=16 and RST=17)
board_upload.speed = 921600
board_upload.port = /dev/cu.usbserial-0001
board_monitor.speed = 921600
board_monitor.port = /dev/cu.usbserial-0001

[env:esp32doitv1-aithinker-r01-sx1278-hcsr501-test]
extends = env:esp32doitv1-aithinker-r01-sx1278
lib_deps =  ${env:esp32doitv1-aithinker-r01-sx1278.lib_deps}
            ${libraries.unifiedsensor}
build_flags =
  ${env:esp32doitv1-aithinker-r01-sx1278.build_flags}
  '-DHCSR501_LED_NOTIFY_GPIO=LED_BUILTIN'
  '-DWifiGMode=true'
  '-DWifiPower=WIFI_POWER_11dBm'
  '-DZsensorHCSR501="HCSR501"'
  '-DHCSR501_GPIO=13'

[env:esp32doitv1-aithinker-r01-sx1278-hcsr501-ota-test]
extends = env:esp32doitv1-aithinker-r01-sx1278-hcsr501-test
upload_protocol = espota
upload_port = 10.0.0.108
upload_flags =
  --auth=OTAPASSWORD
  --port=8266

[env:esp32doitv1-aithinker-r01-sx1278-ota-test]
extends = env:esp32doitv1-aithinker-r01-sx1278
upload_protocol = espota
upload_port = 10.0.0.70
upload_flags =
  --auth=OTAPASSWORD
  --port=8266

[env:esp32dev-rtl_433]
platform = espressif32@6.1.0
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.rtl_433_ESP}
  ${libraries.smartrc-cc1101-driver-lib}
build_flags =
  ${com-esp32.build_flags}
; *** OpenMQTTGateway Config ***
  ;'-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DvalueAsATopic=true'       ; MQTT topic includes model and device
  '-DLOG_LEVEL=LOG_LEVEL_TRACE'
  '-DGateway_Name="OMG_rtl_433_ESP"'
; *** OpenMQTTGateway Modules ***
  '-DZgatewayRTL_433="rtl_433"'
  '-DZradioCC1101="CC1101"'
; *** rtl_433_ESP Options ***
;  '-DRTL_DEBUG=4'             ; rtl_433 verbose mode
;  '-DRTL_VERBOSE=58'          ; LaCrosse TX141-Bv2, TX141TH-Bv2, TX141-Bv3, TX141W, TX145wsdth sensor
;  '-DRAW_SIGNAL_DEBUG=true'   ; display raw received messages
;  '-DMEMORY_DEBUG=true'       ; display memory usage information
  '-DDEMOD_DEBUG=true'         ; display signal debug info
;  '-DMY_DEVICES=true'         ; subset of devices
  '-DPUBLISH_UNPARSED=true'    ; publish unparsed signal details
;  '-DRSSI_THRESHOLD=12'       ; Apply a delta of 12 to average RSSI level
;  '-DAVERAGE_RSSI=5000'       ; Display RSSI floor ( Average of 5000 samples )
  '-DSIGNAL_RSSI=true'         ; Display during signal receive
  '-DNO_DEAF_WORKAROUND=true'
; *** RF Module Options ***
  '-DRF_CC1101="CC1101"'       ; CC1101 Transceiver Module
;  '-DRF_MODULE_CS=5'          ; pin to be used as chip select
  '-DRF_MODULE_GDO0=12'        ; CC1101 pin GDO0
  '-DRF_MODULE_GDO2=27'        ; CC1101 pin GDO2
; *** RadioLib Options ***
;  '-DRADIOLIB_DEBUG=true'
;  '-DRADIOLIB_VERBOSE=true'
custom_description = Gateway using RTL_433_ESP library, need CC1101

[env:esp32dev-rtl_433-fsk]
platform = espressif32@6.1.0
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.rtl_433_ESP}
  ${libraries.smartrc-cc1101-driver-lib}
build_flags =
  ${com-esp32.build_flags}
; *** OpenMQTTGateway Config ***
  ;'-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DvalueAsATopic=true'       ; MQTT topic includes model and device
  '-DLOG_LEVEL=LOG_LEVEL_TRACE'
  '-DGateway_Name="OMG_rtl_433_ESP_FSK"'
; *** OpenMQTTGateway Modules ***
  '-DOOK_MODULATION=false' ; FSK modulation activated
  ;'-DRF_FREQUENCY=915'
  '-DRF_FREQUENCY=868.300'
  ;-DRF_FREQUENCY=433.9'
  '-DZgatewayRTL_433="rtl_433"'
  '-DZradioCC1101="CC1101"'
; *** rtl_433_ESP Options ***
;  '-DRTL_DEBUG=4'             ; rtl_433 verbose mode
;  '-DRTL_VERBOSE=58'          ; LaCrosse TX141-Bv2, TX141TH-Bv2, TX141-Bv3, TX141W, TX145wsdth sensor
;  '-DRAW_SIGNAL_DEBUG=true'   ; display raw received messages
;  '-DMEMORY_DEBUG=true'       ; display memory usage information
  '-DDEMOD_DEBUG=true'         ; display signal debug info
;  '-DMY_DEVICES=true'         ; subset of devices
  '-DPUBLISH_UNPARSED=true'    ; publish unparsed signal details
;  '-DRSSI_THRESHOLD=12'       ; Apply a delta of 12 to average RSSI level
;  '-DAVERAGE_RSSI=5000'       ; Display RSSI floor ( Average of 5000 samples )
  '-DSIGNAL_RSSI=true'         ; Display during signal receive
  '-DNO_DEAF_WORKAROUND=true'
; *** RF Module Options ***
  '-DRF_CC1101="CC1101"'       ; CC1101 Transceiver Module
;  '-DRF_MODULE_CS=5'          ; pin to be used as chip select
  '-DRF_MODULE_GDO0=12'        ; CC1101 pin GDO0
  '-DRF_MODULE_GDO2=27'        ; CC1101 pin GDO2
; *** RadioLib Options ***
;  '-DRADIOLIB_DEBUG=true'
;  '-DRADIOLIB_VERBOSE=true'
custom_description = Gateway using RTL_433_ESP library and RadioLib with FSK modulation (beta), need CC1101

[env:heltec-rtl_433]
platform = espressif32@6.1.0
board = heltec_wifi_lora_32_V2
; ~/.platformio/packages/framework-arduinoespressif32/variants/.../pins_arduino.h
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ssd1306}
  ${libraries.rtl_433_ESP}
build_flags =
  ${com-esp32.build_flags}
; *** OpenMQTTGateway Config ***
  ;'-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DvalueAsATopic=true'       ; MQTT topic includes model and device
  '-DGateway_Name="OMG_heltec_rtl_433_ESP_OOK"'
; *** OpenMQTTGateway Modules ***
  '-DZgatewayRTL_433="rtl_433"'
  '-DZradioSX127x="SX127x"'
; *** ssd1306 Display Options ***
  '-DZdisplaySSD1306="HELTEC_SSD1306"'
;  '-DLOG_TO_OLED=false'         ; Enable log to OLED
;  '-DJSON_TO_OLED=true'
;  '-DLOG_LEVEL_OLED=LOG_LEVEL_NOTICE'
;  '-DDISPLAY_IDLE_LOGO=false'
;  '-DDISPLAY_BRIGHTNESS=80'
;  '-DDISPLAY_METRIC=false'
custom_description = Gateway using RTL_433_ESP and RadioLib
custom_hardware = ESP32 HELTEC LORA32 V2

[env:heltec-rtl_433-fsk]
platform = espressif32@6.1.0
board = heltec_wifi_lora_32_V2
; ~/.platformio/packages/framework-arduinoespressif32/variants/.../pins_arduino.h
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ssd1306}
  ${libraries.rtl_433_ESP}
build_flags =
  ${com-esp32.build_flags}
; *** OpenMQTTGateway Config ***
  ;'-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DvalueAsATopic=true'       ; MQTT topic includes model and device
  '-DGateway_Name="OMG_heltec_rtl_433_ESP_FSK"'
  '-DOOK_MODULATION=false' ; FSK modulation activated
  '-DRF_FREQUENCY=915'
  ;-DRF_FREQUENCY=868.300'
  ;-DRF_FREQUENCY=433.9'
; *** OpenMQTTGateway Modules ***
  '-DZgatewayRTL_433="rtl_433"'
  '-DZradioSX127x="SX127x"'
; *** ssd1306 Display Options ***
  '-DZdisplaySSD1306="HELTEC_SSD1306"'
;  '-DLOG_TO_OLED=false'         ; Enable log to OLED
;  '-DJSON_TO_OLED=true'
;  '-DLOG_LEVEL_OLED=LOG_LEVEL_NOTICE'
;  '-DDISPLAY_IDLE_LOGO=false'
;  '-DDISPLAY_BRIGHTNESS=80'
;  '-DDISPLAY_METRIC=false'
custom_description = Gateway using RTL_433_ESP and RadioLib with FSK modulation (beta)
custom_hardware = ESP32 HELTEC LORA32 V2

[env:heltec-ble]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = heltec_wifi_lora_32_V2
; ~/.platformio/packages/framework-arduinoespressif32/variants/.../pins_arduino.h
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ssd1306}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
; *** OpenMQTTGateway Config ***
  ;'-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DZgatewayBT="BT"'
  '-DGateway_Name="OMG_heltec_ble"'
; *** ssd1306 Display Options ***
  '-DZdisplaySSD1306="HELTEC_SSD1306"'
;  '-DDISPLAY_IDLE_LOGO=false'
;  '-DDISPLAY_BRIGHTNESS=80'
;  '-DDISPLAY_METRIC=false'
custom_description = Heltec BLE gateway with adaptive scanning activated, automatically adapts the scan parameters depending on your devices
custom_hardware = ESP32 HELTEC LORA32 V2

[env:lilygo-rtl_433]
platform = espressif32@6.1.0
board = ttgo-lora32-v21
; ~/.platformio/packages/framework-arduinoespressif32/variants/.../pins_arduino.h
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ssd1306}
  ${libraries.rtl_433_ESP}
build_flags =
  ${com-esp32.build_flags}
; *** OpenMQTTGateway Config ***
  ;'-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DvalueAsATopic=true'    ; MQTT topic includes model and device
  '-DGateway_Name="OMG_lilygo_rtl_433_ESP_OOK"'
; *** OpenMQTTGateway Modules ***
  '-DZgatewayRTL_433="rtl_433"'
  '-DZradioSX127x="SX127x"'
; *** ssd1306 Display Options ***
  '-DZdisplaySSD1306="LilyGo_SSD1306"'
;  '-DLOG_TO_OLED=true'         ; Enable log to OLED
;  '-DJSON_TO_OLED=true'
;  '-DLOG_LEVEL_OLED=LOG_LEVEL_NOTICE'
;  '-DDISPLAY_IDLE_LOGO=false'
;  '-DDISPLAY_BRIGHTNESS=80'
;  '-DDISPLAY_METRIC=false'
custom_description = For ESP32, Gateway using RTL_433_ESP and RadioLib
custom_hardware = ESP32 LILYGO LoRa32 V2.1

[env:lilygo-rtl_433-fsk]
platform = espressif32@6.1.0
board = ttgo-lora32-v21
; ~/.platformio/packages/framework-arduinoespressif32/variants/.../pins_arduino.h
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ssd1306}
  ${libraries.rtl_433_ESP}
build_flags =
  ${com-esp32.build_flags}
; *** OpenMQTTGateway Config ***
  ;'-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DvalueAsATopic=true'    ; MQTT topic includes model and device
  '-DGateway_Name="OMG_lilygo_rtl_433_ESP_FSK"'
  '-DOOK_MODULATION=false' ; FSK modulation activated
  '-DRF_FREQUENCY=915'
  ;-DRF_FREQUENCY=868.300'
  ;-DRF_FREQUENCY=433.9'
; *** OpenMQTTGateway Modules ***
  '-DZgatewayRTL_433="rtl_433"'
  '-DZradioSX127x="SX127x"'
; *** ssd1306 Display Options ***
  '-DZdisplaySSD1306="LilyGo_SSD1306"'
;  '-DLOG_TO_OLED=true'         ; Enable log to OLED
;  '-DJSON_TO_OLED=true'
;  '-DLOG_LEVEL_OLED=LOG_LEVEL_NOTICE'
;  '-DDISPLAY_IDLE_LOGO=false'
;  '-DDISPLAY_BRIGHTNESS=80'
;  '-DDISPLAY_METRIC=false'
custom_description = For ESP32, Gateway using RTL_433_ESP and RadioLib with FSK modulation (beta)
custom_hardware = ESP32 LILYGO LoRa32 V2.1

[env:lilygo-t3-s3-rtl_433]
platform = espressif32@6.10.0
board = lilygo-t3-s3
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ssd1306}
  ${libraries.rtl_433_ESP}
build_flags =
  ${com-esp32.build_flags}
; *** OpenMQTTGateway Config ***
  ;'-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DvalueAsATopic=true'    ; MQTT topic includes model and device
  '-DGateway_Name="OMG_lilygo_rtl_433_ESP_OOK"'
; *** OpenMQTTGateway Modules ***
  '-DZgatewayRTL_433="rtl_433"'
  '-DZradioSX127x="SX127x"'
; *** ssd1306 Display Options ***
  '-DZdisplaySSD1306="LilyGo_SSD1306"'
  '-DGenericSSD1306=true'
;  '-DLOG_TO_OLED=true'         ; Enable log to OLED
;  '-DJSON_TO_OLED=true'
;  '-DLOG_LEVEL_OLED=LOG_LEVEL_NOTICE'
;  '-DDISPLAY_IDLE_LOGO=false'
;  '-DDISPLAY_BRIGHTNESS=80'
;  '-DDISPLAY_METRIC=false'

  '-DNO_INT_TEMP_READING=true'
  ; '-DLED_PIN=37'
  '-DOLED_SDA=18'               ; SSD1306 pin SDA
  '-DOLED_SCL=17'               ; SSD1306 pin SCL
  '-DRF_SX1276="SX1276"'
  '-DRF_MODULE_SCK=5'
  '-DRF_MODULE_MISO=3'
  '-DRF_MODULE_MOSI=6'
  '-DRF_MODULE_CS=7'
  '-DRF_MODULE_RST=8'
  '-DRF_MODULE_DIO0=9'
  '-DRF_MODULE_DIO1=33'
  '-DRF_MODULE_DIO2=34'
  '-DRF_MODULE_DIO3=21'
  '-DRF_MODULE_DIO4=10'
  '-DRF_MODULE_DIO5=36'
custom_description = For ESP32, Gateway using RTL_433_ESP and RadioLib with FSK modulation (beta)
custom_hardware = ESP32 LILYGO T3-S3 SX1276 v1.0

[env:lilygo-t3-s3-rtl_433-fsk]
platform = espressif32@6.10.0
board = lilygo-t3-s3
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ssd1306}
  ${libraries.rtl_433_ESP}
build_flags =
  ${com-esp32.build_flags}
; *** OpenMQTTGateway Config ***
  ;'-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DvalueAsATopic=true'    ; MQTT topic includes model and device
  '-DGateway_Name="OMG_lilygo_rtl_433_ESP_FSK"'
  '-DOOK_MODULATION=false' ; FSK modulation activated
  '-DRF_FREQUENCY=915'
  ;-DRF_FREQUENCY=868.300'
  ;-DRF_FREQUENCY=433.9'
; *** OpenMQTTGateway Modules ***
  '-DZgatewayRTL_433="rtl_433"'
  '-DZradioSX127x="SX127x"'
; *** ssd1306 Display Options ***
  '-DZdisplaySSD1306="LilyGo_SSD1306"'
  '-DGenericSSD1306=true'
;  '-DLOG_TO_OLED=true'         ; Enable log to OLED
;  '-DJSON_TO_OLED=true'
;  '-DLOG_LEVEL_OLED=LOG_LEVEL_NOTICE'
;  '-DDISPLAY_IDLE_LOGO=false'
;  '-DDISPLAY_BRIGHTNESS=80'
;  '-DDISPLAY_METRIC=false'

  '-DNO_INT_TEMP_READING=true'
  ; '-DLED_PIN=37'
  '-DOLED_SDA=18'               ; SSD1306 pin SDA
  '-DOLED_SCL=17'               ; SSD1306 pin SCL
  '-DRF_SX1276="SX1276"'
  '-DRF_MODULE_SCK=5'
  '-DRF_MODULE_MISO=3'
  '-DRF_MODULE_MOSI=6'
  '-DRF_MODULE_CS=7'
  '-DRF_MODULE_RST=8'
  '-DRF_MODULE_DIO0=9'
  '-DRF_MODULE_DIO1=33'
  '-DRF_MODULE_DIO2=34'
  '-DRF_MODULE_DIO3=21'
  '-DRF_MODULE_DIO4=10'
  '-DRF_MODULE_DIO5=36'
custom_description = For ESP32, Gateway using RTL_433_ESP and RadioLib with FSK modulation (beta)
custom_hardware = ESP32 LILYGO T3-S3 SX1276 v1.0

[env:lilygo-ble]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = ttgo-lora32-v21
; ~/.platformio/packages/framework-arduinoespressif32/variants/.../pins_arduino.h
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ssd1306}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
; *** OpenMQTTGateway Config ***
;'-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DZgatewayBT="BT"'
  '-DGateway_Name="OMG_lilygo_ble"'
; *** ssd1306 Display Options ***
  '-DZdisplaySSD1306="LilyGo_SSD1306"'
;  '-DDISPLAY_IDLE_LOGO=false'
;  '-DDISPLAY_BRIGHTNESS=80'
;  '-DDISPLAY_METRIC=false'
custom_description = LilyGo BLE gateway with adaptive scanning activated, automatically adapts the scan parameters depending on your devices
custom_hardware = ESP32 LILYGO LoRa32 V2.1

[env:esp32dev-multi_receiver]
platform = espressif32@6.1.0
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.rc-switch}
  ${libraries.smartrc-cc1101-driver-lib}
  ${libraries.rtl_433_ESP}
  ${libraries.newremoteswitch}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayRF="RF"'
  '-DZgatewayRF2="RF2"'
  '-DZgatewayRTL_433="RTL_433"'
  '-DZradioCC1101="CC1101"'
  '-DGateway_Name="OMG_multi_receiver"'
  '-DvalueAsATopic=true'  ; MQTT topic includes model and device (rtl_433) or protocol and id (RF and PiLight)
; *** RF Module Options ***
  '-DRF_CC1101="CC1101"'  ; CC1101 Transceiver Module
  '-DRF_MODULE_CS=5'      ; pin to be used as chip select
  '-DRF_MODULE_GDO0=12'   ; CC1101 pin GDO0
  '-DRF_MODULE_GDO2=27'   ; CC1101 pin GDO2
;  '-DRF_MODULE_INIT_STATUS=true'    ; Display transceiver config during startup
custom_description = Multi RF library with the possibility to switch between RTL_433_ESP, NewRemoteSwitch and RCSwitch, need CC1101

[env:esp32dev-multi_receiver-pilight]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
extra_scripts = pre:scripts/add_c_flags.py
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.rc-switch}
  ${libraries.smartrc-cc1101-driver-lib}
  ${libraries.esppilight}
  ${libraries.newremoteswitch}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayRF="RF"'
  '-DZgatewayRF2="RF2"'
  '-DZgatewayPilight="Pilight"'
  '-DZradioCC1101="CC1101"'
  '-DGateway_Name="OMG_multi_receiver"'
  '-DvalueAsATopic=true'  ; MQTT topic includes model and device (rtl_433) or protocol and id (RF and PiLight)
; *** RF Module Options ***
  '-DRF_CC1101="CC1101"'  ; CC1101 Transceiver Module
  '-DRF_MODULE_CS=5'      ; pin to be used as chip select
  '-DRF_MODULE_GDO0=12'   ; CC1101 pin GDO0
  '-DRF_MODULE_GDO2=27'   ; CC1101 pin GDO2
;  '-DRF_MODULE_INIT_STATUS=true'    ; Display transceiver config during startup
custom_description = Multi RF library with the possibility to switch between ESPilight, NewRemoteSwitch and RCSwitch, need CC1101

[env:tinypico-ble]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = tinypico
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DGateway_Name="OMG_ESP32_TINYPICO_BLE"'
board_build.flash_mode = dio
custom_description = BLE gateway
custom_hardware = ESP32 TinyPICO

[env:ttgo-lora32-v1]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = ttgo-lora32-v1
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ssd1306}
  ${libraries.lora}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayLORA="LORA"'
  '-DLORA_BAND=868E6'
  '-DZdisplaySSD1306="LilyGo_SSD1306"'
  '-DSDA_OLED=4'
  '-DSCL_OLED=15'
  '-DRST_OLED=16'
  '-DWIFI_LoRa_32=true'
  '-DGateway_Name="OMG_ESP32_LORA"'
custom_description = LORA communication using arduino-LoRA configurable frequency
custom_hardware= ESP32 TTGO LORA V1

[env:ttgo-lora32-v21]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = ttgo-lora32-v21
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ssd1306}
  ${libraries.lora}
build_flags =
  ${com-esp32.build_flags}
; *** OpenMQTTGateway Config ***
  ;'-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DGateway_Name="OMG_ESP32_LORA"'
; *** OpenMQTTGateway Modules ***
  '-DZgatewayLORA="LORA"'
; *** ssd1306 Display Options ***
  '-DZdisplaySSD1306="LilyGo_SSD1306"'
;  '-DLOG_TO_OLED=true'         ; Enable log to OLED
;  '-DJSON_TO_OLED=true'
;  '-DLOG_LEVEL_OLED=LOG_LEVEL_NOTICE'
;  '-DDISPLAY_IDLE_LOGO=false'
;  '-DDISPLAY_BRIGHTNESS=80'
;  '-DDISPLAY_METRIC=false'
custom_description = For ESP32, Gateway using LORA
custom_hardware = ESP32 LILYGO LoRa32 V2.1

[env:ttgo-t-beam]
# See version pinout differences here
# https://www.thethingsnetwork.org/forum/t/big-esp32-sx127x-topic-part-3/18436
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = ttgo-t-beam
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.lora}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayLORA="LORA"'
  '-DZgatewayBT="BT"'
  '-DGateway_Name="OMG_ESP32_BLE_LORA"'
  '-DLED_PIN=21' # T-BEAM board V0.5
#  '-DLED_PIN=14' # T-BEAM board  V0.7
#  '-DLED_PIN=4' # T-BEAM board  V1.0+
  '-DTimeLedON=0.05'
  '-DLED_PIN_ON=1' # Set 0 for board V1.0+
  # for V0.5 and V0.7 ONLY (V1.0+ as onboard AXP202 dedicated chip, need driver)
  # it's a 100K/100K divider (so 2 divider) and connected to GPIO35
  '-DZsensorADC="ADC"'
  '-DADC_GPIO=35'
  '-DADC_DIVIDER=2'
  # Reading battery level every minutes should be more than enought
  '-DTimeBetweenReadingADC=60000'
custom_description = BLE gateway with battery holder
custom_hardware = TTGO T BEAM

[env:heltec-wifi-lora-32]  ; Heltec ESP32 Board with SSD1306 display
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = heltec_wifi_lora_32
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.lora}
  ${libraries.ssd1306}
build_flags =
  ${com-esp32.build_flags}
; *** OpenMQTTGateway Modules ***
  '-DZgatewayLORA="LORA"'
  '-DLORA_BAND=868E6'
  '-DGateway_Name="OMG_ESP32_LORA"'
  '-DLED_PIN=25'
  '-DTimeLedON=0.1'
  '-DLED_PIN_ON=1'
; *** ssd1306 Display Options ***
  '-DZdisplaySSD1306="HELTEC_SSD1306"'
;  '-DLOG_TO_OLED=true'         ; Enable log to OLED
;  '-DJSON_TO_OLED=true'
;  '-DLOG_LEVEL_OLED=LOG_LEVEL_NOTICE'
;  '-DDISPLAY_IDLE_LOGO=false'
;  '-DDISPLAY_BRIGHTNESS=80'
;  '-DDISPLAY_METRIC=false'
custom_description = LORA communication using arduino-LoRA
custom_hardware = ESP32 HELTEC LORA32

; For testing only, not for production use
[env:shelly-plus1]
platform = ${com.esp32_solo_platform}
board = esp32-solo1
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${env.build_flags}
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DTimeBtwRead=100'
  '-DScan_duration=3000'
  '-DTRIGGER_GPIO=25'
  '-DZactuatorONOFF="ONOFF"'
  '-DACTUATOR_ON=1'
  '-DACTUATOR_OFF=0'
  '-DACTUATOR_TRIGGER=true'
  '-DZsensorGPIOInput="GPIOInput"'
  '-DINPUT_GPIO=4'
  '-DGPIO_INPUT_TYPE=INPUT'
  '-DACTUATOR_ONOFF_GPIO=26'
  '-DZsensorADC="ADC"'
  '-DADC_GPIO=32'
  ;'-DMAX_TEMP_ACTUATOR=70' ; uncomment to activate automatic switch off following ESP32 temperature measurement (experimental)
  '-DUSE_MAC_AS_GATEWAY_NAME'
  '-DFRAMEWORK_ARDUINO_SOLO1'
  '-DGATEWAY_MANUFACTURER="Shelly"'
  '-DGATEWAY_MODEL="SPLUS1"'
custom_description = BLE, Relay control, Switch
custom_hardware = Shelly Plus 1

[env:nodemcuv2-all-test]
platform = ${com.esp8266_platform}
board = nodemcuv2
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ;${libraries.esppilight}
  ${libraries.irremoteesp}
  ${libraries.rfm69}
  ${libraries.rfm69spi}
;  ${libraries.rc-switch}
;  ${libraries.newremoteswitch}
  ${libraries.bme280}
  ${libraries.bmp180}
  ;${libraries.htu21}
  ${libraries.lm75}
  ${libraries.ahtx0}
  ${libraries.unifiedsensor}
  ${libraries.dht}
  ${libraries.tsl2561}
  ;${libraries.ina226}
  ${libraries.esp8266_mdns}
  ${libraries.wire}
  ${libraries.fastled}
  ${libraries.onewire}
  ${libraries.dallastemperature}
  ;${libraries.rfWeatherStation}
build_flags =
  ${com-esp.build_flags}
;  '-DZgatewayRF="RF"'
;  '-DZgatewayRF2="RF2"'
  '-DZgatewayIR="IR"'
;  '-DZgatewayPilight="Pilight"'
  '-DZactuatorONOFF="ONOFF"'
 ; '-DZactuatorFASTLED="FASTLED"'
  ;'-DZactuatorPWM="PWM"'
  ;'-DZsensorINA226="INA226"'
  '-DZsensorHCSR501="HCSR501"'
  '-DZsensorHCSR04="HCSR04"'
  '-DZsensorADC="ADC"'
  '-DZsensorBH1750="BH1750"'
  '-DZsensorBME280="BME280"'
  ;'-DZsensorHTU21="HTU21"'
  '-DZsensorAHTx0="AHTx0"'
  '-DZsensorTEMT6000="TEMT6000"'
  '-DZsensorMQ2="MQ2"'
  '-DZsensorTSL2561="TSL2561"'
  '-DZsensorDHT="DHT"'
  '-DZsensorDS1820="DS1820"'
  '-DZgatewayRFM69="RFM69"'
  '-DZsensorGPIOInput="GPIOInput"'
  '-DZsensorGPIOKeyCode="GPIOKeyCode"'
  ;'-DZgatewayWeatherStation="WeatherStation"'
  '-DsimplePublishing=true'
  '-DGateway_Name="OMG_ESP8266_ALL"'
  '-DDEEP_SLEEP_IN_US=120000000'
  '-DWifiGMode=true'
  '-DWifiPower=11'
board_build.flash_mode = dout

[env:nodemcuv2-fastled-test]
platform = ${com.esp8266_platform}
board = nodemcuv2
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.fastled}
build_flags =
  ${com-esp.build_flags}
  '-DZactuatorFASTLED="FASTLED"'
  '-DsimplePublishing=true'
  '-DGateway_Name="OMG_ESP8266_FASTLED"'
board_build.flash_mode = dout

[env:nodemcuv2-2g]
platform = ${com.esp8266_platform}
board = nodemcuv2
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.a6lib}
build_flags =
  ${com-esp.build_flags}
  '-DZgateway2G="2G"'
  '-DGateway_Name="OMG_ESP8266_2G"'
board_build.flash_mode = dout
custom_description = SMS gateway, need A6/A7 GSM module

[env:nodemcuv2-ir]
platform = ${com.esp8266_platform}
board = nodemcuv2
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.irremoteesp}
  ${libraries.esp8266_mdns}
build_flags =
  ${com-esp.build_flags}
  '-DZgatewayIR="IR"'
  '-DGateway_Name="OMG_ESP8266_IR"'
board_build.flash_mode = dout
custom_description = Infrared gateway using IRremoteESP8266

[env:nodemcuv2-serial]
platform = ${com.esp8266_platform}
board = nodemcuv2
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.esp8266_mdns}
build_flags =
  ${com-esp.build_flags}
  '-DZgatewaySERIAL="SERIAL"'
  '-DGateway_Name="OMG_ESP8266_SERIAL"'
board_build.flash_mode = dout
custom_description = SERIAL gateway

[env:avatto-bakeey-ir]
platform = ${com.esp8266_platform}
board = esp01_1m
board_build.ldscript = eagle.flash.1m64.ld
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.irremoteesp}
  ${libraries.esp8266_mdns}
build_flags =
  ${com-esp.build_flags}
  '-DZgatewayIR="IR"'
  '-DTRIGGER_GPIO=13'
  '-DLED_PIN=4'
  '-DIR_EMITTER_GPIO=14'
  '-DIR_RECEIVER_GPIO=5'
  '-UMQTTsetMQTT' ;We remove this function to have sufficient FLASH available for OTA, you should also use ESPWifiManualSetup and 'board_build.ldscript = eagle.flash.1m64.ld' to save flash memory and have OTA working
  '-UMQTT_HTTPS_FW_UPDATE' ;We remove this function to have sufficient FLASH available for OTA, you should also use ESPWifiManualSetup and 'board_build.ldscript = eagle.flash.1m64.ld' to save flash memory and have OTA working
  '-DGateway_Name="OMG_AVATTO_IR"'
board_build.flash_mode = dout
custom_description = IR gateway bi directional
custom_hardware = Avatto Bakey IR first version, [tutorial](https://1technophile.blogspot.com/2020/07/avatto-s06-ir-gateway-compatible-with.html)

[env:nodemcuv2-rf]
platform = ${com.esp8266_platform}
board = nodemcuv2
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.rc-switch}
  ${libraries.esp8266_mdns}
build_flags =
  ${com-esp.build_flags}
  '-DZgatewayRF="RF"'
  '-DGateway_Name="OMG_ESP8266_RF"'
  '-DvalueAsATopic=true'
board_build.flash_mode = dout
custom_description = The historic RF gateway using RCSwitch library

[env:nodemcuv2-rf-cc1101]
platform = ${com.esp8266_platform}
board = nodemcuv2
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.rc-switch}
  ${libraries.smartrc-cc1101-driver-lib}
  ${libraries.esp8266_mdns}
build_flags =
  ${com-esp.build_flags}
  '-DZgatewayRF="RF"'
  '-DZradioCC1101="CC1101"'
  '-DGateway_Name="OMG_ESP8266_RF-CC1101"'
  '-DvalueAsATopic=true'
board_build.flash_mode = dout
custom_description = RF gateway using RCSwitch library with CC1101

[env:nodemcuv2-somfy-cc1101]
platform = ${com.esp8266_platform}
board = nodemcuv2
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.somfy_remote}
  ${libraries.smartrc-cc1101-driver-lib}
  ${libraries.esp8266_mdns}
build_flags =
  ${com-esp.build_flags}
  '-DZactuatorSomfy="Somfy"'
  '-DZradioCC1101="CC1101"'
  '-DGateway_Name="OMG_ESP8266_Somfy-CC1101"'
board_build.flash_mode = dout
custom_description = Somfy RF gateway using Somfy Remote library, need CC1101

[env:manual-wifi-test]
platform = ${com.esp8266_platform}
board = nodemcuv2
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.rc-switch}
  ${libraries.esp8266_mdns}
build_flags =
  ${com-esp.build_flags}
  '-DZgatewayRF="RF"'
  '-DESPWifiManualSetup=true'
  '-DGateway_Name="OMG_TEST_MANUAL_WIFI"'
board_build.flash_mode = dout

[env:rf-wifi-gateway]
platform = ${com.esp8266_platform}
board = nodemcuv2
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.rc-switch}
  ${libraries.esp8266_mdns}
build_flags =
  ${com-esp.build_flags}
  '-DZgatewayRF="RF"'
  '-DGateway_Name="OMG_ESP8266_RF_WIFI_GW"'
  '-DRF_RECEIVER_GPIO=5'
board_build.flash_mode = dout
custom_description = RF gateway for USB stick using RCSwitch
custom_hardware = RF Wifi USB stick, [tutorial](https://1technophile.blogspot.com/2019/09/hack-of-rf-wifi-gateway-usb-stick.html)

[env:nodemcuv2-rf2]
platform = ${com.esp8266_platform}
board = nodemcuv2
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.newremoteswitch}
  ${libraries.esp8266_mdns}
build_flags =
  ${com-esp.build_flags}
  '-DZgatewayRF2="RF2"'
  '-DGateway_Name="OMG_ESP8266_RF2"'
board_build.flash_mode = dout
custom_description = KAKU RF gateway using NewRemoteSwitch library

[env:nodemcuv2-rf2-cc1101]
platform = ${com.esp8266_platform}
board = nodemcuv2
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.newremoteswitch}
  ${libraries.smartrc-cc1101-driver-lib}
  ${libraries.esp8266_mdns}
build_flags =
  ${com-esp.build_flags}
  '-DZgatewayRF2="RF2"'
  '-DZradioCC1101="CC1101"'
  '-DGateway_Name="OMG_ESP8266_RF2-CC1101"'
board_build.flash_mode = dout
custom_description = KAKU RF gateway using NewRemoteSwitch library, need CC1101

[env:nodemcuv2-pilight]
platform = ${com.esp8266_platform}
board = nodemcuv2
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.esppilight}
  ${libraries.esp8266_mdns}
build_flags =
  ${com-esp.build_flags}
  '-DZgatewayPilight="Pilight"'
  '-DGateway_Name="OMG_ESP8266_Pilight"'
  '-fcommon'
board_build.flash_mode = dout
custom_description = Gateway using ESPilight without the need of CC1101

[env:nodemcuv2-weatherstation]
platform = ${com.esp8266_platform}
board = nodemcuv2
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.rfWeatherStation}
  ${libraries.esp8266_mdns}
build_flags =
  ${com-esp.build_flags}
  '-DZgatewayWeatherStation="WeatherStationDataRx"'
  '-DGateway_Name="OMG_ESP8266_RF3"'
board_build.flash_mode = dout
custom_description = RF gateway using WeatherStationDataRx library

[env:sonoff-basic]
platform = ${com.esp8266_platform}
board = esp8285
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.esp8266_mdns}
build_flags =
  ${com-esp.build_flags}
  '-DZactuatorONOFF="ONOFF"'
  '-DZsensorGPIOInput="GPIOInput"'
  '-DACTUATOR_ONOFF_GPIO=12'
  '-DINPUT_GPIO=0'
  '-DACTUATOR_ON=0'
  '-DACTUATOR_ONOFF_DEFAULT=ACTUATOR_ON'
  '-DACTUATOR_BUTTON_TRIGGER_LEVEL=0'
  '-ACTUATOR_TRIGGER=true'
  '-DGateway_Name="OMG_SONOFF_RELAY"'
board_build.flash_mode = dout
custom_description = Basic Sonoff wifi relay
custom_hardware = Sonoff Basic R1, R2

[env:sonoff-basic-rfr3]
platform = ${com.esp8266_platform}
board = esp8285
lib_deps =
  ${com-esp.lib_deps}
  ${libraries.wifimanager8266}
  ${libraries.rc-switch}
  ${libraries.esp8266_mdns}
build_flags =
  ${com-esp.build_flags}
  '-DZactuatorONOFF="ONOFF"'
  '-DZsensorGPIOInput="GPIOInput"'
  '-DACTUATOR_ONOFF_GPIO=12'
  '-DINPUT_GPIO=0'
  '-DACTUATOR_ON=0'
  '-DACTUATOR_ONOFF_DEFAULT=ACTUATOR_ON'
  '-DACTUATOR_BUTTON_TRIGGER_LEVEL=0'
  '-ACTUATOR_TRIGGER=true'
  '-DRF_RECEIVER_GPIO=4'
  '-DZgatewayRF="RF"'
  '-DGateway_Name="OMG_SONOFF_BASIC_RFR3"'
board_build.flash_mode = dout
custom_description = Wifi relay and RF receiver using RCSwitch library, [tutorial](https://1technophile.blogspot.com/2019/08/new-sonoff-rfr3-as-433tomqtt-gateway.html)
custom_hardware = Sonoff Basic RFR3, [tutorial](https://1technophile.blogspot.com/2019/08/new-sonoff-rfr3-as-433tomqtt-gateway.html)

[env:esp32dev-ble-datatest]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_PIN=2'
  '-DLED_PIN_ON=0'
  '-DTimeBtwRead=0'
  '-DScan_duration=3000'
  '-DAttemptBLEConnect=false'
  '-DpubBLEAdvData=true'
  '-DGateway_Name="OMG_ESP32_BLE"'
custom_description = Default BLE gateway with additional servicedata, manufacturerdata and service uuid for analysing decoding issues

[env:esp32s3-dev-c1-ble]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32-s3-devkitc-1
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.adafruit_neopixel}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_ADDRESSABLE_PIN1=48'
  '-DLED_ADDRESSABLE_NUM=1'
  '-DLED_ADDRESSABLE=true'
  '-DNO_INT_TEMP_READING=true' ; Internal temperature reading not building on ESP32 C3 or S3
  '-DGateway_Name="OMG_ESP32_BLE"'
custom_description = BLE gateway on the S3

[env:esp32s3-m5stack-stamps3]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32-s3-devkitc-1
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.adafruit_neopixel}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_ADDRESSABLE_PIN1=21'
  '-DLED_ADDRESSABLE_NUM=1'
  '-DLED_ADDRESSABLE=true'
  '-DNO_INT_TEMP_READING=true' ; Internal temperature reading not building on ESP32 C3 or S3
  '-DGateway_Name="OMG_ESP32_BLE"'
custom_description = BLE gateway on the M5Stack StampS3

[env:esp32s3-atomS3U]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = m5stack-atoms3
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.adafruit_neopixel}
  ${libraries.irremoteesp}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DZgatewayIR="IR"'
  '-DLED_ADDRESSABLE_PIN1=35'
  '-DLED_ADDRESSABLE_NUM=1'
  '-DLED_ADDRESSABLE=true'
  '-DTRIGGER_GPIO=41'
  '-DIR_EMITTER_GPIO=12'
  '-DNO_INT_TEMP_READING=true' ; Internal temperature reading not building on ESP32 C3 or S3
  '-DGateway_Name="OMG_ATOMS3_BLE"'
board_upload.speed = 921600
custom_description = USB module with BLE gateway, and IR emitter
custom_hardware = AtomS3U ESP32S3

[env:esp32c3-dev-m1-ble]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32-c3-devkitm-1
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.adafruit_neopixel}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_ADDRESSABLE_PIN1=8'
  '-DLED_ADDRESSABLE_NUM=1'
  '-DLED_ADDRESSABLE=true'
  '-DNO_INT_TEMP_READING=true' ; Internal temperature reading not building on ESP32 C3 or S3
  '-DGateway_Name="OMG_ESP32_BLE"'
custom_description = BLE gateway on the C3

[env:airm2m_core_esp32c3]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = airm2m_core_esp32c3
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_INFO=19'
  '-DLED_PIN=20'
  '-DNO_INT_TEMP_READING=true' ; Internal temperature reading not building on ESP32 C3 or S3
  '-DGateway_Name="OMG_AirM2M_Core_ESP32C3"'
custom_description = BLE gateway on the C3
custom_hardware = AirM2M ESP32C3-CORE

; Espressiv ESP32-C3-DevKitC-02
[env:esp32c3-dev-c2-ble]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32-c3-devkitm-1
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.adafruit_neopixel}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_ADDRESSABLE_PIN1=8'
  '-DLED_ADDRESSABLE_NUM=1'
 ; '-DDEFAULT_ADJ_BRIGHTNESS=10'   ; 0 - 255, default 20
  '-DANEOPIX_COLOR_SCHEME=2'   ; blue based signalling colors
  '-DLED_ADDRESSABLE=true'
  '-DNO_INT_TEMP_READING=true' ; No internal temperature reading on ESP32 C3 or S3
  '-DTRIGGER_GPIO=7'
  '-DGateway_Name="OpenMQTTGateway_ESP32C3_DKC02"'
custom_description = BLE gateway on Espressiv ESP32-C3-DevKitC-02

[env:esp32c3-dev-c2-ble-no-serial]
extends = env:esp32c3-dev-c2-ble
build_flags =
  ${env:esp32c3-dev-c2-ble.build_flags}
  '-DLOG_LEVEL=LOG_LEVEL_SILENT'  ; ommit logging for increased stability
  '-DWM_DEBUG=0'
custom_description = BLE gateway on Espressiv ESP32-C3-DevKitC-02 without logging

; Wemos Lolin C3 mini v2.1.0
[env:esp32c3_lolin_mini]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = lolin_c3_mini
board_build.partitions = min_spiffs.csv
monitor_speed = 115200
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.adafruit_neopixel}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_ADDRESSABLE_PIN1=7'
  '-DLED_ADDRESSABLE_NUM=1'
 ; '-DDEFAULT_ADJ_BRIGHTNESS=10'  ; 0 - 255, default 20
  '-DANEOPIX_COLOR_SCHEME=1'  ; Alternative LED colour scheme: 2 = blue/gold. 1 = green/gold
  '-DLED_ADDRESSABLE=true'
; The momentary switch on the board is connected to GPIO9
  '-DTRIGGER_GPIO=9'
  '-DNO_INT_TEMP_READING=true' ; No internal temperature on ESP32 C3 or S3
  '-DGateway_Name="OMG_ESP32C3_BLE"'
; Serial output currently causes a delay on each message, if no serial listener is connected.
; As a default we disable serial output. Use the _with_serial environment if you
; need serial output for debugging purposes.
  '-DLOG_LEVEL=LOG_LEVEL_SILENT'  ; disable serial logging.
  '-DWM_DEBUG=0'  ; disable serial logging.
custom_description = BLE gateway on ESP32C3
custom_hardware = Wemos Lolin C3 mini v2.1.0

[env:esp32c3_lolin_mini_with_serial]
extends = env:esp32c3_lolin_mini
build_flags =
  ${env:esp32c3_lolin_mini.build_flags}
  '-DLOG_LEVEL=LOG_LEVEL_NOTICE' ;default
; Serial output via USB
  '-DCONFIG_ESP_CONSOLE_USB_SERIAL_JTAG=true'
  '-DCONFIG_ESP_CONSOLE_UART=ESP_CONSOLE_USB_SERIAL_JTAG'

[env:esp32c3-m5stamp]
; https://docs.m5stack.com/en/core/stamp_c3
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32-c3-devkitm-1
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.wifimanager32}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.adafruit_neopixel}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DTRIGGER_GPIO=3'
  '-DLED_ADDRESSABLE_PIN1=2'
  '-DLED_ADDRESSABLE_NUM=1'
  '-DLED_ADDRESSABLE=true'
  '-DNO_INT_TEMP_READING=true' ; Internal temperature reading not building on ESP32 C3 or S3
  '-DUSE_MAC_AS_GATEWAY_NAME'
custom_description = BLE gateway on ESP32C3
custom_hardware = M5Stamp C3

[env:esp32c3u-m5stamp]
; https://docs.m5stack.com/en/core/stamp_c3u
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32-c3-devkitm-1
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.wifimanager32}
  ${libraries.ble}
  ${libraries.decoder}
  ${libraries.adafruit_neopixel}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DTRIGGER_GPIO=9'
  '-DLED_ADDRESSABLE_PIN1=2'
  '-DLED_ADDRESSABLE_NUM=1'
  '-DLED_ADDRESSABLE=true'
  '-DNO_INT_TEMP_READING=true' ; Internal temperature reading not building on ESP32 C3 or S3
  '-DUSE_MAC_AS_GATEWAY_NAME'
custom_description = BLE gateway on ESP32C3
custom_hardware = M5Stamp C3U

[env:thingpulse-espgateway]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
board = esp32dev
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ble}
  ${libraries.adafruit_neopixel}
  ${libraries.decoder}
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_PIN=2'
  '-DLED_PIN_ON=0'
  '-DGateway_Name="OMG_THINGPULSE_ETH_BLE"'
  '-DESP32_ETHERNET=true'
  '-DETH_PHY_TYPE=ETH_PHY_LAN8720'
  '-DETH_PHY_ADDR=0'
  '-DETH_PHY_POWER=5'
  '-DETH_PHY_MDC=23'
  '-DETH_PHY_MDIO=18'
  '-DETH_CLK_MODE=ETH_CLOCK_GPIO16_OUT'
  '-DLED_ADDRESSABLE_PIN1=32'
  '-DLED_ADDRESSABLE_NUM=4'
  '-DLED_BROKER=0'
  '-DLED_PROCESSING=1'
  '-DLED_ERROR=2'
  '-DDEFAULT_ADJ_BRIGHTNESS=255'
  '-DLED_ADDRESSABLE=true'
;  '-DsimplePublishing=true'
custom_description = BLE Gateway using ethernet or wifi with external antenna
custom_hardware = ThingPulse gateway single ESP32

[env:esp32dev-ble-idf]
platform = ${com.esp32_platform}
platform_packages = ${com.esp32_platform_packages}
framework = arduino, espidf
board = esp32dev
board_build.partitions = partitions/min_spiffs.csv
board_build.embed_txtfiles =
    managed_components/espressif__esp_insights/server_certs/https_server.crt
    managed_components/espressif__esp_rainmaker/server_certs/rmaker_mqtt_server.crt
    managed_components/espressif__esp_rainmaker/server_certs/rmaker_claim_service_server.crt
    managed_components/espressif__esp_rainmaker/server_certs/rmaker_ota_server.crt
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.decoder}
  h2zero/esp-nimble-cpp@2.1.1
  h2zero/NimBLEOta@0.2.0
build_flags =
  ${com-esp32.build_flags}
  '-DZgatewayBT="BT"'
  '-DLED_PIN=2'
  '-DLED_PIN_ON=0'
  '-DGateway_Name="OMG_ESP32_BLE"'
  '-DUSE_BLUFI=1'
  '-DenableMultiGTWSync=false'
custom_description = Regular BLE gateway based on esp-idf with adaptive scanning activated, automatically adapts the scan parameters depending on your devices
