├── .clang-format ├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── pull_request_template.md ├── stale.yml └── workflows │ ├── build.yml │ ├── build_and_docs_to_dev.yml │ ├── lint.yml │ ├── manual_docs.yml │ ├── release.yml │ └── stale.yml ├── .gitignore ├── .gitmodules ├── .gitpod.yml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── docs ├── .vuepress │ ├── config.js │ ├── public │ │ ├── apple-touch-icon.png │ │ ├── favicon-144x144.png │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── img │ │ │ ├── OpenMQTTGateway-sensors-ble.png │ │ │ ├── OpenMQTTGateway.png │ │ │ ├── Theengs-Bridge-ble-gateway.png │ │ │ └── Theengs-Plug-OpenMQTTGateway.png │ │ └── robots.txt │ └── styles │ │ └── index.styl ├── README.md ├── img │ ├── EMQ.png │ ├── HASS-RF-DeviceTrigger.png │ ├── HASS-RF-MQTTSensor.png │ ├── HASS-RF-Sensor-example.png │ ├── HASS-RF-Trigger-example.png │ ├── Integrate_AWS_IOT_Attach_Policy.png │ ├── Integrate_AWS_IOT_Attach_Policy2.png │ ├── Integrate_AWS_IOT_Attach_Thing.png │ ├── Integrate_AWS_IOT_Attach_Thing2.png │ ├── Integrate_AWS_IOT_Create_Certificate.png │ ├── Integrate_AWS_IOT_Create_Certificate2.png │ ├── Integrate_AWS_IOT_Create_Certificate3.png │ ├── Integrate_AWS_IOT_Create_Policy.png │ ├── Integrate_AWS_IOT_Create_Policy2.png │ ├── Integrate_AWS_IOT_Create_Policy3.png │ ├── Integrate_AWS_IOT_Create_Thing.png │ ├── Integrate_AWS_IOT_Create_Thing2.png │ ├── Integrate_AWS_IOT_Create_Thing3.png │ ├── Integrate_AWS_IOT_Create_Thing4.png │ ├── Integrate_AWS_IOT_Find_Endpoint.png │ ├── Integrate_AWS_IOT_result_MQTT.png │ ├── Integrate_Jeedom_Broker-brkTab.png │ ├── Integrate_Jeedom_Broker-eqTab.png │ ├── Integrate_Jeedom_Eq-Add.png │ ├── Integrate_Jeedom_Eq-Mijia-Cmds.png │ ├── Integrate_Jeedom_Eq-Mijia-Create.png │ ├── Integrate_Jeedom_Eq-Mijia-Dashboard-pimped.png │ ├── Integrate_Jeedom_Eq-Mijia-Dashboard.png │ ├── Integrate_Jeedom_Eq-Mijia-tmp-Cmd-Json.png │ ├── Integrate_Jeedom_Eq-Mijia-tmp-Cmd.png │ ├── Integrate_Jeedom_Eq-OMG-BTtoMQTT-mijia.png │ ├── Integrate_Jeedom_Eq-OMG-BTtoMQTT.png │ ├── Integrate_Jeedom_Eq-OMG-SYStoMQTT-json.png │ ├── Integrate_Jeedom_Eq-OMG-SYStoMQTT-restart.png │ ├── Integrate_Jeedom_Eq-OMG-SYStoMQTT.png │ ├── Integrate_Jeedom_Eq-OMG-cmd-added.png │ ├── Integrate_Jeedom_Eq-OMG-cmds.png │ ├── Integrate_Jeedom_Eq-OMG-config.png │ ├── Integrate_Jeedom_Eq-OMG-lwt-formula.png │ ├── Integrate_Jeedom_Eq-OMG-lwt.png │ ├── Integrate_Jeedom_Install-Activate.png │ ├── Integrate_Jeedom_Install-Daemon-OK.png │ ├── Integrate_Jeedom_Install-Deps-OK.png │ ├── Integrate_Jeedom_Install-Deps.png │ ├── Integrate_Jeedom_Install-Mosquitto.png │ ├── Integrate_Jeedom_Install-jMQTT.png │ ├── KBeacon-app-configuration-moving.jpg │ ├── KBeacon-app-configuration-moving2.jpg │ ├── OMQTTG_8207.JPG │ ├── OMQTTG_8211.JPG │ ├── OMQTTG_8217.JPG │ ├── OpenMQTTGateway-BLE-tracker-Home-Assistant.png │ ├── OpenMQTTGateway-Build-gitpod-env.png │ ├── OpenMQTTGateway-Build-gitpod.png │ ├── OpenMQTTGateway-Configuration-Home-Assistant-Discovery-Integration.png │ ├── OpenMQTTGateway-Configuration-Home-Assistant.png │ ├── OpenMQTTGateway-OTA-Update-Home-Assistant.png │ ├── OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding.png │ ├── OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding2.png │ ├── OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding3.png │ ├── OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding4.png │ ├── OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding5.png │ ├── OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding6.png │ ├── OpenMQTTGateway-OpenHAB-Theengs-mqtt-ip.png │ ├── OpenMQTTGateway-OpenHAB-Theengs-mqtt-jinja.png │ ├── OpenMQTTGateway-OpenHAB-Theengs-mqtt-things.png │ ├── OpenMQTTGateway-OpenHAB-Theengs-mqtt-things2.png │ ├── OpenMQTTGateway-OpenHAB-Theengs-mqtt-things3.png │ ├── OpenMQTTGateway-OpenHAB-Theengs-mqtt-things4.png │ ├── OpenMQTTGateway-OpenHAB-Theengs-mqtt-things5.png │ ├── OpenMQTTGateway-OpenHAB-Theengs-mqtt.png │ ├── OpenMQTTGateway-home-assistant-chart.png │ ├── OpenMQTTGateway-mqtt-explorer-lywsd03mmc-atc.png │ ├── OpenMQTTGateway-sensors-ble.png │ ├── OpenMQTTGateway.jpg │ ├── OpenMQTTGateway_ESP32_breadboard.jpg │ ├── OpenMQTTGateway_Home_Assistant_MQTT_discovery.png │ ├── OpenMQTTGateway_IR_AVATTO_TYWE3S.png │ ├── OpenMQTTGateway_LORA_Configuration.png │ ├── OpenMQTTGateway_Pilight_Digoo-DG-R8S.png │ ├── OpenMQTTGateway_SONOFF_RF_Bridge_FTDI.jpg │ ├── OpenMQTTGateway_SONOFF_RF_Bridge_OTA.png │ ├── OpenMQTTGateway_SONOFF_RF_Bridge_disassembly.jpg │ ├── OpenMQTTGateway_SONOFF_RF_Bridge_green_led.jpg │ ├── OpenMQTTGateway_SONOFF_RF_Bridge_serial_and_broker.png │ ├── OpenMQTTGateway_SONOFF_RF_Bridge_user_config.png │ ├── OpenMQTTGateway_TTGO32_LORA_Receive.jpg │ ├── OpenMQTTGateway_TTGO32_LORA_Send.jpg │ ├── OpenMQTTGateway_Wifi_Manager_enter_parameters.png │ ├── OpenMQTTGateway_Wifi_Manager_menu.png │ ├── OpenMQTTGateway_Wifi_Manager_save.png │ ├── OpenMQTTGateway_arduino_esp32_sketchbook_folder.png │ ├── OpenMQTTGateway_auto_discovery_BLE_Sensor_Home_Assistant.gif │ ├── OpenMQTTGateway_auto_discovery_Gateway_Home_Assistant.gif │ ├── OpenMQTTGateway_board_wifi_rf_gateway.png │ ├── OpenMQTTGateway_boards-removebg-preview.png │ ├── OpenMQTTGateway_boards.png │ ├── OpenMQTTGateway_boards_avatto_s06.png │ ├── OpenMQTTGateway_boards_sonoff-removebg-preview.png │ ├── OpenMQTTGateway_boards_sonoff.png │ ├── OpenMQTTGateway_boards_sonoff_rfbridge.png │ ├── OpenMQTTGateway_boards_sonoff_rfr3.png │ ├── OpenMQTTGateway_breadboard.jpg │ ├── OpenMQTTGateway_controllers.png │ ├── OpenMQTTGateway_devices_ble.png │ ├── OpenMQTTGateway_devices_rf1.png │ ├── OpenMQTTGateway_devices_rf2.png │ ├── OpenMQTTGateway_devices_rf3.png │ ├── OpenMQTTGateway_multiple_install.png │ ├── OpenMQTTGateway_serial1.jpg │ ├── OpenMQTTGateway_serial2.jpg │ ├── OpenMQTTGateway_serial3.jpg │ ├── OpenMQTTGateway_serial_2G_1.jpg │ ├── OpenMQTTGateway_serial_2G_2.jpg │ ├── OpenMQTTgateway_Arduino_Addon_BT.fzz │ ├── OpenMQTTgateway_Arduino_Addon_BT.png │ ├── OpenMQTTgateway_Arduino_Addon_DHT.fzz │ ├── OpenMQTTgateway_Arduino_Addon_DHT.png │ ├── OpenMQTTgateway_Arduino_Addon_IR.fzz │ ├── OpenMQTTgateway_Arduino_Addon_IR.png │ ├── OpenMQTTgateway_Arduino_Addon_RF.fzz │ ├── OpenMQTTgateway_Arduino_Addon_RF.png │ ├── OpenMQTTgateway_Arduino_Addon_RS232.png │ ├── OpenMQTTgateway_Arduino_AllInOne_IR-RF-BT-DHT.fzz │ ├── OpenMQTTgateway_Arduino_AllInOne_IR-RF-BT-DHT.png │ ├── OpenMQTTgateway_ESP32_Addon_IR.fzz │ ├── OpenMQTTgateway_ESP32_Addon_IR.png │ ├── OpenMQTTgateway_ESP32_Addon_RF.fzz │ ├── OpenMQTTgateway_ESP32_Addon_RF.png │ ├── OpenMQTTgateway_ESP32_Addon_RS232.png │ ├── OpenMQTTgateway_ESP32_LORA_MSG.png │ ├── OpenMQTTgateway_ESP32_binary_flash.png │ ├── OpenMQTTgateway_ESP32_binary_flash2.png │ ├── OpenMQTTgateway_ESP8266_Addon_2G.fzz │ ├── OpenMQTTgateway_ESP8266_Addon_2G.png │ ├── OpenMQTTgateway_ESP8266_Addon_DHT.fzz │ ├── OpenMQTTgateway_ESP8266_Addon_DHT.png │ ├── OpenMQTTgateway_ESP8266_Addon_I2C.fzz │ ├── OpenMQTTgateway_ESP8266_Addon_I2C.png │ ├── OpenMQTTgateway_ESP8266_Addon_IR.fzz │ ├── OpenMQTTgateway_ESP8266_Addon_IR.png │ ├── OpenMQTTgateway_ESP8266_Addon_RF.fzz │ ├── OpenMQTTgateway_ESP8266_Addon_RF.png │ ├── OpenMQTTgateway_ESP8266_Addon_RFM69.fzz │ ├── OpenMQTTgateway_ESP8266_Addon_RFM69.png │ ├── OpenMQTTgateway_ESP8266_Addon_RS232.png │ ├── OpenMQTTgateway_ESP8285_Addon_IR.fzz │ ├── OpenMQTTgateway_ESP8285_Addon_IR.png │ ├── OpenMQTTgateway_M5_Atom_Board.png │ ├── OpenMQTTgateway_M5_Stack_Board_Display_Logo.png │ ├── OpenMQTTgateway_M5_Stack_Board_Display_Text.png │ ├── OpenMQTTgateway_M5_Stack_Board_Display_Warning.png │ ├── OpenMQTTgateway_M5_StickC_Board_Display_Text.png │ ├── OpenMQTTgateway_NODERED-chart-dashboard.png │ ├── OpenMQTTgateway_NODERED-chart.png │ ├── OpenMQTTgateway_NODERED-flow-BLE-temperature.png │ ├── OpenMQTTgateway_NODERED-gauge-dashboard.png │ ├── OpenMQTTgateway_NODERED-gauge.png │ ├── OpenMQTTgateway_NODERED-integration-debug.png │ ├── OpenMQTTgateway_NODERED-integration-debug2.png │ ├── OpenMQTTgateway_NODERED-integration-debug3.png │ ├── OpenMQTTgateway_NODERED-integration-process.png │ ├── OpenMQTTgateway_NODERED-integration.png │ ├── OpenMQTTgateway_NodeMCU_PyFlasher.png │ ├── OpenMQTTgateway_OpenHAB_Control.png │ ├── OpenMQTTgateway_SONOFF_RFBRIDGE_Upload_Parameters.png │ ├── OpenMQTTgateway_SONOFF_RFBRIDGE_results.png │ ├── OpenMQTTgateway_miflora_results.png │ ├── Openmqttgateway_logo.png │ ├── Openmqttgateway_logo_micro.png │ ├── Openmqttgateway_logo_mini.png │ ├── Openmqttgateway_logo_mini_512.png │ ├── Openmqttgateway_logo_mini_margins.png │ ├── Theengs-Bridge-ble-gateway.png │ ├── Theengs-Plug-OpenMQTTGateway.png │ ├── Wiki_module_BT.png │ ├── Wiki_module_DHT.png │ ├── Wiki_module_I2C.png │ ├── Wiki_module_IR.png │ ├── Wiki_module_RF.png │ ├── Wiki_module_RFM69.png │ ├── arduino-esp32-sketchbook.png │ ├── digoo-pir-DG-HOSA.png │ ├── domoticz-logo.jpg │ ├── fhem_logo.png │ ├── home-assistant-logo.png │ ├── jeedom-logo.png │ ├── node-red-logo.png │ └── openhab-logo.png ├── integrate │ ├── aws_iot.md │ ├── home_assistant.md │ ├── jeedom.md │ ├── node_red.md │ ├── openhab2.md │ └── openhab3.md ├── participate │ ├── adding-protocols.md │ ├── community.md │ ├── development.md │ └── support.md ├── prerequisites │ ├── M5.md │ ├── board.md │ ├── boards │ │ └── .gitignore │ ├── broker.md │ ├── controller.md │ ├── devices.md │ └── parts.md ├── setitup │ ├── actuators.md │ ├── ble.md │ ├── gsm.md │ ├── ir.md │ ├── lora.md │ ├── rf.md │ ├── sensors.md │ └── serial.md ├── upload │ ├── advanced-configuration.md │ ├── binaries.md │ ├── builds.md │ ├── gitpod.md │ ├── portal.md │ ├── troubleshoot.md │ └── web-install.md └── use │ ├── actuators.md │ ├── ble.md │ ├── boards.md │ ├── displays.md │ ├── gateway.md │ ├── gsm.md │ ├── ir.md │ ├── lora.md │ ├── ota_command_cert.zip │ ├── rf.md │ ├── rfm69.md │ ├── sensors.md │ ├── serial.md │ └── webui.md ├── environments.ini ├── examples ├── LoraTemperature │ ├── .gitignore │ ├── README.md │ ├── platformio.ini │ └── src │ │ └── main.cpp └── LoraWaterCounter │ ├── OpenGatewaySensorCounter.ino │ ├── README.md │ ├── platformio.ini │ └── src │ └── main.cpp ├── lib ├── LEDManager │ ├── LEDManager.cpp │ ├── LEDManager.h │ └── README.md ├── TheengsUtils │ ├── TheengsUtils.cpp │ └── TheengsUtils.h └── esp32-bt-lib │ ├── LICENSE │ ├── README │ ├── README.rst │ └── esp32 │ └── libbtdm_app.a ├── main ├── TheengsCommon.h ├── User_config.h ├── actuatorFASTLED.cpp ├── actuatorONOFF.cpp ├── actuatorPWM.cpp ├── actuatorSomfy.cpp ├── blufi.cpp ├── blufiSec.cpp ├── boardM5.cpp ├── boardTheengs.cpp ├── certs │ ├── default_client_cert.h │ ├── default_client_key.h │ ├── default_ota_cert.h │ └── default_server_cert.h ├── commonRF.cpp ├── config_2G.h ├── config_ADC.h ├── config_AHTx0.h ├── config_BH1750.h ├── config_BME280.h ├── config_BT.h ├── config_C37_YL83_HMRD.h ├── config_DHT.h ├── config_DS1820.h ├── config_FASTLED.h ├── config_GFSunInverter.h ├── config_GPIOInput.h ├── config_GPIOKeyCode.h ├── config_HCSR04.h ├── config_HCSR501.h ├── config_HTU21.h ├── config_INA226.h ├── config_IR.h ├── config_LM75.h ├── config_LORA.h ├── config_M5.h ├── config_MQ2.h ├── config_ONOFF.h ├── config_PWM.h ├── config_RF.h ├── config_RFM69.h ├── config_RN8209.h ├── config_SERIAL.h ├── config_SHTC3.h ├── config_SRFB.h ├── config_SSD1306.h ├── config_Somfy.h ├── config_TEMT6000.h ├── config_TSL2561.h ├── config_Touch.h ├── config_WeatherStation.h ├── config_WebContent.h ├── config_WebUI.h ├── config_mqttDiscovery.h ├── displaySSD1306.cpp ├── gateway2G.cpp ├── gatewayBLEConnect.cpp ├── gatewayBLEConnect.h ├── gatewayBT.cpp ├── gatewayGFSunInverter.cpp ├── gatewayIR.cpp ├── gatewayLORA.cpp ├── gatewayPilight.cpp ├── gatewayRF.cpp ├── gatewayRF2.cpp ├── gatewayRFM69.cpp ├── gatewayRTL_433.cpp ├── gatewaySERIAL.cpp ├── gatewaySRFB.cpp ├── gatewayWeatherStation.cpp ├── main.cpp ├── mqttDiscovery.cpp ├── sensorADC.cpp ├── sensorAHTx0.cpp ├── sensorBH1750.cpp ├── sensorBME280.cpp ├── sensorC37_YL83_HMRD.cpp ├── sensorDHT.cpp ├── sensorDS1820.cpp ├── sensorGPIOInput.cpp ├── sensorGPIOKeyCode.cpp ├── sensorHCSR04.cpp ├── sensorHCSR501.cpp ├── sensorHTU21.cpp ├── sensorINA226.cpp ├── sensorLM75.cpp ├── sensorMQ2.cpp ├── sensorRN8209.cpp ├── sensorSHTC3.cpp ├── sensorTEMT6000.cpp ├── sensorTSL2561.cpp ├── sensorTouch.cpp └── webUI.cpp ├── package-lock.json ├── package.json ├── partitions ├── alltest_large.csv ├── default.csv ├── default_16MB.csv ├── default_8MB.csv ├── min_spiffs.csv └── no_coredump.csv ├── platformio.ini ├── prod_env.ini.example ├── scripts ├── common_wu.py ├── compressFirmware.py ├── gen_wu.py ├── generate_board_docs.py ├── latest_version.json ├── latest_version_dev.json ├── prepare_deploy.sh └── replace_lib.py └── sdkconfig.defaults /.clang-format: -------------------------------------------------------------------------------- 1 | BasedOnStyle: Google 2 | Language: Cpp 3 | ColumnLimit: 0 4 | IndentWidth: 2 5 | TabWidth: 2 6 | UseTab: Never 7 | IndentPPDirectives: AfterHash 8 | ReflowComments: false 9 | SpacesBeforeTrailingComments: 1 10 | AlignConsecutiveMacros: true 11 | AlignTrailingComments: false 12 | AccessModifierOffset: -2 13 | DerivePointerAlignment: false 14 | PointerAlignment: Left 15 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | charset = utf-8 7 | trim_trailing_whitespace = false 8 | insert_final_newline = true 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | 5 | --- 6 | 7 | Before submitting a problem please check the troubleshooting section 8 | https://docs.openmqttgateway.com/upload/troubleshoot.html 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Publish to '...' 16 | 2. Subscribe on '....' 17 | 3. See error 18 | 19 | **Expected behavior** 20 | A clear and concise description of what you expected to happen. 21 | 22 | **Screenshots** 23 | If applicable, add screenshots to help explain your problem. 24 | 25 | **Environment (please complete the following information):** 26 | * OpenMQTTGateway version used (V0.9.3, 0.8, development) 27 | * Library version related to the problem you have (if you have troubles with RF provide the version of RCSwitch library) 28 | * For IR and RF clarify if you tested with the basic examples given with these libraries 29 | 30 | **Additional context** 31 | Add any other context about the problem here. 32 | 33 | * You should not have a compilation error if you use the versions of the libraries linked into the libraries folder, this badges show you the state of the compilation 34 | [![Build Status](https://github.com/1technophile/OpenMQTTGateway/workflows/Build/badge.svg?branch=master)](https://github.com/1technophile/OpenMQTTGateway/actions) 35 | * If you are not sure this is a bug or an enhancement post your question to the forum below 36 | [![Community forum](https://img.shields.io/badge/community-forum-brightgreen.svg)](https://community.openmqttgateway.com) 37 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | **Is your feature request related to a problem? Please describe.** 8 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 9 | 10 | **Describe the solution you'd like** 11 | A clear and concise description of what you want to happen. 12 | 13 | **Describe alternatives you've considered** 14 | A clear and concise description of any alternative solutions or features you've considered. 15 | 16 | **Additional context** 17 | Add any other context or screenshots about the feature request here. 18 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | ## Description: 2 | 3 | 4 | ## Checklist: 5 | - [ ] The pull request is done against the latest development branch 6 | - [ ] Only one feature/fix was added per PR and the code change compiles without warnings 7 | - [ ] I accept the [DCO](https://github.com/1technophile/OpenMQTTGateway/blob/development/docs/participate/development.md#developer-certificate-of-origin). 8 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 60 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 7 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - pinned 8 | - security 9 | - enhancement 10 | - bug 11 | # Label to use when marking an issue as stale 12 | staleLabel: wontfix 13 | # Comment to post when marking an issue as stale. Set to `false` to disable 14 | markComment: > 15 | This issue has been automatically marked as stale because it has not had 16 | recent activity. It will be closed if no further activity occurs. Thank you 17 | for your contributions. 18 | # Comment to post when closing a stale issue. Set to `false` to disable 19 | closeComment: false 20 | -------------------------------------------------------------------------------- /.github/workflows/build_and_docs_to_dev.yml: -------------------------------------------------------------------------------- 1 | name: Build binaries, docs and publish to dev folder 2 | on: 3 | workflow_dispatch: 4 | schedule: 5 | - cron: '0 0 * * *' 6 | jobs: 7 | build-upload: 8 | runs-on: ubuntu-latest 9 | if: github.repository_owner == '1technophile' 10 | name: Build and upload Assets to Release 11 | steps: 12 | - uses: actions/checkout@v4 13 | - uses: benjlevesque/short-sha@v2.1 14 | id: short-sha 15 | with: 16 | length: 6 17 | - name: Set up Python 18 | uses: actions/setup-python@v5 19 | with: 20 | python-version: "3.11" 21 | - name: Install dependencies 22 | run: | 23 | python -m pip install --upgrade pip 24 | pip install platformio requests shutils 25 | npm install 26 | - name: Set sha tag 27 | run: | 28 | sed -i "s/version_tag/${{ steps.short-sha.outputs.sha }}/g" main/User_config.h scripts/latest_version_dev.json 29 | sed -i "s/version_tag/DEVELOPMENT SHA:${{ steps.short-sha.outputs.sha }} TEST ONLY/g" docs/.vuepress/config.js 30 | sed -i "s|base: '/'|base: '/dev/'|g" docs/.vuepress/config.js 31 | - name: Extract ESP32 platform version from platformio.ini 32 | run: | 33 | ESP32_VERSION=$(grep 'esp32_platform\s*=' platformio.ini | cut -d'@' -f2 | tr -d '[:space:]') 34 | echo "ESP32_PLATFORM_VERSION=${ESP32_VERSION}" >> $GITHUB_ENV 35 | - name: Run PlatformIO 36 | run: | 37 | export PLATFORMIO_BUILD_FLAGS="'-DDEVELOPMENTOTA=true'" 38 | platformio run 39 | - name: Prepare Release Assets 40 | run: | 41 | sudo apt install rename 42 | ./scripts/prepare_deploy.sh 43 | - name: Set up Node.js 44 | uses: actions/setup-node@v4 45 | with: 46 | node-version: "16.x" 47 | - name: Download Common Config 48 | run: | 49 | curl -o docs/.vuepress/public/commonConfig.js https://www.theengs.io/commonConfig.js 50 | - name: Build documentation 51 | run: | 52 | python ./scripts/gen_wu.py --dev 53 | npm run docs:build 54 | - name: Deploy to GitHub Pages 55 | uses: peaceiris/actions-gh-pages@v3 56 | with: 57 | github_token: ${{ secrets.GITHUB_TOKEN }} 58 | publish_dir: ./docs/.vuepress/dist 59 | destination_dir: dev 60 | cname: docs.openmqttgateway.com 61 | - name: Running Page Speed Insights 62 | uses: jakepartusch/psi-action@v1.3 63 | id: psi 64 | with: 65 | url: "https://docs.openmqttgateway.com/dev/" 66 | threshold: 60 67 | key: ${{ secrets.APIKEY }} 68 | -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- 1 | name: Check Code Format 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | lint: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - uses: actions/checkout@v4 11 | - name: Check main format 12 | uses: DoozyX/clang-format-lint-action@v0.6 13 | with: 14 | source: "./main" 15 | extensions: "h,ino" 16 | clangFormatVersion: 9 17 | -------------------------------------------------------------------------------- /.github/workflows/manual_docs.yml: -------------------------------------------------------------------------------- 1 | name: Create and publish documentation 2 | on: 3 | workflow_dispatch: 4 | workflow_call: 5 | jobs: 6 | documentation: 7 | runs-on: ubuntu-latest 8 | name: Create the documentation and deploy it to GitHub Pages 9 | steps: 10 | - uses: actions/checkout@v4 11 | - name: Set up Node.js 12 | uses: actions/setup-node@v4 13 | with: 14 | node-version: "14.x" 15 | - name: Set up Python 16 | uses: actions/setup-python@v5 17 | with: 18 | python-version: "3.11" 19 | - name: Install build dependencies 20 | run: | 21 | python -m pip install --upgrade pip 22 | pip install requests pandas markdown pytablereader tabulate 23 | npm install 24 | - name: Download Common Config 25 | run: | 26 | curl -o docs/.vuepress/public/commonConfig.js https://www.theengs.io/commonConfig.js 27 | - name: get lastest release tag 28 | id: last_release 29 | uses: InsonusK/get-latest-release@v1.0.1 30 | with: 31 | myToken: ${{ github.token }} 32 | view_top: 1 33 | - name: Set version tag from git 34 | run: sed -i "s/version_tag/${{steps.last_release.outputs.tag_name}}/g" docs/.vuepress/config.js scripts/latest_version.json 35 | - name: Build documentation 36 | run: | 37 | python ./scripts/generate_board_docs.py 38 | python ./scripts/gen_wu.py ${GITHUB_REPOSITORY} 39 | npm run docs:build 40 | - name: Deploy to GitHub Pages 41 | uses: peaceiris/actions-gh-pages@v3 42 | with: 43 | github_token: ${{ secrets.GITHUB_TOKEN }} 44 | publish_dir: ./docs/.vuepress/dist 45 | cname: docs.openmqttgateway.com -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | release: 5 | types: [published] 6 | 7 | jobs: 8 | build-upload: 9 | runs-on: ubuntu-latest 10 | name: Build and upload Assets to Release 11 | steps: 12 | - uses: actions/checkout@v4 13 | - name: Set up Python 14 | uses: actions/setup-python@v5 15 | with: 16 | python-version: "3.11" 17 | - name: Install platformio 18 | run: | 19 | python -m pip install --upgrade pip 20 | pip install platformio 21 | - name: Set version tag from git 22 | run: sed -i "s/version_tag/${GITHUB_REF#refs/tags/}/g" main/User_config.h scripts/latest_version.json 23 | - name: Extract ESP32 platform version from platformio.ini 24 | run: | 25 | ESP32_VERSION=$(grep 'esp32_platform\s*=' platformio.ini | cut -d'@' -f2 | tr -d '[:space:]') 26 | echo "ESP32_PLATFORM_VERSION=${ESP32_VERSION}" >> $GITHUB_ENV 27 | - name: Run PlatformIO 28 | run: platformio run 29 | - name: Prepare Release Assets 30 | run: | 31 | sudo apt install rename 32 | ./scripts/prepare_deploy.sh 33 | - name: Get upload url 34 | id: release-id 35 | run: | 36 | RELEASE_ID=$(jq --raw-output '.release.id' $GITHUB_EVENT_PATH) 37 | echo "::set-output name=upload_url::https://uploads.github.com/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets{?name,label}" 38 | - name: Upload Release Assets 39 | uses: bgpat/release-asset-action@03b0c30db1c4031ce3474740b0e4275cd7e126a3 40 | with: 41 | pattern: "toDeploy/*" 42 | github-token: ${{ secrets.GITHUB_TOKEN }} 43 | release-url: ${{ steps.release-id.outputs.upload_url }} 44 | allow-overwrite: true 45 | call-workflow-passing-data: 46 | needs: build-upload 47 | uses: ./.github/workflows/manual_docs.yml 48 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: Close inactive issues or PR 2 | on: 3 | schedule: 4 | - cron: "30 0 * * *" 5 | 6 | jobs: 7 | close-issues: 8 | runs-on: ubuntu-latest 9 | permissions: 10 | issues: write 11 | pull-requests: write 12 | steps: 13 | - uses: actions/stale@v4.1.1 14 | with: 15 | days-before-issue-stale: 90 16 | days-before-issue-close: 14 17 | stale-issue-label: "stale" 18 | stale-issue-message: "This issue is stale because it has been open for 90 days with no activity." 19 | close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale." 20 | days-before-pr-stale: 90 21 | days-before-pr-close: 14 22 | repo-token: ${{ secrets.GITHUB_TOKEN }} 23 | exempt-issue-labels: "enhancement" 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode 3 | *_env.ini 4 | *.pem 5 | **/.DS_Store 6 | node_modules 7 | *.ps1 8 | main/certs/private* 9 | lib/* 10 | !lib/esp32-bt-lib 11 | !lib/TheengsUtils 12 | !lib/LEDManager 13 | CMakeLists.txt 14 | dependencies.lock 15 | sdkconfig.* 16 | !sdkconfig.defaults 17 | __pycache__ 18 | *.pem 19 | managed_components 20 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/.gitmodules -------------------------------------------------------------------------------- /.gitpod.yml: -------------------------------------------------------------------------------- 1 | tasks: 2 | - command: pip3 install -U platformio && platformio run -e esp32dev-ble 3 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. 6 | 7 | ## Our Standards 8 | 9 | Examples of behavior that contributes to creating a positive environment include: 10 | 11 | * Using welcoming and inclusive language 12 | * Being respectful of differing viewpoints and experiences 13 | * Gracefully accepting constructive criticism 14 | * Focusing on what is best for the community 15 | * Showing empathy towards other community members 16 | 17 | Examples of unacceptable behavior by participants include: 18 | 19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances 20 | * Trolling, insulting/derogatory comments, and personal or political attacks 21 | * Public or private harassment 22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 23 | * Other conduct which could reasonably be considered inappropriate in a professional setting 24 | 25 | ## Our Responsibilities 26 | 27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. 28 | 29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. 30 | 31 | ## Scope 32 | 33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. 34 | 35 | ## Enforcement 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at untechnophile@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. 38 | 39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. 40 | 41 | ## Attribution 42 | 43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] 44 | 45 | [homepage]: http://contributor-covenant.org 46 | [version]: http://contributor-covenant.org/version/1/4/ 47 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Contributing guidelines can be found into the docs below: 2 | ## Development: 3 | https://docs.openmqttgateway.com/participate/development.html 4 | 5 | ## Community: 6 | https://docs.openmqttgateway.com/participate/community.html 7 | -------------------------------------------------------------------------------- /docs/.vuepress/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/.vuepress/public/apple-touch-icon.png -------------------------------------------------------------------------------- /docs/.vuepress/public/favicon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/.vuepress/public/favicon-144x144.png -------------------------------------------------------------------------------- /docs/.vuepress/public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/.vuepress/public/favicon-16x16.png -------------------------------------------------------------------------------- /docs/.vuepress/public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/.vuepress/public/favicon-32x32.png -------------------------------------------------------------------------------- /docs/.vuepress/public/img/OpenMQTTGateway-sensors-ble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/.vuepress/public/img/OpenMQTTGateway-sensors-ble.png -------------------------------------------------------------------------------- /docs/.vuepress/public/img/OpenMQTTGateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/.vuepress/public/img/OpenMQTTGateway.png -------------------------------------------------------------------------------- /docs/.vuepress/public/img/Theengs-Bridge-ble-gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/.vuepress/public/img/Theengs-Bridge-ble-gateway.png -------------------------------------------------------------------------------- /docs/.vuepress/public/img/Theengs-Plug-OpenMQTTGateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/.vuepress/public/img/Theengs-Plug-OpenMQTTGateway.png -------------------------------------------------------------------------------- /docs/.vuepress/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | 3 | Allow: / 4 | -------------------------------------------------------------------------------- /docs/.vuepress/styles/index.styl: -------------------------------------------------------------------------------- 1 | div.table-generated-page 2 | main 3 | div.content__default, 4 | footer.page-edit, 5 | div.page-nav 6 | // Display full with the API pages 7 | max-width: 65% 8 | 9 | .sidebar 10 | z-index 6 11 | 12 | .navbar 13 | z-index 6 -------------------------------------------------------------------------------- /docs/img/EMQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/EMQ.png -------------------------------------------------------------------------------- /docs/img/HASS-RF-DeviceTrigger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/HASS-RF-DeviceTrigger.png -------------------------------------------------------------------------------- /docs/img/HASS-RF-MQTTSensor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/HASS-RF-MQTTSensor.png -------------------------------------------------------------------------------- /docs/img/HASS-RF-Sensor-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/HASS-RF-Sensor-example.png -------------------------------------------------------------------------------- /docs/img/HASS-RF-Trigger-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/HASS-RF-Trigger-example.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_Attach_Policy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_Attach_Policy.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_Attach_Policy2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_Attach_Policy2.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_Attach_Thing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_Attach_Thing.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_Attach_Thing2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_Attach_Thing2.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_Create_Certificate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_Create_Certificate.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_Create_Certificate2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_Create_Certificate2.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_Create_Certificate3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_Create_Certificate3.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_Create_Policy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_Create_Policy.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_Create_Policy2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_Create_Policy2.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_Create_Policy3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_Create_Policy3.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_Create_Thing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_Create_Thing.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_Create_Thing2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_Create_Thing2.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_Create_Thing3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_Create_Thing3.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_Create_Thing4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_Create_Thing4.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_Find_Endpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_Find_Endpoint.png -------------------------------------------------------------------------------- /docs/img/Integrate_AWS_IOT_result_MQTT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_AWS_IOT_result_MQTT.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Broker-brkTab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Broker-brkTab.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Broker-eqTab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Broker-eqTab.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-Add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-Add.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-Mijia-Cmds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-Mijia-Cmds.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-Mijia-Create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-Mijia-Create.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-Mijia-Dashboard-pimped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-Mijia-Dashboard-pimped.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-Mijia-Dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-Mijia-Dashboard.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-Mijia-tmp-Cmd-Json.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-Mijia-tmp-Cmd-Json.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-Mijia-tmp-Cmd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-Mijia-tmp-Cmd.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-OMG-BTtoMQTT-mijia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-OMG-BTtoMQTT-mijia.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-OMG-BTtoMQTT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-OMG-BTtoMQTT.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-OMG-SYStoMQTT-json.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-OMG-SYStoMQTT-json.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-OMG-SYStoMQTT-restart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-OMG-SYStoMQTT-restart.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-OMG-SYStoMQTT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-OMG-SYStoMQTT.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-OMG-cmd-added.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-OMG-cmd-added.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-OMG-cmds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-OMG-cmds.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-OMG-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-OMG-config.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-OMG-lwt-formula.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-OMG-lwt-formula.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Eq-OMG-lwt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Eq-OMG-lwt.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Install-Activate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Install-Activate.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Install-Daemon-OK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Install-Daemon-OK.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Install-Deps-OK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Install-Deps-OK.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Install-Deps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Install-Deps.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Install-Mosquitto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Install-Mosquitto.png -------------------------------------------------------------------------------- /docs/img/Integrate_Jeedom_Install-jMQTT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Integrate_Jeedom_Install-jMQTT.png -------------------------------------------------------------------------------- /docs/img/KBeacon-app-configuration-moving.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/KBeacon-app-configuration-moving.jpg -------------------------------------------------------------------------------- /docs/img/KBeacon-app-configuration-moving2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/KBeacon-app-configuration-moving2.jpg -------------------------------------------------------------------------------- /docs/img/OMQTTG_8207.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OMQTTG_8207.JPG -------------------------------------------------------------------------------- /docs/img/OMQTTG_8211.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OMQTTG_8211.JPG -------------------------------------------------------------------------------- /docs/img/OMQTTG_8217.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OMQTTG_8217.JPG -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-BLE-tracker-Home-Assistant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-BLE-tracker-Home-Assistant.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-Build-gitpod-env.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-Build-gitpod-env.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-Build-gitpod.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-Build-gitpod.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-Configuration-Home-Assistant-Discovery-Integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-Configuration-Home-Assistant-Discovery-Integration.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-Configuration-Home-Assistant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-Configuration-Home-Assistant.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-OTA-Update-Home-Assistant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-OTA-Update-Home-Assistant.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding2.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding3.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding4.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding5.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-binding6.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-ip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-ip.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-jinja.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-jinja.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-things.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-things.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-things2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-things2.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-things3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-things3.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-things4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-things4.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-things5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt-things5.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-OpenHAB-Theengs-mqtt.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-home-assistant-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-home-assistant-chart.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-mqtt-explorer-lywsd03mmc-atc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-mqtt-explorer-lywsd03mmc-atc.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway-sensors-ble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway-sensors-ble.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway.jpg -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_ESP32_breadboard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_ESP32_breadboard.jpg -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_Home_Assistant_MQTT_discovery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_Home_Assistant_MQTT_discovery.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_IR_AVATTO_TYWE3S.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_IR_AVATTO_TYWE3S.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_LORA_Configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_LORA_Configuration.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_Pilight_Digoo-DG-R8S.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_Pilight_Digoo-DG-R8S.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_SONOFF_RF_Bridge_FTDI.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_SONOFF_RF_Bridge_FTDI.jpg -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_SONOFF_RF_Bridge_OTA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_SONOFF_RF_Bridge_OTA.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_SONOFF_RF_Bridge_disassembly.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_SONOFF_RF_Bridge_disassembly.jpg -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_SONOFF_RF_Bridge_green_led.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_SONOFF_RF_Bridge_green_led.jpg -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_SONOFF_RF_Bridge_serial_and_broker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_SONOFF_RF_Bridge_serial_and_broker.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_SONOFF_RF_Bridge_user_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_SONOFF_RF_Bridge_user_config.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_TTGO32_LORA_Receive.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_TTGO32_LORA_Receive.jpg -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_TTGO32_LORA_Send.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_TTGO32_LORA_Send.jpg -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_Wifi_Manager_enter_parameters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_Wifi_Manager_enter_parameters.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_Wifi_Manager_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_Wifi_Manager_menu.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_Wifi_Manager_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_Wifi_Manager_save.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_arduino_esp32_sketchbook_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_arduino_esp32_sketchbook_folder.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_auto_discovery_BLE_Sensor_Home_Assistant.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_auto_discovery_BLE_Sensor_Home_Assistant.gif -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_auto_discovery_Gateway_Home_Assistant.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_auto_discovery_Gateway_Home_Assistant.gif -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_board_wifi_rf_gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_board_wifi_rf_gateway.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_boards-removebg-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_boards-removebg-preview.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_boards.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_boards.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_boards_avatto_s06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_boards_avatto_s06.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_boards_sonoff-removebg-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_boards_sonoff-removebg-preview.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_boards_sonoff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_boards_sonoff.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_boards_sonoff_rfbridge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_boards_sonoff_rfbridge.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_boards_sonoff_rfr3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_boards_sonoff_rfr3.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_breadboard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_breadboard.jpg -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_controllers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_controllers.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_devices_ble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_devices_ble.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_devices_rf1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_devices_rf1.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_devices_rf2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_devices_rf2.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_devices_rf3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_devices_rf3.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_multiple_install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_multiple_install.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_serial1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_serial1.jpg -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_serial2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_serial2.jpg -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_serial3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_serial3.jpg -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_serial_2G_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_serial_2G_1.jpg -------------------------------------------------------------------------------- /docs/img/OpenMQTTGateway_serial_2G_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTGateway_serial_2G_2.jpg -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_Arduino_Addon_BT.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_Arduino_Addon_BT.fzz -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_Arduino_Addon_BT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_Arduino_Addon_BT.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_Arduino_Addon_DHT.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_Arduino_Addon_DHT.fzz -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_Arduino_Addon_DHT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_Arduino_Addon_DHT.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_Arduino_Addon_IR.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_Arduino_Addon_IR.fzz -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_Arduino_Addon_IR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_Arduino_Addon_IR.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_Arduino_Addon_RF.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_Arduino_Addon_RF.fzz -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_Arduino_Addon_RF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_Arduino_Addon_RF.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_Arduino_Addon_RS232.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_Arduino_Addon_RS232.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_Arduino_AllInOne_IR-RF-BT-DHT.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_Arduino_AllInOne_IR-RF-BT-DHT.fzz -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_Arduino_AllInOne_IR-RF-BT-DHT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_Arduino_AllInOne_IR-RF-BT-DHT.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP32_Addon_IR.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP32_Addon_IR.fzz -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP32_Addon_IR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP32_Addon_IR.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP32_Addon_RF.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP32_Addon_RF.fzz -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP32_Addon_RF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP32_Addon_RF.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP32_Addon_RS232.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP32_Addon_RS232.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP32_LORA_MSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP32_LORA_MSG.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP32_binary_flash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP32_binary_flash.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP32_binary_flash2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP32_binary_flash2.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP8266_Addon_2G.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP8266_Addon_2G.fzz -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP8266_Addon_2G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP8266_Addon_2G.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP8266_Addon_DHT.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP8266_Addon_DHT.fzz -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP8266_Addon_DHT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP8266_Addon_DHT.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP8266_Addon_I2C.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP8266_Addon_I2C.fzz -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP8266_Addon_I2C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP8266_Addon_I2C.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP8266_Addon_IR.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP8266_Addon_IR.fzz -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP8266_Addon_IR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP8266_Addon_IR.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP8266_Addon_RF.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP8266_Addon_RF.fzz -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP8266_Addon_RF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP8266_Addon_RF.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP8266_Addon_RFM69.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP8266_Addon_RFM69.fzz -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP8266_Addon_RFM69.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP8266_Addon_RFM69.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP8266_Addon_RS232.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP8266_Addon_RS232.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP8285_Addon_IR.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP8285_Addon_IR.fzz -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_ESP8285_Addon_IR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_ESP8285_Addon_IR.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_M5_Atom_Board.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_M5_Atom_Board.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_M5_Stack_Board_Display_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_M5_Stack_Board_Display_Logo.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_M5_Stack_Board_Display_Text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_M5_Stack_Board_Display_Text.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_M5_Stack_Board_Display_Warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_M5_Stack_Board_Display_Warning.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_M5_StickC_Board_Display_Text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_M5_StickC_Board_Display_Text.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_NODERED-chart-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_NODERED-chart-dashboard.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_NODERED-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_NODERED-chart.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_NODERED-flow-BLE-temperature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_NODERED-flow-BLE-temperature.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_NODERED-gauge-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_NODERED-gauge-dashboard.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_NODERED-gauge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_NODERED-gauge.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_NODERED-integration-debug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_NODERED-integration-debug.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_NODERED-integration-debug2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_NODERED-integration-debug2.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_NODERED-integration-debug3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_NODERED-integration-debug3.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_NODERED-integration-process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_NODERED-integration-process.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_NODERED-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_NODERED-integration.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_NodeMCU_PyFlasher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_NodeMCU_PyFlasher.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_OpenHAB_Control.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_OpenHAB_Control.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_SONOFF_RFBRIDGE_Upload_Parameters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_SONOFF_RFBRIDGE_Upload_Parameters.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_SONOFF_RFBRIDGE_results.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_SONOFF_RFBRIDGE_results.png -------------------------------------------------------------------------------- /docs/img/OpenMQTTgateway_miflora_results.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/OpenMQTTgateway_miflora_results.png -------------------------------------------------------------------------------- /docs/img/Openmqttgateway_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Openmqttgateway_logo.png -------------------------------------------------------------------------------- /docs/img/Openmqttgateway_logo_micro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Openmqttgateway_logo_micro.png -------------------------------------------------------------------------------- /docs/img/Openmqttgateway_logo_mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Openmqttgateway_logo_mini.png -------------------------------------------------------------------------------- /docs/img/Openmqttgateway_logo_mini_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Openmqttgateway_logo_mini_512.png -------------------------------------------------------------------------------- /docs/img/Openmqttgateway_logo_mini_margins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Openmqttgateway_logo_mini_margins.png -------------------------------------------------------------------------------- /docs/img/Theengs-Bridge-ble-gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Theengs-Bridge-ble-gateway.png -------------------------------------------------------------------------------- /docs/img/Theengs-Plug-OpenMQTTGateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Theengs-Plug-OpenMQTTGateway.png -------------------------------------------------------------------------------- /docs/img/Wiki_module_BT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Wiki_module_BT.png -------------------------------------------------------------------------------- /docs/img/Wiki_module_DHT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Wiki_module_DHT.png -------------------------------------------------------------------------------- /docs/img/Wiki_module_I2C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Wiki_module_I2C.png -------------------------------------------------------------------------------- /docs/img/Wiki_module_IR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Wiki_module_IR.png -------------------------------------------------------------------------------- /docs/img/Wiki_module_RF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Wiki_module_RF.png -------------------------------------------------------------------------------- /docs/img/Wiki_module_RFM69.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/Wiki_module_RFM69.png -------------------------------------------------------------------------------- /docs/img/arduino-esp32-sketchbook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/arduino-esp32-sketchbook.png -------------------------------------------------------------------------------- /docs/img/digoo-pir-DG-HOSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/digoo-pir-DG-HOSA.png -------------------------------------------------------------------------------- /docs/img/domoticz-logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/domoticz-logo.jpg -------------------------------------------------------------------------------- /docs/img/fhem_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/fhem_logo.png -------------------------------------------------------------------------------- /docs/img/home-assistant-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/home-assistant-logo.png -------------------------------------------------------------------------------- /docs/img/jeedom-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/jeedom-logo.png -------------------------------------------------------------------------------- /docs/img/node-red-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/node-red-logo.png -------------------------------------------------------------------------------- /docs/img/openhab-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/img/openhab-logo.png -------------------------------------------------------------------------------- /docs/integrate/aws_iot.md: -------------------------------------------------------------------------------- 1 | # Integrate AWS IOT 2 | ## Create a thing 3 | 4 | * From AWS console, search for IOT core 5 | * Create a Thing and name it, this name will be used as the OpenMQTTGateway name. 6 | 7 | ![AWS tutorial step](../img/Integrate_AWS_IOT_Create_Thing.png) 8 | 9 | ![AWS tutorial step](../img/Integrate_AWS_IOT_Create_Thing2.png) 10 | 11 | ![AWS tutorial step](../img/Integrate_AWS_IOT_Create_Thing3.png) 12 | 13 | ![AWS tutorial step](../img/Integrate_AWS_IOT_Create_Thing4.png) 14 | 15 | ## Create a policy 16 | 17 | ![AWS tutorial step](../img/Integrate_AWS_IOT_Create_Policy.png) 18 | 19 | ![AWS tutorial step](../img/Integrate_AWS_IOT_Create_Policy2.png) 20 | 21 | ![AWS tutorial step](../img/Integrate_AWS_IOT_Create_Policy3.png) 22 | 23 | * Add this json code to the policy 24 | ```json 25 | { 26 | "Version": "2021-11-01", 27 | "Statement": [ 28 | { 29 | "Effect": "Allow", 30 | "Action": [ 31 | "iot:Connect", 32 | "iot:Publish", 33 | "iot:Subscribe", 34 | "iot:Receive", 35 | "greengrass:Discover" 36 | ], 37 | "Resource": [ 38 | "*" 39 | ] 40 | } 41 | ] 42 | } 43 | ``` 44 | 45 | ## Create a certificate 46 | 47 | * Create a new certificate 48 | 49 | ![AWS tutorial step](../img/Integrate_AWS_IOT_Create_Certificate.png) 50 | ![AWS tutorial step](../img/Integrate_AWS_IOT_Create_Certificate2.png) 51 | 52 | * Download certificates and key 53 | 54 | ![AWS tutorial step](../img/Integrate_AWS_IOT_Create_Certificate3.png) 55 | 56 | ## Attach Policy with certificate 57 | 58 | ![AWS tutorial step](../img/Integrate_AWS_IOT_Attach_Policy.png) 59 | ![AWS tutorial step](../img/Integrate_AWS_IOT_Attach_Policy2.png) 60 | 61 | ## Activate certificate and attach it to Thing 62 | 63 | ![AWS tutorial step](../img/Integrate_AWS_IOT_Attach_Thing.png) 64 | ![AWS tutorial step](../img/Integrate_AWS_IOT_Attach_Thing2.png) 65 | 66 | ## Find AWS EndPoint 67 | 68 | ![AWS tutorial step](../img/Integrate_AWS_IOT_Find_Endpoint.png) 69 | 70 | ## Gather the information for OpenMQTTGateway configuration 71 | 72 | Now you should have the following information for the OpenMQTTGateway configuration: 73 | * Root certificate 74 | * Client certificate 75 | * Client key 76 | * End point url 77 | * Gateway name 78 | 79 | ## Modify OpenMQTTGateway configuration 80 | 81 | With PlatformIO you can directly leverage the environment `esp32dev-ble-aws` as an example and modify it following your needs. 82 | 83 | ## Build and upload 84 | 85 | ## Connect to a WiFi Access point [see portal](../upload/portal) 86 | Enter your credentials and verify that Secure connection is marked. 87 | 88 | ## Verify that you receive data in AWS 89 | 90 | * Go to things 91 | * Click on the thing created 92 | * Go to Activity 93 | * Click on MQTT Test Client 94 | * Subscribe to `+/#` 95 | 96 | You should see messages coming. 97 | 98 | ![AWS tutorial step](../img/Integrate_AWS_IOT_result_MQTT.png) -------------------------------------------------------------------------------- /docs/participate/adding-protocols.md: -------------------------------------------------------------------------------- 1 | # Adding protocols 2 | 3 | Adding your device protocol to OpenMQTTGateway enables it to increase interoperability and to create new use cases with your device. Below you will find some guidance to do that. 4 | 5 | ## RF or IR 6 | For adding RF and IR protocols to OpenMQTTGateway the best way is to do a pull request to [RCSwitch](https://github.com/1technophile/rc-switch), [Pilight](https://github.com/pilight/pilight) for RF, and [IRRemoteESP8266](https://github.com/crankyoldgit/IRremoteESP8266) for IR. 7 | 8 | ## BLE 9 | For BLE message decoding OpenMQTTGateway uses the [Theengs Decoder](https://decoder.theengs.io/) library. New device decoder pull requests can be submitted directly to the [GitHub repository](https://github.com/theengs/decoder). 10 | 11 | Currently we support the reading of advertizing BLE devices, advertizing means that the BLE device broadcasts regularly its sensor data without the need of a BLE connection. 12 | 13 | -------------------------------------------------------------------------------- /docs/participate/community.md: -------------------------------------------------------------------------------- 1 | # Community participation 2 | The first entry step for participating to OMG is sharing and discussing with the [community](https://community.openmqttgateway.com), by sharing your experiences and answering to other questions you are giving back what the others gave to you. 3 | 4 | You can use the forum to ask questions, post answers, suggest features and discuss about home automation or Internet of things in a more general way. -------------------------------------------------------------------------------- /docs/participate/support.md: -------------------------------------------------------------------------------- 1 | # Supporting the project 2 | 3 | If you like the project and/or used it please consider supporting it! It can be done in different ways: 4 | * Purchase the [Theengs mobile application](https://app.theengs.io) 5 | * Purchase the [Theengs plug](https://shop.theengs.io) 6 | * Helping other users in the [community](https://community.openmqttgateway.com) 7 | * [Contribute](development) to the [code](https://github.com/1technophile/OpenMQTTGateway) or the [documentation](https://docs.openmqttgateway.com) 8 | * Buy devices, boards or parts from the [compatible web site](https://compatible.openmqttgateway.com), the devices and parts linked use affiliated links. 9 | * Donate or sponsor the project [developers](https://github.com/1technophile/OpenMQTTGateway/graphs/contributors) 10 | * Make a video or a blog article about what you have done with [OpenMQTTGateway](https://docs.openmqttgateway.com) and share it. 11 | 12 | Support open-source development through sponsorship and gain exclusive access to our private forum. Your questions, issues, and feature requests will receive priority attention, plus you'll gain insider access to our roadmap. 13 | 14 |
15 | 16 |
17 | -------------------------------------------------------------------------------- /docs/prerequisites/M5.md: -------------------------------------------------------------------------------- 1 | # M5 Boards 2 | M5 boards, manufactured by [M5Stack](https://m5stack.com/) are inexpensive, well featured boards based on ESP32. 3 | 4 | ## M5StickC and M5Stack 5 | M5StickC and M5Stack are supported by OpenMQTTGateway and provide the following features: 6 | 7 | ### 3 low power modes 8 | #### Always ON display 9 | The display is always ON but decrease its brightness when not processing. 10 | 11 | #### ON display when processing 12 | The display is OFF when not processing and the ESP32 is put in low power mode. 13 | 14 | #### Always OFF display 15 | The display is always OFF, if the board has a led, the led is used when processing. 16 | 17 | To change the low power mode you can do it by [MQTT](../use/boards#low-power-mode-for-m5-boards) or by pushing the middle button (btn B) of the M5Stack and the top button (btn B) of the M5Stick C 18 | 19 | ### Start screen 20 | ![MStack core logo](../img/OpenMQTTgateway_M5_Stack_Board_Display_Logo.png) 21 | 22 | ### Sleep screen 23 | The screen brightness is put to a minimum so as to reduce power consumption. 24 | ![M5Stack core brightness](../img/OpenMQTTgateway_M5_Stack_Board_Display_Text.png) 25 | 26 | ### Log display in case of warning 27 | If the gateway detects a warning or an error the sleep go out the sleep screen and show the message with a red (error) or orange (warning) background. 28 | ![M5 Stack core warning](../img/OpenMQTTgateway_M5_Stack_Board_Display_Warning.png) 29 | 30 | The M5Stick support low power mode 2 but its display is not supported for the moment. 31 | -------------------------------------------------------------------------------- /docs/prerequisites/boards/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /docs/prerequisites/broker.md: -------------------------------------------------------------------------------- 1 | # Broker 2 | The broker will act as an intermediary between OpenMQTTGateway and your [controller](/prerequisites/controller), it can be seen as a centralized hub at the heart of your automation system. It carry on messages following a publish / subscribe mechanism. 3 | 4 | All the events or commands could pass by the broker. 5 | 6 | There are many choices of brokers, here are some of the most popular: 7 | * [Mosquitto](https://mosquitto.org/) (Open source) 8 | * [Moquette](https://moquette-io.github.io/moquette/) (Open source) 9 | * [EMQX](https://www.emqx.io/) (Open Source) 10 | * [HiveMQ](https://www.hivemq.com/hivemq/features/) 11 | * Embedded MQTT brokers (Home Assistant and OpenHAB) 12 | 13 | This [wikipedia list](https://en.wikipedia.org/wiki/Comparison_of_MQTT_implementations) gives you more details about the different choices you have. 14 | This [github list](https://github.com/mqtt/mqtt.github.io/wiki/libraries) seems to be the most exhaustive ones. 15 | Here is also some [ideas of criteria](https://www.hivemq.com/blog/top-10-mqtt-broker-criteria/) from HiveMQ. 16 | 17 | Once your broker is installed it can be interesting to see the traffic passing to it and to publish data, so as to do that there are several tools available: 18 | * [MQTT Explorer](http://mqtt-explorer.com/) 19 | * [HIVE MQ Web client](https://github.com/hivemq/hivemq-mqtt-web-client) 20 | * [MQTT FX](https://mqttfx.jensd.de/) 21 | 22 | -------------------------------------------------------------------------------- /docs/prerequisites/controller.md: -------------------------------------------------------------------------------- 1 | # Controller 2 | MQTT enables you to connect easily a controller so as to monitor, control and automate scenarios. 3 | 4 | The following controllers (and many other software) are compatible with MQTT: 5 | 6 | ![controllers](../img/OpenMQTTGateway_controllers.png) 7 | 8 | OpenMQTTGateway is independent from these projects, you have the liberty of choice among all the compatible software. 9 | 10 | * [OpenHAB](https://www.openhab.org) 11 | * [Home Assistant](https://www.home-assistant.io) 12 | * [Domoticz](https://www.domoticz.com) 13 | * [Jeedom](https://www.jeedom.com) 14 | * [Node Red](https://nodered.org) 15 | * [FHEM](https://fhem.de) 16 | -------------------------------------------------------------------------------- /docs/prerequisites/devices.md: -------------------------------------------------------------------------------- 1 | # Devices 2 | 3 | You can take a look to the [OpenMQTTGateway compatible website](https://compatible.openmqttgateway.com) to have a view of the [supported devices](https://compatible.openmqttgateway.com/index.php/devices/). 4 | 5 | Added to that is an overview of devices supported by OpenMQTTGateway: 6 | 7 | ## For radio frequency devices 8 | OpenMQTTGateway can support a wide range of 433mhz/315mhz devices, all the ones with SC5262 / SC5272, HX2262 / HX2272, PT2262 / PT2272, EV1527, RT1527, FP1527, HS1527 chipsets are supported by the RF gateway. Added to that RF2 support Kaku and Pilight an [huge list](https://wiki.pilight.org/devices). 9 | Note that for the moment RF, RF2 and Pilight can not be activated on the same boards together. 10 | 11 | ![boards](../img/OpenMQTTGateway_devices_rf1.png ':size=250%') 12 | ![boards](../img/OpenMQTTGateway_devices_rf2.png ':size=250%') 13 | ![boards](../img/OpenMQTTGateway_devices_rf3.png ':size=250%') 14 | 15 | ## For BLE devices 16 | OpenMQTTGateway is able to scan all the BLE devices that advertise their data so as to do presence detection. 17 | Added to that it retrieves the measures from the devices mentioned and linked to below. By default the data are read from the advertisements (no or very little impact on device battery life). For some devices we may connect briefly only to retrieve one or several parameters. 18 | 19 | OpenMQTTGateway currently supports the decoding of [more than 100 Bluetooth devices](https://decoder.theengs.io/devices/devices.html), which include popular devices like Mi Flora, Xiaomi scales, Inkbird, Govee and ThermoPro thermo-hygrometers and BBQ thermometers, SwitchBot devices status and many more. 20 | 21 | ::: tip 22 | - (2) See https://github.com/atc1441/ATC_MiThermometer 23 | - (3) See https://github.com/pvvx/ATC_MiThermometer 24 | ::: 25 | 26 | ![devices](../img/OpenMQTTGateway_devices_ble.png ':size=250%') 27 | 28 | ## For infrared IR devices 29 | The list of supported devices for ESP is [here](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/SupportedProtocols.md), and [here](https://github.com/1technophile/OpenMQTTGateway/blob/6f73160d1421bebf2c1bbc9b8017978ff5b16520/main/config_IR.h#L123) for Arduino boards, as there is also the possibility of using raw and global cache (ESP) sending possibilities of this gateway is huge! 30 | 31 | ## LORA 32 | LoRa is more dedicated at this moment for tinkering and DIY and there is no Off the shelves devices compatible to my knowledge with this gateway. 33 | -------------------------------------------------------------------------------- /docs/prerequisites/parts.md: -------------------------------------------------------------------------------- 1 | # Parts 2 | Depending on the gateway you would like to setup and your board, you may need extra parts/module to add. 3 | 4 | You can take a look to the [OpenMQTTGateway compatible website](https://compatible.openmqttgateway.com) to have a view of the [supported parts](https://compatible.openmqttgateway.com/index.php/parts/). 5 | 6 | Here is below the main parts reference. 7 | 8 | ## Main parts 9 | |Parts|RF|IR|BLE|LoRa|GSM| 10 | |-|:-:|:-:|:-:|:-:|:-:| 11 | |SRX882 / STX882|X|-||-|-| 12 | |CC1101|X|-|-|-|-| 13 | |38KHz IR emitter and receiver|-|X|-|-|-| 14 | |SX1276 / SX1278|-|-|-|X|-| 15 | |A6/A7|-|-|-|-|X| 16 | 17 | ::: tip 18 | There is a wide range of parts available that may be compatible with OpenMQTTGateway, the ones [listed](https://compatible.openmqttgateway.com/index.php/parts/) are the ones tested and for which you can ask for support. Indeed for other parts we may not have it so as to reproduce the issue, or in the worst case they may not be compatible. 19 | ::: 20 | -------------------------------------------------------------------------------- /docs/setitup/actuators.md: -------------------------------------------------------------------------------- 1 | # Actuators 2 | ## Compatible parts 3 | |Module|Purpose|Where to Buy| 4 | |-|-|-| 5 | |LED|Basic led|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 6 | |FASTLED|RGB Leds management|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 7 | |BUZZER|-|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 8 | |RELAY|Switch power circuit|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 9 | 10 | ## Pinout 11 | |Module| Boards| 12 | |-|-| 13 | |RELAY|all output compatible pins| 14 | |FASTLED|all output compatible pins| 15 | 16 | Vcc pin of the board and the Module to a 5V supply source 17 | Ground pins of the board and the Module to the ground of the supply source. 18 | 19 | ## Somfy RTS 20 | For this actuator a 433.42 MHz RF transmitter is required. 21 | The standard 433.92 MHz transmitter don't work. 22 | The CC1101 Transceiver supports both 433.42 MHz and 433.92 MHz and can be used with the Somfy RTS actor. 23 | The wiring of the hardware is described in the [RF gateway](rf). 24 | -------------------------------------------------------------------------------- /docs/setitup/ble.md: -------------------------------------------------------------------------------- 1 | # BLE gateway 2 | ## Compatible parts 3 | **The ESP32 has an integrated BLE module**, with this board the BLE gateway don't need any additional hardware. Making it the **advised board for BLE**. 4 | 5 | You can use a barebone ESP32 or some nice looking products like the ones below (from M5Stack): 6 | 7 | ![M5 Atom](../img/OpenMQTTgateway_M5_Atom_Board.png) 8 | ![M5 Stack Core](../img/OpenMQTTgateway_M5_Stack_Board_Display_Text.png) 9 | 10 | For Arduino and ESP8266, we previously used HM10, this module is no longer supported by OpenMQTTGateway, prefer an ESP32. 11 | -------------------------------------------------------------------------------- /docs/setitup/gsm.md: -------------------------------------------------------------------------------- 1 | # GSM 2G gateway 2 | ## Compatible parts 3 | 4 | |Module|Purpose|Where to Buy| 5 | |-|-|-| 6 | |A6|GSM GPRS module|[compatible parts list](https://compatible.openmqttgateway.com/index.php/parts)| 7 | |A7|GSM GPRS module with GPS|[compatible parts list](https://compatible.openmqttgateway.com/index.php/parts)| 8 | 9 | ## Hardware setup 10 | 11 | |Module Pin|NodeMCU / ESP8266 Pin| 12 | |-|:-:| 13 | |H_RXD|D6| 14 | |H_TXD|D7| 15 | |GND|GND| 16 | |VCC5|MOSFET driven by D5| 17 | 18 | For VCC5 you can power it directly all the time with an USB cable or use a MOSFET like [here](https://gitlab.com/stavros/A6-ESP8266-breakout/raw/master/images/schematic.png) 19 | 20 | Don't use the nodemcu/wemos 5V pin for the A6/7 power, use a dedicated power supply for both or dedicated to the A6/7 with at least 2 amps ability. 21 | 22 | So as to start your A6/7 module press the red button for 4 seconds, or link the PWR_KEY GPIO to VCC5.0 for the same time. 23 | 24 | ![Addon_2G](../img/OpenMQTTgateway_ESP8266_Addon_2G.png) 25 | -------------------------------------------------------------------------------- /docs/setitup/ir.md: -------------------------------------------------------------------------------- 1 | # IR gateway 2 | ## Compatible parts 3 | |Module|Purpose|Where to Buy| 4 | |-|-|-| 5 | |IR diode|Emitting|[compatible parts list](https://compatible.openmqttgateway.com/index.php/parts)| 6 | |IR receiver|Receiving|[compatible parts list](https://compatible.openmqttgateway.com/index.php/parts)| 7 | |transistor 2N2222|Amplify uC signal for the IR diode|-| 8 | |330 ohms resistor|-|[compatible parts list](https://compatible.openmqttgateway.com/index.php/parts)| 9 | |220 ohms resistor|limit current to LED|[compatible parts list](https://compatible.openmqttgateway.com/index.php/parts)| 10 | 11 | The IR setup can work with bc547 and a 4x3 LED-Matrix. 12 | 13 | ## Pinout 14 | |Board| Receiver Pin| Emitter Pin| 15 | |-|:-:|:-:| 16 | |ESP8266|D4|D0| 17 | |ESP32|27/**26**|14| 18 | 19 | Connect the Emitter and Receiver to a 5V supply source, and the ground of your supply source to the ground of your board. 20 | 21 | ## ESP8266 Hardware setup 22 | ![IR](../img/OpenMQTTgateway_ESP8266_Addon_IR.png) 23 | 24 | ## ESP32 Hardware setup 25 | ![IR](../img/OpenMQTTgateway_ESP32_Addon_IR.png) 26 | 27 | ## Credits 28 | This gateway exists thanks to the work done on [IRRemote](https://github.com/z3t0/Arduino-IRremote) and [IRremoteESP8266](https://github.com/crankyoldgit/IRremoteESP8266) libraries. Thanks for the works of contributors and especially [@crankyoldgit](https://github.com/crankyoldgit) for its active contributions. 29 | -------------------------------------------------------------------------------- /docs/setitup/lora.md: -------------------------------------------------------------------------------- 1 | # LoRa gateway 2 | ## Compatible parts 3 | An ESP32 board with a LoRa module. 4 | Ideally a TTGO board with LoRa module included see [compatible parts list](https://compatible.openmqttgateway.com/index.php/parts) 5 | 6 | With this kind of board there is no hardware modification needed. 7 | -------------------------------------------------------------------------------- /docs/setitup/sensors.md: -------------------------------------------------------------------------------- 1 | # Sensors 2 | ## Compatible sensors 3 | |Module|Purpose|Where to Buy| 4 | |-|-|-| 5 | |DHT11|Temperature, Humidity|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 6 | |DHT22|Temperature, Humidity|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 7 | |HCSR501|PIR|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 8 | |BH1750|Digital light|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 9 | |BME280|Temperature, Humidity, Pressure|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 10 | |BMP280|Temperature, Pressure|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 11 | |C-37, YL-83, HM-RD|Leak, Water|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 12 | |HTU21|Temperature, Humidity|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 13 | |GPIO Input|Inputs|-| 14 | |GPIO KeyCode|Keycode|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 15 | |INA226|Current, Voltage|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 16 | |MQ2|Gas (flammable)|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 17 | |TEMT6000|Luminosity|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 18 | |TSL2561|Luminosity|[parts list](https://compatible.openmqttgateway.com/index.php/parts)| 19 | 20 | ## Pinout 21 | |Module|Arduino Pin| ESP8266 Pin|ESP32 Pin| 22 | |-|-|-|-| 23 | |Analog reading|A0|A0|A0| 24 | |BH1750 SDA|A4|D2|21| 25 | |BH1750 SCL|A5|D1|22| 26 | |BME280/BMP280 SDA|A4|D2|21| 27 | |BME280/BMP280 SCL|A5|D1|22| 28 | |C-37, YL-83, HM-RD|A0 + D14|A0 + D14|A7 + D14| 29 | |DHT11/22|D8|D1|16| 30 | |HC-SR501/HC-SR505|7|D5|5| 31 | |HTU21 SDA|A4|D2|21| 32 | |HTU21 SCL|A5|D1|22| 33 | |INA226 SDA|A4|D2|21| 34 | |INA226 SCL|A5|D1|22| 35 | |MQ02 |A0 + D4|A0 + D4|A0 + D4| 36 | |TEMT6000 |A0|A0|A0| 37 | |TSL2561 SDA|A4|D2|21| 38 | |TSL2561 SCL|A5|D1|22| 39 | 40 | Vcc pin of the board and the Module to a 3.3V or 5V supply source depending on sensor voltage requirement. 41 | Ground pins of the board and the Module to the ground of the supply source. 42 | -------------------------------------------------------------------------------- /docs/setitup/serial.md: -------------------------------------------------------------------------------- 1 | # Serial/RS232 gateway 2 | ## Compatible parts 3 | |Module|Purpose|Where to Buy| 4 | |-|-|-| 5 | |TTL to RS232 module|Transceiving|-| 6 | 7 | 8 | Any module using a MAX232 chip will work. Don't pay extra to get all the signals, we're only using RX and TX. 9 | 10 | ## Pinout 11 | |Board| Receiver Pin| Emitter Pin| 12 | |-|:-:|:-:| 13 | |ESP8266|D2|D4| 14 | |ESP32|27/**26**|14| 15 | 16 | Connect VCC on the module to 5V of your board, and the ground on the module to the ground of your board. your Transmit pin goes to TX and your Receive pin goes to RX. This may seem backwards, but the module is labeled as where it will be connected on the RS232 side of the module. 17 | 18 | ## ESP8266 Hardware setup 19 | ![RS232](../img/OpenMQTTgateway_ESP8266_Addon_RS232.png) 20 | 21 | ## ESP32 Hardware setup 22 | ![RS232](../img/OpenMQTTgateway_ESP32_Addon_RS232.png) 23 | 24 | ## Credits 25 | RS232 gateway Developed by DieKatzchen -------------------------------------------------------------------------------- /docs/upload/gitpod.md: -------------------------------------------------------------------------------- 1 | # (Option 4) Build from the web 2 | 3 | To build OpenMQTTGateway from the web and download the binary, follow these steps: 4 | 5 | 1. Use Gitpod by clicking on the link below: 6 | [https://gitpod.io#https://github.com/1technophile/OpenMQTTGateway/tree/development](https://gitpod.io#https://github.com/1technophile/OpenMQTTGateway/tree/development) 7 | 8 | 2. This will generate a development environment in your browser and install [platformio](https://platformio.org/) as a build environment. 9 | 10 | 3. A first build for `esp32dev-ble` will be launched automatically. To modify the environment configuration, go to the environments.ini file in the root folder and launch the command like the one shown at the bottom of the image below: 11 | `platformio run -e ` 12 | 13 | ![Gitpod build success](../img/OpenMQTTGateway-Build-gitpod-env.png) 14 | 15 | 4. Wait for the server to build the binary. Once you see [SUCCESS], you can go to `.pio/build/` and download `firmware.bin` and `partitions.bin` by right-clicking on each and selecting "Download." 16 | ![Gitpod build download](../img/OpenMQTTGateway-Build-gitpod.png) 17 | 18 | 5. Finally, follow [Option 2](binaries.md) to upload the binary. 19 | -------------------------------------------------------------------------------- /docs/upload/web-install.md: -------------------------------------------------------------------------------- 1 | --- 2 | pageClass: table-generated-page 3 | --- 4 | 5 | # (Option 1) Upload from the web 6 | 7 | ::: tip Running on a tablet or phone 8 | If you want to use the BLE decoding capabilities of OpenMQTTGateway with a tablet or smartphone you can use [Theengs App](https://app.theengs.io/). 9 | ::: 10 | 11 | ::: warning Note 12 | If you are on macOS and have a LilyGo LoRa32 V2.1 board, make sure you have the [correct driver for the CH9102 Serial Chip](https://github.com/WCHSoftGroup/ch34xser_macos) installed and selected in the popup when initiating the web install. 13 | To finalise the driver installation don't forget the confirmation in the **Security** section of **System Preferences** after the restart. 14 | The correct driver to then select in the popup of this web install is 15 | `/dev/cu.wchusbserialXXXXXXXXXXX` 16 | ::: 17 | 18 | You can upload the firmware to your ESP device directly from here. 19 | 1. Plug in your ESP to a USB port. 20 | 2. Select the firmware in the box below. 21 | 3. Click the install button and choose the port that the ESP is connected to. 22 | 4. Wait until the process is complete. 23 | 5. Once completed you can configure your [WiFi and MQTT credentials](portal.md) 24 | 25 | 26 | 27 | Upload powered by [ESP Web Tools](https://esphome.github.io/esp-web-tools/) 28 | 29 | ## Using OpenMQTTGateway ? 30 | Support open-source development through sponsorship and gain exclusive access to our private forum. Your questions, issues, and feature requests will receive priority attention, plus you'll gain insider access to our roadmap. 31 | 32 |
33 | 34 |
35 | 36 | ## Environments characteristics 37 | The auto-generated table below describes the libraries and the modules of each board configuration. 38 | -------------------------------------------------------------------------------- /docs/use/gsm.md: -------------------------------------------------------------------------------- 1 | # GSM 2G gateway 2 | ## Receiving SMS from 2G 3 | 4 | Subscribe to all the messages with mosquitto or open your MQTT client software: 5 | `mosquitto_sub -t +/# -v` 6 | 7 | Generate your SMS by sending an SMS to the phone number of the A6/A7 SIM card you will see : 8 | 9 | ``` 10 | home/OpenMQTTGateway/2GtoMQTT {"phone":"+33123456789","date":"2018/04/22,16:17:51+02","message":"Hello OpenMQTTGateway"} 11 | ``` 12 | 13 | ## Send data by MQTT to send an SMS message with A6/7 14 | 15 | `sudo mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTto2G -m '{"phone":"+33123456789","date":"2018/04/22,16:17:51+02","message":"hello"}'` 16 | 17 | This command will send by SMS the sentence "hello" and use the phone number 0123456789 18 | 19 | Arduino IDE serial data received when publishing data by MQTT 20 | 21 | ![](../img/OpenMQTTGateway_serial_2G_1.jpg) 22 | 23 | Arduino IDE serial data received when receiving SMS 24 | 25 | ![](../img/OpenMQTTGateway_serial_2G_2.jpg) 26 | -------------------------------------------------------------------------------- /docs/use/ota_command_cert.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/docs/use/ota_command_cert.zip -------------------------------------------------------------------------------- /docs/use/rfm69.md: -------------------------------------------------------------------------------- 1 | # RFM69 gateway 2 | 3 | The RFM69 gateway enables to send and receive signal from/to another RFM69 module. It is based on the work of @bbx10 https://github.com/bbx10/nanohab 4 | 5 | ### Receiving data from RFM signal 6 | 7 | Subscribe to all the messages with mosquitto or open your MQTT client software: 8 | 9 | ` sudo mosquitto_sub -t +/# -v` 10 | 11 | Generate your RF signals with a Moteino on other RFM69 based devices, you will receive : 12 | 13 | `home/OpenMQTTGateway/RFM69toMQTT 60,-98,0` 14 | 15 | In this case "60,-98,0" is the signal sent by another RFM69 + a wemos D1 with the sample sketch [rfm69send](https://github.com/1technophile/rfm69send/blob/master/rfm69send.ino) loaded in it. 16 | 17 | ### Send data by MQTT to convert it on RFM69 signal 18 | `mosquitto_pub -t "home/OpenMQTTGateway/commands/MQTTtoPilight" -m '{"data":"test"}'` 19 | 20 | This command will send by RFM69 the string *test* to the default receiver id 99 21 | 22 | ### Send data by MQTT with advanced RFM69 parameters 23 | 24 | RFM69 sending support one advanced parameters the target receiver ID. 25 | 26 | Example: 27 | SimplePublishing 28 | `mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoRFM69/RCV_34 -m 33151562` 29 | will make the gateway send to the receiver ID 34 (node number) instead of 99 30 | 31 | JsonPublishing 32 | `mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoRFM69 -m '{"data":1315156,"receiverid":34}'` 33 | This command will send by RFM69 the string *test* to the receiver id 34 instead of 99 34 | 35 | ### RFM69 acknowledgment 36 | Unlike RF or IR RFM69 as a complete acknowledgment mechanism. When a signal is sent the RFM69 can acknowledge the fact that the recipient received the message. 37 | In this case the gateway will publish the sent message to the topic defined by subjectGTWRFM69toMQTT macro. 38 | -------------------------------------------------------------------------------- /docs/use/serial.md: -------------------------------------------------------------------------------- 1 | # RS232/Serial gateway 2 | 3 | The SERIAL gateway can be used to send and receive data from the serial connection to and from MQTT. Both softwareSerial as hardwareSerial are supported. HardwareSerial can be used for higher baud rates, but is limited to specific pins on most platforms. 4 | 5 | ## Sending an SERIAL message 6 | 7 | Simply publish the message you wish to transmit, minus the prefix and postfix. For example, to send the "Turn On" signal for a Mitsubishi XD221U projector, the code is simply '!' so you would use the command 8 | 9 | `mosquitto_pub -t home/OpenMQTTGateway/commands/XtoSERIAL -m '{"value": "!"}'` 10 | 11 | It will automatically add the prefix and postfix you set in [config_SERIAL.h](https://github.com/1technophile/OpenMQTTGateway/blob/master/main/config_SERIAL.h). 12 | 13 | 14 | ## Receiving an SERIAL message 15 | 16 | Two modes are available for receiving SERIAL messages. 17 | 18 | ### Single MQTT message mode (default) 19 | To receive a message, subscribe to all with `mosquitto_sub -t +/# -v` 20 | and perform an action that should get a response from the device. For example, If I were to send the "Turn On" signal from earlier, I would receive back 21 | 22 | ```json 23 | home/OpenMQTTGateway/SERIALtoMQTT {"value":"1"} 24 | ``` 25 | 26 | Because this projector echoes back a received command to acknowledge. Some devices will send a NACK, or Negative Acknowledge, to confirm that they received your message but could not comply. That would look like 27 | 28 | ```json 29 | home/OpenMQTTGateway/SERIALtoMQTT {"value":"!:N"} 30 | ``` 31 | 32 | ### JSON mode 33 | This mode can be used if the received message on the serial link is JSON. The JSON keys are used as separate MQTT sub-topics. For nested JSON this will be repeated for sub-keys up to the specified nesting level. 34 | 35 | For example: 36 | 37 | input received at serial link: 38 | ```json 39 | {temperature: {sens1: 22, sens2: 23}, humidity: {sens1: 80, sens2: 60}} 40 | ``` 41 | 42 | 43 | output in case of max nesting level 1: 44 | ```json 45 | home/OpenMQTTGateway/SERIALtoMQTT/temperature "{sens1: 22, sens2: 23}" 46 | home/OpenMQTTGateway/SERIALtoMQTT/humidity "{sens1: 80, sens2: 60}" 47 | ``` 48 | 49 | output in case of max nesting level 2 (or higher): 50 | ```json 51 | home/OpenMQTTGateway/SERIALtoMQTT/temperature/sens1 22 52 | home/OpenMQTTGateway/SERIALtoMQTT/temperature/sens2 23 53 | home/OpenMQTTGateway/SERIALtoMQTT/humidity/sens1 80 54 | home/OpenMQTTGateway/SERIALtoMQTT/humidity/sens2 60 55 | ``` 56 | 57 | -------------------------------------------------------------------------------- /docs/use/webui.md: -------------------------------------------------------------------------------- 1 | # WebUI 2 | 3 | For ESP32 based environments a WebUI is available to provide basic configuration and monitoring of your OpenMQTTGateway Device. Functions included are: 4 | 5 | * Configuration 6 | * Information 7 | * Firmware Upgrade 8 | * Console 9 | * Restart 10 | 11 | # Login Authentication 12 | 13 | By default access to the WebUI uses basic authentication to control access to your OpenMQTTGateway Device. The login is `admin` and the password is your `gateway password` (if unchanged during onboarding there is no password). 14 | 15 | ::: warning 16 | The communication with the WebUI is not encrypted, which means that your data may be visible on your local network. 17 | ::: 18 | 19 | # Configuration Options 20 | 21 | ## WiFi 22 | 23 | Ability to change the SSID and password for your WiFi, if the change is unsuccessful it will revert back to the previous WiFi settings. 24 | 25 | ## MQTT 26 | 27 | Ability to change the mqtt settings, if the change is unsuccessful it will revert back to the previous mqtt settings. 28 | 29 | ## WebUI 30 | 31 | Ability to change the display of sensor to Metric or Imperial, and disable the WebUI Authentication 32 | 33 | ## Logging 34 | 35 | Ability to temporarily change the logging level. 36 | 37 | # Information 38 | 39 | Details of OpenMQTTGateway Device status 40 | 41 | # Firmware Upgrade 42 | 43 | Ability to upgrade firmware by URL or to latest version. 44 | 45 | # Console 46 | 47 | Ability to view messages from the OpenMQTTGateway console. The scope of messages visible in the UI is limited to just the OpenMQTTGateway codebase, messages from the ESP hardware or other libraries are not visible, 48 | 49 | Ability to inject commands to OpenMQTTGateway for processing. The commands accepted are of the form mqtt topic then json message. And as you are already on the target device, you do not need to include the device name ie 50 | 51 | `commands/MQTTtoSYS/config {"cmd":"restart"}` 52 | 53 | This works for all modules in your environment. 54 | -------------------------------------------------------------------------------- /examples/LoraTemperature/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /examples/LoraTemperature/README.md: -------------------------------------------------------------------------------- 1 | # OpenMQTTGateway LoRa Node Example 2 | This repository contains an example of a LoRa node program designed for the ESP32 platform. The program reads the internal temperature of the ESP32, packages the data into a JSON format, and sends it over LoRa. 3 | It also sends a constant raw string simulating a Makerfab Soil sensor payload. 4 | 5 | ## Features: 6 | * Uses an SX12XX LoRa module. 7 | * Displays packet sending status and temperature data on an SSD1306 OLED display. 8 | * Sends the ESP32's MAC address as the node ID. 9 | * Sends temperature data in Celsius. 10 | 11 | ## Hardware Requirements: 12 | * ESP32 development board. 13 | * SX12XX LoRa module. 14 | * SSD1306 OLED display. 15 | 16 | ## Pin Configuration: 17 | * SCK - GPIO5 18 | * MISO - GPIO19 19 | * MOSI - GPIO27 20 | * SS - GPIO18 21 | * RST - GPIO14 22 | * DI0 - GPIO26 23 | 24 | ## Setup: 25 | ### Hardware Setup: 26 | 27 | Connect the SX1278 LoRa module and the SSD1306 OLED display to the ESP32 according to the pin configuration. 28 | Ensure that the OLED display is powered correctly. 29 | 30 | ### Software Setup: 31 | 32 | * Clone this repository. 33 | * Open the provided node program with PlatformIO 34 | * Upload the program to your ESP32. 35 | 36 | ## Usage: 37 | Power on the ESP32. 38 | The OLED display will show the status of the packet being sent and the current temperature reading. 39 | The built-in LED on the ESP32 will blink once every time a packet is sent. 40 | Monitor the serial output (at 115200 baud rate) to see the JSON formatted data being sent. 41 | 42 | ## Data Format: 43 | The data is sent in the following JSON format: 44 | 45 | ```json 46 | { 47 | "model": "ESP32TEMP", 48 | "id": "ESP32_MAC_ADDRESS", 49 | "tempc": "TEMPERATURE_IN_CELSIUS" 50 | } 51 | ``` 52 | 53 | ## Troubleshooting: 54 | LoRa Initialization Failed: Ensure that the SX1278 LoRa module is connected correctly and powered on. 55 | OLED Display Not Working: Check the connections and ensure that the display is powered correctly. 56 | No Temperature Data: Ensure that the ESP32's internal temperature sensor is functional. 57 | Contributing: 58 | Feel free to contribute to this example by opening issues or submitting pull requests. Any feedback or improvements are welcome! 59 | 60 | I hope this README helps users understand and use your program! Adjustments can be made as necessary to fit any additional details or changes. -------------------------------------------------------------------------------- /examples/LoraTemperature/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:ttgo-lora32-v1] 12 | platform = espressif32 13 | board = ttgo-lora32-v1 14 | framework = arduino 15 | lib_deps = 16 | https://github.com/sandeepmistry/arduino-LoRa.git#f4a1d27 17 | https://github.com/ThingPulse/esp8266-oled-ssd1306.git#f96fd6a 18 | monitor_speed = 115200 19 | 20 | [env:ttgo-lora32-v21] 21 | platform = espressif32 22 | board = ttgo-lora32-v21 23 | framework = arduino 24 | lib_deps = 25 | https://github.com/sandeepmistry/arduino-LoRa.git#f4a1d27 26 | https://github.com/ThingPulse/esp8266-oled-ssd1306.git#f96fd6a 27 | monitor_speed = 115200 28 | 29 | [env:heltec-wifi-lora-32] ; Heltec ESP32 Board with SSD1306 display 30 | platform = espressif32 31 | board = heltec_wifi_lora_32 32 | framework = arduino 33 | lib_deps = 34 | https://github.com/sandeepmistry/arduino-LoRa.git#f4a1d27 35 | https://github.com/ThingPulse/esp8266-oled-ssd1306.git#f96fd6a 36 | monitor_speed = 115200 -------------------------------------------------------------------------------- /examples/LoraWaterCounter/README.md: -------------------------------------------------------------------------------- 1 | # OpenMQTTGateway LoRa Node Example 2 | This repository contains an example of a LoRa node program designed for the ESP32 platform. 3 | The program reads the DHT22 temperature and humidity, the battery level and water consumption via reed switch, packages the data into a JSON format, and sends it over LoRa. 4 | 5 | ## Features: 6 | * Uses an SX12XX LoRa module. 7 | * Displays packet sending status, counter and battery level data on an SSD1306 OLED display. 8 | * Sends the ESP32's MAC address as the node ID. 9 | * Sends temperature data in Celsius. 10 | 11 | ## Hardware Requirements: 12 | * ESP32 development board. 13 | * SX12XX LoRa module. 14 | * SSD1306 OLED display. 15 | 16 | ## Pin Configuration: (Lilygo LoRa32 V2.1_1.6) 17 | * SCK - GPIO5 18 | * MISO - GPIO19 19 | * MOSI - GPIO27 20 | * SS - GPIO18 21 | * RST - GPIO23 22 | * DI0 - GPIO26 23 | 24 | ## Setup: 25 | ### Hardware Setup: 26 | 27 | Connect the SX1278 LoRa module and the SSD1306 OLED display to the ESP32 according to the pin configuration. 28 | Ensure that the OLED display is powered correctly. 29 | 30 | ### Software Setup: 31 | 32 | * Clone this repository. 33 | * Open the provided node program with PlatformIO 34 | * Upload the program to your ESP32. 35 | 36 | ## Usage: 37 | Power on the ESP32. 38 | The OLED display will show the status of the packet being sent and the current temperature reading. 39 | The built-in LED on the ESP32 will blink once every time a packet is sent. 40 | Monitor the serial output (at 115200 baud rate) to see the JSON formatted data being sent. 41 | 42 | If you use arduino load ino file. 43 | 44 | ## Data Format: 45 | The data is sent in the following JSON format: 46 | 47 | ```json 48 | { 49 | "model": "ESP32CNT", 50 | "id": "ESP32_MAC_ADDRESS", 51 | "count": "COUNTER_IN_LITER", 52 | "tempc": "TEMPERATURE_IN_CELSIUS", 53 | "hum": "HUMIDITY_IN_PERCENTAGE", 54 | "batt": "BATTERY_IN_PERCENTAGE" 55 | } 56 | ``` 57 | 58 | ## Troubleshooting: 59 | LoRa Initialization Failed: Ensure that the SX1278 LoRa module is connected correctly and powered on. 60 | OLED Display Not Working: Check the connections and ensure that the display is powered correctly. 61 | No Temperature Data: Ensure that the ESP32's internal temperature sensor is functional. 62 | Contributing: 63 | Feel free to contribute to this example by opening issues or submitting pull requests. Any feedback or improvements are welcome! 64 | 65 | I hope this README helps users understand and use your program! Adjustments can be made as necessary to fit any additional details or changes. 66 | -------------------------------------------------------------------------------- /examples/LoraWaterCounter/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:ttgo-lora32-v1] 12 | platform = espressif32 13 | board = ttgo-lora32-v1 14 | framework = arduino 15 | lib_deps = 16 | https://github.com/sandeepmistry/arduino-LoRa.git#f4a1d27 17 | https://github.com/ThingPulse/esp8266-oled-ssd1306.git#f96fd6a 18 | monitor_speed = 115200 19 | 20 | [env:ttgo-lora32-v21] 21 | platform = espressif32 22 | board = ttgo-lora32-v21 23 | framework = arduino 24 | lib_deps = 25 | https://github.com/sandeepmistry/arduino-LoRa.git#f4a1d27 26 | https://github.com/ThingPulse/esp8266-oled-ssd1306.git#f96fd6a 27 | monitor_speed = 115200 28 | 29 | [env:heltec-wifi-lora-32] ; Heltec ESP32 Board with SSD1306 display 30 | platform = espressif32 31 | board = heltec_wifi_lora_32 32 | framework = arduino 33 | lib_deps = 34 | https://github.com/sandeepmistry/arduino-LoRa.git#f4a1d27 35 | https://github.com/ThingPulse/esp8266-oled-ssd1306.git#f96fd6a 36 | monitor_speed = 115200 -------------------------------------------------------------------------------- /lib/TheengsUtils/TheengsUtils.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs - IoT Interoperability 3 | 4 | Copyright: (c)Florian ROBERT 5 | 6 | This file is part of Theengs products. 7 | 8 | Theengs is free software: you can redistribute it and/or modify 9 | it under the terms of the GNU General Public License as published by 10 | the Free Software Foundation, either version 3 of the License, or 11 | (at your option) any later version. 12 | 13 | Theengs is distributed in the hope that it will be useful, 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | GNU General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License 19 | along with this program. If not, see . 20 | */ 21 | 22 | #ifndef THEENGS_UTIL_H 23 | #define THEENGS_UTIL_H 24 | 25 | #include 26 | #include 27 | #include 28 | #include 29 | 30 | class TheengsUtils { 31 | public: 32 | static String toString(uint64_t input); 33 | static std::string processCert(const char* cert); 34 | static std::string generateHash(const std::string& input); 35 | static unsigned long uptime(); 36 | static void syncNTP(); 37 | static int unixtimestamp(); 38 | static String UTCtimestamp(); 39 | static void revert_hex_data(const char* in, char* out, int l); 40 | static long value_from_hex_data(const char* service_data, int offset, int data_length, bool reverse, bool canBeNegative = true); 41 | static double round2(float value); 42 | static bool _rawToHex(byte* in, char* out, int rawSize); 43 | static bool _hexToRaw(const char* in, byte* out, int rawSize); 44 | static char* ip2CharArray(IPAddress ip); 45 | static bool to_bool(String const& s); 46 | }; 47 | 48 | #endif -------------------------------------------------------------------------------- /lib/esp32-bt-lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /lib/esp32-bt-lib/README.rst: -------------------------------------------------------------------------------- 1 | ESP32 BT/BLE Stack Libraries 2 | ==================== 3 | 4 | This repository contains binary libraries supporting the ESP32 RF subsystems. It is used as a submodule within `Espressif IoT Development Framework`_ (ESP-IDF). 5 | 6 | Files in this repository are Copyright (C) 2015-2016 Espressif Systems. 7 | 8 | These binary libraries are provided under the same license as the parent esp-idf project - the Apache License 2.0 as provided in the file LICENSE. (The license text refers to this as "Object" form.) 9 | 10 | .. _Espressif IoT Development Framework: https://github.com/espressif/esp-idf 11 | -------------------------------------------------------------------------------- /lib/esp32-bt-lib/esp32/libbtdm_app.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1technophile/OpenMQTTGateway/9b6e835afbf46731d88e166967722423508c9cb9/lib/esp32-bt-lib/esp32/libbtdm_app.a -------------------------------------------------------------------------------- /main/actuatorSomfy.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 4 | Send and receiving command by MQTT 5 | 6 | This actor enables to: 7 | - receive MQTT data from a topic and send Somfy RTS remote control signals corresponding to the received MQTT data 8 | 9 | Copyright (C) 2020 Leon Kiefer 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | OpenMQTTGateway is distributed in the hope that it will be useful, 18 | but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | GNU General Public License for more details. 21 | You should have received a copy of the GNU General Public License 22 | along with this program. If not, see . 23 | */ 24 | #include "User_config.h" 25 | 26 | #ifdef ZactuatorSomfy 27 | # include 28 | # include 29 | # include 30 | 31 | # include "config_RF.h" 32 | # include "config_Somfy.h" 33 | # ifdef ZradioCC1101 34 | # include 35 | # endif 36 | 37 | void disableCurrentReceiver(); 38 | void enableActiveReceiver(); 39 | void initCC1101(); 40 | void setupSomfy(); 41 | 42 | void setupSomfy() { 43 | pinMode(RF_EMITTER_GPIO, OUTPUT); 44 | digitalWrite(RF_EMITTER_GPIO, LOW); 45 | 46 | # if defined(ESP32) 47 | if (!EEPROM.begin(max(4, SOMFY_REMOTE_NUM * 2))) { 48 | Log.error(F("failed to initialise EEPROM" CR)); 49 | } 50 | # elif defined(ESP8266) 51 | EEPROM.begin(max(4, SOMFY_REMOTE_NUM * 2)); 52 | # endif 53 | 54 | Log.trace(F("actuatorSomfy setup done " CR)); 55 | } 56 | 57 | # if jsonReceiving 58 | void XtoSomfy(const char* topicOri, JsonObject& jsonData) { 59 | if (cmpToMainTopic(topicOri, subjectMQTTtoSomfy)) { 60 | Log.trace(F("MQTTtoSomfy json data analysis" CR)); 61 | float txFrequency = jsonData["frequency"] | RFConfig.frequency; 62 | # ifdef ZradioCC1101 // set Receive off and Transmitt on 63 | disableCurrentReceiver(); 64 | ELECHOUSE_cc1101.SetTx(txFrequency); 65 | Log.notice(F("Transmit frequency: %F" CR), txFrequency); 66 | # endif 67 | 68 | const int remoteIndex = jsonData["remote"]; 69 | if (remoteIndex >= SOMFY_REMOTE_NUM) { 70 | Log.warning(F("actuatorSomfy remote does not exist" CR)); 71 | return; 72 | } 73 | const String commandData = jsonData["command"]; 74 | const Command command = getSomfyCommand(commandData); 75 | 76 | const int repeat = jsonData["repeat"] | 4; 77 | 78 | EEPROMRollingCodeStorage rollingCodeStorage(EEPROM_ADDRESS_START + remoteIndex * 2); 79 | SomfyRemote somfyRemote(RF_EMITTER_GPIO, somfyRemotes[remoteIndex], &rollingCodeStorage); 80 | somfyRemote.sendCommand(command, repeat); 81 | initCC1101(); 82 | enableActiveReceiver(); 83 | } 84 | } 85 | # endif 86 | 87 | #endif 88 | -------------------------------------------------------------------------------- /main/certs/default_client_cert.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | static const char* ss_client_cert PROGMEM = R"EOF(" 5 | -----BEGIN CERTIFICATE----- 6 | ... 7 | -----END CERTIFICATE----- 8 | ")EOF"; 9 | -------------------------------------------------------------------------------- /main/certs/default_client_key.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | static const char* ss_client_key PROGMEM = R"EOF(" 5 | -----BEGIN RSA PRIVATE KEY----- 6 | ... 7 | -----END RSA PRIVATE KEY----- 8 | ")EOF"; 9 | -------------------------------------------------------------------------------- /main/certs/default_ota_cert.h: -------------------------------------------------------------------------------- 1 | // The certificate must be in PEM ascii format. 2 | // The default certificate is for ota.openmqttgateway.com 3 | #pragma once 4 | #include 5 | 6 | static const char* OTAserver_cert PROGMEM = R"EOF(" 7 | -----BEGIN CERTIFICATE----- 8 | MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF 9 | ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6 10 | b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL 11 | MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv 12 | b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj 13 | ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM 14 | 9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw 15 | IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6 16 | VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L 17 | 93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm 18 | jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC 19 | AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA 20 | A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI 21 | U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs 22 | N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv 23 | o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU 24 | 5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy 25 | rqXRfboQnoZsG4q5WTP468SQvvG5 26 | -----END CERTIFICATE----- 27 | ")EOF"; 28 | -------------------------------------------------------------------------------- /main/certs/default_server_cert.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | static const char* ss_server_cert PROGMEM = R"EOF(" 5 | -----BEGIN CERTIFICATE----- 6 | ... 7 | -----END CERTIFICATE----- 8 | ")EOF"; 9 | -------------------------------------------------------------------------------- /main/config_2G.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This gateway enables to set your parameters for the 2G gateway 8 | 9 | Copyright: (c)Florian ROBERT 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | 18 | OpenMQTTGateway is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program. If not, see . 25 | */ 26 | #ifndef config_2G_h 27 | #define config_2G_h 28 | 29 | #include "TheengsCommon.h" 30 | 31 | extern void setup2G(); 32 | extern bool _2GtoX(); 33 | extern void Xto2G(const char* topicOri, const char* datacallback); 34 | extern void Xto2G(const char* topicOri, JsonObject& SMSdata); 35 | /*-------------------2G topics & parameters----------------------*/ 36 | //433Mhz MQTT Subjects and keys 37 | #define subjectMQTTto2G "/commands/MQTTto2G" 38 | #define subject2GtoMQTT "/2GtoMQTT" 39 | #define subjectGTW2GtoMQTT "/2GtoMQTT" 40 | #define _2GPhoneKey "PHO_" // phone number define the phone number to send the SMS MQTT->2G 41 | 42 | #define _2G_MODULE_BAUDRATE 9600 43 | #define _2G_MIN_SIGNAL 30 44 | #define _2G_MAX_SIGNAL 1000 45 | 46 | /*-------------------PIN DEFINITIONS----------------------*/ 47 | #if !defined(_2G_TX_GPIO) || !defined(_2G_RX_GPIO) || !defined(_2G_PWR_GPIO) 48 | # ifdef ESP8266 49 | # define _2G_TX_GPIO D6 //D6 to A6 RX, 50 | # define _2G_RX_GPIO D7 //D7 to A6 TX 51 | # define _2G_PWR_GPIO D5 // connect a MOSFET to power on and off your A6/7 module 52 | # elif defined(ESP32) 53 | # define _2G_TX_GPIO 16 //D16 to A6 RX, 54 | # define _2G_RX_GPIO 17 //D17 to A6 TX 55 | # define _2G_PWR_GPIO 5 // connect a MOSFET to power on and off your A6/7 module 56 | # else 57 | # define _2G_TX_GPIO 6 //D6 to A6 RX, 58 | # define _2G_RX_GPIO 7 //D7 to A6 TX 59 | # define _2G_PWR_GPIO 5 // connect a MOSFET to power on and off your A6/7 module 60 | # endif 61 | #endif 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /main/config_ADC.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This files enables to set your parameter for the ADC value 8 | 9 | Copyright: (c)Florian ROBERT 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | 18 | OpenMQTTGateway is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program. If not, see . 25 | */ 26 | #ifndef config_ADC_h 27 | #define config_ADC_h 28 | 29 | extern void setupADC(); 30 | extern void ADCtoX(); 31 | extern void MeasureADC(); 32 | /*----------------------------USER PARAMETERS-----------------------------*/ 33 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 34 | #define ADCTOPIC "/ADCtoMQTT" 35 | 36 | #if !defined(TimeBetweenReadingADC) || (TimeBetweenReadingADC < 200) 37 | # define TimeBetweenReadingADC 500 // time between 2 ADC readings, minimum 200 to let the time of the ESP to keep the connection 38 | #endif 39 | 40 | #ifndef ThresholdReadingADC 41 | # define ThresholdReadingADC 50 // following the comparison between the previous value and the current one +- the threshold the value will be published or not 42 | #endif 43 | 44 | #if !defined(NumberOfReadingsADC) || (NumberOfReadingsADC < 1) 45 | # define NumberOfReadingsADC 1 // number of readings for better accuracy: avg adc = sum of adc / num readings 46 | #endif 47 | 48 | #ifndef MinTimeInSecBetweenPublishingADC 49 | # define MinTimeInSecBetweenPublishingADC 0 // pub at least at defined interval - useful to publish values in case they do not change so much ; 0 = disabled 50 | #endif 51 | 52 | /*-------------------PIN DEFINITIONS----------------------*/ 53 | #if defined(ESP8266) || !defined(ADC_GPIO) 54 | # define ADC_GPIO A0 //on nodeMCU this is D3 pin 55 | #endif 56 | 57 | #endif 58 | -------------------------------------------------------------------------------- /main/config_AHTx0.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This is the Climate Addon: 8 | - Measures Temperature, Humidity 9 | - Generates Values for: Temperature in degrees C and F, Humidity in % 10 | - Required Hardware Module: AHTX0 (AHT10 & AHT20) 11 | - Required Library: Adafruit AHTX0 by Adafruit 12 | 13 | Connection Schemata: 14 | -------------------- 15 | 16 | AHT10 ------> ESP8266 17 | ======================= 18 | Vcc ---------> 3v3 (3V) 19 | GND ---------> GND 20 | SCL ---------> D1 21 | SDA ---------> D2 22 | 23 | This file is part of OpenMQTTGateway. 24 | 25 | OpenMQTTGateway is free software: you can redistribute it and/or modify 26 | it under the terms of the GNU General Public License as published by 27 | the Free Software Foundation, either version 3 of the License, or 28 | (at your option) any later version. 29 | 30 | OpenMQTTGateway is distributed in the hope that it will be useful, 31 | but WITHOUT ANY WARRANTY; without even the implied warranty of 32 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 33 | GNU General Public License for more details. 34 | 35 | You should have received a copy of the GNU General Public License 36 | along with this program. If not, see . 37 | */ 38 | #ifndef config_AHTx0_h 39 | #define config_AHTx0_h 40 | 41 | extern void setupZsensorAHTx0(); 42 | extern void MeasureAHTTempHum(); 43 | 44 | #define AHTx0_always true // if false when the current value of the parameter is the same as previous one don't send it by MQTT 45 | #define TimeBetweenReadingAHTx0 30000 46 | 47 | /*----------------------------USER PARAMETERS-----------------------------*/ 48 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 49 | #define AHTTOPIC "/CLIMAtoMQTT/aht" 50 | 51 | #if defined(ESP32) 52 | # if !defined(AHT_I2C_SDA) || !defined(AHT_I2C_SCL) 53 | # define AHT_I2C_SDA 16 54 | # define AHT_I2C_SCL 0 55 | # endif 56 | #endif 57 | 58 | #endif -------------------------------------------------------------------------------- /main/config_BH1750.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This files enables to set your parameter for the BH1750 sensor 8 | 9 | Copyright: (c) Hans-Juergen Dinges 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | 18 | OpenMQTTGateway is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program. If not, see . 25 | 26 | Connection Schemata: 27 | -------------------- 28 | 29 | BH1750 ------> ESP8266 30 | ================================== 31 | Vcc ---------> (5V) 32 | GND ---------> GND 33 | SCL ---------> D1 34 | SDA ---------> D2 35 | ADD ---------> N/C (Not Connected) 36 | 37 | */ 38 | #ifndef config_BH1750_h 39 | #define config_BH1750_h 40 | 41 | extern void setupZsensorBH1750(); 42 | extern void MeasureLightIntensity(); 43 | 44 | #define bh1750_always true // if false when the current value for light Level (Lux) is the same as previous one don't send it by MQTT 45 | #define TimeBetweenReadingBH1750 30000 46 | 47 | /*----------------------------USER PARAMETERS-----------------------------*/ 48 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 49 | #define subjectBH1750toMQTT "/BH1750toMQTT" 50 | 51 | #define BH1750_I2C_ADDR 0x23; // Light Sensor I2C Address 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /main/config_C37_YL83_HMRD.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a wifi or ethernet gateway between your RF/infrared IR signal and a MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This file sets parameters for the integration of C-37 YL-83 HM-RD water detection sensors 8 | 9 | This file is part of OpenMQTTGateway. 10 | 11 | OpenMQTTGateway is free software: you can redistribute it and/or modify 12 | it under the terms of the GNU General Public License as published by 13 | the Free Software Foundation, either version 3 of the License, or 14 | (at your option) any later version. 15 | 16 | OpenMQTTGateway is distributed in the hope that it will be useful, 17 | but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | GNU General Public License for more details. 20 | 21 | You should have received a copy of the GNU General Public License 22 | along with this program. If not, see . 23 | */ 24 | #ifndef config_C37_YL83_HMRD_h 25 | #define config_C37_YL83_HMRD_h 26 | 27 | extern void setupZsensorC37_YL83_HMRD(); 28 | extern void C37_YL83_HMRDtoX(); 29 | extern void MeasureC37_YL83_HMRDWater(); 30 | 31 | /*----------------------------USER PARAMETERS-----------------------------*/ 32 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 33 | #define C37_YL83_HMRD_TOPIC "/WATERtoMQTT/c37_yk83_hmrd" 34 | #define C37_YL83_HMRD_ALWAYS true // if false only published current water leak detection if has changed from previous reading 35 | #ifndef C37_YL83_HMRD_INTERVAL_SEC 36 | # define C37_YL83_HMRD_INTERVAL_SEC 10000 // time between C-37, YL-83, HM-RD readings (ms) 37 | #endif 38 | #ifndef C37_YL83_HMRD_RESOLUTION 39 | # define C37_YL83_HMRD_RESOLUTION 10 // conversion times: 9 bit (93.75 ms), 10 bit (187.5 ms), 11 bit (375 ms), 12 bit (750 ms) 40 | #endif 41 | /*-------------------PIN DEFINITIONS----------------------*/ 42 | 43 | #ifndef C37_YL83_HMRD_Digital_GPIO 44 | # if defined(ESP8266) 45 | # define C37_YL83_HMRD_Digital_GPIO 14 46 | # elif defined(ESP32) 47 | # define C37_YL83_HMRD_Digital_GPIO GPIO_NUM_14 48 | # else 49 | # define C37_YL83_HMRD_Digital_GPIO 14 50 | # endif 51 | #endif 52 | 53 | #ifndef C37_YL83_HMRD_Analog_GPIO 54 | # if defined(ESP8266) 55 | # define C37_YL83_HMRD_Analog_GPIO A0 56 | # elif defined(ESP32) 57 | # define C37_YL83_HMRD_Analog_GPIO GPIO_NUM_35 58 | # else 59 | # define C37_YL83_HMRD_Analog_GPIO A0 60 | # endif 61 | #endif 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /main/config_DHT.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This files enables to set your parameter for the DHT11/22 sensor 8 | 9 | Copyright: (c)Florian ROBERT 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | 18 | OpenMQTTGateway is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program. If not, see . 25 | */ 26 | #ifndef config_DHT_h 27 | #define config_DHT_h 28 | 29 | extern void setupDHT(); 30 | extern void MeasureTempAndHum(); 31 | 32 | /*----------------------------USER PARAMETERS-----------------------------*/ 33 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 34 | #define DHTTOPIC "/DHTtoMQTT/dht1" 35 | #define dht_always true // if false when the current value for temp or hum is the same as previous one don't send it by MQTT 36 | #define TimeBetweenReadingDHT 30000 // time between 2 DHT readings 37 | /*-------------DHT SENSOR TYPE-------------*/ 38 | //#define DHT_SENSOR_TYPE DHT11 //uncomment for DHT11 Sensor 39 | //#define DHT_SENSOR_TYPE DHT21 //uncomment for DHT21 Sensor 40 | #ifndef DHT_SENSOR_TYPE 41 | # define DHT_SENSOR_TYPE DHT22 //uncomment for DHT22 Sensor (default for backwards compatibility) 42 | #endif 43 | /*-------------------PIN DEFINITIONS----------------------*/ 44 | #ifndef DHT_RECEIVER_GPIO 45 | # if defined(ESP8266) 46 | # define DHT_RECEIVER_GPIO 5 //5 = D1 you can put 14 = D5 if you don't use HCSR501 sensor and the RFM69 47 | # elif defined(ESP32) 48 | # define DHT_RECEIVER_GPIO 16 49 | # else 50 | # define DHT_RECEIVER_GPIO 8 51 | # endif 52 | #endif 53 | 54 | #endif -------------------------------------------------------------------------------- /main/config_DS1820.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a wifi or ethernet gateway between your RF/infrared IR signal and a MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This file sets parameters for the integration of 1-wire DS1820 temperature sensors 8 | 9 | Copyright (c) 2020 Lars Wessels 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | 18 | OpenMQTTGateway is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program. If not, see . 25 | */ 26 | #ifndef config_DS1820_h 27 | #define config_DS1820_h 28 | 29 | extern void setupZsensorDS1820(); 30 | extern void DS1820toX(); 31 | extern void MeasureDS1820Temp(); 32 | extern void pubOneWire_HADiscovery(); 33 | 34 | /*----------------------------USER PARAMETERS-----------------------------*/ 35 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 36 | #define OW_TOPIC "/OneWiretoMQTT/ds1820" 37 | #define OW_MAX_SENSORS 8 // query max. sensors on 1-wire bus 38 | #define DS1820_ALWAYS true // if false only published current temperature if has changed from previous reading 39 | #ifndef DS1820_INTERVAL_SEC 40 | # define DS1820_INTERVAL_SEC 60UL // time between DS1820 readings (seconds) 41 | #endif 42 | #ifndef DS1820_RESOLUTION 43 | # define DS1820_RESOLUTION 10 // conversion times: 9 bit (93.75 ms), 10 bit (187.5 ms), 11 bit (375 ms), 12 bit (750 ms) 44 | #endif 45 | #define DS1820_DETAILS true // publish extended info for each sensor (resolution, address, type) 46 | #define DS1820_CONV_TIME 2000UL // trigger conversion before requesting temperature readings (ms) 47 | /*-------------------PIN DEFINITIONS----------------------*/ 48 | 49 | #ifndef DS1820_OWBUS_GPIO 50 | # if defined(ESP8266) 51 | # define DS1820_OWBUS_GPIO 2 52 | # elif defined(ESP32) 53 | # define DS1820_OWBUS_GPIO 2 54 | # else 55 | # define DS1820_OWBUS_GPIO 2 56 | # endif 57 | #endif 58 | 59 | #endif 60 | -------------------------------------------------------------------------------- /main/config_GFSunInverter.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a wifi or ethernet gateway between your GridFree SUN-2000G inverter and a MQTT broker. 5 | Send inverter metrics by MQTT. 6 | 7 | This gateway enables to: 8 | - publish MQTT data, which are received by RS232 ModBus. 9 | 10 | Library for read metrics from GWL Power, GridFree SUN-2000G inverter . 11 | 12 | This file is part of OpenMQTTGateway. 13 | 14 | OpenMQTTGateway is free software: you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation, either version 3 of the License, or 17 | (at your option) any later version. 18 | 19 | OpenMQTTGateway is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | 24 | You should have received a copy of the GNU General Public License 25 | along with this program. If not, see . 26 | */ 27 | #ifndef config_GFSunInverter_h 28 | #define config_GFSunInverter_h 29 | 30 | extern void setupGFSunInverter(); 31 | extern void ZgatewayGFSunInverterMQTT(); 32 | 33 | /*----------------------------USER PARAMETERS-----------------------------*/ 34 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 35 | #define subjectRFtoMQTT "/GFSuntoMQTT" 36 | #ifndef GFSUNINVERTER_DELAY 37 | # define GFSUNINVERTER_DELAY 10000 38 | #endif 39 | 40 | // Enable to publish a whole dbus registry 41 | // #define GFSUNINVERTER_DEVEL 1 42 | 43 | #endif -------------------------------------------------------------------------------- /main/config_GPIOInput.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This files enables to set your parameter for the GPIOInput sensor 8 | 9 | Copyright: (c)Florian ROBERT 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | 18 | OpenMQTTGateway is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program. If not, see . 25 | */ 26 | #ifndef config_GPIOInput_h 27 | #define config_GPIOInput_h 28 | 29 | extern void setupGPIOInput(); 30 | extern void GPIOInputtoX(); 31 | extern void MeasureGPIOInput(); 32 | /*----------------------------USER PARAMETERS-----------------------------*/ 33 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 34 | #define subjectGPIOInputtoMQTT "/GPIOInputtoMQTT" 35 | #define GPIOInputDebounceDelay 60 //debounce time, increase if there are issues 36 | 37 | /*-------------------PIN DEFINITIONS----------------------*/ 38 | #ifndef INPUT_GPIO 39 | # if defined(ESP8266) || defined(ESP32) 40 | # define INPUT_GPIO 13 41 | # else 42 | # define INPUT_GPIO 7 43 | # endif 44 | #endif 45 | 46 | #ifndef GPIO_INPUT_TYPE 47 | # define GPIO_INPUT_TYPE INPUT_PULLUP 48 | #endif 49 | 50 | #define INPUT_GPIO_ON_VALUE "HIGH" 51 | #define INPUT_GPIO_OFF_VALUE "LOW" 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /main/config_GPIOKeyCode.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This files enables to set your parameter for the GPIOKeyCode multi input 8 | 9 | Copyright: (c)Grzegorz Rajtar 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | 18 | OpenMQTTGateway is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program. If not, see . 25 | */ 26 | #ifndef config_GPIOKeyCode_h 27 | #define config_GPIOKeyCode_h 28 | 29 | extern void setupGPIOKeyCode(); 30 | extern void GPIOKeyCodetoX(); 31 | extern void MeasureGPIOKeyCode(); 32 | /*----------------------------USER PARAMETERS-----------------------------*/ 33 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 34 | #define subjectGPIOKeyCodetoMQTT "/keycode" 35 | #define subjectGPIOKeyCodeStatetoMQTT subjectGPIOKeyCodetoMQTT "/status" 36 | #define GPIOKeyCodeDebounceDelay 60 //debounce time, increase if there are issues 37 | 38 | /*-------------------PIN DEFINITIONS----------------------*/ 39 | #if defined(ESP8266) || defined(ESP32) 40 | 41 | # ifndef GPIOKeyCode_LATCH_GPIO 42 | # define GPIOKeyCode_LATCH_GPIO 12 //D6 43 | # endif 44 | # ifndef GPIOKeyCode_D0_GPIO 45 | # define GPIOKeyCode_D0_GPIO 14 //D5 46 | # endif 47 | # ifndef GPIOKeyCode_D1_GPIO 48 | # define GPIOKeyCode_D1_GPIO 5 //D1 49 | # endif 50 | # ifndef GPIOKeyCode_D2_GPIO 51 | # define GPIOKeyCode_D2_GPIO 13 //D7 52 | # endif 53 | # ifndef GPIOKeyCode_D3_GPIO 54 | # define GPIOKeyCode_D3_GPIO XX //?? 55 | # endif 56 | #else 57 | // must define !!! 58 | #endif 59 | 60 | #endif -------------------------------------------------------------------------------- /main/config_HCSR04.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This files enables to set your parameter for the HCSR04 sensor 8 | 9 | Copyright: (c) mpember 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | 18 | OpenMQTTGateway is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program. If not, see . 25 | 26 | Connection Schemata: 27 | -------------------- 28 | 29 | HC-SR04 ------> ESP8266 30 | ======================= 31 | Vcc ---------> Vu (5V) 32 | GND ---------> GND 33 | TRI ---------> D6 34 | ECH ---------> D7 35 | 36 | */ 37 | #ifndef config_HCSR04_h 38 | #define config_HCSR04_h 39 | 40 | extern void setupHCSR04(); 41 | extern void MeasureDistance(); 42 | 43 | #define HCSR04_always true // If false, the current value of the parameter is the same as previous one don't send it by MQTT 44 | #define TimeBetweenReadingHCSR04 5000 45 | 46 | /*----------------------------USER PARAMETERS-----------------------------*/ 47 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 48 | #define subjectHCSR04 "/DISTtoMQTT/sr04" 49 | 50 | /*-------------------PIN DEFINITIONS----------------------*/ 51 | #if defined(ESP8266) 52 | # define HCSR04_TRI_GPIO D6 53 | # define HCSR04_ECH_GPIO D7 54 | #elif defined(ESP32) 55 | # define HCSR04_TRI_GPIO 16 // NOT TESTED 56 | # define HCSR04_ECH_GPIO 17 // NOT TESTED 57 | #else 58 | # define HCSR04_TRI_GPIO 6 // NOT TESTED 59 | # define HCSR04_ECH_GPIO 5 // NOT TESTED 60 | #endif 61 | 62 | #endif -------------------------------------------------------------------------------- /main/config_HCSR501.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This files enables to set your parameter for the HC SR-501 sensor 8 | 9 | Copyright: (c)Florian ROBERT 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | 18 | OpenMQTTGateway is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program. If not, see . 25 | */ 26 | #ifndef config_HCSR501_h 27 | #define config_HCSR501_h 28 | 29 | extern void setupHCSR501(); 30 | extern void HCSR501toX(); 31 | extern void MeasureHCSR501(); 32 | /*----------------------------USER PARAMETERS-----------------------------*/ 33 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 34 | #define subjectHCSR501toMQTT "/HCSR501toMQTT" 35 | //#define HCSR501_LED_NOTIFY_GPIO 4 //Uncomment this line to mirror the state of the PIR sensor to the specified GPIO 36 | 37 | #if defined(HCSR501_LED_NOTIFY_GPIO) && !defined(HCSR501_LED_ON) 38 | # define HCSR501_LED_ON HIGH 39 | #endif 40 | 41 | #ifndef TimeBeforeStartHCSR501 42 | # define TimeBeforeStartHCSR501 60000 //define the time necessary for HC SR501 init 43 | #endif 44 | 45 | /*-------------------PIN DEFINITIONS----------------------*/ 46 | #ifndef HCSR501_GPIO 47 | # if defined(ESP8266) 48 | # define HCSR501_GPIO D5 49 | # elif defined(ESP32) 50 | # define HCSR501_GPIO 5 51 | # else 52 | # define HCSR501_GPIO 7 53 | # endif 54 | #endif 55 | 56 | #endif -------------------------------------------------------------------------------- /main/config_HTU21.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This is the Climate Addon: 8 | - Measures Temperature, Humidity and Pressure 9 | - Generates Values for: Temperature in degrees C and F, Humidity in %, Pressure in Pa, Altitude in Meter and Feet 10 | - Required Hardware Module: HTU21 11 | - Required Library: SparkFun HTU21 Library v1.1.3 12 | 13 | Connection Schemata: 14 | -------------------- 15 | 16 | HTU21 ------> ESP8266 17 | ====================== 18 | Vcc ---------> Vu (5V) 19 | GND ---------> GND 20 | SCL ---------> D1 21 | SDA ---------> D2 22 | 23 | This file is part of OpenMQTTGateway. 24 | 25 | OpenMQTTGateway is free software: you can redistribute it and/or modify 26 | it under the terms of the GNU General Public License as published by 27 | the Free Software Foundation, either version 3 of the License, or 28 | (at your option) any later version. 29 | 30 | OpenMQTTGateway is distributed in the hope that it will be useful, 31 | but WITHOUT ANY WARRANTY; without even the implied warranty of 32 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 33 | GNU General Public License for more details. 34 | 35 | You should have received a copy of the GNU General Public License 36 | along with this program. If not, see . 37 | */ 38 | #ifndef config_HTU21_h 39 | #define config_HTU21_h 40 | 41 | extern void setupZsensorHTU21(); 42 | extern void MeasureTempHum(); 43 | 44 | #define htu21_always true // if false when the current value of the parameter is the same as previous one don't send it by MQTT 45 | #define TimeBetweenReadinghtu21 30000 46 | 47 | /*----------------------------USER PARAMETERS-----------------------------*/ 48 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 49 | #define HTUTOPIC "/CLIMAtoMQTT/htu" 50 | 51 | #if defined(ESP32) 52 | # if !defined(I2C_SDA) || !defined(I2C_SCL) 53 | # define I2C_SDA 16 54 | # define I2C_SCL 0 55 | # endif 56 | #endif 57 | 58 | #endif -------------------------------------------------------------------------------- /main/config_INA226.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This files enables to set your parameter for the INA226 sensor 8 | 9 | Copyright: (c)Florian ROBERT 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | 18 | OpenMQTTGateway is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program. If not, see . 25 | */ 26 | #ifndef config_INA226_h 27 | #define config_INA226_h 28 | 29 | extern void setupINA226(); 30 | extern void INA226toX(); 31 | extern void MeasureINA226(); 32 | 33 | /*----------------------------USER PARAMETERS-----------------------------*/ 34 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 35 | #define subjectINA226toMQTT "/INA226toMQTT" 36 | #define TimeBetweenReadingINA226 30000 // time between 2 INA226 readings 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /main/config_LM75.h: -------------------------------------------------------------------------------- 1 | /* 2 | OpenMQTTGateway Addon - ESP8266 or Arduino program for home automation 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This is a Temperature Addon: 8 | - Measures Temperature 9 | - Generates Values for: Temperature in degrees C and F 10 | - Required Hardware Module: LM75 or NCT75 11 | - Required Library: jeremycole/I2C Temperature Sensors derived from the LM75 12 | 13 | Connection Schemata: 14 | -------------------- 15 | 16 | LM75 ------> ESP8266 17 | ====================== 18 | Vcc ---------> Vu (5V) 19 | GND ---------> GND 20 | SCL ---------> D1 21 | SDA ---------> D2 22 | 23 | This file is part of OpenMQTTGateway. 24 | 25 | OpenMQTTGateway is free software: you can redistribute it and/or modify 26 | it under the terms of the GNU General Public License as published by 27 | the Free Software Foundation, either version 3 of the License, or 28 | (at your option) any later version. 29 | 30 | OpenMQTTGateway is distributed in the hope that it will be useful, 31 | but WITHOUT ANY WARRANTY; without even the implied warranty of 32 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 33 | GNU General Public License for more details. 34 | 35 | You should have received a copy of the GNU General Public License 36 | along with this program. If not, see . 37 | */ 38 | #ifndef config_LM75_h 39 | #define config_LM75_h 40 | 41 | extern void setupLM75(); 42 | extern void LM75toX(); 43 | 44 | #define lm75_always true // if false when the current value of the parameter is the same as previous one don't send it by MQTT 45 | #define TimeBetweenReadinglm75 30000 46 | 47 | /*----------------------------USER PARAMETERS-----------------------------*/ 48 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 49 | #define LM75TOPIC "/TEMPtoMQTT/lm75" 50 | 51 | #if defined(ESP32) 52 | # if !defined(I2C_SDA) || !defined(I2C_SCL) 53 | # define I2C_SDA 16 54 | # define I2C_SCL 0 55 | # endif 56 | #endif 57 | 58 | #endif -------------------------------------------------------------------------------- /main/config_M5.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This files enables to use M5Stick C board components (display) 8 | 9 | Copyright: (c)Florian ROBERT 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | 18 | OpenMQTTGateway is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program. If not, see . 25 | */ 26 | #ifndef config_M5_h 27 | #define config_M5_h 28 | 29 | #ifdef ZboardM5STICKC 30 | # include 31 | #endif 32 | #ifdef ZboardM5STICKCP 33 | # include 34 | #endif 35 | #ifdef ZboardM5STACK 36 | # include 37 | #endif 38 | #ifdef ZboardM5TOUGH 39 | # include 40 | #endif 41 | 42 | extern void setupM5(); 43 | extern void loopM5(); 44 | /*----------------------------USER PARAMETERS-----------------------------*/ 45 | /*---------------DEFINE SCREEN BRIGHTNESS------------------*/ 46 | #ifdef ZboardM5TOUGH // Sleep brightness doesn't seem to work for the moment on Tough 47 | # ifndef SLEEP_LCD_BRIGHTNESS 48 | # define SLEEP_LCD_BRIGHTNESS 15 // 0 to 100 49 | # endif 50 | #else 51 | # ifndef SLEEP_LCD_BRIGHTNESS 52 | # define SLEEP_LCD_BRIGHTNESS 2 // 0 to 100 53 | # endif 54 | #endif 55 | #ifndef NORMAL_LCD_BRIGHTNESS 56 | # define NORMAL_LCD_BRIGHTNESS 100 // 0 to 100 57 | #endif 58 | /*---------------DEFINE SLEEP BUTTON------------------*/ 59 | #ifndef SLEEP_BUTTON 60 | # define SLEEP_BUTTON 33 61 | #endif 62 | /*-------------------DEFINE LOG LEVEL----------------------*/ 63 | #ifndef LOG_LEVEL_LCD 64 | # define LOG_LEVEL_LCD LOG_LEVEL_WARNING // Default to only display Warning level messages, if we go down below warning the size of the text to display can make the M5 restarting 65 | #endif 66 | #ifndef LOG_TO_LCD 67 | # define LOG_TO_LCD true // Default to display log messages on display 68 | #endif 69 | /*-------------------DEFINE MQTT TOPIC FOR CONFIG----------------------*/ 70 | #define subjectMQTTtoM5set "/commands/MQTTtoM5/config" 71 | 72 | // Simple print macro 73 | 74 | // Simple construct for displaying message in lcd and oled displays 75 | 76 | #define displayPrint(...) \ 77 | if (SYSConfig.powerMode < 1) M5Print(__VA_ARGS__) // only print if not in low power mode 78 | #define lpDisplayPrint(...) M5Print(__VA_ARGS__) // print in low power mode 79 | 80 | void M5Print(char*, char* = "", char* = ""); 81 | 82 | #endif -------------------------------------------------------------------------------- /main/config_MQ2.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This is the MQ2 GAS Sensor Addon based on modules with a MQ: 8 | - Measures flammable gas 9 | - Required Hardware Module: MQ2 10 | 11 | Connection Scheme: 12 | -------------------- 13 | 14 | MQ-2 -------> ESP8266 15 | ========================== 16 | Vcc ---------> 3.3V or 5V 17 | GND ---------> GND 18 | A0 ----------> A0 19 | D0 ----------> D4 20 | 21 | This file is part of OpenMQTTGateway. 22 | 23 | OpenMQTTGateway is free software: you can redistribute it and/or modify 24 | it under the terms of the GNU General Public License as published by 25 | the Free Software Foundation, either version 3 of the License, or 26 | (at your option) any later version. 27 | 28 | OpenMQTTGateway is distributed in the hope that it will be useful, 29 | but WITHOUT ANY WARRANTY; without even the implied warranty of 30 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 31 | GNU General Public License for more details. 32 | 33 | You should have received a copy of the GNU General Public License 34 | along with this program. If not, see . 35 | */ 36 | #ifndef config_MQ2_h 37 | #define config_MQ2_h 38 | 39 | extern void setupZsensorMQ2(); 40 | extern void MQ2toX(); 41 | 42 | #ifndef MQ2SENSORADCPIN 43 | # ifdef ESP32 44 | # define MQ2SENSORADCPIN 5 //MQ2 Gas sensor reading = ADC0 45 | # else 46 | # define MQ2SENSORADCPIN A0 //MQ2 Gas sensor reading = ADC0 47 | # endif 48 | #endif 49 | 50 | #ifndef MQ2SENSORDETECTPIN 51 | # ifdef ESP32 52 | # define MQ2SENSORDETECTPIN 24 //MQ2 Gas sensor detected flag 53 | # else 54 | # define MQ2SENSORDETECTPIN D4 //MQ2 Gas sensor detected flag 55 | # endif 56 | #endif 57 | 58 | #ifndef TimeBetweenReadingmq2 59 | # define TimeBetweenReadingmq2 10000 60 | #endif 61 | /*----------------------------USER PARAMETERS-----------------------------*/ 62 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 63 | #define subjectMQ2toMQTT "/GAStoMQTT/mq2" 64 | 65 | #endif -------------------------------------------------------------------------------- /main/config_PWM.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | This files enables you to set your parameters for the PWM actuator 5 | 6 | Copyright: (c) 7 | 8 | This file is part of OpenMQTTGateway. 9 | 10 | OpenMQTTGateway is free software: you can redistribute it and/or modify 11 | it under the terms of the GNU General Public License as published by 12 | the Free Software Foundation, either version 3 of the License, or 13 | (at your option) any later version. 14 | 15 | OpenMQTTGateway is distributed in the hope that it will be useful, 16 | but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | GNU General Public License for more details. 19 | 20 | You should have received a copy of the GNU General Public License 21 | along with this program. If not, see . 22 | */ 23 | 24 | /*-------------------PWM topics & parameters----------------------*/ 25 | #ifndef config_PWM_h 26 | #define config_PWM_h 27 | 28 | #include "TheengsCommon.h" 29 | // PWM MQTT Subjects 30 | 31 | extern void setupPWM(); 32 | extern void PWMLoop(); 33 | extern void XtoPWM(const char*, JsonObject&); 34 | 35 | #define subjectMQTTtoPWM "/commands/MQTTtoPWM" 36 | #define subjectMQTTtoPWMset subjectMQTTtoPWM "/set" //set channel(s) with JSON struct {"r":0-1,"g":0-1,"b":0-1,"w0":0-1,"w0":0-1,"fade":} 37 | #define subjectMQTTtoPWMcalibrate subjectMQTTtoPWM "/calibrate" //set calibration data JSON struct {"gamma-r":0.5-4.0,"min-r":0-1,"max-r":0-1 etc. } 38 | 39 | // Edit the following, or declare them in the configuration env, to declare 40 | // the channel names and corresponding output pins 41 | #ifndef PWM_CHANNEL_NAMES 42 | # define PWM_CHANNEL_NAMES \ 43 | { "r", "g", "b", "w0", "w1" } 44 | #endif 45 | #ifndef PWM_CHANNEL_PINS 46 | # define PWM_CHANNEL_PINS \ 47 | { 25, 33, 32, 23, 22 } 48 | #endif 49 | 50 | // Gamma defines a power curve that is applied to convert the input values 51 | // to the linear PWM outputs. 52 | // For LED control, the gamma can be used to make the inputs be more 53 | // perceptually linear. 54 | // For controlling other things that require strict linear control, set 55 | // the gamma to 1 and leave it alone. 56 | // This just defines the default gamma to use for all channels. 57 | // The gamma for each channel can be modified using the calibrate MQTT topic. 58 | #ifndef PWM_DEFAULT_GAMMA 59 | # define PWM_DEFAULT_GAMMA 2.2f 60 | #endif 61 | 62 | #endif // config_PWM_h 63 | -------------------------------------------------------------------------------- /main/config_RN8209.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This files enables to set your parameter for the RN8209 sensor 8 | 9 | Copyright: (c)Florian ROBERT 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | 18 | OpenMQTTGateway is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program. If not, see . 25 | */ 26 | #ifndef config_RN8209_h 27 | #define config_RN8209_h 28 | 29 | extern void setupRN8209(); 30 | extern void RN8209toX(); 31 | /*----------------------------USER PARAMETERS-----------------------------*/ 32 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 33 | #define subjectRN8209toMQTT "/RN8209toMQTT" 34 | 35 | /*-------------CALIBRATION PARAMETERS----------------*/ 36 | #ifndef RN8209_KU 37 | # define RN8209_KU 18570 38 | #endif 39 | #ifndef RN8209_KIA 40 | # define RN8209_KIA 272433 41 | #endif 42 | #ifndef RN8209_EC 43 | # define RN8209_EC 28250 44 | #endif 45 | 46 | #ifndef RN8209_TASK_STACK_SIZE_OVERRIDE 47 | # define RN8209_TASK_STACK_SIZE_OVERRIDE 5500 48 | #endif 49 | 50 | #ifndef TimeBetweenReadingRN8209 51 | # define TimeBetweenReadingRN8209 500 // time between 2 RN8209 readings in ms 52 | #endif 53 | 54 | #ifndef TimeBetweenPublishingRN8209 55 | # define TimeBetweenPublishingRN8209 60000 // time between 2 RN8209 publishing in ms 56 | #endif 57 | #ifndef MinCurrentThreshold 58 | # define MinCurrentThreshold 0.1 // (A) Minimum current change that will trigger the publishing of the RN8209 measurements 59 | #endif 60 | #ifndef MinVoltageThreshold 61 | # define MinVoltageThreshold 2 // (V) Minimum voltage change that will trigger the publishing of the RN8209 measurements 62 | #endif 63 | #endif 64 | -------------------------------------------------------------------------------- /main/config_SHTC3.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This files enables to set your parameter for the SHTC311/22 sensor 8 | 9 | Copyright: (c)Florian ROBERT 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | 18 | OpenMQTTGateway is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program. If not, see . 25 | */ 26 | #ifndef config_SHTC3_h 27 | #define config_SHTC3_h 28 | 29 | extern void setupSHTC3(); 30 | extern void SHTC3toX(); 31 | 32 | /*----------------------------USER PARAMETERS-----------------------------*/ 33 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 34 | #define SHTC3TOPIC "/SHTC3toMQTT/shtc31" 35 | #define shtc3_always true // if false when the current value for temp or hum is the same as previous one don't send it by MQTT 36 | #define TimeBetweenReadingSHTC3 30000 // time between 2 SHTC3 readings 37 | /*-------------SHTC3 SENSOR TYPE-------------*/ 38 | //#define SHTC3_SENSOR_TYPE SHTC311 //uncomment for SHTC311 Sensor 39 | //#define SHTC3_SENSOR_TYPE SHTC321 //uncomment for SHTC321 Sensor 40 | #define SHTC3_SENSOR_TYPE SHTC322 //uncomment for SHTC322 Sensor (default for backwards compatibility) 41 | /*-------------------PIN DEFINITIONS----------------------*/ 42 | #ifndef SHTC3_RECEIVER_GPIO 43 | # if defined(ESP8266) 44 | # define SHTC3_RECEIVER_GPIO 5 //5 = D1 you can put 14 = D5 if you don't use HCSR501 sensor and the RFM69 45 | # elif defined(ESP32) 46 | # define SHTC3_RECEIVER_GPIO 16 47 | # else 48 | # define SHTC3_RECEIVER_GPIO 8 49 | # endif 50 | #endif 51 | 52 | #endif -------------------------------------------------------------------------------- /main/config_SRFB.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This files enables to set your parameter for the radiofrequency gateway on sonoff rf bridge (ZgatewaySRFB) 8 | This implementation is based on Xose Pérez work ESPURNA (https://bitbucket.org/xoseperez/espurna) 9 | 10 | Copyright (C) 2016-2017 by Xose Pérez 11 | 12 | This file is part of OpenMQTTGateway. 13 | 14 | OpenMQTTGateway is free software: you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation, either version 3 of the License, or 17 | (at your option) any later version. 18 | 19 | OpenMQTTGateway is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | 24 | You should have received a copy of the GNU General Public License 25 | along with this program. If not, see . 26 | */ 27 | #ifndef config_SRFB_h 28 | #define config_SRFB_h 29 | 30 | #include "TheengsCommon.h" 31 | 32 | extern void setupSRFB(); 33 | extern bool SRFBtoX(); 34 | extern void XtoSRFB(const char* topicOri, const char* datacallback); 35 | extern void XtoSRFB(const char* topicOri, JsonObject& RFdata); 36 | /*-------------------RF topics & parameters----------------------*/ 37 | //433Mhz MQTT Subjects and keys 38 | #define subjectMQTTtoSRFB "/commands/MQTTtoSRFB" 39 | #define subjectMQTTtoSRFBRaw "/commands/MQTTtoSRFB/Raw" 40 | #define subjectSRFBtoMQTT "/SRFBtoMQTT" 41 | #define subjectGTWSRFBtoMQTT "/SRFBtoMQTT" 42 | #define SRFBRptKey "RPT_" 43 | #define SRFBmaxipulselengthKey "Thigh_" 44 | #define SRFBminipulselengthKey "Tlow_" 45 | #define SRFBsyncKey "Tsyn_" 46 | 47 | #define repeatSRFBwMQTT false // do we repeat a received signal by using MQTT with Sonoff RF Bridge 48 | 49 | // ----------------------------------------------------------------------------- 50 | // RFBRIDGE 51 | // ----------------------------------------------------------------------------- 52 | 53 | #define RF_SEND_TIMES 4 // How many times to send the message 54 | #define RF_SEND_DELAY 500 // Interval between sending in ms 55 | #define RF_RECEIVE_DELAY 500 // Interval between receiving in ms (avoid debouncing) 56 | 57 | // ----------------------------------------------------------------------------- 58 | // DEFINITIONS 59 | // ----------------------------------------------------------------------------- 60 | 61 | #define RF_MESSAGE_SIZE 9 62 | #define RF_CODE_START 0xAA 63 | #define RF_CODE_ACK 0xA0 64 | #define RF_CODE_RFIN 0xA4 65 | #define RF_CODE_RFOUT 0xA5 66 | #define RF_CODE_STOP 0x55 67 | 68 | #endif 69 | -------------------------------------------------------------------------------- /main/config_Somfy.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 4 | Send and receiving command by MQTT 5 | 6 | This actor enables to: 7 | - receive MQTT data from a topic and send Somfy RTS remote control signals corresponding to the received MQTT data 8 | 9 | Copyright (C) 2020 Leon Kiefer 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | OpenMQTTGateway is distributed in the hope that it will be useful, 18 | but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | GNU General Public License for more details. 21 | You should have received a copy of the GNU General Public License 22 | along with this program. If not, see . 23 | */ 24 | #ifndef config_Somfy_h 25 | #define config_Somfy_h 26 | 27 | #include "TheengsCommon.h" 28 | 29 | extern void setupSomfy(); 30 | extern void XtoSomfy(const char* topicOri, JsonObject& RFdata); 31 | /*----------------------------USER PARAMETERS-----------------------------*/ 32 | #define EEPROM_ADDRESS_START 0 33 | #define SOMFY_REMOTE_NUM 1 34 | 35 | // Do not change the order of the remotes, because based on the index the rolling codes are stored 36 | const uint32_t somfyRemotes[SOMFY_REMOTE_NUM] = {0x5184c8}; 37 | 38 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 39 | #define subjectMQTTtoSomfy "/commands/MQTTtoSomfy" 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /main/config_TEMT6000.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This is the Light Meter Addon based on modules with a TEMT6000: 8 | - Measures ambient Light Intensity in Lux (lx), Foot Candela (ftcd) and Watt/m^2 (wattsm2) 9 | - Required Hardware Module: TEMT6000 10 | - Dependencies: none 11 | 12 | Connection Scheme: 13 | -------------------- 14 | 15 | TEMT6000 ----> ESP8266 16 | ============================================== 17 | Vcc ---------> 3.3V 18 | GND ---------> GND 19 | SIG ---------> A0 20 | 21 | Copyright: (c) Andre Greyling - this is a modified copy of Chris Broekema 22 | 23 | This file is part of OpenMQTTGateway. 24 | 25 | OpenMQTTGateway is free software: you can redistribute it and/or modify 26 | it under the terms of the GNU General Public License as published by 27 | the Free Software Foundation, either version 3 of the License, or 28 | (at your option) any later version. 29 | 30 | OpenMQTTGateway is distributed in the hope that it will be useful, 31 | but WITHOUT ANY WARRANTY; without even the implied warranty of 32 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 33 | GNU General Public License for more details. 34 | 35 | You should have received a copy of the GNU General Public License 36 | along with this program. If not, see . 37 | */ 38 | #ifndef config_TEMT6000_h 39 | #define config_TEMT6000_h 40 | 41 | extern void setupZsensorTEMT6000(); 42 | extern void MeasureLightIntensityTEMT6000(); 43 | 44 | #define temt6000_always true // if false only send current value if it has changed 45 | #define TEMT6000LIGHTSENSORPIN A0 //Ambient light sensor reading = ADC0 46 | #define TimeBetweenReadingtemt6000 10000 //10000 ms 47 | 48 | /*----------------------------USER PARAMETERS-----------------------------*/ 49 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 50 | #define subjectTEMT6000toMQTT "/LIGHTtoMQTT" 51 | 52 | #endif -------------------------------------------------------------------------------- /main/config_TSL2561.h: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This files exposes light level measured by a TSL2651 module 8 | Heavily inspired by the driver for the BH1750 light sensor 9 | 10 | Copyright: (c) Chris Broekema 11 | 12 | This file is part of OpenMQTTGateway. 13 | 14 | OpenMQTTGateway is free software: you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation, either version 3 of the License, or 17 | (at your option) any later version. 18 | 19 | OpenMQTTGateway is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | 24 | You should have received a copy of the GNU General Public License 25 | along with this program. If not, see . 26 | 27 | Connection Schemata: 28 | -------------------- 29 | 30 | TSL2561 ------> ESP8266 31 | =================================== 32 | Vcc ---------> Vu (3.3V) 33 | GND ---------> GND 34 | SCL ---------> D1 35 | SDA ---------> D2 36 | ADD ---------> N/C (Not Connected) 37 | 38 | */ 39 | #ifndef config_TSL2561_h 40 | #define config_TSL2561_h 41 | 42 | extern void setupZsensorTSL2561(); 43 | extern void MeasureLightIntensityTSL2561(); 44 | 45 | #define tsl2561_always true // if false only send current value if it has changed 46 | #define TimeBetweenReadingtsl2561 30000 47 | /*----------------------------USER PARAMETERS-----------------------------*/ 48 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 49 | #define subjectTSL12561toMQTT "/LIGHTtoMQTT" 50 | 51 | #endif -------------------------------------------------------------------------------- /main/config_WeatherStation.h: -------------------------------------------------------------------------------- 1 | /* 2 | OpenMQTTGateway - ESP8266 or Arduino program for home automation 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This files enables to set your parameter for the DHT11/22 sensor 8 | 9 | Copyright: (c)Florian ROBERT 10 | 11 | This file is part of OpenMQTTGateway. 12 | 13 | OpenMQTTGateway is free software: you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation, either version 3 of the License, or 16 | (at your option) any later version. 17 | 18 | OpenMQTTGateway is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program. If not, see . 25 | */ 26 | #ifndef config_WeatherStation_h 27 | #define config_WeatherStation_h 28 | 29 | extern void setupWeatherStation(); 30 | extern void ZgatewayWeatherStationtoX(); 31 | /*----------------------------USER PARAMETERS-----------------------------*/ 32 | /*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/ 33 | #define subjectRFtoMQTT "/433toMQTT" 34 | 35 | /*-------------------PIN DEFINITIONS----------------------*/ 36 | #ifndef RF_WS_RECEIVER_GPIO 37 | # ifdef ESP8266 38 | # define RF_WS_RECEIVER_GPIO 0 // D3 on nodemcu // put 4 with rf bridge direct mod 39 | # elif defined(ESP32) 40 | # define RF_WS_RECEIVER_GPIO 27 // D27 on DOIT ESP32 41 | # endif 42 | #endif 43 | 44 | #endif -------------------------------------------------------------------------------- /main/sensorDHT.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | DHT reading Addon 8 | 9 | Copyright: (c)Florian ROBERT 10 | 11 | Contributors: 12 | - prahjister 13 | - 1technophile 14 | 15 | This file is part of OpenMQTTGateway. 16 | 17 | OpenMQTTGateway is free software: you can redistribute it and/or modify 18 | it under the terms of the GNU General Public License as published by 19 | the Free Software Foundation, either version 3 of the License, or 20 | (at your option) any later version. 21 | 22 | OpenMQTTGateway is distributed in the hope that it will be useful, 23 | but WITHOUT ANY WARRANTY; without even the implied warranty of 24 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 25 | GNU General Public License for more details. 26 | 27 | You should have received a copy of the GNU General Public License 28 | along with this program. If not, see . 29 | */ 30 | #include "User_config.h" 31 | 32 | #ifdef ZsensorDHT 33 | # include 34 | # include 35 | 36 | # include "TheengsCommon.h" 37 | # include "config_DHT.h" 38 | 39 | DHT dht(DHT_RECEIVER_GPIO, DHT_SENSOR_TYPE); 40 | 41 | //Time used to wait for an interval before resending temp and hum 42 | unsigned long timedht = 0; 43 | 44 | void setupDHT() { 45 | Log.notice(F("Reading DHT on pin: %d" CR), DHT_RECEIVER_GPIO); 46 | } 47 | 48 | void MeasureTempAndHum() { 49 | if (millis() > (timedht + TimeBetweenReadingDHT)) { //retrieving value of temperature and humidity of the box from DHT every xUL 50 | timedht = millis(); 51 | static float persistedh; 52 | static float persistedt; 53 | float h = dht.readHumidity(); 54 | // Read temperature as Celsius (the default) 55 | float t = dht.readTemperature(); 56 | // Check if any reads failed and exit early (to try again). 57 | if (isnan(h) || isnan(t)) { 58 | Log.error(F("Failed to read from DHT sensor!" CR)); 59 | } else { 60 | Log.trace(F("Creating DHT buffer" CR)); 61 | StaticJsonDocument DHTdataBuffer; 62 | JsonObject DHTdata = DHTdataBuffer.to(); 63 | if (h != persistedh || dht_always) { 64 | DHTdata["hum"] = (float)h; 65 | } else { 66 | Log.trace(F("Same hum don't send it" CR)); 67 | } 68 | if (t != persistedt || dht_always) { 69 | DHTdata["tempc"] = (float)t; 70 | DHTdata["tempf"] = dht.convertCtoF(t); 71 | } else { 72 | Log.trace(F("Same temp don't send it" CR)); 73 | } 74 | DHTdata["origin"] = DHTTOPIC; 75 | enqueueJsonObject(DHTdata); 76 | } 77 | persistedh = h; 78 | persistedt = t; 79 | } 80 | } 81 | #endif 82 | -------------------------------------------------------------------------------- /main/sensorGPIOKeyCode.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 4 | Send and receiving command by MQTT 5 | 6 | GPIO KeyCode derived from GPIO Input 7 | 8 | This reads up to 4 gpio with latch signal (gpio line) and combines the bits as KeyKode - can be connected 9 | to EV1527 receiver. 10 | 11 | Copyright: (c)Grzegorz Rajtar 12 | 13 | This file is part of OpenMQTTGateway. 14 | 15 | OpenMQTTGateway is free software: you can redistribute it and/or modify 16 | it under the terms of the GNU General Public License as published by 17 | the Free Software Foundation, either version 3 of the License, or 18 | (at your option) any later version. 19 | OpenMQTTGateway is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | You should have received a copy of the GNU General Public License 24 | along with this program. If not, see . 25 | */ 26 | #include "User_config.h" 27 | 28 | #ifdef ZsensorGPIOKeyCode 29 | # include "TheengsCommon.h" 30 | # include "config_GPIOKeyCode.h" 31 | 32 | int InputStateGPIOKeyCode = 0x0f; // Set to 3 so that it reads on startup 33 | int lastInputStateGPIOKeyCode = 0x0f; 34 | int lastLatchStateGPIOKeyCode = 0; 35 | 36 | void setupGPIOKeyCode() { 37 | pinMode(GPIOKeyCode_LATCH_GPIO, INPUT_PULLUP); // 38 | pinMode(GPIOKeyCode_D0_GPIO, INPUT_PULLUP); // 39 | pinMode(GPIOKeyCode_D1_GPIO, INPUT_PULLUP); // 40 | pinMode(GPIOKeyCode_D2_GPIO, INPUT_PULLUP); // 41 | //pinMode(GPIOKeyCode_D3_GPIO, INPUT_PULLUP); // 42 | } 43 | 44 | void MeasureGPIOKeyCode() { 45 | int latch = digitalRead(GPIOKeyCode_LATCH_GPIO); 46 | 47 | // check to see if you just pressed the button 48 | // (i.e. the input went from LOW to HIGH), and you've waited long enough 49 | // since the last press to ignore any noise: 50 | 51 | { 52 | // whatever the reading is at, it's been there for longer than the debounce 53 | // delay, so take it as the actual current state: 54 | yield(); 55 | // if the Input state has changed: 56 | if (latch > 0 && lastLatchStateGPIOKeyCode != latch) { 57 | int reading = digitalRead(GPIOKeyCode_D0_GPIO) | (digitalRead(GPIOKeyCode_D1_GPIO) << 1) | (digitalRead(GPIOKeyCode_D2_GPIO) << 2); 58 | //| digitalRead(GPIOKeyCode_D3_GPIO) << 3; 59 | 60 | char hex[3]; 61 | 62 | InputStateGPIOKeyCode = reading; 63 | sprintf(hex, "%02x", InputStateGPIOKeyCode); 64 | hex[2] = 0; 65 | Log.notice(F("GPIOKeyCode %H" CR), hex); 66 | pub(subjectGPIOKeyCodetoMQTT, hex); 67 | lastLatchStateGPIOKeyCode = latch; 68 | } 69 | 70 | if (latch != lastLatchStateGPIOKeyCode) { 71 | lastLatchStateGPIOKeyCode = latch; 72 | Log.notice(F("GPIOKeyCode latch %d" CR), latch); 73 | if (latch == 0) 74 | pub(subjectGPIOKeyCodeStatetoMQTT, "done"); 75 | } 76 | 77 | // save the reading. Next time through the loop, it'll be the lastInputState: 78 | lastInputStateGPIOKeyCode = InputStateGPIOKeyCode; 79 | } 80 | } 81 | #endif 82 | -------------------------------------------------------------------------------- /main/sensorHCSR04.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | HC SR-04 reading Addon 8 | 9 | Copyright: (c)Florian ROBERT 10 | 11 | Contributors: 12 | - 1technophile 13 | - mpember 14 | 15 | This file is part of OpenMQTTGateway. 16 | 17 | OpenMQTTGateway is free software: you can redistribute it and/or modify 18 | it under the terms of the GNU General Public License as published by 19 | the Free Software Foundation, either version 3 of the License, or 20 | (at your option) any later version. 21 | 22 | OpenMQTTGateway is distributed in the hope that it will be useful, 23 | but WITHOUT ANY WARRANTY; without even the implied warranty of 24 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 25 | GNU General Public License for more details. 26 | 27 | You should have received a copy of the GNU General Public License 28 | along with this program. If not, see . 29 | */ 30 | #include "User_config.h" 31 | 32 | #ifdef ZsensorHCSR04 33 | # include "TheengsCommon.h" 34 | # include "config_HCSR04.h" 35 | 36 | unsigned long timeHCSR04 = 0; 37 | 38 | void setupHCSR04() { 39 | Log.notice(F("HCSR04 trigger pin: %d" CR), HCSR04_TRI_GPIO); 40 | Log.notice(F("HCSR04 echo pin: %d" CR), HCSR04_ECH_GPIO); 41 | pinMode(HCSR04_TRI_GPIO, OUTPUT); // declare HC SR-04 trigger GPIO as output 42 | pinMode(HCSR04_ECH_GPIO, INPUT); // declare HC SR-04 echo GPIO as input 43 | } 44 | 45 | void MeasureDistance() { 46 | if (millis() > (timeHCSR04 + TimeBetweenReadingHCSR04)) { 47 | timeHCSR04 = millis(); 48 | Log.trace(F("Creating HCSR04 buffer" CR)); 49 | StaticJsonDocument HCSR04dataBuffer; 50 | JsonObject HCSR04data = HCSR04dataBuffer.to(); 51 | digitalWrite(HCSR04_TRI_GPIO, LOW); 52 | delayMicroseconds(2); 53 | digitalWrite(HCSR04_TRI_GPIO, HIGH); 54 | delayMicroseconds(10); 55 | digitalWrite(HCSR04_TRI_GPIO, LOW); 56 | unsigned long duration = pulseIn(HCSR04_ECH_GPIO, HIGH); 57 | if (isnan(duration)) { 58 | Log.error(F("Failed to read from HC SR04 sensor!" CR)); 59 | } else { 60 | static unsigned int distance = 99999; 61 | unsigned int d = duration / 58.2; 62 | HCSR04data["distance"] = (int)d; 63 | if (d > distance) { 64 | HCSR04data["direction"] = "away"; 65 | Log.trace(F("HC SR04 Distance changed" CR)); 66 | } else if (d < distance) { 67 | HCSR04data["direction"] = "towards"; 68 | Log.trace(F("HC SR04 Distance changed" CR)); 69 | } else if (HCSR04_always) { 70 | HCSR04data["direction"] = "static"; 71 | Log.trace(F("HC SR04 Distance hasn't changed" CR)); 72 | } 73 | distance = d; 74 | enqueueJsonObject(HCSR04data); 75 | } 76 | } 77 | } 78 | #endif 79 | -------------------------------------------------------------------------------- /main/sensorHCSR501.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | HC SR-501 reading Addon 8 | 9 | Copyright: (c)Florian ROBERT 10 | 11 | Contributors: 12 | - 1technophile 13 | 14 | This file is part of OpenMQTTGateway. 15 | 16 | OpenMQTTGateway is free software: you can redistribute it and/or modify 17 | it under the terms of the GNU General Public License as published by 18 | the Free Software Foundation, either version 3 of the License, or 19 | (at your option) any later version. 20 | 21 | OpenMQTTGateway is distributed in the hope that it will be useful, 22 | but WITHOUT ANY WARRANTY; without even the implied warranty of 23 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 24 | GNU General Public License for more details. 25 | 26 | You should have received a copy of the GNU General Public License 27 | along with this program. If not, see . 28 | */ 29 | #include "User_config.h" 30 | 31 | #ifdef ZsensorHCSR501 32 | # include "TheengsCommon.h" 33 | # include "config_HCSR501.h" 34 | 35 | void setupHCSR501() { 36 | Log.notice(F("HCSR501 pin: %d" CR), HCSR501_GPIO); 37 | pinMode(HCSR501_GPIO, INPUT); // declare HC SR-501 GPIO as input 38 | # ifdef HCSR501_LED_NOTIFY_GPIO 39 | pinMode(HCSR501_LED_NOTIFY_GPIO, OUTPUT); 40 | digitalWrite(HCSR501_LED_NOTIFY_GPIO, LOW); 41 | # endif 42 | } 43 | 44 | void MeasureHCSR501() { 45 | if (millis() > TimeBeforeStartHCSR501) { //let time to init the PIR sensor 46 | StaticJsonDocument HCSR501dataBuffer; 47 | JsonObject HCSR501data = HCSR501dataBuffer.to(); 48 | static int pirState = LOW; 49 | int PresenceValue = digitalRead(HCSR501_GPIO); 50 | yield(); 51 | if (PresenceValue == HIGH) { 52 | if (pirState == LOW) { 53 | //turned on 54 | HCSR501data["presence"] = "true"; 55 | pirState = HIGH; 56 | } 57 | } else { 58 | if (pirState == HIGH) { 59 | // turned off 60 | HCSR501data["presence"] = "false"; 61 | pirState = LOW; 62 | } 63 | } 64 | # ifdef HCSR501_LED_NOTIFY_GPIO 65 | digitalWrite(HCSR501_LED_NOTIFY_GPIO, pirState == HCSR501_LED_ON); 66 | # endif 67 | if (HCSR501data.size() > 0) { 68 | HCSR501data["origin"] = subjectHCSR501toMQTT; 69 | enqueueJsonObject(HCSR501data); 70 | } 71 | } 72 | } 73 | #endif 74 | -------------------------------------------------------------------------------- /main/sensorMQ2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This is the MQ2 GAS Sensor Addon based on modules with a MQ: 8 | - Measures flammable gas 9 | - Required Hardware Module: MQ2 10 | 11 | Connection Scheme: 12 | -------------------- 13 | 14 | MQ-2 -------> ESP8266 15 | ============================================== 16 | Vcc ---------> 3.3V or 5V 17 | GND ---------> GND 18 | A0 ----------> A0 19 | D0 ----------> D4 20 | 21 | This file is part of OpenMQTTGateway. 22 | 23 | OpenMQTTGateway is free software: you can redistribute it and/or modify 24 | it under the terms of the GNU General Public License as published by 25 | the Free Software Foundation, either version 3 of the License, or 26 | (at your option) any later version. 27 | 28 | OpenMQTTGateway is distributed in the hope that it will be useful, 29 | but WITHOUT ANY WARRANTY; without even the implied warranty of 30 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 31 | GNU General Public License for more details. 32 | 33 | You should have received a copy of the GNU General Public License 34 | along with this program. If not, see . 35 | */ 36 | #include "User_config.h" 37 | 38 | #ifdef ZsensorMQ2 39 | # include "TheengsCommon.h" 40 | # include "Wire.h" 41 | # include "config_MQ2.h" 42 | # include "math.h" 43 | 44 | //Time used to wait for an interval before resending measured values 45 | unsigned long timemq2 = 0; 46 | 47 | void setupZsensorMQ2() { 48 | Log.notice(F("Setup MQ2 detection on pin: %d" CR), MQ2SENSORDETECTPIN); 49 | pinMode(MQ2SENSORDETECTPIN, INPUT); // declare GPIOInput pin as input_pullup to prevent floating. Pin will be high when not connected to ground 50 | 51 | Log.notice(F("Starting MQ2 calibration on pin: %d" CR), MQ2SENSORADCPIN); 52 | 53 | //Simple calibrate 54 | float sensorValue; 55 | for (int x = 0; x < 1000; x++) { 56 | analogRead(MQ2SENSORADCPIN); 57 | } 58 | delay(1000); 59 | 60 | Log.trace(F("MQ2 Initialized." CR)); 61 | } 62 | 63 | void MeasureGasMQ2() { 64 | if (millis() > (timemq2 + TimeBetweenReadingmq2)) { 65 | timemq2 = millis(); 66 | 67 | Log.trace(F("Creating MQ2 buffer" CR)); 68 | StaticJsonDocument MQ2dataBuffer; 69 | JsonObject MQ2data = MQ2dataBuffer.to(); 70 | 71 | MQ2data["gas"] = analogRead(MQ2SENSORADCPIN); 72 | MQ2data["detected"] = digitalRead(MQ2SENSORDETECTPIN) == HIGH ? "false" : "true"; 73 | MQ2data["origin"] = subjectMQ2toMQTT; 74 | enqueueJsonObject(MQ2data); 75 | } 76 | } 77 | #endif 78 | -------------------------------------------------------------------------------- /main/sensorSHTC3.cpp: -------------------------------------------------------------------------------- 1 | #include "User_config.h" 2 | 3 | #ifdef ZsensorSHTC3 4 | # include 5 | 6 | # include "TheengsCommon.h" 7 | 8 | SHTC3 mySHTC3; 9 | 10 | //Time used to wait for an interval before resending temp and hum 11 | unsigned long timedht = 0; 12 | void errorDecoder(SHTC3_Status_TypeDef message); 13 | 14 | void errorDecoder(SHTC3_Status_TypeDef message) // The errorDecoder function prints "SHTC3_Status_TypeDef" resultsin a human-friendly way 15 | { 16 | switch (message) { 17 | case SHTC3_Status_Nominal: 18 | Log.notice(F("Nominal")); 19 | break; 20 | case SHTC3_Status_Error: 21 | Log.error(F("Error")); 22 | break; 23 | case SHTC3_Status_CRC_Fail: 24 | Log.error(F("CRC Fail")); 25 | break; 26 | default: 27 | Log.error(F("Unknown return code")); 28 | break; 29 | } 30 | } 31 | 32 | void setupSHTC3() { 33 | Wire.begin(); 34 | errorDecoder(mySHTC3.begin()); // To start the sensor you must call "begin()", the default settings use Wire (default Arduino I2C port) 35 | } 36 | 37 | void MeasureTempAndHum() { 38 | if (millis() > (timedht + TimeBetweenReadingSHTC3)) { //retrieving value of temperature and humidity of the box from SHTC3 every xUL 39 | timedht = millis(); 40 | static float persistedh; 41 | static float persistedt; 42 | SHTC3_Status_TypeDef result = mySHTC3.update(); 43 | if (mySHTC3.lastStatus == SHTC3_Status_Nominal) { 44 | // Read temperature as Celsius (the default) 45 | float t = mySHTC3.toDegC(); 46 | float h = mySHTC3.toPercent(); 47 | // Check if any reads failed and exit early (to try again). 48 | if (isnan(h) || isnan(t)) { 49 | Log.error(F("Failed to read from SHTC3 sensor!" CR)); 50 | } else { 51 | Log.trace(F("Creating SHTC3 buffer" CR)); 52 | StaticJsonDocument SHTC3dataBuffer; 53 | JsonObject SHTC3data = SHTC3dataBuffer.to(); 54 | if (h != persistedh || shtc3_always) { 55 | SHTC3data["hum"] = (float)h; 56 | } else { 57 | Log.trace(F("Same hum don't send it" CR)); 58 | } 59 | if (t != persistedt || shtc3_always) { 60 | SHTC3data["tempc"] = (float)t; 61 | SHTC3data["tempf"] = mySHTC3.toDegF(); 62 | } else { 63 | Log.trace(F("Same temp don't send it" CR)); 64 | } 65 | SHTC3data["origin"] = SHTC3TOPIC; 66 | enqueueJsonObject(SHTC3data); 67 | } 68 | persistedh = h; 69 | persistedt = t; 70 | } else { 71 | errorDecoder(mySHTC3.lastStatus); 72 | Log.error(F("Failed to read from SHTC3 sensor!" CR)); 73 | } 74 | } 75 | } 76 | #endif 77 | -------------------------------------------------------------------------------- /main/sensorTEMT6000.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Theengs OpenMQTTGateway - We Unite Sensors in One Open-Source Interface 3 | 4 | Act as a gateway between your 433mhz, infrared IR, BLE, LoRa signal and one interface like an MQTT broker 5 | Send and receiving command by MQTT 6 | 7 | This is the Light Meter Addon based on modules with a TEMT6000: 8 | - Measures ambient Light Intensity in Lux (lx), Foot Candela (ftcd) and Watt/m^2 (wattsm2) 9 | - Required Hardware Module: TEMT6000 10 | - Dependencies: none 11 | 12 | Connection Scheme: 13 | -------------------- 14 | 15 | TEMT6000------> ESP8266 16 | ============================================== 17 | Vcc ---------> 3.3V 18 | GND ---------> GND 19 | SIG ---------> A0 20 | 21 | Copyright: (c) Andre Greyling - this is a modified copy of Chris Broekema 22 | 23 | This file is part of OpenMQTTGateway. 24 | 25 | OpenMQTTGateway is free software: you can redistribute it and/or modify 26 | it under the terms of the GNU General Public License as published by 27 | the Free Software Foundation, either version 3 of the License, or 28 | (at your option) any later version. 29 | 30 | OpenMQTTGateway is distributed in the hope that it will be useful, 31 | but WITHOUT ANY WARRANTY; without even the implied warranty of 32 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 33 | GNU General Public License for more details. 34 | 35 | You should have received a copy of the GNU General Public License 36 | along with this program. If not, see . 37 | */ 38 | #include "User_config.h" 39 | 40 | #ifdef ZsensorTEMT6000 41 | # include "TheengsCommon.h" 42 | # include "Wire.h" 43 | # include "config_TEMT6000.h" 44 | # include "math.h" 45 | 46 | //Time used to wait for an interval before resending measured values 47 | static unsigned long timetemt6000 = 0; 48 | 49 | void setupZsensorTEMT6000() { 50 | Log.notice(F("Setup TEMT6000 on pin: %i" CR), TEMT6000LIGHTSENSORPIN); 51 | pinMode(TEMT6000LIGHTSENSORPIN, INPUT); 52 | } 53 | 54 | void MeasureLightIntensityTEMT6000() { 55 | if (millis() > (timetemt6000 + TimeBetweenReadingtemt6000)) { 56 | static uint32_t persisted_lux; 57 | timetemt6000 = millis(); 58 | 59 | Log.trace(F("Creating TEMT6000 buffer" CR)); 60 | StaticJsonDocument TEMT6000dataBuffer; 61 | JsonObject TEMT6000data = TEMT6000dataBuffer.to(); 62 | 63 | float volts = analogRead(TEMT6000LIGHTSENSORPIN) * 5.0 / 1024.0; 64 | float amps = volts / 10000.0; // across 10,000 Ohms 65 | float microamps = amps * 1000000; 66 | float lux = microamps * 2.0; 67 | 68 | if (persisted_lux != lux || temt6000_always) { 69 | persisted_lux = lux; 70 | 71 | TEMT6000data["lux"] = (float)lux; 72 | TEMT6000data["ftcd"] = (float)(lux) / 10.764; 73 | TEMT6000data["wattsm2"] = (float)(lux) / 683.0; 74 | TEMT6000data["origin"] = subjectTEMT6000toMQTT; 75 | enqueueJsonObject(TEMT6000data); 76 | } else { 77 | Log.trace(F("Same lux value, do not send" CR)); 78 | } 79 | } 80 | } 81 | #endif 82 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "docs:dev": "vuepress dev docs", 4 | "docs:build": "vuepress build docs" 5 | }, 6 | "devDependencies": { 7 | "vuepress": "^1.9.10" 8 | }, 9 | "dependencies": { 10 | "vuepress-plugin-sitemap": "^2.3.1" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /partitions/alltest_large.csv: -------------------------------------------------------------------------------- 1 | # Name, Type, SubType, Offset, Size, Flags 2 | nvs, data, nvs, 0x9000, 0x5000, 3 | app0, app, ota_0, 0x10000, 0x200000, 4 | spiffs, data, spiffs, 0x310000,0x4F000, 5 | -------------------------------------------------------------------------------- /partitions/default.csv: -------------------------------------------------------------------------------- 1 | # Name, Type, SubType, Offset, Size, Flags 2 | nvs, data, nvs, 0x9000, 0x5000, 3 | otadata, data, ota, 0xe000, 0x2000, 4 | app0, app, ota_0, 0x10000, 0x140000, 5 | app1, app, ota_1, 0x150000,0x140000, 6 | spiffs, data, spiffs, 0x290000,0x160000, 7 | coredump, data, coredump,0x3F0000,0x10000, -------------------------------------------------------------------------------- /partitions/default_16MB.csv: -------------------------------------------------------------------------------- 1 | # Name, Type, SubType, Offset, Size, Flags 2 | nvs, data, nvs, 0x9000, 0x5000, 3 | otadata, data, ota, 0xe000, 0x2000, 4 | app0, app, ota_0, 0x10000, 0x640000, 5 | app1, app, ota_1, 0x650000,0x640000, 6 | spiffs, data, spiffs, 0xc90000,0x360000, 7 | coredump, data, coredump,0xFF0000,0x10000, -------------------------------------------------------------------------------- /partitions/default_8MB.csv: -------------------------------------------------------------------------------- 1 | # Name, Type, SubType, Offset, Size, Flags 2 | nvs, data, nvs, 0x9000, 0x5000, 3 | otadata, data, ota, 0xe000, 0x2000, 4 | app0, app, ota_0, 0x10000, 0x330000, 5 | app1, app, ota_1, 0x340000,0x330000, 6 | spiffs, data, spiffs, 0x670000,0x180000, 7 | coredump, data, coredump,0x7F0000,0x10000, -------------------------------------------------------------------------------- /partitions/min_spiffs.csv: -------------------------------------------------------------------------------- 1 | # Name, Type, SubType, Offset, Size, Flags 2 | nvs, data, nvs, 0x9000, 0x5000, 3 | otadata, data, ota, 0xe000, 0x2000, 4 | app0, app, ota_0, 0x10000, 0x1E0000, 5 | app1, app, ota_1, 0x1F0000,0x1E0000, 6 | spiffs, data, spiffs, 0x3D0000,0x20000, 7 | coredump, data, coredump,0x3F0000,0x10000, -------------------------------------------------------------------------------- /partitions/no_coredump.csv: -------------------------------------------------------------------------------- 1 | # Name, Type, SubType, Offset, Size, Flags 2 | nvs, data, nvs, 0x9000, 0x5000, 3 | otadata, data, ota, 0xe000, 0x2000, 4 | app0, app, ota_0, 0x10000, 0x1F0000, 5 | app1, app, ota_1, 0x200000,0x1F0000, 6 | spiffs, data, spiffs, 0x3F0000,0x10000, 7 | -------------------------------------------------------------------------------- /scripts/common_wu.py: -------------------------------------------------------------------------------- 1 | import string 2 | 3 | mf_temp32 = string.Template('''{ 4 | "name": "OpenMQTTGateway", 5 | "new_install_prompt_erase": true, 6 | "builds": [ 7 | { 8 | "chipFamily": "ESP32", 9 | "improv": false, 10 | "parts": [ 11 | { "path": "$cp$bl", "offset": 4096 }, 12 | { "path": "$cp$part", "offset": 32768 }, 13 | { "path": "$cp$boot", "offset": 57344 }, 14 | { "path": "$cp$bin", "offset": 65536 } 15 | ] 16 | } 17 | ] 18 | }''') 19 | 20 | mf_temp32c3 = string.Template('''{ 21 | "name": "OpenMQTTGateway", 22 | "new_install_prompt_erase": true, 23 | "builds": [ 24 | { 25 | "chipFamily": "ESP32-C3", 26 | "improv": false, 27 | "parts": [ 28 | { "path": "$cp$bl", "offset": 0 }, 29 | { "path": "$cp$part", "offset": 32768 }, 30 | { "path": "$cp$boot", "offset": 57344 }, 31 | { "path": "$cp$bin", "offset": 65536 } 32 | ] 33 | } 34 | ] 35 | }''') 36 | 37 | mf_temp32s3 = string.Template('''{ 38 | "name": "OpenMQTTGateway", 39 | "new_install_prompt_erase": true, 40 | "builds": [ 41 | { 42 | "chipFamily": "ESP32-S3", 43 | "improv": false, 44 | "parts": [ 45 | { "path": "$cp$bl", "offset": 0 }, 46 | { "path": "$cp$part", "offset": 32768 }, 47 | { "path": "$cp$boot", "offset": 57344 }, 48 | { "path": "$cp$bin", "offset": 65536 } 49 | ] 50 | } 51 | ] 52 | }''') 53 | 54 | mf_temp8266 = string.Template('''{ 55 | "name": "OpenMQTTGateway", 56 | "new_install_prompt_erase": true, 57 | "builds": [ 58 | { 59 | "chipFamily": "ESP8266", 60 | "parts": [{ "path": "$cp$bin", "offset": 0 }] 61 | } 62 | ] 63 | }''') 64 | 65 | wu_temp_opt = string.Template(''' 66 | 71 | ''') 72 | 73 | wu_temp_p1 = ''' 96 | 97 | ''' 110 | 111 | manif_path = 'docs/.vuepress/public/firmware_build/' 112 | vue_path = 'docs/.vuepress/components/' 113 | cors_proxy = '' # 'https://cors.bridged.cc/' 114 | esp32_boot = 'https://github.com/espressif/arduino-esp32/raw/2.0.7/tools/partitions/boot_app0.bin' 115 | -------------------------------------------------------------------------------- /scripts/compressFirmware.py: -------------------------------------------------------------------------------- 1 | import gzip 2 | import shutil 3 | import os 4 | Import("env") 5 | 6 | 7 | def compressFirmware(source, target, env): 8 | """ Compress firmware using gzip for 'compressed OTA upload' """ 9 | SOURCE_FILE = env.subst("$BUILD_DIR") + os.sep + env.subst("$PROGNAME") + ".bin" 10 | SOURCE_BAK = SOURCE_FILE + '.bak' 11 | do_compress = True 12 | if os.path.exists(SOURCE_FILE) and os.path.exists(SOURCE_BAK): 13 | src_mtime = os.stat(SOURCE_FILE).st_mtime 14 | bak_mtime = os.stat(SOURCE_BAK).st_mtime 15 | """ Recompress if .bin file is newer than .bak file """ 16 | do_compress = (src_mtime > bak_mtime) 17 | 18 | if do_compress: 19 | print("Compressing firmware for upload...") 20 | shutil.move(SOURCE_FILE, SOURCE_BAK) 21 | with open(SOURCE_BAK, 'rb') as f_in: 22 | with gzip.open(SOURCE_FILE, 'wb', compresslevel = 9) as f_out: 23 | shutil.copyfileobj(f_in, f_out) 24 | """ Set modification time on compressed file so incremental build works """ 25 | shutil.copystat(SOURCE_BAK, SOURCE_FILE) 26 | 27 | if os.path.exists(SOURCE_BAK): 28 | ORG_FIRMWARE_SIZE = os.stat(SOURCE_BAK).st_size 29 | GZ_FIRMWARE_SIZE = os.stat(SOURCE_FILE).st_size 30 | 31 | print("Compression reduced firmware size to {:.0f}% (was {} bytes, now {} bytes)".format((GZ_FIRMWARE_SIZE / ORG_FIRMWARE_SIZE) * 100, ORG_FIRMWARE_SIZE, GZ_FIRMWARE_SIZE)) 32 | 33 | env.AddPostAction("$BUILD_DIR/firmware.bin", [compressFirmware]) -------------------------------------------------------------------------------- /scripts/latest_version.json: -------------------------------------------------------------------------------- 1 | { 2 | "latest_version": "version_tag", 3 | "title": "OpenMQTTGateway", 4 | "release_url": "https://github.com/1technophile/OpenMQTTGateway/releases/tag/version_tag" 5 | } -------------------------------------------------------------------------------- /scripts/latest_version_dev.json: -------------------------------------------------------------------------------- 1 | { 2 | "latest_version": "version_tag", 3 | "title": "OpenMQTTGateway Nightly (TEST ONLY)" 4 | } -------------------------------------------------------------------------------- /scripts/prepare_deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | echo "renaming bin files with the environment name" 4 | rename -v 's:/:-:g' .pio/build/*/*.bin 5 | mkdir toDeploy 6 | rename 's/.pio-build-//' .*.bin 7 | ( 8 | cd .pio/libdeps 9 | echo "replace space by _ in folder names" 10 | find . -type d -name "* *" | while read FNAME; do mv "$FNAME" "${FNAME// /_}"; done 11 | echo "zipping libraries per board" 12 | for i in */ 13 | do 14 | zip -r "${i%/}-libraries.zip" "$i" 15 | done 16 | ls -lA 17 | mv *.zip ../../toDeploy 18 | ) 19 | # remove binaries for *-all*, *-test* env and only zip containing *-test* 20 | rm -f *-all*.bin *-test*.bin *-test*.zip 21 | echo "zipping code and licence" 22 | zip -r OpenMQTTGateway_sources.zip main LICENSE.txt 23 | mv *.zip toDeploy 24 | mv *.bin toDeploy 25 | 26 | ls -lA toDeploy 27 | -------------------------------------------------------------------------------- /scripts/replace_lib.py: -------------------------------------------------------------------------------- 1 | 2 | import shutil 3 | import os 4 | import hashlib 5 | Import("env") 6 | 7 | def calculate_md5(filepath): 8 | md5_hash = hashlib.md5() 9 | with open(filepath, "rb") as f: 10 | for byte_block in iter(lambda: f.read(4096), b""): 11 | md5_hash.update(byte_block) 12 | return md5_hash.hexdigest() 13 | 14 | def main(): 15 | print(f"Pre build BLE library replacement script") 16 | source_file = 'lib/esp32-bt-lib/esp32/libbtdm_app.a' 17 | destination_file = os.path.join(env.GetProjectConfig().get("platformio", "packages_dir"), 'framework-arduinoespressif32', 'tools', 'sdk', 'esp32', 'ld', 'libbtdm_app.a') 18 | 19 | try: 20 | shutil.copyfile(source_file, destination_file) 21 | md5_hash = calculate_md5(destination_file) 22 | print(f"Successfully copied {source_file} to {destination_file}") 23 | print(f"MD5: {md5_hash}") 24 | except Exception as e: 25 | print(f"Error occurred: {e}") 26 | 27 | main() 28 | --------------------------------------------------------------------------------