This is a MOD for [Sonoff-Tasmota](https://github.com/arendst/Sonoff-Tasmota) to integrate [KNX Protocol](https://www.knx.org/knx-en/index.php) to its features.
Sonoff-Tasmota_KNX can be found [here](https://github.com/ascillato/Sonoff-Tasmota_KNX)
_Sonoff-Tasmota_KNX development branch is kept in sync with the Original Sonoff-Tasmota_
## KNX Explanation ##
The [KNX](https://www.knx.org/knx-en/knx/association/what-is-knx/index.php) IP Protocol is intended for smart home and smart bulding automation. It is a decentraliced system. Each device can talk
directly to each other without the need of a central controller or server. Any panel or server is just for telesupervision
and for sending requests.
Each device has a physical address (like a MAC) as 1.1.1 and that address is used for configuration purposes.
Each device can be configured with group addresses as 1/1/1 and that address can be used for sending/receiving commands.
So, for example, if 2 devices that are configured with the 1/2/5 for turning on/off their outputs, and other device send _Turn ON_ command to 1/2/5, both devices will turn on their outputs.
## Requirements ##
This MOD requires the KNX Library [ascillato/ESP-KNX-IP_Lite](https://github.com/ascillato/ESP-KNX-IP_Lite).
Further development will change library and will require the KNX Library [envy/esp-knx-ip](https://github.com/envy/esp-knx-ip). Please, use the [async-udp](https://github.com/envy/esp-knx-ip/tree/async-udp) branch
Also, it is needed to change on _esp-knx-ip.h_ file the following:
```
#define MAX_CALLBACK_ASSIGNMENTS 20
#define MAX_CALLBACKS 20
#define ALLOW_MULTIPLE_CALLBACKS_PER_ADDRESS 1
//#define ESP_KNX_DEBUG <--commentthisline
```
The ESP KNX IP library also requires the [ESPAsyncUDP](https://github.com/me-no-dev/ESPAsyncUDP) library. Please, use ESPAsyncUDP library patched with the [PR #21](https://github.com/me-no-dev/ESPAsyncUDP/pull/21)
Alternative firmware for _ESP8266 based devices_ like [iTead](https://www.itead.cc/) _**Sonoff**_, with **web**, **timers**, 'Over The Air' (**OTA**) firmware updates and **sensors support**, allowing control under **serial**, **HTTP**, **KNX** and **MQTT**, so as to be used on **Smart Home Systems**. Written for Arduino IDE and PlatformIO.
Current version is **5.12.0i** - See [sonoff/_releasenotes.ino](https://github.com/arendst/Sonoff-Tasmota/blob/development/sonoff/_releasenotes.ino) for change information.
- Only Flash Mode **DOUT** is supported. Do not use Flash Mode DIO / QIO / QOUT as it might seem to brick your device. See [Wiki](https://github.com/arendst/Sonoff-Tasmota/wiki/Theo's-Tasmota-Tips) for background information.
- Sonoff-Tasmota uses a 1M linker script WITHOUT spiffs for optimal code space. If you compile using ESP/Arduino library 2.3.0 then download the provided new linker script to your Arduino IDE or Platformio base folder. Later version of ESP/Arduino library already contain the correct linker script. See [Wiki > Prerequisite](https://github.com/arendst/Sonoff-Tasmota/wiki/Prerequisite).
- To make compile time changes to Sonoff-Tasmota it can use the ``user_config_override.h`` file. It assures keeping your settings when you download and compile a new version. To use ``user_config.override.h`` you will have to make a copy of the provided ``user_config.override_sample.h`` file and add your setting overrides. To enable the override file you will need to use a compile define as documented in the ``user_config_override_sample.h`` file.