Commit Graph

249 Commits

Author SHA1 Message Date
Thomas Kunze
9dd7aeb353 add masks for esp8266 2020-11-18 17:56:19 +01:00
Thomas Kunze
2aecc213ff Rename DataSecurity enums; conflict with Wifimanager 2020-11-18 17:46:47 +01:00
nanosonde
eab31e7808
Finish RX on cancelled RX_CmdAdv if we issued hard abort due to crc16/address mismatch (#105) 2020-11-17 21:08:53 +01:00
nanosonde
abb37c3b63
Add warning message in TP-UART data link layer (#104)
* Fix address type bug in TP-UART data link layer

* Fix address check

* Fix blank
2020-11-17 17:57:51 +01:00
nanosonde
390ca8ccfb
Remove unused array (#103) 2020-11-17 17:55:46 +01:00
Thomas Kunze
d962da414d another bugfix try for #83 2020-11-17 17:49:54 +01:00
nanosonde
04e95b2100
Add TI code composer project files for CC1310 example (#101)
* Remove required HEAP size

* Add Code Composer Project files

* Add default debug print to UART

* Update .cproject

* Add README.md
2020-11-16 21:23:16 +01:00
thelsing
389201cf8a
fix build 2020-11-16 20:39:03 +01:00
Thomas Kunze
45158bb071 also ack indivisual broadcasts 2020-11-16 20:35:08 +01:00
ali esmaeilpour
083d83f777
Add float type for parameters & a few fixes (#95)
* Fix not-relative include

throws if a include directory is not set.

* add forgotten defined() in environment checking '#elif's

* fix mis-spelled "config.j"

* Add float type support to Parameters

All 3 encodings supported.

* Using dptconvert functions to handle parameters handling
2020-11-11 22:55:35 +01:00
Thomas Kunze
c167305a87 set valid default value for routing count 2020-11-11 22:51:23 +01:00
nanosonde
d90843ba45
Add support for CC1310 platform based on SimpleLink SDK (#94)
* Initial commit

* Clean up

* Remove display code

* Change cmake build

* Add SimpleLink SDK for CC13xx/CC26xx as submodule

* Remove commented line from build.sh

* Working build

* Remove SDK submodule

* Squashed 'examples/knx-cc1310/coresdk_cc13xx_cc26xx/' content from commit 0d78d32

git-subtree-dir: examples/knx-cc1310/coresdk_cc13xx_cc26xx
git-subtree-split: 0d78d3280357416a5c0388148cda13717c9ffaa5

* Add more comments and enable Power_idleFunc() for NoRTOS variant.
Internal SDK driver functions which have to wait for something
will cause Power_idleFunc to be called instead of doing busy wait.

* Move CC1310 platform init around

* Optimize a bit more in debug build config as the binary does not fit into 128Kb flash otherwise.

* Explicitly list each source/header file in build config. Use linker group to resolve circular dependencies.

* Ignore vscode settings.json

* Increase stacks size

* Only compile CC1310 source code if #define DeviceFamily_CC13X0

* initial commit of CC1310 RF driver with first working RX version

* Better handling of buttonUp() across platforms

* Start cleanup

* continue cleanup

* Fix bau2920 compilation

* Continue cleanup

* Fix compilation in other examples

* Fix compilation

* htons() and ntohs() only for SAMD and STM32, but not for Linux and ESP8266 and ESP32

* htons(9 and ntohs() needed for CC13x0

* Continue cleanup

* Add CC1310 platform to CI

* Fix CI

* Use more recent toolchain from ARM

* Fix travis

* Use Ubuntu Focal

* Fix toolchain for travis

* Fix package name

* Fix toolchain

* Add libstdc++-dev package

* Add newlib packages

* Remove commented commands from CI

* Fix travis

* Fix compilation of knxPython

* Clean up linefeeds

* Fix RX callback

* Move RF CRC16-DNP to bits.cpp

* Fix TX

* Optimization: do not calc CRC for block1 again in rf_data_link_layer

* Make newline optional in printHex

* Cleanup. First working version: ETS5 programming of individual address via KNX/RF coupler.

* Use LEDs and Buttons to control ProgMode and Flash Erase

* Remove settings.json (VScode)

* Add README.md

* Update README.md

* Update README.md

* Fix typo
2020-11-10 21:52:38 +01:00
Dominik Westner
5451235368
Nikwest (#100)
* fixed tipo: RepititionAllowed

* fixed typo: frameRecieved

* fixed typo: individualAddressDuplication

* fixed typo: induvidualAddress

* fixded Typo: InduvidualAddress

Co-authored-by: Dominik Westner <nikwest@github.com>
2020-11-09 20:20:21 +01:00
Thomas Kunze
87a495bf7a replace gmtime with gmtime_r 2020-10-28 22:45:35 +01:00
nanosonde
aabc61dc3b
Add UART support for Linux platform to use TP1 KNX transceivers (#88)
* Add inital serial port support for Linux platform

* Add missing print implementation for uint64_t and enable mask 07B0 for Linux platform using TPUART

* Create executable per mask

* Add one executable per mask for coupler
2020-09-11 13:32:29 +02:00
nanosonde
77a796a39c
Add coupler support (#79)
* save work.

* save work

* save work

* save work

* save work

* Remember which interface received the cemi frame

* save work

* save work

* save work

* Use default value from PID_ROUTING_COUNT

* Add simple alternative to std::function without smart pointers or move semantics

* Remove include

* Add more comments about cleanup

* save work

* Remove forgotten code.

* Move crc16Ccitt to bits.c as it also used for PID_MCB

* save work

* move comment

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* derive from TableObject instead of InterfaceObject

* save work

* save work

* Fix wrong pointer arithmetic in TableObject

* Filter table setting/clearing

* move comment

* save work

* save work

* save work

* handle SBC on closed media

* save work

* move coupler example to different dir

* Restore device example for linux

* save work

* Remove MEDIUM_TYPE and use MASK_VERSION

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* Replace MEDIUM_TYPE by MASK_VERSION

* Remove adafruit/travis-ci tests

* Disable travis ci cache for platformio

* Fix missing changes

* Fix cemi server and add missing MASK_VERSION definitions

* Enable platformio caching on travis ci again

* Handle device address update for routing decision

* source address is set in network layer and not in data link layer

* Add remaining APCI types that are used with system broadcast

* Add debug print for routing

* Remove simple_functional

* Fix CMakLists.txt

* Use MASK_VERSION to conditionally compile code.

* Remove fixed version reuqirement from platform esp8266

* Add demo-coupler for MCUs

* Remove simple_functional.h from demo knx-linux

* Enable CI for coupler demos

* Correct path for knx-linux-coupler

* Fix knx_facade.h

* Refactor NetworkLayer to use getInterface() for devices and getPrimaryInterface(), getSecondaryInterface() for couplers

* Add platformio configs for other currently possible mask/platform combinations

* Add class diagrams and remove obsolete includes

* Add some minimal docs
2020-09-06 21:41:34 +02:00
etrinh
52d3866e41
Try fixing a crash due to NULL derefence (#77)
* fix crash due to NULL _sendBuffer

Co-authored-by: etrinh <etrinh@zdionline.net>
2020-07-19 13:37:42 +02:00
thelsing
ffea53614b
Revert last commit. 2020-07-19 13:36:33 +02:00
thelsing
1f918d69c1
fix #78 2020-07-18 13:47:54 +02:00
nanosonde
96884f768e
Add support for KNX data secure (#66)
* initial comic

* save work

* Handle SystemBroadcast and Broadcast for TP and IP

* Rework

* Fix comment

* save work

* save work

* save work

* save work

* save work

* Restore old broadcast structure

* Readd systembroadcast methods

* Make sure that services from SystemBroadcast are also available from Broadcast on closed media

* save work

* Save work

* save work

* Save work

* save work

* save work

* save work

* save work

* save work

* Change maximum number of elements for the key tables, etc.

* save work

* First working seqno sync with ETS

* save work

* save work

* save work

* save work

* save work

* save work

* Remove magic value and add comment

* save work

* Extend restart and masterreset for factory reset

* save work

* First working secure broadcast mode with IA programming

* Add FunctionPropertyExt* AL services

* Fix FunctionPropertyExt*. Working T_DATA_CONNECTED with FunctionPropertyExt*.

* Add PropertyValueExt* AL services. Handle master reset in AL service RESTART.

* Fix FunctionPropertyExtStateRead, fix restart. MILESTONE: Working physical programming of IA and toolkey with confirmed restart. Reading deviceinfos working.

* Handle PDT_CONTROL in FunctionPropertyExt*

* Fix FunctionPropertyExt* and FunctionProperty for PDT_CONTROL

* Change comment.

* save work

* save work

* Add group object security handling

* Move map to own file

* use simple_map

* Include simple_map.h in CmakeFile

* Move code from header to source file

* Remove obsolete code

* MILESTONE: working programming of secure device with IA and tables

* cleanup

* bugfix

* flashSize must be big enough. Security IF object contains a lot more data.

* Merge master into feat_datasecure

* Revert "Merge master into feat_datasecure"

This reverts commit 0c8358692a.

* Revert "Revert "Merge master into feat_datasecure""

This reverts commit aa59253785.

* Bugfixes

* cleanup

* cleanup

* Add printing of uint64_t

* Don't compile secapplayer if data secure not enabled

* pin platform for ESP8266 to specific version

* SecIfObject: save/restore required for persisting STATE. Bugfix: use correct PID for group key table

* Cleanup comment and debug output

* Further cleanup.

* Refactor master reset

* Remove unused IP data link layer test code

* Only reset TOOL kkey to FDSK on factory reset

* Modify .gitignore and remove vscode config file

* Correct comment

* Handle SBC flag (systembroadcast) in SCF field. Couplers between open and closed media need this.

* Remove code that slipped in.
2020-07-06 19:16:54 +02:00
nanosonde
8cfd67662f
Bugfixes for property startIndex 0 and PID_IO_LIST (#75)
* Bugfix for property entry 0 and PID_IO_LIST

* Remove unsused method

* Fix comment and add missing size adjustment in other method

* Callback properties must return valid data on startIndex 0. The return value must contain the actual element count within the property.
2020-07-05 12:11:44 +02:00
thelsing
6cd030203a
Update data_property.cpp 2020-07-03 00:47:29 +02:00
etrinh
fda8e64425
Add support for lambda for more platforms (#74)
* Fix Stm32 Eeprom handler
Fix missing parenthesis
Fix some type consistencies

* Fix #73
Add ability to override config.h with define NO_KNX_CONFIG

* change tabs to space

* coding style

* Allow lambda on platforms which support it, can be forced with HAS_FUNCTIONAL 0/1

* remove automatic detection of functional due to breakage with some platforms:
In file included from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/bits/char_traits.h:39:0,
                 from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/string:40,
                 from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/stdexcept:39,
                 from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/array:39,
                 from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/tuple:39,
                 from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/functional:54,
                 from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx/group_object.h:37,
                 from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx/group_object_table_object.h:4,
                 from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx/bau_systemB.h:8,
                 from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx/bau07B0.h:4,
                 from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx_facade.h:12,
                 from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx.h:86,
                 from /home/travis/build/thelsing/knx/examples/knx-bme680/knx-bme680.ino:4:
/home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/bits/stl_algobase.h:243:56: error: macro "min" passed 3 arguments, but takes just 2
     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
                                                        ^
/home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/bits/stl_algobase.h:265:56: error: macro "max" passed 3 arguments, but takes just 2
     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
                                                        ^
To be investigated...

Co-authored-by: etrinh <etrinh@zdionline.net>
2020-07-01 10:39:30 +02:00
etrinh
f880114da5
Stm32 port (#71)
* Fix Stm32 Eeprom handler
Fix missing parenthesis
Fix some type consistencies

* Fix #73
Add ability to override config.h with define NO_KNX_CONFIG

* change tabs to space

* coding style

Co-authored-by: etrinh <etrinh@zdionline.net>
2020-06-30 14:58:53 +02:00
Thomas Kunze
4677044f46 add some fixes and enhancements by leoujz
fix build
2020-06-25 20:36:02 +02:00
Thomas Kunze
87a12fa26a Merge branch 'master' of https://github.com/thelsing/knx 2020-06-24 23:03:21 +02:00
Thomas Kunze
f450d87d05 refactor RfMediumObject to use properties 2020-06-24 23:03:12 +02:00
thelsing
eacc944e7c
remove __has_include because of build failure 2020-06-24 22:14:45 +02:00
thelsing
084657cb7a
fix #46 2020-06-24 18:48:55 +02:00
thelsing
5855f35eef
fix #50 2020-06-23 00:21:00 +02:00
thelsing
d3788d3ee4
Merge pull request #68 from etrinh/master
Merge STM32 platform
2020-06-23 00:15:18 +02:00
thelsing
2ff07d29e3
Update bits.h 2020-06-18 11:26:59 +02:00
nanosonde
cadc6c6124
Refactor broadcast/systembroadcast (#62)
* Add missing source files

* Fix comment

* Refactor Broadcast/SystemBroadcast

* Add empty confirm methods

* Remove unclean solution to suppress warning about unsed var

* Restore old structure

* Fix issues

* Add more missing source files

* Make sure that services from SystemBroadcast are also available from Broadcast on closed media

* Make sure that sent broadcast/systembroadcast frames are always marked as broadcast frames on closed media
2020-06-09 21:06:13 +02:00
Nanosonde
918d3f37c4 Fix compilation. 2020-06-08 11:14:56 +02:00
Nanosonde
86c8f359e3 Add support for Function Properties 2020-06-08 11:04:00 +02:00
Thomas Kunze
5f4f86dcbd add platformio file and fix compiling without IP 2020-05-08 01:50:50 +02:00
Thomas Kunze
c97bcc29f3 comment some debugging code 2020-05-07 20:15:15 +02:00
etrinh
217794d219 Merge branch 'master' of https://github.com/thelsing/knx 2020-05-02 17:33:54 +02:00
Thomas Kunze
ed5dc73984 fix overrides of bau27b0 2020-05-02 11:43:02 +02:00
etrinh
d789fb1459 Enable TP medium for ESP32 2020-04-07 18:24:28 +02:00
etrinh
0f99a4c969 Fix compilation warning
STM32 uses TP
2020-04-02 22:10:50 +02:00
etrinh
ced8aa0a31 Fix conflicts with STM32 DADDR, knx DADDR rename DEVADDR 2020-04-02 18:25:52 +02:00
etrinh
34df27ee87 fix bad commit 2020-04-02 18:16:15 +02:00
etrinh
147a3942ad Add priliminar Arduino STM32 port 2020-04-02 18:09:53 +02:00
Thomas Kunze
894a54fa7f enable RF and TP 2020-03-12 21:34:00 +01:00
Thomas Kunze
445bf05f93 fix bug in save code 2020-02-11 22:16:59 +01:00
Thomas Kunze
4dda99b341 only add rf props ifdef USE_RF 2020-01-11 21:20:25 +01:00
Thomas Kunze
82f463f965 refactor cemi server object 2019-12-28 10:56:33 +01:00
Thomas Kunze
1465cb558c split USE_USB from USE_CEMI_SERVER 2019-12-28 09:54:02 +01:00
Thomas Kunze
e2fd20ab9a implement knx-ip searchresponse 2019-12-28 00:29:17 +01:00
Thomas Kunze
02a24ea3b8 move #endif 2019-12-27 10:47:22 +01:00
Thomas Kunze
6ae000482f - add some knx-ip classes
- return no data if Property has no elements
- implement get{ipAddress, netmask, defaultGw, macAddress) for linux platform
2019-12-27 02:06:10 +01:00
Thomas Kunze
8f61ef8608 fix length of PDT_VERSION 2019-12-22 17:45:24 +01:00
Thomas Kunze
d3d95f1185 add object for routing indication packet 2019-12-22 17:31:33 +01:00
Thomas Kunze
f8e2da00a2 refactor device object, add more const to functions 2019-12-21 17:48:46 +01:00
Thomas Kunze
729c06357a bugfixing 2019-12-18 22:14:56 +01:00
Thomas Kunze
ca27ff4ab3 bump device object version to invalidate flash (format change) 2019-12-18 21:38:41 +01:00
Thomas Kunze
15bd076c28 Merge branch 'master' of https://github.com/thelsing/knx 2019-12-18 21:28:01 +01:00
Thomas Kunze
6cd570e162 refactore TableObject classes to use Property class 2019-12-18 21:27:54 +01:00
nanosonde
1d01317845 Travis knx usb (#48)
* Update .travis.yml

* Update platformio.ini

* Update .travis.yml

* Fix compilation

* Change platformio config

* Try to fix travis build

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* Add new pio config for CI

* save work

* save work

* save work

* save work

* Try to fix CI run for example knx-linux

* Fix compilation

* Try to fix ESP8266 compilation

* Do not enable cEMI server per default. Is only enabled during platformio build externally
2019-12-16 19:52:10 +01:00
Thomas Kunze
b9571112d6 add some convienience methods to Property class 2019-12-12 23:40:03 +01:00
Thomas Kunze
398ba7408b get rid of InterfaceObject::objectType() and BauSystemB::descriptor() 2019-12-12 23:06:46 +01:00
Thomas Kunze
515d18fdbf fix property save 2019-12-12 22:47:54 +01:00
Thomas Kunze
6765add06d move knx-linux and knxPyton to examples dir 2019-12-12 21:42:51 +01:00
Thomas Kunze
d2b6653d68 add config.h and USE_IP USE_TP USE_RF macros 2019-12-12 21:23:37 +01:00
Thomas Kunze
4cc8b2bb36 Finish refactoring of IpParameterObject 2019-12-12 19:34:29 +01:00
Thomas Kunze
e128debabb convert CallbackProperty to template 2019-12-12 01:42:56 +01:00
Thomas Kunze
71448efdad add overrides keyword for all interface objects.
refactor properties more
2019-12-11 23:32:57 +01:00
Thomas Kunze
396994c1a5 add Property, DataProperty and CallbackProperty classes 2019-12-11 22:23:21 +01:00
Thomas Kunze
c64b7f6a01 change signature of propertyRead/Write 2019-12-10 23:42:27 +01:00
Thomas Kunze
10b83b46bc fix build 2019-12-10 23:00:25 +01:00
Thomas Kunze
cd0fdc85b6 rename sendBytes ->sendBytesMultiCast
readBytes -> readBytesMultiCast
2019-12-10 22:29:14 +01:00
Thomas Kunze
d6db6a9673 add default noop implementations for most stuff of platform. 2019-12-10 22:25:33 +01:00
Thomas Kunze
5d8264555a remove unused methods of Platform class 2019-12-10 21:44:23 +01:00
Thomas Kunze
aa230ee0b9 Merge master 2019-12-09 23:28:17 +01:00
Thomas Kunze
3ed796ef93 fix more memory bugs 2019-12-09 23:19:13 +01:00
nanosonde
a76fc31b80 Add cEMI Server with KNX USB HID support (#47) 2019-12-09 19:53:08 +01:00
Thomas Kunze
77a0d6fc2e save work 2019-12-01 21:47:29 +01:00
Thomas Kunze
75958ec52a get rid of dynamic cast, because we have no rtti on arduino 2019-11-05 17:43:28 +01:00
Thomas Kunze
d3cb967216 16 bit for blocksize should be enough 2019-11-04 21:56:49 +01:00
Thomas Kunze
07133807d8 small refactoring of memory class 2019-11-04 21:51:52 +01:00
Thomas Kunze
2659824aa2 implement save/load to/from NVM (completely untested) 2019-11-04 21:43:06 +01:00
Thomas Kunze
8421279d53 -add saveLength to SaveRestore
-undo split of Restore from SaveRestore
-add some dynamic memory management to memory-class
2019-11-03 22:09:22 +01:00
Thomas Kunze
2770f5eaa9 Split Restore from SaveRestore. 2019-10-29 22:39:44 +01:00
Thomas Kunze
94b91278bd access and allocate memory for interface-objects trough the memory class 2019-10-29 21:15:12 +01:00
Nanosonde
15b318992d Keep GPIO value sysfs file open for reading/writing 2019-10-28 20:37:40 +01:00
nanosonde
eb87ec1fe9 Compile KNX-RF specific bau27B0 and layers only if MEDIUM_TYPE is 2 (RF).
For knx-linux add MEDIUM_TYPE 0 (TP) as default to the CMakeLists.txt
2019-10-28 14:03:35 +01:00
nanosonde
c93dc81367 Add default MEDIUM_TYPE 0 (TP) 2019-10-28 13:33:06 +01:00
nanosonde
9f2981abcb Add network layer primitives for broadcastIndication() and broadcastConfirm() 2019-10-28 12:39:15 +01:00
nanosonde
6e654d4bf5 Remove GPIO methods from platform classes 2019-10-28 12:08:01 +01:00
nanosonde
1bf8874c05 Change default bauNumber to zero 2019-10-28 11:04:15 +01:00
nanosonde
93a92228b8 Add enum for NM_Read_SerialNumber_By_* 2019-10-28 11:01:01 +01:00
nanosonde
8a3d5edd8f Make max APDU length and interface object list configurable in device object 2019-10-27 10:54:42 +01:00
nanosonde
d79e022b76 Add fixes after review with upstream 2019-10-25 16:47:44 +02:00
nanosonde
fc0153e52a initial KNX RF S-Mode support 2019-10-25 16:41:29 +02:00
thelsing
eaab7d7548
Update apdu.cpp
fix short acpi detection
2019-10-23 22:16:48 +02:00
mumpf
70f387a7b9 "Restart device" implementation (#38)
* corrected float with DPT9

* Switch Programming-LED also via Bus/ETS

* Again: Prog-LED switchable from bus/ETS

* DPT16 (to bus) implemented

* - Allows ProgButton interrupts on FALLING signal

* restart device command

* - removed magic numbers
- added enum for restart states
2019-10-15 09:49:50 +02:00
mumpf
4a0b46e062 Progbutton interrupt (#35)
* corrected float with DPT9

* Switch Programming-LED also via Bus/ETS

* Again: Prog-LED switchable from bus/ETS

* DPT16 (to bus) implemented

* - Allows ProgButton interrupts on FALLING signal
2019-09-14 18:24:34 +02:00
Bernator
4a877cc1b5 Debounce prog button (#34)
* bugfix, print not allowed in constructor

* Update tpuart_data_link_layer.cpp

- start confirm timout only after last byte was sent
- increase BYTE_TIMEOUT

* debounce progbutton
2019-09-12 23:23:15 +02:00
Bernator
afd07d10cb Bugfix, change debug uart not possible (#33)
* bugfix, print not allowed in constructor

* Update tpuart_data_link_layer.cpp

- start confirm timout only after last byte was sent
- increase BYTE_TIMEOUT

* -bugfix, change debug Uart not possible

* Update esp32_platform.cpp

* Update esp_platform.cpp

* Update knx-bme680.ino

* Update knx-demo.ino

* Update knx-hdc1008.ino

* Update knx-sonoffS20.ino
2019-09-09 20:10:56 +02:00