Multifunctional KNX Device - mobil750/KNX_UP_Switch_Sensor_Display_Binary GitHub Wiki
Functionality
- Color display for
- date and time
- BME280 sensor data (temperature, humidity, pressure)
- extern sensor data (temperature, humidity, pressure)
- state bars
- up to 12 info screens (explaining button usage, or external measurements, ...)
- display on/off according presence
- up to 12 touch buttons and up to 12 virtual buttons (long touch)
- states can optionaly be used for presentation of external binary information
- 4 binary inputs
- 3 binary outputs (one as dry contact)
[!NOTE] All functions are configurable via ETS and can be active in parallel
FW Concept
In order to save as much time for the KNX loop, all functions are split into small tasks. These tasks are queued and handled one by one with each KNX loop cycle.
Beneath the queue handling a time management is implemented allowing many simultaneous timers with a resolution of 100ms. This allows a flexible timing
- of measuerments
- debouncing of inputs
- repeated sending of ComObjs
- recurring and on demand timer
Basics
FW
This application is based on
- KNX stack from Thelsing
- KAENX-Creator from thewhobox
- some small parts from OGM-common
- a time managment library
- a queue managment library
The OGM-common project was used to learn a bit about OpenKNX and platformIO and was then completely stripped down to the minimal basics needed. This process is not completed yet and still contains parts (e.g. regaring HW and controller definitions - which will not be supported ...). These parts will be removed or adapted after finalizing the first release of the device.
HW
The device is based on
- OpenKNX UP1 (https://github.com/OpenKNX/OpenKNX/wiki/OpenKNX-UP1)
- an own extension board for UP1
- an own MPR121 touch panel with BME280 sensor and space for a LCD modul
- a 1.44" 18 bit LCD color display (128 x 128 pixel joy-it SBC-LCD02)