From a4c8e85be5888bc02e93747db880b765294c24a1 Mon Sep 17 00:00:00 2001 From: helgeerbe Date: Mon, 20 Mar 2023 15:39:57 +0100 Subject: [PATCH 01/16] add webapp --- webapp_dist/js/app.js.gz | Bin 158358 -> 158242 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/webapp_dist/js/app.js.gz b/webapp_dist/js/app.js.gz index dffc6d508df7e73323e3cd9365e2767748af58e0..3fc4e5d6a8f9d580f6122c94bd6cc853c0385154 100644 GIT binary patch delta 127768 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̓P^|oRUvU-~mHX);te@dyUlM1|XUBEzL ziaKDIB4Q&HMsm_j@A1(Cd=_Lel%E!eA0K1DXF5-WR6=7e6ppm+b2&n%e_5m{DbBT$ z48>=;c~~J6n9@pxiK1q7E+}B~6kkMSOy~i5hF!t}W(qK%8-+4xkL4{|Pxi;2Qsv6M zupFkZyyed+l0*4)gswH62B*b~XTkZ!@0t2ffrR9ks5AePW3Vh1i3k^EC>B zj4b~x!b+eD8xO-3LM66~e*};gMQ<QcE!H~#? zZE^dxi;=*%QCsWwa6z|J@Db`P=<1d1O0~45X;DebB#Ap;ankz2VRJ6s&-_p`o`K3< zp8kcWYs$?XeRT1#e@bdHlPi^}zk1quTI+>2l9|xw0)iA`0h#*b$7eF`$geMA$g9ZQ zKk}v@G1GVM9>?BjKwVB3I!QM^4e=NVCwFxjv*dKTbLwGqp z^6_zS%3zF<*^eyf(~3|rAWJ(6L4^I-ie>Tv&BZbG$(%f?_i-6NTF6r3;UT7yju)h? zxPpHbXACkSiL=skt&8`06;uK%^1|;!*I7LeR~B+LX=G2t`UQDAhleV>R0tvDt4k@c z5)DARq*xCDe@)q;7$>Z$7#?lW&_;8~W_9@ZxHQ!DnF$KTF%;H}0>1i$LnD>z!Up0= z$&!%@2(I3_()OZx#-_h3u9zWOBmz2wHvdQE z&?pg#a4&MT#JT_LA@BH8&=J~g}0)U9X+e}3Na?pQD<)t;5v*iU_6){fiDq4fXa zOCJ_}f2YWcp~wLpNL&Y-HPARi0h}oc%_;l=mkO&upKKnMD?#`-)C=?zq5Lkj6aU8X zE!omYhd`)%Ntkp{FFQCzjku+;ONb`Z&yWp*Q@UY3Xq>|CcndVnd@%?c;o_u02FFO0AmWpzo@5i>naMQ6zMtf4hwOpugi=s6apsL&)7Gu*fVeGVH(btsxtw zhK}tpz$>F{k`@~E_kC-`kk~nX+RRv#0Aw&-UY@cGGMRBZ#bsLiqTjGC*tK0^AF5pT zFVUoPNhTe3Zcm{6zTZFat$m-}(ecpq6F2Dzi3j8Uxivv^0U%UBQa5J*#=0Tfe<6%s zdG;atEedx&n=!{^_e9^*Y;_hal#D})Le|*eO)2)3x2v0LkgjY}c>?AFb}{)hv!bwE zsQg!u$RAz6FTIzDKbSwsF>v`zOA2;y=Y+-HWB1At&|9 zhs_>6ReYE|JWy$q>{f8_gUe(LivSJqHJC!`w@v#*tu*~|z~m}fA=B3g$c$Ja%bA-4 z+L2S~7m)L6B}6eb>oJIf3tTy;aN29rK|+cW7*_cZX4xT()DVU&f4fB%NRMS3M0Sxt zdh*}cN#2qT^dqMPzo$r8`_2?-03eq=`wrRGZID;Df4URvyt%!y!g0$LWN)7WPK5=z zGTANe{uOTMq0e>;81EQ2jlHsW`+_O4B$vVtaVs+GaP`DGX!yXIq^kn++=9k$`^V@J zVBMl8z_!16GkA6SfAbmq0r=R$GrA>WfbH-P_5#>-;dbzX2faER9H0JVH%R%XlD063 z9S(MQ){DA(?M8Ry?xm=de%Q0Ga21=JpPJvJ!*=zGy)fs{*^w!6>%Lt?*>@sZcM7^v zCcj6oIQS&qPdV(=W8VW%Z!nO2o*vemdru{@>K-5qg9d2Kf7yXO?zgSx=E2X6&4XHv z(4ELc(pWt(O+FV*IS%~K9vKG8X$V4*R@&YpUl(*vSZe6L#hSUE6J+C5Xi}*edTk)p zPJYa5ZE`NNz&WF}uz?4ZtA>!pP>z;?rYYilg0OwAAiu3NMuPj0)mE^Y&^Qs}p`1JG zx0-J94_)QAe@$11uITmnrrbDSN%%@mO5PgH^) z!aRELigvDScR)<|NzU@qmUiW7j!Ft%NI%F+xLLjpJBtD+&=&X=(ZliyA}bf&IM9WpQeAgjD3e+@2r3p??lR(NEM=6{uCNsX_@ z^~DBsmnq=#E)D1t&V?{3eNu2B4#hVip~NHRyO~1b7kGymX0JbJu*Ru{9N&BY8_WxC zO7_a1avv5NHuMME*2qId3~{Y#p(}ccvq{hoN*w2Ont}Mu3N&5Ipm{2ZvxEF-0}`t- z{A>Ogf3mzk8t-2S_|6<13LN+q&*#-ZIp_g2iu)JPlrzvU+bIBV4A^4`fA5}c6n-MV ze!F7(?CBzRDK8H?CN%8)sn^0Yv?$PCLT z_a>cO4(XZtq9?~jo+Yeh zC9YZ=yDA3C&oWR$#WH1CDd57nER^x2IJfh@6?gX1IdGGg!|JsO93+UZ(DjWJWr2l! z+Be~-gwX8e3C(sH2Ds>7{2ABT3wC8o-HU2#yZ<2f)Y@iZ2d(XS-Va9=YN$euIon1b zf2X8Wksj4QT*?_4$xroB?-GfBpx0u#*8D_`Ciy%E%L8eap%FwfzC7`Vszt ziT;6pvkgYWe+z$1_Pc#Y^IUD!4r+hYUe~VFnYK=H3G5RTuJO_<2P=Q9d|c5=zt1JG zFLv=#;>EDwxN5RD_Lsigv@fa63>|~NXofQGDEzC?qU*X-{?f0)sc%!76W7AvYBi9Xmp>s{h4cxT#FVHC`Lrt)4uOQWn90rQyY-gE&sQcxTKSx zxolLVhd_gGpB8U4apu?JZNS{sKV*dM&uFOyibMYbjFphFMfU>(8yzVZf8PCzc=p1Z zev*sAZ4BTWFOAG`FfkfV$<06Jwxa-9cipw4p}BLwIh|=pPu#%r9v_!L_Fkg9H&xxl zhIg-C;PnB_!8?I=VlLU-34x4yk=fV#s)lx?yMAb0hpG8T{c3fFgHJH_ zhKWp9q8qJe$YUkxVKpsef81vETYHBFMmO|)u7MtEUDsx0x$#M>Jxn`?^gD5F&lk2I zfi`_-oL9LHeA)+aP10wlmq@NNlF?oS* z8#TlMdTFEaRo#O|Ed(k%mzP7l&xf8;B4W6!wAXHVgA`a@43d!*f0ZpLDZ1s;0d9-i zTvNbKNZoCT%ug@aF?Ou}-w zFIOOYgJS?}2TAmzf7pS#=A%h?zYQ(*Qd&WL%i<=FcMdEtV1cro2%{0OccXoMLj-eO z^mhJjh_Y1%hg#_4BS@&FNfxg1?wzw#?8egE_Y~y=hVf7U6D>6n;}CNXavi{(m~|=x zDBJr2ku#P80f?5HBS57pp{NG%(o7a&$&7!brlhd=rPBlMe~^%~+fi~Z4LuCxv=0#D za`!@q4MA2Y5`teeOGM?3|6D`EQ_6R@PGS^pKaUK6O67UA>S)dmQ9A#W93nw*7KAq7 zI!zatV?5$YSXT)EwuMCwQ0QL>M}gV^W$H1x)L2p!)1e&x0~4|mCEM$&{GqupjDYZU z)ZHcWKyOc;e_m7}rjn;=q4HD4Mu9)G603IHALex2p$GCQrc0?s2oHI4o*h=zDItM6 zVbaamnyFJ8&5`}kJ(f3pj`V?sJDdv4gg0yzq;(kn&=n6F>b|)^QHCa_w>W`E9UV#L8+@+T=0BXw*q`De+t+_Dx#ZAGY4uFQv=#_w?=_M zmKk&fG#6bMCG7DF$eg$~Hlv?PIuyp22&fM(AZi)J3?v3CRsuE@{b%YI0r?k7K+(J; z90U}HjUbowIwdgTk;9>v0*C|$pM%Os1C=?D>DZjRe(YAX^^HIRz(;R5Xds`afrIvX z#$gmrf4n$HK4*0ejsO9>z;{t_n_?Tz<0BxXg)NCh99QUHLtFSBV4#&TAEciN^b+zH z;qZVn2Oxjs0wjfZIwT`K03y?vlLWu?nR~xT+sZ6uHRu`DCt=3r@9!YplKj)Go)Rp) zET0=J)J4}&z<9xHFNzbsK!pUsG|jjNkvp@2f0r;>LjOMGSq5uxJY-*nYmH#T)qdNG{f5yf?emGq*@k)buUij-jUOc3gkl*@>XaJ-De~0>c z0L<;hQ+(KxZiQ44=kQ8vOEgDpg=`7EUsLZuA#CsOn)`!jW>w=Y?pDx_Epf zL4$&@D4`^-nxat|>ZK{4=)-u2f3b&ASkQr{7`cT%xXDjEy=z?M6+9oKw)4ZK^TDJtG^1W>Z0&S@4_tE#kWIMDSW{+-N}WI`GVX8gouaV%fv(}XA@mL zUXYo6!c+?*Bv-9G#9v>;peYMWsFlJvIq6>YM*xi4w+PWITYhJiDr1J?KCwAF)X_8 z4SAnc*-pd?Euk-l;fKzMW07<|i0gsK0_Exh>mg46SC^wwX=$Ut1W>^heVf>mz?O#dstz zH*Y00|04vlJ&=(Hs|_Xt4^}+}bur5EoSn_=)xm$(Pk*fT?SIzmKbrrnKh}R-W%rPd z->d8hep%K(M=LK@+1|_s$@hP){fY}5&ikVsYHSrZ zWqW2z@VSD8n1r*~rJysGLBH`{B&uQIr|&w~u1u!zf8fV6slKib+!y*`b2N)g-Jf0?EiO)J?6oM{ZNN`EPeEB#8Fc{LLR zhT`(&uB4KDg60w7wdrEG^`YbY$dhq|3LG9RGJk7Qvfrqt({=oZGpT8pM5MsgqbqmR z2deb=7zhlxuTSZCMivtf8BIW*CL56DP@BlsEDgZU{X6qvo1kq)7qO3lhZ_D<8-~ZR ze>HI{z`VinM|}xSSNCb;Hwq#bBc6+rbQ(XBcx>MjrN`g*Y!4v0H|%|^8$?50Z>4hEhY&#Bhki&=UpR`Nku91+o`+Fv|}r?A5U>9|PfT@2}L zdcY(N{n^Nk$u6!&@2FLQpT*_Vf5Q~abWNnDAGs&kW>+(cZtaT0bpUifeaXRm(2&Yf zlb(xq%QG98N&77_zlnhO)B%UVC{ zoj3sfYNw*oog$4oq1K#fDx;0rR1E@eE3q30b}+ijO8`xQl)km-ToWLP5DBPUZlJT~ zp=jXXpBM!R#O3=la!83taER($4@O8NLaHdc5AkaBQdsw5R0KI1BaDK>Df0LNOhv?g>9u7SqXXodrp!FE%n{a{2(Ol9?-v%7z<3K6Q zOX2x+hbVVO(dV1YmnL-8KadCbf3d!=Us^b!gMc(B6@`&LmjDt_xFouJaM6t@oDZ>g zG*p+X&jDuG1Ai(Fq*gvfd|2H=u`8UX?ik|qzMm;)l9y;4M`sKUe;Ds)!q4OJ@%@Z@ zX)sY#mu#i;2gU|>V)D|V`@3~y01*zTDz-T1^;x!pQX%N(d$UxObx(RP*!l%VZq8aHb-Au4+p<~n2Nkxc!92c$$ zqSL28#Nw(vYJ}=zf4pCqmEKmWW6PgERl?oGofjYPjt<^)VZJ(Yhd}N>e%RfXuOX8F z&S68lN}{X!FTIeefIQ-5lLfW^%|K=D;- z&t5!yATj?d?LXhrLIY_Srl(rq@RO+=OP3_MU=MSpfkvBtf9CN8ZeB$TsWQS7Z?2Pv z^B7gDOZi0po*?Q|Q>C3Z3RW6@ie+mgdYH*#i%LS%E4Qg`OVd3eJnUsODZ! z0+o}Hm5lMRe{aIKD8p5M_!7=4V~|!WNm%hFQ?CE4BxAQCDo@;G9F8gmHej#{tZT(} zhU1EQ-+So?bACozHC+4*OMQQf>e;wgZWqK zcS9Cl9FszxTy_i4y#{gE>ObS^z^UD%AKztv>*5AKc5G+bKR}!sEUJsZ@}N z^We~ke=36fWD)M5(T`~06sXRsaQk}2c<~U;jS7tN+8eo}3XT*LJxGKluei4ucwNf~ z=SKZ2kEj;R=lq=gF@tibN}?mDb45+m z_mb1)Of^>A)~(~MvtM?;P!8Y$WMM*_@B`Ere^mCFO_)r`Xx}KmbApyItgx9=^a}uh zX=rhN@oBEO%7=%42k7jDmYp+@iD&M%h#8Qo^&jq}dgS|11j~&3Pa}*J|LqE^mDcx5 z&W_Ng@!O+gXzT>Rnf2Kaa|l6JSy|AdTF)4X>nOtHk4K%HW;@!T_iY=?p#z*Z9xrr6QsfyR79d5g^EL>?F$Ww_>`t{v;@R2 z?Taa1%`20HZj52fENuTEaKG8bH(E`bWW%xNk0Lja97$$yZe3>QI4?r=oRpZ1Yq8=i zc^#aRBuDYlm6l7{^@VK#$T3#O#XM{5c!n4>HIh0g{28YIp+ncYqe_QPPvmG~f&(<3`J7o1LiIOT4!C_~`U z=Dr%T=6~8o%{Vo`swcHr`i3W=e*n^yBOvMUu{4|Ucxy8rHV)Ze33{)ia3a<~pWyGh z`a4-({xqu#SVzW0cpP9mqAoV0{9hKf)6X=MHnI=Ak_VivXe|D|)~e*jJ)g5L!oJOK z_owDhz$Ih|LzTnCi(?ecG+aqnQV}z6B1sOa^7yiVeH};~DXQ9>p*j7ke?@8Ks-Jp`5`xOR zSx;Bpy`^mD30QR1NXq8W#-y(8WTMOJc+b$a%Fx(R&KHyl2Jb^De~6;@@(6kPWNrXN zV#9nGb9(o1^UJLI+YDqngbu@G*Z3)S@$=07L7llIyu3urDDdp*4?^yKH+vQoifVJ- zOks~QY8C^XDQje!Mw99yP!dfU4u34lT)1iOvo)xrYb4MJn z#5dm5g(V!>UsE$apxhCvu4Ez}50MthG}us)6he|_&=;v*nmU_`G-qT#Ks|Ykx!DR` zc(WeCgTsjBKc+fbN zMdoL)k!knef8R$^H2k zsboen&yL|i($w@dO?}v;x&O)TG_p(!fbFVYZZi*!%gZ>opBw$m{IcgLlck?Pn7a;; zPXR!cBgicHgd;+QqM86Blj~vfWj(zt-|;*fpiu?9e;h15iE0EAKpCvkK_uTXh(IqZ zwtYd-sBFBjU<=_hL!C+&5uYBLx&aZNx|kfEXkZ8kmI@gPLu7E4JmSEEr9NF=P+24_ zKR%`}1W%k>8ZV72{<$HQ8bd*8hE7E8a0Z)UN=o%c@QK2m!6xtvDWAcn@QXhWF@|5_ z*@z1ue<`sK(!z^}A(E3z@hv{D;ZyjoiIj6lNnP_q;+;$+uQHK%1Bs)^xfJA&(#{|a z-MZ-W#lsBK?ngp8(G!ngi0SP1;7f2EY#V1PKd$gYmaBP*J2BYt$le~UT#eW*(6=qT zyF+*Q$0J4`ALu&CbTntXkWZU;?f6#LZ8MnZe|hLcJhqQB!`MD!?(v6Dg5nb~w1t>` z6FF0~__9}eBSw{ngLypXv;}CSYSR#DhHSdZ`BAMb^-!XwW&4bf}b0ClcDC7C@O z=}h4QGRr+-1aae|=GJ$f#@AIqqMiXD4Nw8Y!CQA+ro%xAPh7nuk+Qe0kMYd(27-|{ ze?*{`nhjeMh4npD<&37tZ;?|z$nzj}gv zD@dJ_c1EFQJXqBcP;E^91pM6zzsdq7(hCDTZW}2lvJ)2L=S|K@(Ufg@0xc6TsdTkX z%gau_Ik`#zG|{fuduUfI&qHahsKc*Ue-@Gz1jVRa7MZCWS(tQgqhxiY>CWA`yF*u& zx3l9(_f&BdYLb1T1bK_Y<%p$Y5VJD{XCpsBB+}I?ijUj{3=)fXtA9=e15s-}KDs|C zQtw^l$C0@a@a-{C-=?XY4l=#(qL!PK&El`zCfuKc{%B-PMw>cle?$zW zCEY+%IGqB#^rTc4XM`>^+5Abvrc_`^ARza8{u6DYB}X>9y%I@szr8$dzt(BHphlb% z5a`*qGq#sHoe2P!vc}H!oe+m-0Z(zK7cBu%GY`;&63e6(g}I2D=htGsFh{%ElAy&) z>icpuui{NE^Vrf9GXgTqxQaY4fB%}P;^-kG=%sV!uq2pR`H07Hc!0OTtJ4vNOv$jW zÝ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 bw6|Q_@-S;Ger$Z)et<_Ghc#ovBY^!Me-h^g delta 127963 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 From 8576034b77af036171987345a0e84dae46faad89 Mon Sep 17 00:00:00 2001 From: MalteSchm Date: Fri, 24 Mar 2023 10:03:22 +0100 Subject: [PATCH 02/16] Adding Huawei CAN interface, web-api, websocket and Mqtt extensions to access the data --- include/Huawei_can.h | 68 ++++++++++++++ include/MqttHandleHuawei.h | 21 +++++ include/PinMapping.h | 8 +- include/WebApi.h | 5 + include/WebApi_Huawei.h | 16 ++++ include/WebApi_ws_Huawei.h | 24 +++++ src/Huawei_can.cpp | 181 +++++++++++++++++++++++++++++++++++++ src/MqttHandleHuawei.cpp | 104 +++++++++++++++++++++ src/PinMapping.cpp | 21 +++++ src/WebApi.cpp | 4 + src/WebApi_Huawei.cpp | 168 ++++++++++++++++++++++++++++++++++ src/WebApi_ws_Huawei.cpp | 128 ++++++++++++++++++++++++++ src/main.cpp | 14 +++ 13 files changed, 761 insertions(+), 1 deletion(-) create mode 100644 include/Huawei_can.h create mode 100644 include/MqttHandleHuawei.h create mode 100644 include/WebApi_Huawei.h create mode 100644 include/WebApi_ws_Huawei.h create mode 100644 src/Huawei_can.cpp create mode 100644 src/MqttHandleHuawei.cpp create mode 100644 src/WebApi_Huawei.cpp create mode 100644 src/WebApi_ws_Huawei.cpp diff --git a/include/Huawei_can.h b/include/Huawei_can.h new file mode 100644 index 000000000..4018d2721 --- /dev/null +++ b/include/Huawei_can.h @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include +#include "SPI.h" +#include + +#define HUAWEI_MINIMAL_OFFLINE_VOLTAGE 48 +#define HUAWEI_MINIMAL_ONLINE_VOLTAGE 42 + +#define MAX_CURRENT_MULTIPLIER 20 + +#define HUAWEI_OFFLINE_VOLTAGE 0x01 +#define HUAWEI_ONLINE_VOLTAGE 0x00 +#define HUAWEI_OFFLINE_CURRENT 0x04 +#define HUAWEI_ONLINE_CURRENT 0x03 + +#define R48xx_DATA_INPUT_POWER 0x70 +#define R48xx_DATA_INPUT_FREQ 0x71 +#define R48xx_DATA_INPUT_CURRENT 0x72 +#define R48xx_DATA_OUTPUT_POWER 0x73 +#define R48xx_DATA_EFFICIENCY 0x74 +#define R48xx_DATA_OUTPUT_VOLTAGE 0x75 +#define R48xx_DATA_OUTPUT_CURRENT_MAX 0x76 +#define R48xx_DATA_INPUT_VOLTAGE 0x78 +#define R48xx_DATA_OUTPUT_TEMPERATURE 0x7F +#define R48xx_DATA_INPUT_TEMPERATURE 0x80 +#define R48xx_DATA_OUTPUT_CURRENT 0x81 +#define R48xx_DATA_OUTPUT_CURRENT1 0x82 + +struct RectifierParameters_t { + float input_voltage; + float input_frequency; + float input_current; + float input_power; + float input_temp; + float efficiency; + float output_voltage; + float output_current; + float max_output_current; + float output_power; + float output_temp; + float amp_hour; +}; + +class HuaweiCanClass { +public: + void init(uint8_t huawei_miso, uint8_t huawei_mosi, uint8_t huawei_clk, uint8_t huawei_irq, uint8_t huawei_cs); + void loop(); + void setValue(float in, uint8_t parameterType); + RectifierParameters_t& get(); + unsigned long getLastUpdate(); + +private: + void sendRequest(); + void onReceive(uint8_t* frame, uint8_t len); + + unsigned long previousMillis; + unsigned long lastUpdate; + RectifierParameters_t _rp; + + SPIClass *hspi; + MCP_CAN *CAN; + uint8_t _huawei_irq; + +}; + +extern HuaweiCanClass HuaweiCan; diff --git a/include/MqttHandleHuawei.h b/include/MqttHandleHuawei.h new file mode 100644 index 000000000..bdb014c0e --- /dev/null +++ b/include/MqttHandleHuawei.h @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include "Configuration.h" +#include +#include + +class MqttHandleHuaweiClass { +public: + void init(); + void loop(); + +private: + void onMqttMessage(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total); + + uint32_t _lastPublishStats; + uint32_t _lastPublish; + +}; + +extern MqttHandleHuaweiClass MqttHandleHuawei; \ No newline at end of file diff --git a/include/PinMapping.h b/include/PinMapping.h index 4e2900f0c..87c216bd6 100644 --- a/include/PinMapping.h +++ b/include/PinMapping.h @@ -33,6 +33,11 @@ struct PinMapping_t { uint8_t victron_rx; uint8_t battery_rx; uint8_t battery_tx; + uint8_t huawei_miso; + uint8_t huawei_mosi; + uint8_t huawei_clk; + uint8_t huawei_irq; + uint8_t huawei_cs; }; class PinMappingClass { @@ -45,7 +50,8 @@ class PinMappingClass { bool isValidEthConfig(); bool isValidVictronConfig(); bool isValidBatteryConfig(); - + bool isValidHuaweiConfig(); + private: PinMapping_t _pinMapping; }; diff --git a/include/WebApi.h b/include/WebApi.h index 9f223402f..ac094d3b0 100644 --- a/include/WebApi.h +++ b/include/WebApi.h @@ -24,6 +24,8 @@ #include "WebApi_ws_live.h" #include "WebApi_ws_vedirect_live.h" #include "WebApi_vedirect.h" +#include "WebApi_ws_Huawei.h" +#include "WebApi_Huawei.h" #include class WebApiClass { @@ -64,6 +66,9 @@ class WebApiClass { WebApiWsLiveClass _webApiWsLive; WebApiWsVedirectLiveClass _webApiWsVedirectLive; WebApiVedirectClass _webApiVedirect; + WebApiHuaweiClass _webApiHuaweiClass; + WebApiWsHuaweiLiveClass _webApiWsHuaweiLive; + }; extern WebApiClass WebApi; \ No newline at end of file diff --git a/include/WebApi_Huawei.h b/include/WebApi_Huawei.h new file mode 100644 index 000000000..a75b7937f --- /dev/null +++ b/include/WebApi_Huawei.h @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include + +class WebApiHuaweiClass { +public: + void init(AsyncWebServer* server); + void loop(); + +private: + void onStatus(AsyncWebServerRequest* request); + void onPost(AsyncWebServerRequest* request); + + AsyncWebServer* _server; +}; \ No newline at end of file diff --git a/include/WebApi_ws_Huawei.h b/include/WebApi_ws_Huawei.h new file mode 100644 index 000000000..9ace7e883 --- /dev/null +++ b/include/WebApi_ws_Huawei.h @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include "ArduinoJson.h" +#include +//#include + +class WebApiWsHuaweiLiveClass { +public: + WebApiWsHuaweiLiveClass(); + void init(AsyncWebServer* server); + void loop(); + +private: + void generateJsonResponse(JsonVariant& root); + void onLivedataStatus(AsyncWebServerRequest* request); + void onWebsocketEvent(AsyncWebSocket* server, AsyncWebSocketClient* client, AwsEventType type, void* arg, uint8_t* data, size_t len); + + AsyncWebServer* _server; + AsyncWebSocket _ws; + + uint32_t _lastWsCleanup = 0; + uint32_t _lastUpdateCheck = 0; +}; \ No newline at end of file diff --git a/src/Huawei_can.cpp b/src/Huawei_can.cpp new file mode 100644 index 000000000..2c3136da6 --- /dev/null +++ b/src/Huawei_can.cpp @@ -0,0 +1,181 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2023 Malte Schmidt and others + */ +#include "Huawei_can.h" +#include "MessageOutput.h" +#include +#include + +#include + +HuaweiCanClass HuaweiCan; + +void HuaweiCanClass::init(uint8_t huawei_miso, uint8_t huawei_mosi, uint8_t huawei_clk, uint8_t huawei_irq, uint8_t huawei_cs) +{ + + hspi = new SPIClass(VSPI); + hspi->begin(huawei_clk, huawei_miso, huawei_mosi, huawei_cs); + pinMode(huawei_cs, OUTPUT); + digitalWrite(huawei_cs, HIGH); + + pinMode(huawei_irq, INPUT_PULLUP); + _huawei_irq = huawei_irq; + + CAN = new MCP_CAN(hspi, huawei_cs); + if(CAN->begin(MCP_ANY, CAN_125KBPS, MCP_8MHZ) == CAN_OK) { + MessageOutput.println("MCP2515 Initialized Successfully!"); + } + else { + MessageOutput.println("Error Initializing MCP2515..."); + } + + CAN->setMode(MCP_NORMAL); // Change to normal mode to allow messages to be transmitted + +} + +RectifierParameters_t& HuaweiCanClass::get() +{ + return _rp; +} + +unsigned long HuaweiCanClass::getLastUpdate() +{ + return lastUpdate; +} +uint8_t data[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +// Requests current values from Huawei unit. Response is handled in onReceive +void HuaweiCanClass::sendRequest() +{ + if (previousMillis < millis()) { + + // Send extended message + byte sndStat = CAN->sendMsgBuf(0x108040FE, 1, 8, data); + if(sndStat == CAN_OK){ + MessageOutput.println("Message Sent Successfully!"); + } else { + MessageOutput.println("Error Sending Message..."); + } + + previousMillis += 5000; + } +} + +void HuaweiCanClass::onReceive(uint8_t* frame, uint8_t len) +{ + if (len != 8) { + return; + } + + uint32_t value = __bswap32(*(uint32_t*)&frame[4]); + + switch (frame[1]) { + case R48xx_DATA_INPUT_POWER: + _rp.input_power = value / 1024.0; + break; + + case R48xx_DATA_INPUT_FREQ: + _rp.input_frequency = value / 1024.0; + break; + + case R48xx_DATA_INPUT_CURRENT: + _rp.input_current = value / 1024.0; + break; + + case R48xx_DATA_OUTPUT_POWER: + _rp.output_power = value / 1024.0; + break; + + case R48xx_DATA_EFFICIENCY: + _rp.efficiency = value / 1024.0; + break; + + case R48xx_DATA_OUTPUT_VOLTAGE: + _rp.output_voltage = value / 1024.0; + break; + + case R48xx_DATA_OUTPUT_CURRENT_MAX: + _rp.max_output_current = value / MAX_CURRENT_MULTIPLIER; + break; + + case R48xx_DATA_INPUT_VOLTAGE: + _rp.input_voltage = value / 1024.0; + break; + + case R48xx_DATA_OUTPUT_TEMPERATURE: + _rp.output_temp = value / 1024.0; + break; + + case R48xx_DATA_INPUT_TEMPERATURE: + _rp.input_temp = value / 1024.0; + break; + + case R48xx_DATA_OUTPUT_CURRENT1: + // printf("Output Current(1) %.02fA\r\n", value / 1024.0); + // output_current = value / 1024.0; + break; + + case R48xx_DATA_OUTPUT_CURRENT: + _rp.output_current = value / 1024.0; + + /* This is normally the last parameter received. Print */ + lastUpdate = millis(); + + MessageOutput.printf("In: %.02fV, %.02fA, %.02fW\n", _rp.input_voltage, _rp.input_current, _rp.input_power); + MessageOutput.printf("Out: %.02fV, %.02fA of %.02fA, %.02fW\n", _rp.output_voltage, _rp.output_current, _rp.max_output_current, _rp.output_power); + MessageOutput.printf("Eff: %.01f%%, Temp in: %.01fC, Temp out: %.01fC\n", _rp.efficiency * 100, _rp.input_temp, _rp.output_temp); + + break; + + default: + // printf("Unknown parameter 0x%02X, 0x%04X\r\n",frame[1], value); + break; + } +} + +void HuaweiCanClass::loop() +{ + + long unsigned int rxId; + unsigned char len = 0; + unsigned char rxBuf[8]; + + if(!digitalRead(_huawei_irq)) // If CAN_INT pin is low, read receive buffer + { + CAN->readMsgBuf(&rxId, &len, rxBuf); // Read data: len = data length, buf = data byte(s) + + if((rxId & 0x80000000) == 0x80000000) { // Determine if ID is standard (11 bits) or extended (29 bits) + // MessageOutput.printf("Extended ID: 0x%.8lX DLC: %1d \n", (rxId & 0x1FFFFFFF), len); + if ((rxId & 0x1FFFFFFF) == 0x1081407F) { + onReceive(rxBuf, len); + } + // Other emitted codes not handled here are: 0x1081407E, 0x1081807E, 0x1081D27F, 0x1001117E, 0x100011FE, 0x108111FE, 0x108081FE. See: + // https://github.com/craigpeacock/Huawei_R4850G2_CAN/blob/main/r4850.c + // https://www.beyondlogic.org/review-huawei-r4850g2-power-supply-53-5vdc-3kw/ + } + } + sendRequest(); +} + +void HuaweiCanClass::setValue(float in, uint8_t parameterType) +{ + uint16_t value; + if (parameterType == HUAWEI_OFFLINE_VOLTAGE || parameterType == HUAWEI_ONLINE_VOLTAGE) { + value = in * 1024; + } else if (parameterType == HUAWEI_OFFLINE_CURRENT || parameterType == HUAWEI_ONLINE_CURRENT) { + value = in * MAX_CURRENT_MULTIPLIER; + } else { + return; + } + + uint8_t data[8] = {0x01, parameterType, 0x00, 0x00, 0x00, 0x00, (uint8_t)((value & 0xFF00) >> 8), (uint8_t)(value & 0xFF)}; + + // Send extended message + byte sndStat = CAN->sendMsgBuf(0x108180FE, 1, 8, data); + if(sndStat == CAN_OK){ + MessageOutput.println("Message Sent Successfully!"); + } else { + MessageOutput.println("Error Sending Message..."); + } +} \ No newline at end of file diff --git a/src/MqttHandleHuawei.cpp b/src/MqttHandleHuawei.cpp new file mode 100644 index 000000000..f6779b3b0 --- /dev/null +++ b/src/MqttHandleHuawei.cpp @@ -0,0 +1,104 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2022 Thomas Basler and others + */ +#include "MqttHandleHuawei.h" +#include "MessageOutput.h" +#include "MqttSettings.h" +#include "Huawei_can.h" +// #include "Failsafe.h" +#include + +#define TOPIC_SUB_LIMIT_ONLINE_VOLTAGE "limit_online_voltage" +#define TOPIC_SUB_LIMIT_ONLINE_CURRENT "limit_online_current" +#define TOPIC_SUB_POWER "power" + +MqttHandleHuaweiClass MqttHandleHuawei; + +void MqttHandleHuaweiClass::init() +{ + using std::placeholders::_1; + using std::placeholders::_2; + using std::placeholders::_3; + using std::placeholders::_4; + using std::placeholders::_5; + using std::placeholders::_6; + + String topic = MqttSettings.getPrefix(); + MqttSettings.subscribe(String(topic + "huawei/cmd/" + TOPIC_SUB_LIMIT_ONLINE_VOLTAGE).c_str(), 0, std::bind(&MqttHandleHuaweiClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6)); + MqttSettings.subscribe(String(topic + "huawei/cmd/" + TOPIC_SUB_LIMIT_ONLINE_CURRENT).c_str(), 0, std::bind(&MqttHandleHuaweiClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6)); + MqttSettings.subscribe(String(topic + "huawei/cmd/" + TOPIC_SUB_POWER).c_str(), 0, std::bind(&MqttHandleHuaweiClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6)); + + //pinMode(13, OUTPUT); + //digitalWrite(13,HIGH); + +} + +void MqttHandleHuaweiClass::loop() +{ + if (!MqttSettings.getConnected() ) { + return; + } + + const CONFIG_T& config = Configuration.get(); + const RectifierParameters_t& rp = HuaweiCan.get(); + + if (millis() - _lastPublish > (config.Mqtt_PublishInterval * 1000)) { + MqttSettings.publish("huawei/data_age", String((millis() - HuaweiCan.getLastUpdate()) / 1000)); + MqttSettings.publish("huawei/input_voltage", String(rp.input_voltage)); + MqttSettings.publish("huawei/input_current", String(rp.input_current)); + MqttSettings.publish("huawei/input_power", String(rp.input_power)); + MqttSettings.publish("huawei/output_voltage", String(rp.output_voltage)); + MqttSettings.publish("huawei/output_current", String(rp.output_current)); + MqttSettings.publish("huawei/max_output_current", String(rp.max_output_current)); + MqttSettings.publish("huawei/output_power", String(rp.output_power)); + MqttSettings.publish("huawei/input_temp", String(rp.input_temp)); + MqttSettings.publish("huawei/output_temp", String(rp.output_temp)); + MqttSettings.publish("huawei/efficiency", String(rp.efficiency)); + + yield(); + _lastPublish = millis(); + } +} + + +void MqttHandleHuaweiClass::onMqttMessage(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total) +{ + const CONFIG_T& config = Configuration.get(); + + char token_topic[MQTT_MAX_TOPIC_STRLEN + 40]; // respect all subtopics + strncpy(token_topic, topic, MQTT_MAX_TOPIC_STRLEN + 40); // convert const char* to char* + + char* setting; + char* rest = &token_topic[strlen(config.Mqtt_Topic)]; + + strtok_r(rest, "/", &rest); // Remove "huawei" + strtok_r(rest, "/", &rest); // Remove "cmd" + + setting = strtok_r(rest, "/", &rest); + + if (setting == NULL) { + return; + } + + char* strlimit = new char[len + 1]; + memcpy(strlimit, payload, len); + strlimit[len] = '\0'; + float payload_val = strtof(strlimit, NULL); + delete[] strlimit; + + if (!strcmp(setting, TOPIC_SUB_LIMIT_ONLINE_VOLTAGE)) { + // Set voltage limit + MessageOutput.printf("Limit Voltage: %f V\r\n", payload_val); + HuaweiCan.setValue(payload_val, HUAWEI_ONLINE_VOLTAGE); + + } else if (!strcmp(setting, TOPIC_SUB_LIMIT_ONLINE_CURRENT)) { + // Set current limit + MessageOutput.printf("Limit Current: %f A\r\n", payload_val); + HuaweiCan.setValue(payload_val, HUAWEI_ONLINE_CURRENT); + } else if (!strcmp(setting, TOPIC_SUB_POWER)) { + // Control power on/off + MessageOutput.printf("Limit Current: %f A\r\n", payload_val); + //digitalWrite(13, payload_val > 0); + } +} \ No newline at end of file diff --git a/src/PinMapping.cpp b/src/PinMapping.cpp index 248e369bd..79ac3c535 100644 --- a/src/PinMapping.cpp +++ b/src/PinMapping.cpp @@ -66,6 +66,12 @@ PinMappingClass::PinMappingClass() _pinMapping.battery_rx = PYLONTECH_PIN_RX; _pinMapping.battery_tx = PYLONTECH_PIN_TX; + + _pinMapping.huawei_miso = HUAWEI_PIN_MISO; + _pinMapping.huawei_mosi = HUAWEI_PIN_MOSI; + _pinMapping.huawei_clk = HUAWEI_PIN_SCLK; + _pinMapping.huawei_cs = HUAWEI_PIN_CS; + _pinMapping.huawei_irq = HUAWEI_PIN_IRQ; } PinMapping_t& PinMappingClass::get() @@ -124,6 +130,12 @@ bool PinMappingClass::init(const String& deviceMapping) _pinMapping.battery_rx = doc[i]["battery"]["rx"] | PYLONTECH_PIN_RX; _pinMapping.battery_tx = doc[i]["battery"]["tx"] | PYLONTECH_PIN_TX; + _pinMapping.huawei_miso = doc[i]["huawei"]["miso"] | HUAWEI_PIN_MISO; + _pinMapping.huawei_mosi = doc[i]["huawei"]["mosi"] | HUAWEI_PIN_MOSI; + _pinMapping.huawei_clk = doc[i]["huawei"]["clk"] | HUAWEI_PIN_SCLK; + _pinMapping.huawei_irq = doc[i]["huawei"]["irq"] | HUAWEI_PIN_IRQ; + _pinMapping.huawei_cs = doc[i]["huawei"]["cs"] | HUAWEI_PIN_CS; + return true; } } @@ -157,3 +169,12 @@ bool PinMappingClass::isValidBatteryConfig() return _pinMapping.battery_rx > 0 && _pinMapping.battery_tx > 0; } + +bool PinMappingClass::isValidHuaweiConfig() +{ + return _pinMapping.huawei_miso > 0 + && _pinMapping.huawei_mosi > 0 + && _pinMapping.huawei_clk > 0 + && _pinMapping.huawei_irq > 0 + && _pinMapping.huawei_cs > 0; +} diff --git a/src/WebApi.cpp b/src/WebApi.cpp index dad4db248..4f6102fea 100644 --- a/src/WebApi.cpp +++ b/src/WebApi.cpp @@ -40,6 +40,8 @@ void WebApiClass::init() _webApiWsLive.init(&_server); _webApiWsVedirectLive.init(&_server); _webApiVedirect.init(&_server); + _webApiWsHuaweiLive.init(&_server); + _webApiHuaweiClass.init(&_server); _server.begin(); } @@ -68,6 +70,8 @@ void WebApiClass::loop() _webApiWsLive.loop(); _webApiWsVedirectLive.loop(); _webApiVedirect.loop(); + _webApiWsHuaweiLive.loop(); + _webApiHuaweiClass.loop(); } bool WebApiClass::checkCredentials(AsyncWebServerRequest* request) diff --git a/src/WebApi_Huawei.cpp b/src/WebApi_Huawei.cpp new file mode 100644 index 000000000..4b23aed5b --- /dev/null +++ b/src/WebApi_Huawei.cpp @@ -0,0 +1,168 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2022 Thomas Basler and others + */ +#include "WebApi_Huawei.h" +#include "Huawei_can.h" +#include "WebApi.h" +#include "WebApi_errors.h" +#include +#include + +void WebApiHuaweiClass::init(AsyncWebServer* server) +{ + using std::placeholders::_1; + + _server = server; + + _server->on("/api/huawei/status", HTTP_GET, std::bind(&WebApiHuaweiClass::onStatus, this, _1)); + _server->on("/api/huawei/limit/config", HTTP_POST, std::bind(&WebApiHuaweiClass::onPost, this, _1)); +} + +void WebApiHuaweiClass::loop() +{ +} + +void WebApiHuaweiClass::onStatus(AsyncWebServerRequest* request) +{ + if (!WebApi.checkCredentialsReadonly(request)) { + return; + } + + AsyncJsonResponse* response = new AsyncJsonResponse(); + JsonObject root = response->getRoot(); + + const RectifierParameters_t& rp = HuaweiCan.get(); + + root["data_age"] = (millis() - HuaweiCan.getLastUpdate()) / 1000; + root[F("input_voltage")]["v"] = rp.input_voltage; + root[F("input_voltage")]["u"] = "V"; + root[F("input_current")]["v"] = rp.input_current; + root[F("input_current")]["u"] = "A"; + root[F("input_power")]["v"] = rp.input_power; + root[F("input_power")]["u"] = "W"; + root[F("output_voltage")]["v"] = rp.output_voltage; + root[F("output_voltage")]["u"] = "V"; + root[F("output_current")]["v"] = rp.output_current; + root[F("output_current")]["u"] = "A"; + root[F("max_output_current")]["v"] = rp.max_output_current; + root[F("max_output_current")]["u"] = "A"; + root[F("output_power")]["v"] = rp.output_power; + root[F("output_power")]["u"] = "W"; + root[F("input_temp")]["v"] = rp.input_temp; + root[F("input_temp")]["u"] = "°C"; + root[F("output_temp")]["v"] = rp.output_temp; + root[F("output_temp")]["u"] = "°C"; + root[F("efficiency")]["v"] = rp.efficiency; + root[F("efficiency")]["u"] = "%"; + + response->setLength(); + request->send(response); +} + +void WebApiHuaweiClass::onPost(AsyncWebServerRequest* request) +{ + if (!WebApi.checkCredentials(request)) { + return; + } + + AsyncJsonResponse* response = new AsyncJsonResponse(); + JsonObject retMsg = response->getRoot(); + retMsg[F("type")] = F("warning"); + + if (!request->hasParam("data", true)) { + retMsg[F("message")] = F("No values found!"); + retMsg[F("code")] = WebApiError::GenericNoValueFound; + response->setLength(); + request->send(response); + return; + } + + String json = request->getParam("data", true)->value(); + + if (json.length() > 1024) { + retMsg[F("message")] = F("Data too large!"); + retMsg[F("code")] = WebApiError::GenericDataTooLarge; + response->setLength(); + request->send(response); + return; + } + + DynamicJsonDocument root(1024); + DeserializationError error = deserializeJson(root, json); + float value; + uint8_t online = true; + float minimal_voltage; + + if (error) { + retMsg[F("message")] = F("Failed to parse data!"); + retMsg[F("code")] = WebApiError::GenericParseError; + response->setLength(); + request->send(response); + return; + } + + if (root.containsKey("online")) { + online = root[F("online")].as(); + if (online) { + minimal_voltage = HUAWEI_MINIMAL_ONLINE_VOLTAGE; + } else { + minimal_voltage = HUAWEI_MINIMAL_OFFLINE_VOLTAGE; + } + } else { + retMsg[F("message")] = F("Could not read info if data should be set for online/offline operation!"); + retMsg[F("code")] = WebApiError::LimitInvalidType; + response->setLength(); + request->send(response); + return; + } + + if (root.containsKey("voltage_valid")) { + if (root[F("voltage_valid")].as()) { + if (root[F("voltage")].as() < minimal_voltage || root[F("voltage")].as() > 58) { + retMsg[F("message")] = F("voltage not in range between 42 (online)/48 (offline and 58V !"); + retMsg[F("code")] = WebApiError::LimitInvalidLimit; + retMsg[F("param")][F("max")] = 58; + retMsg[F("param")][F("min")] = minimal_voltage; + response->setLength(); + request->send(response); + return; + } else { + value = root[F("voltage")].as(); + if (online) { + HuaweiCan.setValue(value, HUAWEI_ONLINE_VOLTAGE); + } else { + HuaweiCan.setValue(value, HUAWEI_OFFLINE_VOLTAGE); + } + } + } + } + + if (root.containsKey("current_valid")) { + if (root[F("current_valid")].as()) { + if (root[F("current")].as() < 0 || root[F("current")].as() > 60) { + retMsg[F("message")] = F("current must be in range between 0 and 60!"); + retMsg[F("code")] = WebApiError::LimitInvalidLimit; + retMsg[F("param")][F("max")] = 60; + retMsg[F("param")][F("min")] = 0; + response->setLength(); + request->send(response); + return; + } else { + value = root[F("current")].as(); + if (online) { + HuaweiCan.setValue(value, HUAWEI_ONLINE_CURRENT); + } else { + HuaweiCan.setValue(value, HUAWEI_OFFLINE_CURRENT); + } + } + } + } + + retMsg[F("type")] = F("success"); + retMsg[F("message")] = F("Settings saved!"); + retMsg[F("code")] = WebApiError::GenericSuccess; + + response->setLength(); + request->send(response); +} \ No newline at end of file diff --git a/src/WebApi_ws_Huawei.cpp b/src/WebApi_ws_Huawei.cpp new file mode 100644 index 000000000..55c25b07c --- /dev/null +++ b/src/WebApi_ws_Huawei.cpp @@ -0,0 +1,128 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2022 Thomas Basler and others + */ +#include "WebApi_ws_Huawei.h" +#include "AsyncJson.h" +#include "Configuration.h" +#include "Huawei_can.h" +#include "MessageOutput.h" +#include "WebApi.h" +#include "defaults.h" + +WebApiWsHuaweiLiveClass::WebApiWsHuaweiLiveClass() + : _ws("/huaweilivedata") +{ +} + +void WebApiWsHuaweiLiveClass::init(AsyncWebServer* server) +{ + using std::placeholders::_1; + using std::placeholders::_2; + using std::placeholders::_3; + using std::placeholders::_4; + using std::placeholders::_5; + using std::placeholders::_6; + + _server = server; + _server->on("/api/huaweilivedata/status", HTTP_GET, std::bind(&WebApiWsHuaweiLiveClass::onLivedataStatus, this, _1)); + + _server->addHandler(&_ws); + _ws.onEvent(std::bind(&WebApiWsHuaweiLiveClass::onWebsocketEvent, this, _1, _2, _3, _4, _5, _6)); +} + +void WebApiWsHuaweiLiveClass::loop() +{ + + + // see: https://github.com/me-no-dev/ESPAsyncWebServer#limiting-the-number-of-web-socket-clients + if (millis() - _lastWsCleanup > 1000) { + _ws.cleanupClients(); + _lastWsCleanup = millis(); + } + + // do nothing if no WS client is connected + if (_ws.count() == 0) { + return; + } + + if (millis() - _lastUpdateCheck < 1000) { + return; + } + _lastUpdateCheck = millis(); + + DynamicJsonDocument root(1024); + JsonVariant var = root; + generateJsonResponse(var); + + String buffer; + if (buffer) { + serializeJson(root, buffer); + + if (Configuration.get().Security_AllowReadonly) { + _ws.setAuthentication("", ""); + } else { + _ws.setAuthentication(AUTH_USERNAME, Configuration.get().Security_Password); + } + + _ws.textAll(buffer); + } + + +} + +void WebApiWsHuaweiLiveClass::generateJsonResponse(JsonVariant& root) +{ + const RectifierParameters_t& rp = HuaweiCan.get(); + + root["data_age"] = (millis() - HuaweiCan.getLastUpdate()) / 1000; + root[F("input_voltage")]["v"] = rp.input_voltage; + root[F("input_voltage")]["u"] = "V"; + root[F("input_current")]["v"] = rp.input_current; + root[F("input_current")]["u"] = "A"; + root[F("input_power")]["v"] = rp.input_power; + root[F("input_power")]["u"] = "W"; + root[F("output_voltage")]["v"] = rp.output_voltage; + root[F("output_voltage")]["u"] = "V"; + root[F("output_current")]["v"] = rp.output_current; + root[F("output_current")]["u"] = "A"; + root[F("max_output_current")]["v"] = rp.max_output_current; + root[F("max_output_current")]["u"] = "A"; + root[F("output_power")]["v"] = rp.output_power; + root[F("output_power")]["u"] = "W"; + root[F("input_temp")]["v"] = rp.input_temp; + root[F("input_temp")]["u"] = "°C"; + root[F("output_temp")]["v"] = rp.output_temp; + root[F("output_temp")]["u"] = "°C"; + root[F("efficiency")]["v"] = rp.efficiency; + root[F("efficiency")]["u"] = "%"; + +} + +void WebApiWsHuaweiLiveClass::onWebsocketEvent(AsyncWebSocket* server, AsyncWebSocketClient* client, AwsEventType type, void* arg, uint8_t* data, size_t len) +{ + if (type == WS_EVT_CONNECT) { + char str[64]; + snprintf(str, sizeof(str), "Websocket: [%s][%u] connect", server->url(), client->id()); + Serial.println(str); + MessageOutput.println(str); + } else if (type == WS_EVT_DISCONNECT) { + char str[64]; + snprintf(str, sizeof(str), "Websocket: [%s][%u] disconnect", server->url(), client->id()); + Serial.println(str); + MessageOutput.println(str); + } +} + +void WebApiWsHuaweiLiveClass::onLivedataStatus(AsyncWebServerRequest* request) +{ + if (!WebApi.checkCredentialsReadonly(request)) { + return; + } + AsyncJsonResponse* response = new AsyncJsonResponse(false, 1024U); + JsonVariant root = response->getRoot().as(); + generateJsonResponse(root); + + response->setLength(); + request->send(response); +} \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 33066ac94..3ebc1842b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -8,6 +8,7 @@ #include "MessageOutput.h" #include "VeDirectFrameHandler.h" #include "PylontechCanReceiver.h" +#include "Huawei_can.h" #include "MqttHandleDtu.h" #include "MqttHandleHass.h" #include "MqttHandleVedirectHass.h" @@ -158,6 +159,17 @@ void setup() } else { MessageOutput.println(F("Invalid pin config")); } + + // Initialize Huawei AC-charger PSU / CAN bus + MessageOutput.println(F("Initialize Huawei AC charger interface... ")); + if (PinMapping.isValidHuaweiConfig()) { + MessageOutput.printf("Huawei AC-charger miso = %d, mosi = %d, clk = %d, irq = %d, cs = %d\r\n", pin.huawei_miso, pin.huawei_mosi, pin.huawei_clk, pin.huawei_irq, pin.huawei_cs); + HuaweiCan.init(pin.huawei_miso, pin.huawei_mosi, pin.huawei_clk, pin.huawei_irq, pin.huawei_cs); + MessageOutput.println(F("done")); + } else { + MessageOutput.println(F("Invalid pin config")); + } + } void loop() @@ -193,4 +205,6 @@ void loop() yield(); PylontechCanReceiver.loop(); yield(); + HuaweiCan.loop(); + yield(); } From 1aab888bf272381b38a5b64fa71b4e990e3e7e24 Mon Sep 17 00:00:00 2001 From: MalteSchm Date: Fri, 24 Mar 2023 10:04:08 +0100 Subject: [PATCH 03/16] Documentation updates --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index afa3b2e01..5e99dc915 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ This project is still under development and adds following features: * Can read the current solar panel power from the Victron MPPT and adjust the limiter accordingly to not save energy in the battery (for increased system efficiency). Increases the battery lifespan and reduces energy loses. * Settings can be configured in the UI * Pylontech Battery support (via CAN bus interface). Use the SOC for starting/stopping the power output and provide the battery data via MQTT (autodiscovery for home assistant is currently not supported). Pin Mapping is supported (default RX PIN 27, TX PIN 26). Actual no live view support for Pylontech Battery. +* Huawei R4850G2 power supply unit that can act as AC charger. Supports status shown on the web interface and options to set voltage and current limits on the web interface and via MQTT. Connection is done using CAN bus (needs to be separate from Pylontech CAN bus) via SN65HVD230 interface. [![OpenDTU Build](https://github.com/tbnobody/OpenDTU/actions/workflows/build.yml/badge.svg)](https://github.com/tbnobody/OpenDTU/actions/workflows/build.yml) [![cpplint](https://github.com/tbnobody/OpenDTU/actions/workflows/cpplint.yml/badge.svg)](https://github.com/tbnobody/OpenDTU/actions/workflows/cpplint.yml) @@ -162,6 +163,23 @@ Topics for 3 phases of a power meter is configurable. Given is an example for th | battery/charging/dischargeEnabled | R | | | | battery/charging/chargeImmediately | R | | | +## Huawei AC charger topics +| Topic | R / W | Description | Value / Unit | +| --------------------------------------- | ----- | ---------------------------------------------------- | -------------------------- | +| huawei/cmd/limit_online_voltage | W | Online voltage (i.e. CAN bus connected) | Volt (V) | +| huawei/cmd/limit_online_current | W | Online current (i.e. CAN bus connected) | Ampere (A) | +| huawei/cmd/power | W | Controls output pin GPIO to drive solid state relais | 0 / 1 | +| huawei/data_age | R | How old the data is | Seconds | +| huawei/input_voltage | R | Input voltage | Volt (V) | +| huawei/input_current | R | Input current | Ampere (A) | +| huawei/input_power | R | Input power | Watt (W) | +| huawei/output_voltage | R | Output voltage | Volt (V) | +| huawei/output_current | R | Output current | Ampere (A) | +| huawei/max_output_current | R | Maximum output current (set using the online limit) | Ampere (A) | +| huawei/output_power | R | Output power | Watt (W) | +| huawei/input_temp | R | Input air temperature | °C | +| huawei/output_temp | R | Output air temperature | °C | +| huawei/efficiency | R | Efficiency | Percentage | ## Currently supported Inverters * Hoymiles HM-300 From db7ad52a4d6ffa6d931e958a375d79a8e8474cc0 Mon Sep 17 00:00:00 2001 From: MalteSchm Date: Fri, 24 Mar 2023 10:05:46 +0100 Subject: [PATCH 04/16] platformio ini file changes --- platformio.ini | 6 ++++++ platformio_override.ini | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/platformio.ini b/platformio.ini index 4da51a623..b3bcd1c71 100644 --- a/platformio.ini +++ b/platformio.ini @@ -28,6 +28,7 @@ lib_deps = nrf24/RF24 @ ^1.4.5 olikraus/U8g2 @ ^2.34.13 buelowp/sunset @ ^1.1.7 + https://github.com/coryjfowler/MCP_CAN_lib extra_scripts = pre:auto_firmware_version.py @@ -56,6 +57,11 @@ build_flags = ${env.build_flags} -DVICTRON_PIN_RX=22 -DPYLONTECH_PIN_RX=27 -DPYLONTECH_PIN_TX=14 + -DHUAWEI_PIN_MISO=12 + -DHUAWEI_PIN_MOSI=13 + -DHUAWEI_PIN_SCLK=26 + -DHUAWEI_PIN_IRQ=25 + -DHUAWEI_PIN_CS=15 [env:olimex_esp32_poe] diff --git a/platformio_override.ini b/platformio_override.ini index 481552400..47922ad34 100644 --- a/platformio_override.ini +++ b/platformio_override.ini @@ -33,5 +33,10 @@ ; -DHOYMILES_PIN_CS=6 ; -DVICTRON_PIN_TX=21 ; -DVICTRON_PIN_RX=22 +; -DHUAWEI_PIN_MISO=12 +; -DHUAWEI_PIN_MOSI=13 +; -DHUAWEI_PIN_SCLK=26 +; -DHUAWEI_PIN_IRQ=25 +; -DHUAWEI_PIN_CS=15 ;monitor_port = /dev/ttyACM0 ;upload_port = /dev/ttyACM0 From 0b5c47cd2e33bc408d15f8d1a19074d0ba43bcf0 Mon Sep 17 00:00:00 2001 From: MalteSchm Date: Sun, 26 Mar 2023 11:00:37 +0200 Subject: [PATCH 05/16] Adding enable/disable option and pin to control a switch/relais to power the Huawei PSU --- include/Configuration.h | 1 + include/Huawei_can.h | 7 ++- include/PinMapping.h | 1 + include/WebApi_Huawei.h | 7 ++- include/defaults.h | 2 + src/Configuration.cpp | 6 ++ src/Huawei_can.cpp | 18 ++++-- src/PinMapping.cpp | 5 +- src/WebApi_Huawei.cpp | 129 +++++++++++++++++++++++++++++++++------- src/WebApi_ws_live.cpp | 4 ++ 10 files changed, 150 insertions(+), 30 deletions(-) diff --git a/include/Configuration.h b/include/Configuration.h index c44355709..f0cceb743 100644 --- a/include/Configuration.h +++ b/include/Configuration.h @@ -119,6 +119,7 @@ struct CONFIG_T { float PowerLimiter_VoltageLoadCorrectionFactor; bool Battery_Enabled; + bool Huawei_Enabled; char Security_Password[WIFI_MAX_PASSWORD_STRLEN + 1]; bool Security_AllowReadonly; diff --git a/include/Huawei_can.h b/include/Huawei_can.h index 4018d2721..bcc541028 100644 --- a/include/Huawei_can.h +++ b/include/Huawei_can.h @@ -45,10 +45,12 @@ struct RectifierParameters_t { class HuaweiCanClass { public: - void init(uint8_t huawei_miso, uint8_t huawei_mosi, uint8_t huawei_clk, uint8_t huawei_irq, uint8_t huawei_cs); + void init(uint8_t huawei_miso, uint8_t huawei_mosi, uint8_t huawei_clk, uint8_t huawei_irq, uint8_t huawei_cs, uint8_t huawei_power); void loop(); void setValue(float in, uint8_t parameterType); - RectifierParameters_t& get(); + void setPower(bool power); + + RectifierParameters_t * get(); unsigned long getLastUpdate(); private: @@ -62,6 +64,7 @@ class HuaweiCanClass { SPIClass *hspi; MCP_CAN *CAN; uint8_t _huawei_irq; + uint8_t _huawei_power; }; diff --git a/include/PinMapping.h b/include/PinMapping.h index 87c216bd6..920be6c87 100644 --- a/include/PinMapping.h +++ b/include/PinMapping.h @@ -38,6 +38,7 @@ struct PinMapping_t { uint8_t huawei_clk; uint8_t huawei_irq; uint8_t huawei_cs; + uint8_t huawei_power; }; class PinMappingClass { diff --git a/include/WebApi_Huawei.h b/include/WebApi_Huawei.h index a75b7937f..1eed61391 100644 --- a/include/WebApi_Huawei.h +++ b/include/WebApi_Huawei.h @@ -2,15 +2,18 @@ #pragma once #include +#include class WebApiHuaweiClass { public: void init(AsyncWebServer* server); void loop(); - + void getJsonData(JsonObject& root); private: void onStatus(AsyncWebServerRequest* request); + void onAdminGet(AsyncWebServerRequest* request); + void onAdminPost(AsyncWebServerRequest* request); void onPost(AsyncWebServerRequest* request); - + AsyncWebServer* _server; }; \ No newline at end of file diff --git a/include/defaults.h b/include/defaults.h index 18c211e76..7fffe192a 100644 --- a/include/defaults.h +++ b/include/defaults.h @@ -109,3 +109,5 @@ #define POWERLIMITER_VOLTAGE_LOAD_CORRECTION_FACTOR 0.001 #define BATTERY_ENABLED false + +#define HUAWEI_ENABLED false diff --git a/src/Configuration.cpp b/src/Configuration.cpp index 53a2df841..bf5b70d22 100644 --- a/src/Configuration.cpp +++ b/src/Configuration.cpp @@ -138,6 +138,9 @@ bool ConfigurationClass::write() JsonObject battery = doc.createNestedObject("battery"); battery["enabled"] = config.Battery_Enabled; + JsonObject huawei = doc.createNestedObject("huawei"); + huawei["enabled"] = config.Huawei_Enabled; + // Serialize JSON to file if (serializeJson(doc, f) == 0) { MessageOutput.println("Failed to write file"); @@ -303,6 +306,9 @@ bool ConfigurationClass::read() JsonObject battery = doc["battery"]; config.Battery_Enabled = battery["enabled"] | BATTERY_ENABLED; + JsonObject huawei = doc["huawei"]; + config.Huawei_Enabled = huawei["enabled"] | HUAWEI_ENABLED; + f.close(); return true; } diff --git a/src/Huawei_can.cpp b/src/Huawei_can.cpp index 2c3136da6..6c7dee277 100644 --- a/src/Huawei_can.cpp +++ b/src/Huawei_can.cpp @@ -11,7 +11,7 @@ HuaweiCanClass HuaweiCan; -void HuaweiCanClass::init(uint8_t huawei_miso, uint8_t huawei_mosi, uint8_t huawei_clk, uint8_t huawei_irq, uint8_t huawei_cs) +void HuaweiCanClass::init(uint8_t huawei_miso, uint8_t huawei_mosi, uint8_t huawei_clk, uint8_t huawei_irq, uint8_t huawei_cs, uint8_t huawei_power) { hspi = new SPIClass(VSPI); @@ -32,11 +32,15 @@ void HuaweiCanClass::init(uint8_t huawei_miso, uint8_t huawei_mosi, uint8_t huaw CAN->setMode(MCP_NORMAL); // Change to normal mode to allow messages to be transmitted + pinMode(huawei_power, OUTPUT); + digitalWrite(huawei_power,HIGH); + _huawei_power = huawei_power; + } -RectifierParameters_t& HuaweiCanClass::get() +RectifierParameters_t * HuaweiCanClass::get() { - return _rp; + return &_rp; } unsigned long HuaweiCanClass::getLastUpdate() @@ -178,4 +182,10 @@ void HuaweiCanClass::setValue(float in, uint8_t parameterType) } else { MessageOutput.println("Error Sending Message..."); } -} \ No newline at end of file +} + +void HuaweiCanClass::setPower(bool power) { + digitalWrite(_huawei_power, power); +} + + diff --git a/src/PinMapping.cpp b/src/PinMapping.cpp index 79ac3c535..807d567d2 100644 --- a/src/PinMapping.cpp +++ b/src/PinMapping.cpp @@ -72,6 +72,7 @@ PinMappingClass::PinMappingClass() _pinMapping.huawei_clk = HUAWEI_PIN_SCLK; _pinMapping.huawei_cs = HUAWEI_PIN_CS; _pinMapping.huawei_irq = HUAWEI_PIN_IRQ; + _pinMapping.huawei_power = HUAWEI_PIN_POWER; } PinMapping_t& PinMappingClass::get() @@ -135,6 +136,7 @@ bool PinMappingClass::init(const String& deviceMapping) _pinMapping.huawei_clk = doc[i]["huawei"]["clk"] | HUAWEI_PIN_SCLK; _pinMapping.huawei_irq = doc[i]["huawei"]["irq"] | HUAWEI_PIN_IRQ; _pinMapping.huawei_cs = doc[i]["huawei"]["cs"] | HUAWEI_PIN_CS; + _pinMapping.huawei_power = doc[i]["huawei"]["power"] | HUAWEI_PIN_POWER; return true; } @@ -176,5 +178,6 @@ bool PinMappingClass::isValidHuaweiConfig() && _pinMapping.huawei_mosi > 0 && _pinMapping.huawei_clk > 0 && _pinMapping.huawei_irq > 0 - && _pinMapping.huawei_cs > 0; + && _pinMapping.huawei_cs > 0 + && _pinMapping.huawei_power > 0; } diff --git a/src/WebApi_Huawei.cpp b/src/WebApi_Huawei.cpp index 4b23aed5b..1b2cd5b42 100644 --- a/src/WebApi_Huawei.cpp +++ b/src/WebApi_Huawei.cpp @@ -4,6 +4,7 @@ */ #include "WebApi_Huawei.h" #include "Huawei_can.h" +#include "Configuration.h" #include "WebApi.h" #include "WebApi_errors.h" #include @@ -16,6 +17,8 @@ void WebApiHuaweiClass::init(AsyncWebServer* server) _server = server; _server->on("/api/huawei/status", HTTP_GET, std::bind(&WebApiHuaweiClass::onStatus, this, _1)); + _server->on("/api/huawei/config", HTTP_GET, std::bind(&WebApiHuaweiClass::onAdminGet, this, _1)); + _server->on("/api/huawei/config", HTTP_POST, std::bind(&WebApiHuaweiClass::onAdminPost, this, _1)); _server->on("/api/huawei/limit/config", HTTP_POST, std::bind(&WebApiHuaweiClass::onPost, this, _1)); } @@ -23,39 +26,43 @@ void WebApiHuaweiClass::loop() { } -void WebApiHuaweiClass::onStatus(AsyncWebServerRequest* request) -{ - if (!WebApi.checkCredentialsReadonly(request)) { - return; - } - - AsyncJsonResponse* response = new AsyncJsonResponse(); - JsonObject root = response->getRoot(); - - const RectifierParameters_t& rp = HuaweiCan.get(); +void WebApiHuaweiClass::getJsonData(JsonObject& root) { + const RectifierParameters_t * rp = HuaweiCan.get(); root["data_age"] = (millis() - HuaweiCan.getLastUpdate()) / 1000; - root[F("input_voltage")]["v"] = rp.input_voltage; + root[F("input_voltage")]["v"] = rp->input_voltage; root[F("input_voltage")]["u"] = "V"; - root[F("input_current")]["v"] = rp.input_current; + root[F("input_current")]["v"] = rp->input_current; root[F("input_current")]["u"] = "A"; - root[F("input_power")]["v"] = rp.input_power; + root[F("input_power")]["v"] = rp->input_power; root[F("input_power")]["u"] = "W"; - root[F("output_voltage")]["v"] = rp.output_voltage; + root[F("output_voltage")]["v"] = rp->output_voltage; root[F("output_voltage")]["u"] = "V"; - root[F("output_current")]["v"] = rp.output_current; + root[F("output_current")]["v"] = rp->output_current; root[F("output_current")]["u"] = "A"; - root[F("max_output_current")]["v"] = rp.max_output_current; + root[F("max_output_current")]["v"] = rp->max_output_current; root[F("max_output_current")]["u"] = "A"; - root[F("output_power")]["v"] = rp.output_power; + root[F("output_power")]["v"] = rp->output_power; root[F("output_power")]["u"] = "W"; - root[F("input_temp")]["v"] = rp.input_temp; + root[F("input_temp")]["v"] = rp->input_temp; root[F("input_temp")]["u"] = "°C"; - root[F("output_temp")]["v"] = rp.output_temp; + root[F("output_temp")]["v"] = rp->output_temp; root[F("output_temp")]["u"] = "°C"; - root[F("efficiency")]["v"] = rp.efficiency; + root[F("efficiency")]["v"] = rp->efficiency; root[F("efficiency")]["u"] = "%"; +} + +void WebApiHuaweiClass::onStatus(AsyncWebServerRequest* request) +{ + if (!WebApi.checkCredentialsReadonly(request)) { + return; + } + + AsyncJsonResponse* response = new AsyncJsonResponse(); + JsonObject root = response->getRoot(); + getJsonData(root); + response->setLength(); request->send(response); } @@ -165,4 +172,84 @@ void WebApiHuaweiClass::onPost(AsyncWebServerRequest* request) response->setLength(); request->send(response); -} \ No newline at end of file +} + + + + +void WebApiHuaweiClass::onAdminGet(AsyncWebServerRequest* request) +{ + if (!WebApi.checkCredentialsReadonly(request)) { + return; + } + + AsyncJsonResponse* response = new AsyncJsonResponse(); + JsonObject root = response->getRoot(); + const CONFIG_T& config = Configuration.get(); + + root[F("enabled")] = config.Huawei_Enabled; + + response->setLength(); + request->send(response); +} + +void WebApiHuaweiClass::onAdminPost(AsyncWebServerRequest* request) +{ + if (!WebApi.checkCredentials(request)) { + return; + } + + AsyncJsonResponse* response = new AsyncJsonResponse(); + JsonObject retMsg = response->getRoot(); + retMsg[F("type")] = F("warning"); + + if (!request->hasParam("data", true)) { + retMsg[F("message")] = F("No values found!"); + retMsg[F("code")] = WebApiError::GenericNoValueFound; + response->setLength(); + request->send(response); + return; + } + + String json = request->getParam("data", true)->value(); + + if (json.length() > 1024) { + retMsg[F("message")] = F("Data too large!"); + retMsg[F("code")] = WebApiError::GenericDataTooLarge; + response->setLength(); + request->send(response); + return; + } + + DynamicJsonDocument root(1024); + DeserializationError error = deserializeJson(root, json); + + if (error) { + retMsg[F("message")] = F("Failed to parse data!"); + retMsg[F("code")] = WebApiError::GenericParseError; + response->setLength(); + request->send(response); + return; + } + + if (!(root.containsKey("enabled"))) { + retMsg[F("message")] = F("Values are missing!"); + retMsg[F("code")] = WebApiError::GenericValueMissing; + response->setLength(); + request->send(response); + return; + } + + CONFIG_T& config = Configuration.get(); + config.Huawei_Enabled = root[F("enabled")].as(); + Configuration.write(); + + retMsg[F("type")] = F("success"); + retMsg[F("message")] = F("Settings saved!"); + retMsg[F("code")] = WebApiError::GenericSuccess; + + response->setLength(); + request->send(response); + + HuaweiCan.setPower(config.Huawei_Enabled); +} diff --git a/src/WebApi_ws_live.cpp b/src/WebApi_ws_live.cpp index 4ade13f77..4e35f083a 100644 --- a/src/WebApi_ws_live.cpp +++ b/src/WebApi_ws_live.cpp @@ -183,6 +183,10 @@ void WebApiWsLiveClass::generateJsonResponse(JsonVariant& root) JsonObject vedirectObj = root.createNestedObject("vedirect"); vedirectObj[F("enabled")] = Configuration.get().Vedirect_Enabled; + + JsonObject huaweiObj = root.createNestedObject("huawei"); + huaweiObj[F("enabled")] = Configuration.get().Huawei_Enabled; + } void WebApiWsLiveClass::addField(JsonObject& root, uint8_t idx, std::shared_ptr inv, ChannelType_t type, ChannelNum_t channel, FieldId_t fieldId, String topic) From bbf3d44d69e033ef3a89ee4af2af2239900cb27a Mon Sep 17 00:00:00 2001 From: MalteSchm Date: Sun, 26 Mar 2023 11:01:32 +0200 Subject: [PATCH 06/16] working with a reference --- src/WebApi_ws_Huawei.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/WebApi_ws_Huawei.cpp b/src/WebApi_ws_Huawei.cpp index 55c25b07c..d7d77a0a9 100644 --- a/src/WebApi_ws_Huawei.cpp +++ b/src/WebApi_ws_Huawei.cpp @@ -73,28 +73,28 @@ void WebApiWsHuaweiLiveClass::loop() void WebApiWsHuaweiLiveClass::generateJsonResponse(JsonVariant& root) { - const RectifierParameters_t& rp = HuaweiCan.get(); + const RectifierParameters_t * rp = HuaweiCan.get(); root["data_age"] = (millis() - HuaweiCan.getLastUpdate()) / 1000; - root[F("input_voltage")]["v"] = rp.input_voltage; + root[F("input_voltage")]["v"] = rp->input_voltage; root[F("input_voltage")]["u"] = "V"; - root[F("input_current")]["v"] = rp.input_current; + root[F("input_current")]["v"] = rp->input_current; root[F("input_current")]["u"] = "A"; - root[F("input_power")]["v"] = rp.input_power; + root[F("input_power")]["v"] = rp->input_power; root[F("input_power")]["u"] = "W"; - root[F("output_voltage")]["v"] = rp.output_voltage; + root[F("output_voltage")]["v"] = rp->output_voltage; root[F("output_voltage")]["u"] = "V"; - root[F("output_current")]["v"] = rp.output_current; + root[F("output_current")]["v"] = rp->output_current; root[F("output_current")]["u"] = "A"; - root[F("max_output_current")]["v"] = rp.max_output_current; + root[F("max_output_current")]["v"] = rp->max_output_current; root[F("max_output_current")]["u"] = "A"; - root[F("output_power")]["v"] = rp.output_power; + root[F("output_power")]["v"] = rp->output_power; root[F("output_power")]["u"] = "W"; - root[F("input_temp")]["v"] = rp.input_temp; + root[F("input_temp")]["v"] = rp->input_temp; root[F("input_temp")]["u"] = "°C"; - root[F("output_temp")]["v"] = rp.output_temp; + root[F("output_temp")]["v"] = rp->output_temp; root[F("output_temp")]["u"] = "°C"; - root[F("efficiency")]["v"] = rp.efficiency; + root[F("efficiency")]["v"] = rp->efficiency; root[F("efficiency")]["u"] = "%"; } From 3b57550ead0a856d8d76db049841a7dc01371bda Mon Sep 17 00:00:00 2001 From: MalteSchm Date: Sun, 26 Mar 2023 11:02:40 +0200 Subject: [PATCH 07/16] adding basic mqtt support --- src/MqttHandleHuawei.cpp | 48 +++++++++++++++++++++++++--------------- src/main.cpp | 8 +++++-- 2 files changed, 36 insertions(+), 20 deletions(-) diff --git a/src/MqttHandleHuawei.cpp b/src/MqttHandleHuawei.cpp index f6779b3b0..2ecd4f49a 100644 --- a/src/MqttHandleHuawei.cpp +++ b/src/MqttHandleHuawei.cpp @@ -7,6 +7,7 @@ #include "MqttSettings.h" #include "Huawei_can.h" // #include "Failsafe.h" +#include "WebApi_Huawei.h" #include #define TOPIC_SUB_LIMIT_ONLINE_VOLTAGE "limit_online_voltage" @@ -29,32 +30,39 @@ void MqttHandleHuaweiClass::init() MqttSettings.subscribe(String(topic + "huawei/cmd/" + TOPIC_SUB_LIMIT_ONLINE_CURRENT).c_str(), 0, std::bind(&MqttHandleHuaweiClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6)); MqttSettings.subscribe(String(topic + "huawei/cmd/" + TOPIC_SUB_POWER).c_str(), 0, std::bind(&MqttHandleHuaweiClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6)); - //pinMode(13, OUTPUT); - //digitalWrite(13,HIGH); + _lastPublish = millis(); } + void MqttHandleHuaweiClass::loop() { if (!MqttSettings.getConnected() ) { return; } + // FIXME - Some memory issue when this is enabled + return; + + String json_string; const CONFIG_T& config = Configuration.get(); - const RectifierParameters_t& rp = HuaweiCan.get(); - - if (millis() - _lastPublish > (config.Mqtt_PublishInterval * 1000)) { - MqttSettings.publish("huawei/data_age", String((millis() - HuaweiCan.getLastUpdate()) / 1000)); - MqttSettings.publish("huawei/input_voltage", String(rp.input_voltage)); - MqttSettings.publish("huawei/input_current", String(rp.input_current)); - MqttSettings.publish("huawei/input_power", String(rp.input_power)); - MqttSettings.publish("huawei/output_voltage", String(rp.output_voltage)); - MqttSettings.publish("huawei/output_current", String(rp.output_current)); - MqttSettings.publish("huawei/max_output_current", String(rp.max_output_current)); - MqttSettings.publish("huawei/output_power", String(rp.output_power)); - MqttSettings.publish("huawei/input_temp", String(rp.input_temp)); - MqttSettings.publish("huawei/output_temp", String(rp.output_temp)); - MqttSettings.publish("huawei/efficiency", String(rp.efficiency)); + const RectifierParameters_t *rp = HuaweiCan.get(); + + if ((millis() - _lastPublish) > (config.Mqtt_PublishInterval * 1000) ) { + DynamicJsonDocument doc(256); + doc["data_age"] = (millis() - HuaweiCan.getLastUpdate()) / 1000; + doc[F("input_voltage")] = rp->input_voltage; + doc[F("input_current")] = rp->input_current; + doc[F("input_power")] = rp->input_power; + doc[F("output_voltage")] = rp->output_voltage; + doc[F("output_current")] = rp->output_current; + doc[F("max_output_current")] = rp->max_output_current; + doc[F("output_power")] = rp->output_power; + doc[F("input_temp")] = rp->input_temp; + doc[F("output_temp")] = rp->output_temp; + doc[F("efficiency")] = rp->efficiency; + serializeJson(doc, json_string); + MqttSettings.publish("huawei", json_string); yield(); _lastPublish = millis(); @@ -98,7 +106,11 @@ void MqttHandleHuaweiClass::onMqttMessage(const espMqttClientTypes::MessagePrope HuaweiCan.setValue(payload_val, HUAWEI_ONLINE_CURRENT); } else if (!strcmp(setting, TOPIC_SUB_POWER)) { // Control power on/off - MessageOutput.printf("Limit Current: %f A\r\n", payload_val); - //digitalWrite(13, payload_val > 0); + MessageOutput.printf("Power: %f A\r\n", payload_val); + if(payload_val > 0) { + HuaweiCan.setPower(true); + } else { + HuaweiCan.setPower(false); + } } } \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 3ebc1842b..083c6ba96 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -14,6 +14,7 @@ #include "MqttHandleVedirectHass.h" #include "MqttHandleInverter.h" #include "MqttHandleVedirect.h" +#include "MqttHandleHuawei.h" #include "MqttSettings.h" #include "NetworkSettings.h" #include "NtpSettings.h" @@ -100,6 +101,7 @@ void setup() MqttHandleVedirect.init(); MqttHandleHass.init(); MqttHandleVedirectHass.init(); + MqttHandleHuawei.init(); MessageOutput.println(F("done")); // Initialize WebApi @@ -163,8 +165,8 @@ void setup() // Initialize Huawei AC-charger PSU / CAN bus MessageOutput.println(F("Initialize Huawei AC charger interface... ")); if (PinMapping.isValidHuaweiConfig()) { - MessageOutput.printf("Huawei AC-charger miso = %d, mosi = %d, clk = %d, irq = %d, cs = %d\r\n", pin.huawei_miso, pin.huawei_mosi, pin.huawei_clk, pin.huawei_irq, pin.huawei_cs); - HuaweiCan.init(pin.huawei_miso, pin.huawei_mosi, pin.huawei_clk, pin.huawei_irq, pin.huawei_cs); + MessageOutput.printf("Huawei AC-charger miso = %d, mosi = %d, clk = %d, irq = %d, cs = %d, power_pin = %d\r\n", pin.huawei_miso, pin.huawei_mosi, pin.huawei_clk, pin.huawei_irq, pin.huawei_cs, pin.huawei_power); + HuaweiCan.init(pin.huawei_miso, pin.huawei_mosi, pin.huawei_clk, pin.huawei_irq, pin.huawei_cs, pin.huawei_power); MessageOutput.println(F("done")); } else { MessageOutput.println(F("Invalid pin config")); @@ -195,6 +197,8 @@ void loop() yield(); MqttHandleVedirectHass.loop(); yield(); + MqttHandleHuawei.loop(); + yield(); WebApi.loop(); yield(); Display.loop(); From 0e2b7767c766e832c5a7b2ca187ed813edd3a5ac Mon Sep 17 00:00:00 2001 From: MalteSchm Date: Sun, 26 Mar 2023 11:06:51 +0200 Subject: [PATCH 08/16] Webapp changes to display Huawei PSU values and to enable/disable the unit --- webapp/src/components/HuaweiView.vue | 358 ++++++++++++++++++++++++ webapp/src/components/NavBar.vue | 3 + webapp/src/locales/de.json | 40 ++- webapp/src/locales/en.json | 38 ++- webapp/src/locales/fr.json | 39 ++- webapp/src/router/index.ts | 6 + webapp/src/types/AcChargerConfig.ts | 3 + webapp/src/types/HuaweiDataStatus.ts | 18 ++ webapp/src/types/HuaweiLimitConfig.ts | 7 + webapp/src/types/LiveDataStatus.ts | 5 + webapp/src/views/AcChargerAdminView.vue | 79 ++++++ webapp/src/views/HomeView.vue | 7 +- 12 files changed, 598 insertions(+), 5 deletions(-) create mode 100644 webapp/src/components/HuaweiView.vue create mode 100644 webapp/src/types/AcChargerConfig.ts create mode 100644 webapp/src/types/HuaweiDataStatus.ts create mode 100644 webapp/src/types/HuaweiLimitConfig.ts create mode 100644 webapp/src/views/AcChargerAdminView.vue diff --git a/webapp/src/components/HuaweiView.vue b/webapp/src/components/HuaweiView.vue new file mode 100644 index 000000000..2785a27e4 --- /dev/null +++ b/webapp/src/components/HuaweiView.vue @@ -0,0 +1,358 @@ + + + \ No newline at end of file diff --git a/webapp/src/components/NavBar.vue b/webapp/src/components/NavBar.vue index 033e213b8..ca1debd5f 100644 --- a/webapp/src/components/NavBar.vue +++ b/webapp/src/components/NavBar.vue @@ -57,6 +57,9 @@
  • {{ $t('menu.BatterySettings') }}
  • +
  • + {{ $t('menu.AcChargerSettings') }} +
  • {{ $t('menu.DeviceManager') }}
  • diff --git a/webapp/src/locales/de.json b/webapp/src/locales/de.json index f2e31bbcb..931f46c32 100644 --- a/webapp/src/locales/de.json +++ b/webapp/src/locales/de.json @@ -10,7 +10,8 @@ "DTUSettings": "DTU", "DeviceManager": "Hardware", "VedirectSettings": "Ve.direct", - "BatterySettings": "Battery", + "BatterySettings": "Batterie", + "AcChargerSettings": "AC Ladegerät", "ConfigManagement": "Konfigurationsverwaltung", "FirmwareUpgrade": "Firmware-Aktualisierung", "DeviceReboot": "Neustart", @@ -608,5 +609,40 @@ "Name": "Name", "ValueSelected": "Ausgewählt", "ValueActive": "Aktiv" - } + }, + "huawei": { + "DataAge": "letzte Aktualisierung: ", + "Seconds": "vor {val} Sekunden", + "Input": "Eingang", + "Output": "Ausgang", + "Property": "Eigenschaft", + "Value": "Wert", + "Unit": "Einheit", + "input_voltage": "Eingangsspannung", + "input_current": "Eingangsstrom", + "input_power": "Eingangsleistung", + "input_temp": "Eingangstemperatur", + "efficiency": "Wirkungsgrad", + "output_voltage": "Ausgangsspannung", + "output_current": "Ausgangsstrom", + "max_output_current": "Maximaler Ausgangsstrom", + "output_power": "Ausgangsleistung", + "output_temp": "Ausgangstemperatur", + "ShowSetLimit": "Zeige / Setze Limit", + "LimitSettings": "Limit-Einstellungen", + "SetOffline": "Limit setzen, CAN Bus nicht verbunden", + "SetOnline": "Limit setzen, CAN Bus verbunden", + "LimitHint": "Hinweis: Spannungsbereich wenn CAN Bus nicht verbunden ist 48V-58.5V ", + "Close": "Schließen", + "SetVoltageLimit": "Spannungslimit:", + "SetCurrentLimit": "Stromlimit:", + "CurrentLimit": "Aktuelles Limit: " + }, + "acchargeradmin": { + "ChargerSettings": "AC Ladegerät Einstellungen", + "Configuration": "AC Ladegerät Konfiguration", + "EnableHuawei": "Huawei R4850G2 an CAN Bus Interface aktiv", + "Seconds": "@:dtuadmin.Seconds", + "Save": "@:dtuadmin.Save" + } } diff --git a/webapp/src/locales/en.json b/webapp/src/locales/en.json index be095abe2..bfb49013c 100644 --- a/webapp/src/locales/en.json +++ b/webapp/src/locales/en.json @@ -11,6 +11,7 @@ "DeviceManager": "Device-Manager", "VedirectSettings": "Ve.direct Settings", "BatterySettings": "@:batteryadmin.BatterySettings", + "AcChargerSettings": "AC Charger", "ConfigManagement": "Config Management", "FirmwareUpgrade": "Firmware Upgrade", "DeviceReboot": "Device Reboot", @@ -609,5 +610,40 @@ "Number": "Number", "ValueSelected": "Selected", "ValueActive": "Active" - } + }, + "huawei": { + "DataAge": "Data Age: ", + "Seconds": " {val} seconds", + "Input": "Input", + "Output": "Output", + "Property": "Property", + "Value": "Value", + "Unit": "Unit", + "input_voltage": "Input voltage", + "input_current": "Input current", + "input_power": "Input power", + "input_temp": "Input temperature", + "efficiency": "Efficiency", + "output_voltage": "Output voltage", + "output_current": "Output current", + "max_output_current": "Maximum output current", + "output_power": "Output power", + "output_temp": "Output temperature", + "ShowSetLimit": "Show / Set Huawei Limit", + "LimitSettings": "Limit Settings", + "SetOffline": "Set limit, CAN bus not connected", + "SetOnline": "Set limit, CAN bus connected", + "LimitHint": "Hint: CAN bus not connected voltage limit is 48V-58.5V.", + "Close": "close", + "SetVoltageLimit": "Voltage limit:", + "SetCurrentLimit": "Current limit:", + "CurrentLimit": "Current limit:" + }, + "acchargeradmin": { + "ChargerSettings": "AC Charger Settings", + "Configuration": "AC Charger Configuration", + "EnableHuawei": "Enable Huawei R4850G2 on CAN Bus Interface", + "Seconds": "@:dtuadmin.Seconds", + "Save": "@:dtuadmin.Save" + } } \ No newline at end of file diff --git a/webapp/src/locales/fr.json b/webapp/src/locales/fr.json index 415d74a7c..c90613d0c 100644 --- a/webapp/src/locales/fr.json +++ b/webapp/src/locales/fr.json @@ -10,6 +10,8 @@ "DTUSettings": "DTU", "DeviceManager": "Périphériques", "VedirectSettings": "Ve.direct", + "BatterySettings": "Battery", + "AcChargerSettings": "AC Charger", "ConfigManagement": "Gestion de la configuration", "FirmwareUpgrade": "Mise à jour du firmware", "DeviceReboot": "Redémarrage de l'appareil", @@ -567,5 +569,40 @@ "Name": "Nom", "ValueSelected": "Sélectionné", "ValueActive": "Activé" - } + }, + "huawei": { + "DataAge": "Data Age: ", + "Seconds": " {val} seconds", + "Input": "Input", + "Output": "Output", + "Property": "Property", + "Value": "Value", + "Unit": "Unit", + "input_voltage": "Input voltage", + "input_current": "Input current", + "input_power": "Input power", + "input_temp": "Input temperature", + "efficiency": "Efficiency", + "output_voltage": "Output voltage", + "output_current": "Output current", + "max_output_current": "Maximum output current", + "output_power": "Output power", + "output_temp": "Output temperature", + "ShowSetLimit": "Show / Set Huawei Limit", + "LimitSettings": "Limit Settings", + "SetOffline": "Set limit, CAN bus not connected", + "SetOnline": "Set limit, CAN bus connected", + "LimitHint": "Hint: CAN bus not connected voltage limit is 48V-58.5V.", + "Close": "close", + "SetVoltageLimit": "Voltage limit:", + "SetCurrentLimit": "Current limit:", + "CurrentLimit": "Current limit:" + }, + "acchargeradmin": { + "ChargerSettings": "AC Charger Settings", + "Configuration": "AC Charger Configuration", + "EnableHuawei": "Enable Huawei R4850G2 on CAN Bus Interface", + "Seconds": "@:dtuadmin.Seconds", + "Save": "@:dtuadmin.Save" + } } \ No newline at end of file diff --git a/webapp/src/router/index.ts b/webapp/src/router/index.ts index a6b3ee60c..e7d6ec6f5 100644 --- a/webapp/src/router/index.ts +++ b/webapp/src/router/index.ts @@ -1,5 +1,6 @@ import AboutView from '@/views/AboutView.vue'; import BatteryAdminView from '@/views/BatteryAdminView.vue'; +import AcChargerAdminView from '@/views/AcChargerAdminView.vue'; import ConfigAdminView from '@/views/ConfigAdminView.vue'; import ConsoleInfoView from '@/views/ConsoleInfoView.vue'; import DeviceAdminView from '@/views/DeviceAdminView.vue' @@ -96,6 +97,11 @@ const router = createRouter({ name: 'Battery Settings', component: BatteryAdminView }, + { + path: '/settings/chargerac', + name: 'Charger Settings', + component: AcChargerAdminView + }, { path: '/settings/mqtt', name: 'MqTT Settings', diff --git a/webapp/src/types/AcChargerConfig.ts b/webapp/src/types/AcChargerConfig.ts new file mode 100644 index 000000000..1c265e13f --- /dev/null +++ b/webapp/src/types/AcChargerConfig.ts @@ -0,0 +1,3 @@ +export interface AcChargerConfig { + enabled: boolean; +} diff --git a/webapp/src/types/HuaweiDataStatus.ts b/webapp/src/types/HuaweiDataStatus.ts new file mode 100644 index 000000000..ce7b8aabd --- /dev/null +++ b/webapp/src/types/HuaweiDataStatus.ts @@ -0,0 +1,18 @@ +import type { ValueObject } from '@/types/LiveDataStatus'; + +// Huawei +export interface Huawei { + data_age: 0; + input_voltage: ValueObject; + input_frequency: ValueObject; + input_current: ValueObject; + input_power: ValueObject; + input_temp: ValueObject; + efficiency: ValueObject; + output_voltage: ValueObject; + output_current: ValueObject; + max_output_current: ValueObject; + output_power: ValueObject; + output_temp: ValueObject; + amp_hour: ValueObject; +} \ No newline at end of file diff --git a/webapp/src/types/HuaweiLimitConfig.ts b/webapp/src/types/HuaweiLimitConfig.ts new file mode 100644 index 000000000..f839d83c3 --- /dev/null +++ b/webapp/src/types/HuaweiLimitConfig.ts @@ -0,0 +1,7 @@ +export interface HuaweiLimitConfig { + voltage: number; + voltage_valid: boolean; + current: number; + current_valid: boolean; + online: boolean; +} \ No newline at end of file diff --git a/webapp/src/types/LiveDataStatus.ts b/webapp/src/types/LiveDataStatus.ts index 477cde195..e7ab5b7e1 100644 --- a/webapp/src/types/LiveDataStatus.ts +++ b/webapp/src/types/LiveDataStatus.ts @@ -50,9 +50,14 @@ export interface Vedirect { enabled: boolean; } +export interface Huawei { + enabled: boolean; +} + export interface LiveData { inverters: Inverter[]; total: Total; hints: Hints; vedirect: Vedirect; + huawei: Huawei; } diff --git a/webapp/src/views/AcChargerAdminView.vue b/webapp/src/views/AcChargerAdminView.vue new file mode 100644 index 000000000..e4a6c9f06 --- /dev/null +++ b/webapp/src/views/AcChargerAdminView.vue @@ -0,0 +1,79 @@ + + + diff --git a/webapp/src/views/HomeView.vue b/webapp/src/views/HomeView.vue index d158af95b..52118ef70 100644 --- a/webapp/src/views/HomeView.vue +++ b/webapp/src/views/HomeView.vue @@ -114,6 +114,9 @@ +
    + +