From 0c8a79edbd28ca10b3d9f1a939914a7b2e7fb9f8 Mon Sep 17 00:00:00 2001 From: nanosonde <2073569+nanosonde@users.noreply.github.com> Date: Fri, 25 Oct 2019 17:13:59 +0200 Subject: [PATCH] Add KNX RF example --- examples/knx-rf-demo/knx-rf-demo.ino | 70 +++++++++++++++++++++ examples/knx-rf-demo/knx-rf-demo.knxprod | Bin 0 -> 35610 bytes examples/knx-rf-demo/knx-rf-demo.xml | 77 +++++++++++++++++++++++ 3 files changed, 147 insertions(+) create mode 100644 examples/knx-rf-demo/knx-rf-demo.ino create mode 100644 examples/knx-rf-demo/knx-rf-demo.knxprod create mode 100644 examples/knx-rf-demo/knx-rf-demo.xml diff --git a/examples/knx-rf-demo/knx-rf-demo.ino b/examples/knx-rf-demo/knx-rf-demo.ino new file mode 100644 index 0000000..b4aefed --- /dev/null +++ b/examples/knx-rf-demo/knx-rf-demo.ino @@ -0,0 +1,70 @@ +#include + +// create macros easy access to group objects +#define goTemperature knx.getGroupObject(1) +#define goHumidity knx.getGroupObject(2) + +uint32_t cyclSend = 0; +uint8_t sendCounter = 0; +long lastsend = 0; + +// Entry point for the example +void setup(void) +{ + Serial1.begin(115200); + ArduinoPlatform::SerialDebug = &Serial1; + delay(1000); + Serial1.println("start"); + + // read adress table, association table, groupobject table and parameters from eeprom + knx.readMemory(); + + if (knx.induvidualAddress() == 0) + knx.progMode(true); + + + if (knx.configured()) + { + cyclSend = knx.paramInt(0); + Serial1.print("Zykl. send:"); + Serial1.println(cyclSend); + goTemperature.dataPointType(Dpt(9, 1)); + goHumidity.dataPointType(Dpt(9, 1)); + } + + // start the framework. + knx.start(); +} + +// Function that is looped forever +void loop(void) +{ + // don't delay here to much. Otherwise you might lose packages or mess up the timing with ETS + knx.loop(); + + // only run the application code if the device was configured with ETS + if(!knx.configured()) + return; + + long now = millis(); + if ((now - lastsend) < 3000) + return; + + lastsend = now; + + float temp = 1.2345; + float humi = 60.2; + String output = String(millis()); + output += ", " + String(temp); + output += ", " + String(humi); + Serial1.println(output); + + if (sendCounter++ == cyclSend) + { + sendCounter = 0; + + goTemperature.value(temp); + goHumidity.value(humi); + } + +} diff --git a/examples/knx-rf-demo/knx-rf-demo.knxprod b/examples/knx-rf-demo/knx-rf-demo.knxprod new file mode 100644 index 0000000000000000000000000000000000000000..72c5f17435e073f4c2f2543dc6d28eb11b83a966 GIT binary patch literal 35610 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 z zU6O~_!!>}5xC4t-u|ovamJBOf_sTc-=_M(VBWwu7mJrLCw=iTUEYOu3bKkSvEnvp% z+1vXOpH{JhfT!U|^3!4!^iYQiJZ5PrHqOccnJvgunnm@dDT?+b?$kYG4HV+Ya$C9Q zRVrhua<_g6Fv18y4Tiz-@#*cTkV?T*wOc^jxlcVyyCHuk3JvboK9SO~z@9DBQryfa z(-Y=2x_1@vR;lj@pqD;DFAEgRP?*^2jco5W8q?{drWWlrml|nCz}6v8-R1_-z16O$ znB*t=RHkPsLAQ28MP7OZ+_8h{_U1+Va4p5_pMDjV@+;brmY|YsYF~fmt))yMOM1&4 z$W9u_j8q557`cB@Rk|;p?Z)8j(c^dPyG@mR#WG71kOsyRlUo8v#3jz0sCiw73h)+R zjy;cNPsKiDu1a4@nG{oUiYq0)S_@ru`g87HRw7p3C{%cpk{(KI_fAgE_%PtAy;B1| zN4fr@6z<%bUtjFFFSNWGXmLg9CeBVAOr4&KlRvF8J2$lHe!hMRjebHXFPWGbK!pIIlvaHJ3w2Of1_Hbf-eqTSUv1Zi+zcb(F7b`eJ*AVrBGAei3e&RJzLvAh$?E=fZJyha{z z=Ro%)nWQV}MIrV;WxsKyL_uh0Y3k&sGr}>02?_|2x_#b3XmRvMYIBhU>P?EuJ1qv| z0E`;EA?dU5Uy+MWlBtT8e=LZlVoec}9g-}Ibbn zxP*H-MIjzRWy6_+u*UoI5LDgy5gF<+;}TUlCuE9eA&$Qw#$WEgZNF+l!v~s8hQu_a zCmiaf|M(?O+CqW{?Eo^iv>i+};4YT69WOK`1Iwv68D0-a0Q=)ip8(YOYJ4lH()o3| zHQryf_~vB4`Dgs-E>Ew~!c{fLCh^hOc=P#w#6vqf%cV=Vv~sDG$D94Hd)(O_w)^L; zIWtX|tF8}^&+BKUOJ(Qx^(BRJT1nFhnSz-v`ouxQk7hY*ZQc8%rPclWxrYhohhlQ> zEwQ`7vDw)m-KevhvzIfky+(Nt6w_YP+BXLZpI7Er7EkYQuWcG#-1MVjEsjC9QW;2U zfZDX`NNi)P&3b^Y_WMVU34$I%x{ag?DJV7%*Re?2*elfeP^Lc&K`$b=C$BseyYOwX zOel@elt*(ljo$`tA=t+}6n$`vS(~mU3;z~Q3ENvKG9fJJ0+W=XK2&Yc@!B;%X%uN0 zvOm-e;|}Xb1Pb;i2SF^E=c8wX%0z`g0SAG|HG!@*$WQ46&$0yHzdZYvs~5U15bLAU zSH{Q!9z`hhR#}LYiQFL5rwGNWDeJjw_AWT3(R)~de|khSCyXbi6@|y)1lG6v;wJS# z{7_&a# zIePv>A@+59YQ%A=DzQ%M*=$0LBip)`GA+9CLs*oAP1Zgug6yS_H zH@{>)nS>3hyBE;0TGPZ02IAjb>SozhV0MPGS;v3P!s8*;+M=ZJJOu!Dc(Bir;5bgwgRaaSFr%@>j-CI8 zq6K;R=d>V2Ga+%Uf}{ua<#?8WN!71CY{>%>Z56 zFA$|Amd+VYPa}ji|Ct#bgNWmtVQ6$wvS8?+Qu>0_r=BiO%7%d#$e~uUHqi+AIWUyV z^0tSknxfqWtYQM*2tn=NeiPTky3zB{>?GHX*0c6(_I=)ZQX(5g>sfjx`!*Vy zCQOx2O`xbHq4f+rcdv^3aGB|tBzl-5X~}FLfGN4doy{kIQ7^s!m5HmcLeh#sIJhVo zkZy$BEWW(@-Ijv9Y)eTG;onvI#*DFngwDn&*&Vp;c)EFND}JiLpwL~W2^zCkkTvCD z9#D_gGsYyxS6spEpCd(86D8}Ky++8E6>JKWekzbtZQSBsp9yFLO)kH2k2Pp*f{Gp< zQqdiq@=d{(F47aS6X2=vASc&YWddYuy8?tBq6*b#356@>NZfGoq&7g>VxeoMN!T)j zZNZHclOtCGGMF$h`RFs}f{Opa{h{heHc&X*Sb7Lv{#;hq<$tIc2?|p(C{(qw^oYN( zUF~dr-R6#_M_qlqKJj8pvS(-nv-H@%0A0-pzwKKAoVj|f0@up~H))4d@pJms((|wA| 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file