From cf2ba9361f36d12cec985fc68e167b7ece790382 Mon Sep 17 00:00:00 2001 From: patrickryan01 Date: Sun, 1 Nov 2026 10:59:35 -0500 Subject: [PATCH 01/12] docs(codesys): i added the HotLoop for CODESYS section as the seventh product, with its install page, profile, status, roadmap and release notes, held as not released until it can be installed --- astro.config.mjs | 12 ++++ public/codesys/alarms-dark.png | Bin 0 -> 45459 bytes public/codesys/alarms.png | Bin 0 -> 45676 bytes public/codesys/device-dark.png | Bin 0 -> 45364 bytes public/codesys/device.png | Bin 0 -> 45704 bytes public/codesys/screen-dark.png | Bin 0 -> 77356 bytes public/codesys/screen-phone-dark.png | Bin 0 -> 104332 bytes public/codesys/screen-phone.png | Bin 0 -> 105741 bytes public/codesys/screen.png | Bin 0 -> 122109 bytes scripts/sync-docs.mjs | 20 ++++++- scripts/sync-manifest.mjs | 27 +++++++-- src/components/ProductPicker.astro | 9 ++- src/components/SiteFooter.astro | 1 + src/content/docs/codesys/install.md | 61 +++++++++++++++++++ src/content/docs/codesys/overview.md | 50 ++++++++++++++++ src/content/docs/codesys/profile.md | 63 ++++++++++++++++++++ src/content/docs/codesys/roadmap.md | 41 +++++++++++++ src/content/docs/codesys/where-it-stands.md | 49 +++++++++++++++ src/content/docs/index.mdx | 4 +- src/content/docs/products.md | 11 ++-- src/content/docs/releases/codesys-0-3-0.md | 27 +++++++++ src/content/docs/releases/index.md | 8 ++- src/content/docs/roadmap.md | 2 +- src/data/sync.json | 22 ++++++- src/pinned/codesys/install.md | 57 ++++++++++++++++++ src/pinned/codesys/overview.md | 46 ++++++++++++++ src/pinned/codesys/profile.md | 59 ++++++++++++++++++ src/pinned/codesys/roadmap.md | 37 ++++++++++++ src/pinned/codesys/where-it-stands.md | 45 ++++++++++++++ src/pinned/releases/codesys-0-3-0.md | 23 +++++++ src/routeData.ts | 2 +- 31 files changed, 651 insertions(+), 25 deletions(-) create mode 100644 public/codesys/alarms-dark.png create mode 100644 public/codesys/alarms.png create mode 100644 public/codesys/device-dark.png create mode 100644 public/codesys/device.png create mode 100644 public/codesys/screen-dark.png create mode 100644 public/codesys/screen-phone-dark.png create mode 100644 public/codesys/screen-phone.png create mode 100644 public/codesys/screen.png create mode 100644 src/content/docs/codesys/install.md create mode 100644 src/content/docs/codesys/overview.md create mode 100644 src/content/docs/codesys/profile.md create mode 100644 src/content/docs/codesys/roadmap.md create mode 100644 src/content/docs/codesys/where-it-stands.md create mode 100644 src/content/docs/releases/codesys-0-3-0.md create mode 100644 src/pinned/codesys/install.md create mode 100644 src/pinned/codesys/overview.md create mode 100644 src/pinned/codesys/profile.md create mode 100644 src/pinned/codesys/roadmap.md create mode 100644 src/pinned/codesys/where-it-stands.md create mode 100644 src/pinned/releases/codesys-0-3-0.md diff --git a/astro.config.mjs b/astro.config.mjs index 33d1ea1..6cdf406 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -161,6 +161,17 @@ export default defineConfig({ collapsed: true, items: grouped('cascade'), }, + { + label: 'HotLoop for CODESYS', + collapsed: true, + items: [ + { slug: 'codesys/overview', label: 'Overview' }, + { slug: 'codesys/install', label: 'Install' }, + { slug: 'codesys/profile', label: 'The profile' }, + { slug: 'codesys/where-it-stands', label: 'Where it stands' }, + { slug: 'codesys/roadmap', label: 'Roadmap' }, + ], + }, { label: 'Release notes', collapsed: true, @@ -169,6 +180,7 @@ export default defineConfig({ { label: 'HotLoop core', collapsed: true, items: hlRelease.sort(relSort).map(page) }, { label: 'HotLoop Flow', collapsed: true, items: flowRelease.sort(relSort).map(page) }, { label: 'HotLoop Cascade', collapsed: true, items: cascadeRelease.sort(relSort).map(page) }, + { label: 'HotLoop for CODESYS', collapsed: true, items: [{ slug: `releases/codesys-${sync.codesys.version.replace(/\./g, '-')}`, label: sync.codesys.version, ...(sync.codesys.released ? {} : { badge: { text: 'Not released', variant: 'caution' } }) }] }, ], }, { slug: 'roadmap', label: 'HotLoop roadmap' }, diff --git a/public/codesys/alarms-dark.png b/public/codesys/alarms-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f3dafee7f014598155038901111ef6ea0b9b8b7f GIT binary patch literal 45459 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%0D_P&{_ypt&(ahhvOcR}bZSMpQ^V_$ zxX4T{8Lw9O?h%+Z;(htIQ>Oh~I*5v#->dkN=2V1 zL_~Br9?#HH5(qe2;v(cjMxdnI2I~!^Hk^kl?s5sdyZZR_wS`t^)dD;D+%lBJ#ul6; z2XIe{NEJHbdrs6>H#av+%QT#p;G7O;9z1zF(mhe`nK9uc@T*mvmfkYe($*)O9Pd*w zsVm$>?Qbf8_~`iI?8E5w8g%^zxjuH4U0bVTg&(b7Q7hJvS}T?B^s?o?j$!7^@pCBc z4x@}ye>^Y89hq*6kM&%8)7#=;Egn=7qN}g=iY8K>*6-&q%djr#5VDW-FDG~*&acHB zxl519)5|^&dAT9WBF>G7j0u7@%&cPdM<;Xuhrq_gr6kmSc`X-I#oLmnmkQD%bhU3s z;{+v^ieF0FD4n&Tm{)YhZv%h;w?92-r-{oDOsud5HEiq^6kNx7B0|T*~#> z;LYzmW6M*j#*YwsdeYFj@Ng~qx=%-2A!Ja-N#7e0jDuUtgsQTQWt=*(MHb283tcp* zpUy?&k$31A44?^1Um10s@rjIS>La0J3I0<#Qt*-)`eH#0g@&4}oIli3W>~ttzjj%k zH{OHkUHVHk+BFd(DcN%5=+boKUipJIzf_}v=45$3?1sg28*5h>d58!)3ir4C4XkO*49Y2=1$~JbP-sLfXq``GMZn5=JSJ6g zZTX?AOZ5c&T(jQW_qi?(oSaW}_r;5$@bA`gT=HN#Z_!Jdv#}0p%z*N^$vFw!S z5uwG-L0b`ftu;l#{G27V7%-Bef({)yEn~zCSd($Z$V2KW{%f4=TL!M$B@euXWv#%* z7^Je))vE!$n;u4(V|d=LjB&?@n>*C*&5b=g_ep0@Kbbn%-r(2g>6I#>hp{O!t#Xu< zhb%BFGbM+>J~_?AkMcumZ1Pl{=J!G(BiA>X-QXTdrX*C z%Y7C70T*86vls}PfBiHnR_ST+60xzd5opfsKHr)!?6W95C4%N6*UKE#-izB)id;}L z(}PG)C2fAc@SEs9ESvV$(1>Xqw;q4l#HP64JNkTYl(-M5?7!`KLFdFvOQ)rZdlGzjXq1nx6C=z^wpl zm&&uTJJV3}Y$b1C}^ zA3Grvk=`7P1Rl+0r^6%i-O}fE>(Ec~Uawz6=-|g`q#grUhgy~|| zZmo$b zLW-DL8_AwOC<6m(`jqzY2P7RJO{pZ8oaxHZ?e7x!Ec4HZ-}&C(c=#|toQ|4X(8+bs zOA|$_hukd-?SslAsOuIDK(ufBLJEgQZb8{V_zmXPwQpzICv1D(>B!DHZ6b5B>MHmZ zTow2{1e)m`4Wyo~?&g8(dUjSMZ9`vkC(wfLL0y{m`I#e+MX9yq=p@hdQ6GcBI? z&>DrMgeQwBWLF&Gx1=qI8x4J&H5xr>8w#gkz0^rzPt`G}VEg zql?-Xnk!W-2BbApKYz;qs0st+LG?C6aPX2o$dtu*6%8hPjFbS@O=r(T7Gq!?1PHXS zH#cO$ByG=i(;It@$gWKNjb=aR+W>wZ<3r?qWL-Sn?Yq(=BB&XLUHqvDI?hak97%tz zC#-t+9|JN@-$6?&EF?7Az5|1a&mGcdM4!5u{Ur1Dd48EkOB?Ksie`f=Vu+cmc^fbt zBX+_HOLA0rZS`vGqi=0PL$(QY2uVAcJ-77I(F4##=8ng)s31{H(iK_0Ub^nByM>6Q2dOAoRy)b7$;sVtVZZi|-vN0}l zp-DrQ8M}~8(k?8u(0pHMdNm&l@?3(g#tVnW4q>-z)2AgR^#fHsHZ3f`fziq!ADg)N z(+i6=6IxtnjIJP`MmD3%oGl@DVeYGhKeR=pUnl2%hmDIwS%^%Ll`rDYseFX%U*&_B zfs`W90mh{HxJ;!bS0^BUD90N0GOH>)rDF1q#Y7ybqtP^CGXnzfRtLcDR%azPSci2a zQtqsL`P>{-T#VoNWVu5iVB&>W-qO$PVD%hwrpJnqyc#D$xTGF%(>&s4$93iJ7sgV|!{UYFNC+0L*&lNx)-cXbK9H`&E zg$a($9q8|nm~|~Cl)*P`)(86qS*(JAMXNP2nL;SZ|4jye^u|m*&q33gwJ9~MyF%9 zhM|eD1>R3^$M*-u&RekkOCg;^Ha}6VHAboNfcM zuk>#xQIH>jJbWM@9zNSTI@J-h_Sf~bHB|YEu?axt!JpEqeApgt=ORkeIUDKfpcFoq z)gpHgS*+-yAbvF{_!q)s55mUbk)5?AIw1-h$?N=Feh@f2>vynU*$|;K4MGjG@$zw| z@*2YY zHPURe_{;Ufu34%0?rtnZq2zAach_@Kkvy~Y_lg$|o(8}y@L=m6WN#K2r5(LDJE-Jp zomLWMCf@b0d`s)BUzhBel>c|w)PLJ1y!%f7_4v>r%V7`;{o5Yx8-E&tZ{mM4Z*=#2 zT-hCh-67b$rT!nxD%)+L=fZbZvVW|zE6%-a{S7?*c6=wwx;AMT{N2Mku(K9^6xo4k zyindzfbU^&?yP|i^nT$zyk6}r^}GK924Q!^z##1YV0Q19-RWX?w%lDTcGt??Qen4J z`rjxN52pv}g39B|PA}m9c4^87J_eiJeQdHFJUO`YdG_yFp2$T6B$)i-ziHpReIsA( H!K;4*)D-&i literal 0 HcmV?d00001 diff --git a/public/codesys/alarms.png b/public/codesys/alarms.png new file mode 100644 index 0000000000000000000000000000000000000000..d09cfb83cd81271b7ce5b5a3078073d4da27e95b GIT binary patch literal 45676 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%0DvYe~u~E zj?6#S8#P>RHW;6G#=U{vrasS8*d<-~5qcEk1pO)CIkq45L5Vrr?EQ82@e7u~NvhLy zpBc)Q=%fC+X|q*F5!kFrC#CdXW0A=_8^0%@Oyv?EECc&wZClF@dB^DGl9&zSn%%9V z%ui;UwElwy6pVP-7Ke`_1o9f?Z*Ry&CJFew7TVS!*M{x}_`5~(M{k*oybPLq__>^H z2G64sTxDn@#c>UmX5E|eulRyPR>!c~!JQSZ9;S@%Ge)8ue>)WweAG*twSD-lSeIW@;yTY2VrFK&K zpZMuJStD*LDVB^gf}KVw$z0S^r&n&UEQ3j`&FeRqLcutDD;p9=II}HXbgf_=6bpo% zu@KPB$ZFvoG2(bu1dWM;-k}_WNl%imdKPDoi3Nu8lHY&?nLu`@5NfL0z3)A}3StnU zn>Tk_Em{y62DQU98w;#JI;KV49G#wm0Q&vFfM{xy)$uEwp&_o^;_BIY>$iB3a|}$C z78a9}i;L7WEEer(Vz`)Ww}od&hDw)t6)4{bNAHsQ<+`XmG2cCf0thQHgAk%TbqQ>+ zxRAX523Ci@CD}wAv_0jC&o1ITrIFtr0$((08;;b`jeU#8+zD<8&KmF~zn~z50 z^E@sDaoYCZq*E-lF35(&Qwr71{V9=d1UCKsdpI7a^Ude4fe3o|zAa1_bz`)krj~+g zgzX|RLCi^*Po>-%%A#tFV;aL&V`Kw$$o$Ac><(eYCY2s0dY0Iwh@q6)QY!CHe*qU4 z=h)a7BgTZ>I2J=xrQP@lH;eVS_6A(1^q(>T`$6}VbRqNw2#T+hdU%bm7H%-&z9DiTS13Hyqiij0Jm%8XIx z;B`#2POp|=2)34r3=TTB<4oPyPDqi79!0{tovob@u>pCvlO6abduo$~Y-79l{ma_e zXvS5lswryBcV+=(tT`jO#!i@O4L7P|h|y;IREw{tMn?L<+spGgLR4cpP3lh%z7f9e|jl6cvlKvGsR^jpmDVOq&C| zmWK9D9p?a&Rc(*N1nx=yQ1&=RFw{9}D(kL=?yl5S@9AEZcWCEWH<u=l7+8=SzuI#cwW(W#|CGt^^N$!7!;jD4wfWmTX zUcO6nz`3Y9ZD5|D3~b#787`-U{?FCI%+dMr5ZuS5xKHHUYMp}(c>*$?c0qYNU0&Vc z0jHMPp|dAH*L_>Yl<1rEMuBcXO@6r>0Qv#>%ly2UAFpn+egjE4cVai)hrJrMb2hbE zflLiA{d3Hc8=HiKq=SKu$D&edQ3|K)qQVqamd!~(##bgw^}f)R;fE$9t6{WIT+Y^u zPoQkz$HV4uxT~6?%#rs?4?NwHtVu3)fFURAU#d6_+W`<-h2D(cxZd8&9~v0udtSPm zwV=hpX?7VgGs0;8{PoRCdKPJ)4>e_30){k8Gf~zbo#j_Ef89FBI(>Zma)G^ZnuwlN zHYybno&IjydjSYMu`u}Hk#(M}PvviJX4k&c9ZcmA5tAaS3GXwXp3{UqE$91*-_+tbNc@vc<{9HnzK^1|2k^}9BkmQqA34Xk$5Pz4sl_76zW-@nz4S9Hy~ z_w`ZNk_T!0DKg6^D9K`Sa)T4uGt!zbcu!OU-y2XX@2{`A9Fvlf_#F=V+R6q{YN@VX`pGHKG14<*#2^jNlh=MRkj*YhfC5MsBV%1*g1JVyQeq-x zRQNy=FsJRcRYN6fZ6Hr zhqJh<+voN^d7uq_Oxf+{6v)cuada;lkH=dB1UQS%oF~q|{Jih6> zc20{EkxcHc8j|WB*js0F&hHtYShQR-p4}kG+DP+D{5{nz0K8ZoTM|G+^M*fBc0-EbDT<8hI@sj07(IPC%6+Cy&E^<95 z#y{BON6m+2ufE~!;0XkcKuRMTj6X0IxDwlrFIkpPqD=S%iWC>D_tMT#5Qd${FrO|G z*xYlbQqn&&U^s71YUv1%Zi|PQcK<_driBW&&jdpzr_-72IA)iRonqbX;QsE#?Rc)* znxdNG7VQ)s`p1{oiI7F^ zRANAT^%2OT7xn*vhv4l^BPOH>L=W0)+n4xYL&9S|j*0!jcY(0w?oL5QuJ}wp1Q6UY zz(*3x?+f}f^?QZM;@H4fs%yE3d0Z2rW{LKo4>>0G2jE9zAek#Ivwa)TAqa-t`R%Ef zU*kxTyzetJgW{FZu=gABs(J$ImMwK$Qye6}D|Z_b80Dw2Az|nS{B$~C6==$z!dT%( zc#RfpwvUzfgXDeS@Ft0s|48nHarA)1K%mPX6#Bsc2ZykUQu6(Bt5C1Cic3b`LdbvM zRKNcYn7?s^{RiRwfADeoKL|YYW)GovypQKMz>g9B!uu|jS{p*Uln(8THCZu3u^@T? zqbfoNz{-C%)Zd`p6xaMYYHoUNnvG5nd?Ae&5jhzi8WIx17diDMNgz@X|7ZU$Q;R}N zV+;QNzgNIlOA881p4-OCA?tNjxnDX0G(@d`_2&R_No<6wiRnLXED+k?5rs2tvSZP+ z=+sahEd!aN24H=8K-U3gq_aSw;EKIDqXH8Oi!~Wq;Yn=>0z!Lu_uR`DSQ-c!US@Z) z772C$E3O@TRZ-@BYz@0{@4sX05YPph9)W?<1lBg^X0qcMylk!Cc@pW($19D;pa=gP z2m)TT3Ec{yp)iJ1G1-Edm=JvMe?ON@e43XB8_m_(=T@D{vMOM0r8@BwqV>D(Y-LEW zF}>k;>px#;{V@hGSB=T4GDrUUXEa|%puxVof1SKqKa8tA`znJMF4OIuCI zLd~WG)`#1rM~~Y9X7Q2)dc#3*;qmbB-QC?8F(foK7Za#k=BrGV8X&*=`4ugdww;V> z)5t3+bhvCR)~Q^bn_JhDvchT-{$TSvnHX8}!F%?e6c_yWy6V9lcy~7xFC8XuMidM4!JawAlrBv)w-tdP>u z(%$EtHQye(?w573KBmLqx_y^mjuPFVZn?Ah$T%@E!3YGHxjuOP3mjgHG)|DA+i`K1 z50_k(8Ev{?$E%1egl`&<9z`N)!Fg+`S0I9-l%p?D(dR49WFHFt&Qi&?MsmJw6%%n zG&VNIP-+dvS(?=W%e%s6q>uVf# zqhyQkH#aWO55<7wlCdT@&BkgxzWang6z6}Rn+T7h7nJ*M(b#JVtNyVnKXpbxX zW|XX$7-2ViVh!YkT;>VhP~+~VCb$u?tvx@tbFdE+Lp#_!Bt;4U14Wldv#jP9KIIYV zXXAPoa;GJAoE!5yf#nhJbcq37RaBoYTDH!4;f-oh%->7C%yI~Y#mLA=&Hi{-mzjxx z$>ij+8Qz-xA1uH{GL_c%`Rf4ro9VSMxq6fu{{B@_{n(bef`&@7^&=HEZp$kp8Pj&2iT{pqq(_CS zhLWm3C|Ck?)Y)o^EoB+%YwIxK1^>P_UbnTVR%Q$J=fi1yE;2>=@bQjZqJ>UUV*Z zNNlb!qTE1YDG=6X2Vc0b~x1dO$jbYQ}eE)#V!^6W&>f#yU zt4UR_-TWewT8oxM+nDFt}K(ra^>Dh5xo)?4s;_pufVL(?W zp?j~DFqoyyJ2NU?fN~pg^3oMX4v|teuTW&9^}@`oahk{S)nBCKtvDvsw4bgNpwzAc-uj93XrAd*`fhFQ32umBspQ zG8&(Zj9T-X2e4t|ygeH$4&FNM!fiRPp3Bu8O5p&{V7qMfetQ5Su?4ed=3Xe)C*FYI z$cocUkx2hHxE_ZkA;IbBp)JI{bo=|*g}1q?swC$i2i;dSH#IDgt&Y1Xh_X>*b3jvT z2*ReM9ANNAXsPsAmEv!Bs1JKPIR*LostAu~V^T{_V-n-x(eZWGYn{ep*(%L7B5B$#yQ}1u~N*K&}y|saP;4^P;=3?cx)+H&2PQP$n z;*AYGCT7x1*?48Vyu9K}etbJ+J4F}REKITx_ST3<&8Bh8O6e}9TU_1U}(t1nX~saL#3DIw?J{{b4Oo$OjSh2aV7B5FiHmUXYN9nLHGGUQS6)f^SnV8w@26 zG~Bo}X=#B<2ygS|IfH`giRAh?sWYtZ6;xm&cKRk)#fsGGt zXt2$%?z7$f4DpA`;`*d#UTypz-U9zBdxuTGr2Z5o36l;`)nh=F#$#_qRPm2*^>UkxbGvRPHk@21w8v3hgRRR$I1BM$k*l_T#!fqgZtas1QmPeM@*};JRKS9 zc;hX#bNHZdRMeE|cE0rp(C!ARCNds4P%tsi2xL`cJO)7*OMQX8OENBBmh`loo&>+N z{RNT(5Q(&luz2yp&&BE5?AE==H$!eUb0-RaSa=p&)oaylp>ofVuu}e_nNtDJZg4lAR9FewP+jlrB$4vTbB%gQmg-kC zGV|wP!J=v$TVt6vzx4`RRE@4b4<67kTms3gY`hx~LbSk12|+j~4&5&)Do#%U59})3 zm3&N$sJ@@`3|LOeA^Y@BWY&nBovz8$5=P}BZRy5lv2z-7E`#fWrY*>9#+IspzBidO7Dpg)d0cHPC+6$fCeW)w}znoC) z2;t1A06T`k-jh+>mYdoGO0xYBw6o*cT~XXeZh(DUSl()wdAh<76QfR5uZ4XJ?Hd>z zR#8yU?)Ua7&&tX#Pujr%cD(cZc6*#u#fKn0kjZgOW?^BKNvCy_$D^#=B=XCMv=!nT zRYUR_mY-o`otRRTEB|%&Ehtf_ARk5CwPJbaKukq}$D-Q4l}9D`Ypj%pL{&i|SXPY- zOAK$rl3C8zM|>Gt{;ek5)acz_d}PrwBaTDWOEYj+;k3Uv*qcCyXS*oEhdrcIzL<)v z`~3V(=5X7@K(fCSt8J1Ccoz2dOyVqHu~DL}Kh`yl%jdP#@AA(beZIwAY^gX9CQ&|YTb6Ns1JCV)ak#P+qETek4KIp z*fX{@iY3Eub91$F9BC+x#mAw$Dl{tpZ)GWlR?B|Xm#?=Q+t}9vefDI-lPM9GBMgzkIlW$%WC1|gi!i>i`*)OX*X{?ybxM+Jl>)N_ zAwtR7CUZHyd#zQ7#~;$YDut=^qs7@oeoel*#$|aCLCH;!x1|xU{mty`Y;+oS@CO0~ zvtuihpVGsg7ETv5Fu~cchNz!y*SWk zq8u1NA}obe<~qUuz;c#PNUq8#14Qx5Y^^dOI!3$H`$MA=U~KJAOC7Ctw;Pl}2nk7L zA9G1MV5=1tU(k(4}&wTg&`hxbD4l1p2s0!yo>#YXLQmwlySJcE$+= z(vf3)49s0nBAPh!nz);v`Eis{+TCM{}}tdm6Mt6YI{9qJK7GrE#;kAL79Xk(n_cJm~5QEp?d8bsIGxn8ODJ zlJ^eD6g=A824__CH42E$9B$Mss>y#Bv&DFaC>8IQ<*6bv(wwY@b~+|F&(Q=LC37bI zQ4+&$Dj0l(ARQXF1vhW>3{08}%#4~j_jOEYm``9BMW%33j&Gar!>vFr%L67zm3L7ycC@^kU77>X7N3R;D% zy3L!!2{J;TH-8_CZImaaO4|;2XkRIABMp0{)Q_Wep#GegP|y^o~J_KZzz*!q%J z!Bl*|c%z7vChY_`1djJ*W#(D%UTM95lB>CT7o77qDd%WxtyAELovZ;A?9xNQn^GWC;CX8uQd7dE(d2jv7!wTo*;!z; zv7E0n3=3$yiRMgX6C~r%d-PH-c}S{=Xj>^O>jhT?VTS1dXN>3sH^4CU`Z2s+`woba zFg%klE%~3IrFw>A`J`;inzAZHu}m`kzA`@7ytk6~sMKoliODOwo21b_fClwcj}tv- zFb6>c7{im3_W}dYBE`Ji9DcH_YY^g)gPz`1ko&3*Z~|`Rf5?7%&RN^ULS*ljTl0_H z510FS8I$_mKuBKnMd8s1Xurr`vD;|Z#D?KQp-)63+gD8>nO|K&?=RIUWXX0C2A8?H z^?%9xdU-%XO{wD)oRL94=6*JDMoAooLqgV#7?7Jpo@Sf^p10lJlaO1-5eD%%I@2v& zOzF~%bPJ*4;Y6^3nUysMbMfJvDCr$x!8wj>@gPa1C#W*Q2mu5-@3iw@;!4hc6Zkzo7 z6=frp&~^blJD*01>W1umoAK#@BIqCJ#%6^z>+h-<6~=QETHE3(5)p+i#%zB0(QoDN zkz{{zKKnq4coY5RVBsCcI|=lz!J@rHq!22LLufu~B?uL(13Fh2q21hkl9G~wDi3l7 zKtL^T%&Mz9$k~p~5~#lo3!#g58%*Cbx{i%Sk@I>F+U>s|lB4>DeXzNlJG~d?X75LV z_=^!Xi;XtwhV8y4O>jx4BO2WMI z^k5g+nAWo>ezK}BsPeO0$JfA~(*+`L0)jtdL^!LwdW{t1@OEA?3Lx_fAtt7mm>Es7 z{upoYeUT9Z9?42tvOP{WO0$L3xbG%)^6~6^XYH$P`KW4>fVY6AgP;&@qjvE!-!sJf z!b(9IN2_g`1hWLx8x<+6MIn($X#$hWipp$}4I3ONW9+-XEgXp9Dd=+GSB?~1cQ>SI zJR~lL@ESA5?#782H;vzyDjy`jW%@@br{*63?eokVo4ZI+6`IppPs>SfzngXq6Js~e zYt}c|7cZ{!MtqM`J~V5UH4AxP3>JU-=6O3E0<^Ct#Wg*~54zK=2k5#_V`Wt}mvHc* zn8$|th?s1yWy<1E#>vIMp0@}Sq{Dxn^f6UC&zS+(ZRrB=f)tmM(f(L3@0A1pb6)5^ z_Sv{exWcO?hBk@7>b0`|63H9|(&*TF`_JKVtmUI}Ng4||gQ_25gh@qN?Ds#6&24}E zacA_vI5jmPuR>=1gctjydlfE(Nn2%rOd7Yw(du(QoT9a{b2;|esfve-DJT}Pqgkv$ z+077f3INRPUw_wP?njJnFW=rFJHM7w9n~tGPvE_avdxjinOPdoL}NB)os-K_oSmL2 zTL1==G2VF$Vvo6T7;K+`_?DdOZ(xx8KLL|pfS_RkRrFRvDCZM4u1KjaU6$HA^xV5u zcGTd3^;Z66&gl6h0vGv1!e?o3bqiPH3u?-*I7W&LtSogPBa*4fh^$DLP~>&r-^X%t zYaUVWcC@mi>L1dt57=A<9HdGJ(gM*WmZtQ^%-mc29oRH51hZ=JiiP(l9)OYA@@YQ5 z4%0KS| zRq@wQK%of;me4ME^;YYV`$kPkPT-Z#1`&2O=~u;y)ISU!g6a!ke0p|vq1zw!x~$)W z-;RAuZYQtDyG=)4H0SK2oidU;>Kqr74nyLJyh6;>)YPaW?WR!iusrgnzT>4DD6@=j zNNWMVcx1=kALpLxAZ+GW~gdLgipcK1L1#l?ODk)kHB8PQ$t3K^LYWW zJU7XyCbvEE-! zsZTJ;PV5zh9ZF$g*Xb1(7018?aU1pqkL(oW-}-i|nV=Qu8v`9(M&2i;HsAq_8=}1W zRqU{{C=t%9^a%wvvIIWG8#COV7B{ExCVjTO4@v|DYK{Aff$`Ok4{C2jPaIx{MjH0(TCSww7H8&q?KA@n4PV#4Vxdjv9nt`R z$iAFFsj>jp+(>zTasCgHDtX>lFJaS?3epRI!L*xH&E^N%sQPVJFpxQP19V1p@U)~^ zlOSeT%HgavC6x1U4VA{ZQ@xkv%w?fR7iPw_);}aUB83WSXjW84vkyEpSk@(h&D8`Jd;HQQen8`6fJHH~)P}kj@_`kJx-9b%uT^_|3 z8%0H=6B}K6C{hIkl&YZUYaj$68bNC4T@kPVL8VveB1RC9Dpdt3p@rUy^qv3$0kRi@ z@4ny8d^C|MBuW{e00rjopDtd~J6J!mpp$3m3wr0UX5Cu(M%r zwHi6Ja#fy=rL3)N58uD(qey6FK%+WdCI}j(Gi5XCz=w-3zk_K?bE^jdfM8t z;>f!0-22Y6T`je!f`|QV$Bv2G%o|}1ODuoRkBp2Ip~pq3e+9eVlbZ9Gn3(?jnW(00 zAZP#MJ9nq?&rM>JO?M6;3B*s1Y_5LzMLf76z_cX{*a5u-RwNJ_%D_ZKbT%57Xg+^2 zK|4vvQ-2`{J#UUr(*aSIJ;~5s>^mfLd!_?RTwG*P^71e@KhKo7Q1Wvi*gx>uv!eBI z*w?#u6Mt-j$gqsuMPO!SI2`NO2?>jGo$V6Kk4eKOSLWpAlx>a2v>j!R6mGIHL7`A@ zLj1g5K6&z_un^><6S~tAq@<(1R4TtcIL2HNFjMU z#`^R1VY~v=`=#qjqL~VmX1LcXN+Z5k=nzk4gVN$l97BeYQ`WcV_ zI5|0iF@)+lW#TS`uOx6tJ?tVuJhGh!6{oM3$7%B<$NyAXtfTWxJElvd)9 z;o)61MOAn~xP1tbnwG|;;1*h!c}^oJsdcJkp-hW=x=D!~tIr_7l(jvX+-qG5$QO5) zUU8FF=V0a5#-^rc!U~kOe!LzTxvQj94m14VLBtk(xKo%7%6IlJ4Z5m#@bLZe1#}u4 zr0W_J$08;g%~Zcjd~NK*wfaw4Au##0RAG!MDJi% z77x;Mpd`y1F0Bm*K)BXwlsGsz)B{;ejkS{I2%%R}$?jxN2qdAu#2F9GZJ|c8{v7o7 z_VU`6Tlk#ovNQrH2e&fYy+CY`L1}YwwmX+!A<;Gc&?pGsBauj(aw7f8CI}Kwy_hea z5q2xOyKXNIH{wv?7Tb)O7!;TTiuW`DRG*s^gRfp)2r0UT<7F_h)=M$cuL#$*yba7*4 zIRf4~I94A4D?@(${?fgHIFNF!&t)_S%M+*~Cbj*&q3$m8@l+P+3$RnH$A^E+YKwfS zsxlX6Me;SIs%`c5d^#vBG`-J+o3i|&9Ke^jtf7I?(M|~lTi~N7fj}7WoZzgd0%{Jc zNcjHlCeSavImmjLP3b55vAVV4FJtzu8l&E%xdIGCNtc<(&seljM&c7&FV`x#vdpl0 zD$G!Uj)oe|-_07!r)2Noa3iz*N-hut>wK-{f;dZvq ziIBRwy0{27*2FUq<4<*jyolIXj{M|AOFD0PQXe{)o*v>&xT@~9Q7=;d(DMF$OG`^u zbY?C4;>}%hH5HZc3$1-M#?FH{DRF@l&sOLAwIW8i^&ecldKG~fiY-DrFZ3{-U}HPM zp}ob9vqI~Kh~00D4Gle+*bI$H*Nd~Twx&OPcxn?Co^`vWuPyXdv}OXEf*Ta3nxdqp zu70PdWo;@wK{r-LnUgqy6THC3BJJf-0(l@=o~IqTt&&(>9`EXJWga@>k1@>pkd*~e zHNaYl;wbHE)7&t5}($;-|l(F#Rhr`xNCn!W%EC3}H6%`#lB@8+! zS(a_S(t*%(%3ekn6FOj>+Z&m2rJf!}eat2vEwu)YEa))04LNi*ZO|RSk2&rXwq`cd z!Ecb(1-E$OryuAozjnIhEw6TLSM3E+${QB_Zp%M}s4w;N^HbVd8Jp zDO=bk)qs=iz3maCo@+*Onl49AG-ep21+pn@U<(GlhW(fo$+Nj@YineA(gouQ5kV0K zl4WKRc8#>&ze8@gZeXB_oW&?@fZcC8JPg{T50rb80hgwXwAveEUA8`~!Ik*RwO5v2 zJ7#@rY$73Qdt_*6=OC5B6QZLxw#nPhZ*g<%RuQ~g77Pk&r_~OhQx8rt*G$#FUa>SM zJ=oRVef{CmS4O>Sn@hDd5bxEg^jQ`!^48A)h*#vjO~4UDl0GlDY6S%ajn)LYFQrDf z$iwyZ^{tHKd1$m;rh=11*-4_c*Zv`GnP~4a3*gn?3apTHmBV9LfiSrKP zBEIMyNU=2<@4kS;)h4dE5`NTbeJHU8S{S3S!G}Mm>LMmvw|Yk1Cr!99{E)xpG96yhjIJNldJ z_VXiJnLzb(m>RP}%=qK+)MV#_!xU^s{0F!cbO%^|tn0|OtKx%B0R{yC@;9|F9E6VJGV8?9+0T9)xf&7U2h6^NK!++^hR*LZ*p zTWTxuxCNEx>|po_D%PL!(AwUK7+PyZ=N1P~H!Jk58Lj;xC2S3cE-`WcLE~HY`q9BJ zl$pb{BJn61Cc00kw-mwx4O4uasz_fTLX^d0zsk(J`Y5hM!GZkM;JeR4Rn>Uv8~}^k zz|6B#q>bS(U>lhnYowrcBxl`2-j{Nh(i}e{ap>Bk#f57L3FzE)>2+g@tPzJQByaDD z{a;ar1F%W=1MyI%S2HSRWCmrE+?}AO)lFul6LSa%%53!fsih*(a+>6iy2&^jYh5dp z`Q8+0QuoozTt53TK+nf88Gz`U{4l-?h(doAR!{|EVRD3>#qhfRn|2FX)-GMX*xC6s zNjBZ~j+Xi(Vb6yjyYOn9Nhq)Aow#LClIeIlOHjvC4r;(jcWe&P z^v&VR<1`~nXtU9tqM`C_xJ1JN)*Q4V*>FrHS5>0DrR0&66m1Q6yCm(SBFapB67K`( zPC@0Whj8?`8yX9;&(!*`Wv0sL%Dvgric@#f09ZbHH!~^jP50CfWzkrddzuphH{P8Q z-7QrC0xZk4{~0j1aI>uM!0y|(k2u~aBp@(7(iLvx+)r#$Do56b^Cq}d6_ZD}wcswp zez+KErIjDA8+-)Zhn4m#>Sao|(CZ11n zJ~3Ea>1a)ul$4j<>;Z}q1WIq%o*P17VFis}zL)|2*2|YK;c)oRes__TzHC$9+}E#F z5)uBfS$gpVyX=JHTvB~Cy-h7k;|pHqZguU|38QxXys zd=VVHy;`!sqZ17^s}2NE$^?y*1WN;m$+r@5du1~DoO&PtDc3XGfx@e|%qn#vaXQP} zlDAG|kLD>_?xiO84`d#nnYAT-Z#kWiAZDQL$p}k;H`=Y2u{$&i=-P@nN6-FO=4wivg#t@6>i>^C*wtg<+vz| zq@rj2uCDIRBPqEu*^=BQX5Yp)vwchGPM*V5E5L3Vx3F$gsS$O80&nl@IIa*yK4(wA z)Zkl)l(8F`vH5Ju>hH;%J;#jMofOCv$)M4dEC*kk^wDV0iT3t)S!SJm%5V;LpW>yZ@?F+{?ZHdpHRVqU` zuItSd)sYz2yK`~SPebGJaW!v-QeCv`~m%TL<`e}jGVHZPhAy7ZFnwv*f zRyM~`coJz~fTybuS5v<%b5RaopPellrCm+0$6p%&@u-*}f;*b!6qjy74p;A!!;F&) zgt2-dPxU~KsPOP=+5_>f@TrB^r>1B3DfQtTR~$QYY`AIGU<|CIV^b66(Jv>)8}E^t zwe;LeUi+o_;ZqD3aCM2n0X%xM9`bwB>Z>ZGmzSq-TpPK!~ZjtBa*^4p1VYoGcnG27Q#Ni0#)za_lgLet~ zz&RpV=GnZSa_Qx>-GHVFh}+n~IC*4U?!Y!zzYg8^(Vsq%w z=10d&z$r{+@Av`$`#d0xdyci=;wJ#E`g;JcynX@$!9&q|3|r7z0v{LvxFt+86__lN zj)YF>f$W*>lGL-q<867Re_rgxOF-SW8ca<`_fsE`_quzjA~fXK3??NsjJcydprlCX z*$bwnKkNqJTBD=UZP9M2uf#gX3wfm6B1?LaHG7AvtAM~DfPA->oC!}v9gPvnB954=M;uKxymWR|- z<)D;<;;%zzJ-mx&8W5su2cC4?jBuVYICI?Y;#6%zb8D@3|A~`}I`Dm8>{QK!hcspO zkV~Is5+&H`FM9I&-VXC2{!&&{|13iYcvk{iP(PMj{<;uol3S7o6C`_QXgQlsQwFNI zw8IBVHoS_ozjr9HJ27f{vR^hRe7Mksx90Ea-n^ov?Y7NA*HMNHPI;6QDoxf+y1eM( zK<%SpndqZ?X%mPLFj#U~zUKLG(6(1hbw7@B$xx?AL7%&9g4@wQ236;Y6#v^3$Hl4N zC8bmV&)3;7$&Svqp+f5P`3n`JODW<-rO8KA*`acA3?6TCEOJQSF7al3h#%gc-yh<_ zdrS02}h%3{MsSWfDM@4qydxRX{h zuP}dTXZ%@2^vEw?0H^~6e}}F#gIc6sJAdz20uIe#%5kO@FLg9Hte5)m)R`eFmT8nk zdQhBl6$LN&YG-|lPBi4tXz&I3KdOsZ5RN85(L?F@hVIVJ{2Zr$RhU zqKlP6_jI|w-D5+5$NQ61)Z*`{oih{OF9vSZ?3nxq64Kw;ugL5Ug0P(e6_#AaGmBRw z!|Y-1eQ)=Rer;CQiIK7zlIME2o90PXfjB=|dW1Pm1q06lenfiR53+F`h-L|@3eQmM zuAYk>hG7rdG`TRCClra(B*JNBx<~|9*&y}IcA4TrcK+e!2dto7YmZu2PfRP_O)Uuw z#$oTv{5$Ltd`ut@P4cx1PWDR(ZM|C$S{_K!QrQLpX;C*9M;|#NjJqk_yg`vXt$rz& zt>}25ub3YPO>$6Nsq3aX)=*U}Ksif-g_f3z*3jeZG5x$V;!4L2Tdv{Xqo5k>9_V&D zkj1t0BYI^;t-`d*pW~q;{WERh*WJ%k#S^bw_T#0Yq7ftpA@2lfX55g<2oqw4^^6&B9_VZP^oGsEw%8E-1dIbGUu8=amc&o~{BRqbNj(W({kLp$n|^mdWC`{SJr{QD6ggx?YaLioL5exH}$>f*Py{C!#czAJx2 zh2Kc&{{c|Me7YS4fDLjdN8o?>Q1AHi$>b0Rm>c+mX6GMLQ|an3XRYo-?0Pz`s_9<- Ipn`b(Z?!gEO#lD@ literal 0 HcmV?d00001 diff --git a/public/codesys/device.png b/public/codesys/device.png new file mode 100644 index 0000000000000000000000000000000000000000..ca1f45752f6e425dc63674007d85cb3f9cb0d0b5 GIT binary patch literal 45704 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 Aga7~l literal 0 HcmV?d00001 diff --git a/public/codesys/screen-phone-dark.png b/public/codesys/screen-phone-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..20c6731c51cc88ec36d6c6f05bada31a98d4079f GIT binary patch literal 104332 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

73=(I`X%DPX5C3a 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

vp43e$4d@4tuzLkynJ~7 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 YtR2zT^k?!D_z#MdxctX*(a+!h56HIpo&W#< literal 0 HcmV?d00001 diff --git a/public/codesys/screen.png b/public/codesys/screen.png new file mode 100644 index 0000000000000000000000000000000000000000..4d9df8606fe2fb9790e5827ae760f050e775b76e GIT binary patch literal 122109 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®Qd8V-nD$)C< zgOb1kdZE8WE=ALs`A9o+rSRLIi5N>nm^MhR`%~lxP}5wYhGX>hctavfJhnnet&(|g z=YGW4(D0nCUYlq7P!4WG;Q?WKc^r=8hr?4tQb`runaasfvVs$sIs{g@-|kRZ$}Fbu zdCg`s*N*ZDE?_=0@^Cr2nN510Ke9P@ps zbCJ1}nL_7rIt{{B0{<-z??Ca&*8<-1BIFos)sj-?r`)+VY^+7NL%WR3g-kMucy9Sa zb9w8maNfV;xG3%N=7mn%7833ImUJPLVpC?UA=scHri;lD5&^YTLyuQmcu1}56z$~i zM45J#+*$;trBW1n>Qh~dDk6XWhy#9?=kw%oe7GDJ@}dG>7hlTPB2-k8Ne&A@M#gotTq%2Fl2-KXYoKQI!ce9|j?&xB zMFQ=SX9G@B^vyY#YQmEc_;!nj}Tfeahn$>IZD-(!kT{l1%i`5 zA~g8DmuVzsAQAbxOthgIeIIB*AnDFm!^zMG%fqAnEpz!m_R@E~!<$C>9+qI zYkA$pHxsIhl-A2r#v#0eLwf41>U8bi;Fswti?RF)2pMQ(OU^XG) zG9#)7Fzn~DVb}VE8W~pbmf_i9PZ2R5M!cmeqaTRX$5au#$ z0bWKKx8JCasAdB)QLWBVt*+SqX>kD#?VEIE#EPOK7SP||Ec=rlXU&q~BNQR;1dlqhgzYII7gD2x!&m@zcex;_6Q~>Xc43+^xi#V|Br$!nPdV!Wd zgIf`b{&Y;ab(1uu2YYx z*NwZ|#@*eW;O@S;ohQlrez#8DI(2{Cx~G3p>|Wiyq-W1L)|g`^5)h8t=y_)9sjC;~ zD{54@*)c0M(bF1*zn(6dMn&BG8ko<+ulJc(s3lX4DH^Op$obFuR5IUyuB3r>xWtst>jv;O@`c(K84x(9Ol z0eC*wPEx20_MOXntpzuWI({*7uDrAd&r~t+_>8WFXLKBtA>8;6RM_DL3nhh0v}S^@ z0`t#$PR*3)V3YxJ(rYDT_P6r(-h{eiDK+IkMKyTPxD@+_w}h@w&IMpUuv5SH9I;;v zi;<)&DhUey=rVt=G|^yu$g!13QhjV8s5zZ4!c6mzR;^pI?U;xL84%-jWJ+^K!`*B~ zVlU+QP>Ct8%QTQPGB$69Z*5s+)0CgUz#DDN~^204kQ&VKL@5HdX=bD&A$6^ z@QGa&59We}PrP2(r>amHa)}q~8?+g;p^~q){sYHCUw^$G;Hj58Gxwd~IlqiGCJII$ z0caYM71U4hw0pB<^r=N&(zwJ1z2y-tzf#XCHGq@H?^s16w= z{w=wd*(O~G#wLtu6Z2K?rP;Ti-L}gSw!=CZ4Gm^8L7x}F?S3(I?4hpb5)Y2wI$jRe z86HsfYc^4TwM~q9+XM?A%F{hf!CP5*Lq!%-9+de)z}=)W9ux3TSj23n;UR+RePWWyeK|c*RqobWtM1`9 z2uw=KUT*x$Zx-vHaia%k5q~}JhzC0z6nGUPgHd(Ol&H@nqeG+oLI`+AI(xr7@XhC< zXxkye>T{j#>gzWQPxe)-GD)KoCq1cs$6JtP`6?-$hW&N<~-5|CSaf4myuqybFJ} z2)5b(Icr|@K1+&qBk>4oWkBQ|E9xWpn@R^Qv)FgAjI;M_Ljc@l8aiS= zcy!4muAGNYd-iM#htEh_rdHZgnr`}S1XC+A0e;CZP-vyU_QTOF1IRTj7PPRjmYUdXqtoR!G0|&x z5oJxJ@Ra+*ZV?cwiF`8Jm%Nq1WurWGj+oe3r=8u<>fxzyAjavSl_pf4S85biXz#Y0 zP3$dkb7WIB>sVIF?8>1J%IS4AyyR)OgK{gdlH`GEnt*aPja}aFQ5ru=$q$Di|WZmSDsDLs4 zpx_fq0x%m+^W2nVke-$K={kF=LNc!9CIDYsFCv@I%@kDjlatKQSYkv$p%D7W-D14Q zdwO321B3O)xpPL}-FkpF>V&JZ7!*|z^z4%)SGeT-%ZnGCHQIJw5NeN~75bEPzOMmH z=EU6wn}l)n#yYsK76p4Yh-uTXGpu-wK~H4LXDCX!e^UYfJstPya5H+9o0ofN$$i^bGTBF}-hkbA7;EdKSb3h>Pb z;1_wF<9mpO{nTikiM5G=p`rLRkdj0dys|!d+(usfexw2Eikp(RT-=0W15~_NtJI}G ze^)ctXnEDlb*U)6GdIXp$Yf7DWzsY>yRjBrP%A4`H_zFD;NFzuM4>wQVkEu9nx_8R zM9x5nXv#vj=($DEL&7;V{5_ z*EO3v2lMMuMa@jf#Zhp8kOU?$DS7&)MY`PmX420zD1<)bJZDSKC;#hRcyp;fKQtO zwK1A*65>rk!=G-WFIC4n8ngOD*YxlEAEwy%a-qpJTz16|O^f;}DMt_|#f{$HVf~J5 z#ow~1s85!4o3ynSF{oy{ZK0<kRwZY?T2-p@Ko1BE&9&9#p=#KRO!1Z#id#oU3y(0C7Mp)7(=*h4V`_Z$p z&fd;Ii?=b+gBR~}GL@jAgszTz!ph%%r6^qu6n^HEq57nDFG_fzIA;`49ju=Ww!UTO z=4Jw|SI;CYA8aT9cyX5))gU(zRdmv79c@SL{6vM5#!)GVW=R*9yapl$>H=cI*yGL` zyTQRhDhq*vQK%FW4M^UX8#42F=UfKf!_7&hUjhV*>Qa7O(N5PA2F~Zn^7Jvm%8c9R z&@=&1VeQT*1M7RnfxRs;mqQo>8Ug|n%1Kr>L}{d>rWcF>&HSMWaCmm?@V4$7uM>y) zen{%R@6&y=#h{fgq(BofQKCDe#H0K|Q6XunNZd2?9zW+acXhpPe=rN>=KIKpdTFKl z`p0ABL5zga$%8M~FrjV|f020z737V4{VQ3JO-kdo4;spgdAEi*x$auA8BxqxWd4#G3y`lf0urL zd1|5*QE<@G#MAs>reL{2nv_hmeJZKfL=U`JDLIw>MmJadCkOPF@sEcKVu6UMM{9Ra z^5QK7PHa^o@PC^QmD}p(Qc}u&Afe2{NHQuk0hvh*G?IxDAiBBG4!U%mtDv1;0JiFS!q32v525jS)RO}W8mf(iVHyhk z?l$s2<4F125ieK6H+zplA#~F>!KyniYbvVVOq7^3ur0(hUtX+AdED8}7eD0dP!gun zQ0KH|hRY{Y8X2Jz@e1IF9h(%`(Pjw_2N*5TzYDMPmeGIfWJSMso7d)Nu}5XiB>csq z;lq7~;XFt^u}1xx943n6o9F$BOT@nV1N6J=WlW97-A#evXIcwhjje4tV4oe>F}vv= z*~CyUG}xp=Ss+7M=;slEEDAeg9V(b3K$~Jdr&92q(INtkq0ajjg)UHE zEcj}J5~S<^=z{ECXkK1cN70v7mcB$00k-aed#o}KT3sYB6Y+#hvh^{KZg^Ge_XhD% zKR}kxb&lJ&Jj`cWnn27gPRaZvC5LcG4>nOX#`#>5_4ek|IbwLQu5||D`JKJJgBiQ; zOt^lCx1ggO*gGnvnMU<>03R6}9xawZcA_6+J?*wOE&`m2-ApE?3RAXpaq)PZe4gxD z*iJ=kl%y{-*;0zHIPbago3STyu7Qt*;DSwT&wnNZ%e_-&6UCQb<6rm;VGsKqT89y+ zXgZmIq5|my3Sbxlv|Rkwg39LkqT8(y+gN7A5>xW z`{ov7VO2B*wghq={p}hSO{*f5-G~TEz?$YAx(hMejS5@`)Wlr5j$zRS?01*D)p}=_ zqzL&ROVBQF9$Efk0oo0E!O{$wkrCi$W;L=0)JPH>9(_LYos7zRXoM57d6G{b6CbD{ zgdki9{`NExyRmS@ZeQS0l-uIPE{e8IBo!W@jY z6~Orby;y~L^>T2rOlexgG;Qu1X}IirK!R@O^2c^pF&lb=R$~V*n2t2rqCdgyTXo_8|lIt+^HzNgETbsrH zLm&tF@o6$tq4GW*{!ZQ!zrce$rh+Bf@lAB~JEPBcsI<0iQ&UYe;Y`I(MXJB)<3a}2 z@BhU`1H0r~W5BPuadfEk3d>|maz{Y=WCTskg7qC*jcz<2sX16#p$<~Z=$3nu$}w+g zDN_X`a+4TC>fdeEw|k&Byj-D57SE`>!0bZoU3|4d#i;lB?Lp#w2hFE7eG{eMa)SNvHfYHf`mukW{_JFKBd2RG)0h*>yn6tiRJk6{Hx_QoKwy1 zFE*8qd94V9PHPw&AayNprN0v62(+?_U?<6BDg6id`PUJxl&%Rf&-KTo7eR3F^-lf3 z79ha!+yLIp>0SLF$`&ieldvuMTH9m;rO{-8cvC!NCamj4gx~Gu+h4AH<#ld<^Q}WH z;7gQOu+@9s4C2n;Kf;;AKP4K@VJZFYdLKYTb_A>C_|w!J^(oOt21{8iJ26F% zG=GRts0T!IB7fOnF#yd?M-m=2ewhlQMpIvhpoh*|3Bba69~@R3QRl3F z--*8nlR5XfuZ8DWm(*)_A$vPofDnhZjROtdJ{-5>Cd;UBgTqVAh!r$Nj zA2dS$CsXo&f5-n<@}vL9TskFgGOkft&o=JuLEu~3hz+9;>Te7rRk)r>(-|p}LA)Si z9Xfi4ZCQSWE`ao!8@@u%21;0YHCtT}kca^&aAG2N>Zkj_P!awv&C3a4PoeKb3?X&& z;wVObQz)8@kTSGT5P?R826;~io*~6^CjCx~aB6xj97ma`&7s0w?4F->H$W6@%aa%8 zl@b=FMu&^6o4^m}YYs?}dP&D5Qc4Z>OpU(Uku)Xz&nv(NvIg#xOy}knCP*l$Y3*F` zs*oZ5xs=}b&MD2;gjDqnk*IbP);SaGCedWEwB=`~(I}7zuZb3|J{?i)yol!_n8XoY zZ)&^%mNUM(bDf}96NnUZwdt450gha=$=53{yB2VGxr-|=@-5Os*RZRXeD%T#_HfYZ zsrKDwg8K#;d-{f$S;v@}MvO{c0HjV@GFo<4vUz^peA-dH-`9a-&8>e*)K-ex7SNA! zC0pe|D|w?3CnRnGJAU2YFJF6I5!6347~A`k4Yvz3S@pyiEoeuaoD<-ZqxdT7s{SSC znoCwa`&7FvY8&S$!v57w30;S zCOlY0`CTF&V9hcAUUX^bBOGM_Z(ukrVN^C-d(d16Pq2-&bvvGVL-^Mt9FY9Bdh+ufc&h0KqB1@GD~=A9xqWc{A2zG2my;BqS)yBl zX3u_Z;=RTf$BzQqxUBsiih9pIWo&a{%Y)r~RGXhhDiUX*7<_kKOAUhq)?4MAp4J@# zi7LA

@@ -24,7 +26,7 @@ const install: Record = { iot: '/iot/install/', edge: '/edge/ins

{l.label} line

- {l.id === 'cascade' && cascade.prerelease ? 'Pre-release ' : 'Version '}{l.version} + {l.unreleased ? Not released yet : {l.id === 'cascade' && cascade.prerelease ? 'Pre-release ' : 'Version '}{l.version}}

{l.note}

@@ -70,5 +72,6 @@ const install: Record = { iot: '/iot/install/', edge: '/edge/ins font-size: var(--hl-fs-2xs); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--hl-ink-soft); } .chip::before { content: ''; width: 0.5em; height: 0.5em; border-radius: 50%; background: currentColor; } + .chip.warn { color: var(--hl-warn-text); background: var(--hl-warn-tint); border-color: color-mix(in srgb, var(--hl-warn) 35%, transparent); } .chip.ok { color: var(--hl-ok-text); background: var(--hl-ok-tint); border-color: color-mix(in srgb, var(--hl-ok) 35%, transparent); } diff --git a/src/components/SiteFooter.astro b/src/components/SiteFooter.astro index b8b43fa..82cabd7 100644 --- a/src/components/SiteFooter.astro +++ b/src/components/SiteFooter.astro @@ -35,6 +35,7 @@ const hasTerms = existsSync(new URL('../content/docs/terms.md', import.meta.url) HotLoop roadmap Flow roadmap Cascade roadmap + HotLoop for CODESYS roadmap {hasLicense && License} {hasTerms && Terms} diff --git a/src/content/docs/codesys/install.md b/src/content/docs/codesys/install.md new file mode 100644 index 0000000..9298dc1 --- /dev/null +++ b/src/content/docs/codesys/install.md @@ -0,0 +1,61 @@ +--- +# generated by scripts/sync-docs.mjs +title: "Install HotLoop for CODESYS" +description: "Install HotLoop for CODESYS from the EmberCORE App Store or with Helm: what the node needs, the profile Secret, what it does by itself, and how to check it." +sidebar: + label: "Install" +editUrl: false +--- + +:::caution[Not released yet] +HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart and the provisioner image are not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. +::: + +HotLoop for CODESYS is a Helm chart, `hotloop-codesys`, that installs HotLoop Edge and a provisioner on the same node as a CODESYS runtime. On EmberNet it is an App Store app. With no EmberNet it is Helm on k3s. + +## What the node needs first + +- **A CODESYS runtime on the same node that publishes its OPC UA server on port 4840.** The provisioner finds the node's own address from Kubernetes and reads `:4840`. The runtime's own chart publishes that port on the host. +- **A Symbol Configuration in the PLC program** with *Support OPC UA features* on, listing the variables you want to see, or `{attribute 'symbol' := 'read'}` on them in the declaration. A PLC with no Symbol Configuration answers the setup with a message that says to add one. This is the only change to the PLC project. +- **HotLoop 4.19.0**, which is where the CODESYS connector is. The chart depends on the `hotloop-edge` chart on the `~4.19.0` line. +- **A profile.** One Secret with one key. [The profile page](/codesys/profile/) has the shape. + +## From the EmberCORE App Store + +The chart is marked for staff, so the Store lists it for EmberNet staff, and they install it onto the customer's tenant. The Store writes the profile into the tenant's namespace as `-profile`, passes the node picked and the tenant's labels into the chart, and passes the dashboard's public key for sign-in. After that there is nothing to do. + +## With Helm + +```bash +kubectl -n create secret generic -profile --from-file=profile.json +helm repo add hotloop-codesys https://hotloop.io/hotloop-codesys/ +helm repo update +helm install hotloop-codesys/hotloop-codesys -n +``` + +Name the Secret `-profile`, or change what the chart looks for with `profile.existingSecret` (the Secret) and `profile.key` (the key, `profile.json` by default). To pin the install to the runtime's node, set `nodeSelector`. For HotLoop alone with no profile, to set up by hand, install with `--set provisioner.enabled=false`. + +## What installing does + +1. HotLoop Edge starts on that node with SQLite on the node's local-path storage. No database pod, one replica, and the update strategy is `Recreate`. +2. The provisioner starts on the same node. It reads the mounted profile at every pass, so a newer one reaches a running install. It waits for HotLoop and for the node's own CODESYS runtime, then sets up the profile's device, variables, alarms, and screen. +3. It looks again every five minutes and keeps the device right as the PLC's program changes. Variables a profile lists that the PLC now has are added, and one the PLC no longer has reads bad with the server's reason. +4. Both pods tolerate `node.kubernetes.io/unreachable` and `not-ready` with no `tolerationSeconds`, so a node that loses its control plane keeps them. The chart carries this itself and does not depend on the cluster's setting. + +The OPC UA server, the embedded broker, edge publishing, and backups are off, because none of them is wanted beside a runtime. Turn one on through the `hotloop-edge` values if you want it. + +## Check it + +```bash +kubectl -n logs deploy/-provision +``` + +A good start says the device was set up with its variables, none writable, and that the alarms and the screen were made. Open the HotLoop service, sign in as `admin`, and look at Devices and Dashboards. The admin password is in the release Secret, the same as any HotLoop chart. + +## Sign-in from the dashboard + +From HotLoop 4.19 the Edge chart signs a person in from the EmberCORE dashboard's signed assertion (the `embernetSignin` values, four `HOTLOOP_AUTH_ASSERTION_*` variables, and the Service annotation `embernet.ai/signin: assertion`). This chart inherits all of that from the `hotloop-edge` subchart, and the Store passes the public key into it. The provisioner uses the chart's admin account, which local login still allows. In a lab cluster a good assertion signed a person in as an operator or an admin, and a wrong app, a wrong tenant, an expired one, a wrong issuer, and a tampered one were each refused. + +## What isn't proven + +The status page has the list, and the short version is: nobody has installed this from the real Store page, on a physical controller, or on k3s v1.35.7. [Where it stands](/codesys/where-it-stands/). diff --git a/src/content/docs/codesys/overview.md b/src/content/docs/codesys/overview.md new file mode 100644 index 0000000..eb39115 --- /dev/null +++ b/src/content/docs/codesys/overview.md @@ -0,0 +1,50 @@ +--- +# generated by scripts/sync-docs.mjs +title: "HotLoop for CODESYS" +description: "HotLoop beside a CODESYS runtime: the screens and alarms for a CODESYS PLC, read through the runtime's own OPC UA server, with nothing installed in CODESYS." +sidebar: + label: "Overview" +editUrl: false +--- + +:::caution[Not released yet] +HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart and the provisioner image are not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. +::: + +HotLoop for CODESYS is HotLoop running on the same node as a CODESYS runtime. It reads the PLC's variables through the runtime's own OPC UA server, puts them on screens that work on a panel PC, a phone, or a wall, raises alarms on them, and keeps the history. Nothing is installed in CODESYS and nothing writes to the PLC. What that buys you: the operators get a screen without a download to the PLC, and the PLC gets a second set of eyes that doesn't depend on anything else on the node. + +It is the seventh HotLoop product, and its own release line. Under it is HotLoop Edge, so everything on the [Edge pages](/edge/overview/) is true here too. + +![The Line 2 screen: four value cards, a gauge, a fifteen minute trend, and an alarm list](/codesys/screen.png) +![The same, in dark](/codesys/screen-dark.png) + +That is a real run: HotLoop's default interface, from a HotLoop Edge build of main, reading a CODESYS Control for Linux SL 4.22.0.0 runtime in a container. The PLC program is HotLoop's own lab program, so the numbers are the lab's. The labels (Line 2, Mixer temperature, Riverside Bottling) are made up and put there by the [profile](/codesys/profile/). + +## The three parts + +| Part | What it is | Where it lives | +|---|---|---| +| The chart, `hotloop-codesys` | A wrapper around `hotloop-edge` with defaults for a runtime on a node: SQLite, one replica, and the parts you don't need beside a PLC switched off. Every HotLoop chart fix reaches it. | `https://hotloop.io/hotloop-codesys/` | +| The provisioner | One static Go binary that applies a profile to HotLoop and keeps it right. It holds no profile. | `ghcr.io/hotloop-io/hotloop-provision` | +| A profile | One JSON file: the device, the variables to keep, the alarms, and one screen. The one input you give. | A Secret in the install's namespace, [described here](/codesys/profile/) | + +## How it reads the PLC + +CODESYS documents one way for a third party to read a controller's variables, and it is the runtime's own OPC UA server. The PLC publishes what you want seen with a Symbol Configuration in the IDE, and HotLoop reads those variables by the names the programmer gave them, like `Application.GVL_Line.rTemp`, not by a node id. The Symbol Configuration is the only change to the PLC project. The CODESYS Gateway's channel protocol is not documented for third parties, and this does not speak it. + +The reading is HotLoop core's CODESYS connector, which is the OPC UA driver plus what a CODESYS PLC needs on top: discovery of what the application exports, the types it has, arrays and structures walked into one point per field, a reconnect with no hands after a restart or a download, and every request cut to the limits the runtime publishes. The [protocols page](/iot/protocols/) carries the connector's reference from HotLoop 4.19.0 on, and it says what it was verified against and what it was not. + +## What it does by itself + +Once HotLoop and the node's own runtime both answer, the provisioner sets up the profile's device, its variables, its alarms, and its screen. Then it looks again every five minutes. A variable of the profile that the PLC has gained since is added. One the PLC no longer has reads bad with the server's reason. The screen and the alarms are made when missing and replaced only when the profile's `revision` is higher than the one that made them, so a change a person made survives until a newer profile is shipped on purpose. + +## What it won't do + +- **It won't write to your PLC.** Every tag the provisioner sets up is read-only, and the profile marks none writable. A person can arm a tag later, and then the [write gate](/gateway/write-gate/) and the PLC's own symbol rights both get a say. +- **It won't put anything in the runtime.** No library, no task, no agent. +- **It won't need a database pod.** SQLite on the node's own storage, one replica. +- **It won't lose its screens to a bad link, in theory.** Both pods tolerate an unreachable or not-ready node with no time limit. The tolerations are in the chart, and the link was never cut on a real node, so [the status page](/codesys/where-it-stands/) lists that as not shown. + +## Where to go next + +[Install it](/codesys/install/), read what a [profile](/codesys/profile/) holds, or see [where it stands](/codesys/where-it-stands/) and the [roadmap](/codesys/roadmap/). diff --git a/src/content/docs/codesys/profile.md b/src/content/docs/codesys/profile.md new file mode 100644 index 0000000..529b0a0 --- /dev/null +++ b/src/content/docs/codesys/profile.md @@ -0,0 +1,63 @@ +--- +# generated by scripts/sync-docs.mjs +title: "The profile" +description: "The one input to HotLoop for CODESYS: a JSON file with a revision, the device and its variables, the alarms, and one screen, and how the provisioner applies it." +sidebar: + label: "The profile" +editUrl: false +--- + +:::caution[Not released yet] +HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart and the provisioner image are not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. +::: + +A profile is one JSON file in a Secret in the install's namespace, under the key `profile.json`. It is not in the chart or in the provisioner image, so both are generic and public, and nothing in either names anyone's variables. Whoever installs the app gives it. On EmberNet the Store writes it as `-profile`. + +The provisioner reads it again at every pass, so a newer profile reaches a running install without a restart. + +## The shape + +| Key | What it holds | +|---|---| +| `revision` | A whole number from 1. The screen and the alarms are replaced only when this is higher than the revision that made them. | +| `device` | `id`, `name`, `options` (the connector's options, such as `browseRoot`, `arrayElements`, and `browseMaxNodes`), and `points`, the variable names HotLoop keeps from the PLC. | +| `alarms` | HotLoop alarm definitions, each with an `id`. | +| `dashboard` | One HotLoop screen, with an `id`. A [dashboard](/iot/dashboards/) is a list of cards. | + +One profile makes one device and one screen. + +## An example + +This is the profile behind the screenshots on the [overview](/codesys/overview/), against HotLoop's lab program. `GVL_Demo` is the lab program's variable list, and the labels are made up. + +```json +{ + "revision": 2, + "device": { + "id": "line-2", + "name": "Line 2 PLC", + "options": {"browseRoot": "Application.GVL_Demo", "arrayElements": 4, "browseMaxNodes": 500}, + "points": ["GVL_Demo.bRun", "GVL_Demo.rTemp", "GVL_Demo.udiCycles", "GVL_Demo.nEcho", "GVL_Demo.rEcho", "GVL_Demo.rReadOnly"] + }, + "alarms": [ + {"id": "line-2-mixer-hot", "name": "Mixer temperature high", "tagName": "GVL_Demo.rTemp", "condition": "hi", "limit": 20, "deadband": 0.5, "priority": 2, "message": "{device}/{tag} at {value}, limit {limit}"} + ], + "dashboard": { + "id": "line-2-screen", "name": "Line 2", "description": "The Line 2 screen.", "kind": "cards", "roles": [], "homeFor": [], "screens": [], + "cards": [ + {"id": "t", "type": "value", "title": "Mixer temperature", "w": 3, "h": 2, "config": {"tag": "line-2/GVL_Demo.rTemp", "decimals": 1}}, + {"id": "tr", "type": "trend", "title": "Mixer temperature, last 15 minutes", "w": 6, "h": 3, "config": {"tags": ["line-2/GVL_Demo.rTemp"], "minutes": 15}}, + {"id": "al", "type": "alarms", "title": "Line 2 alarms", "w": 6, "h": 3, "config": {"outstanding": true, "limit": 8}} + ] + } +} +``` + +A card's `tag` is the device id, a slash, and the point's name. The card types, the alarm conditions, and the rest of a screen's keys are the same as in HotLoop's [dashboards](/iot/dashboards/) and [the HTTP API](/iot/api/). + +## What the provisioner does with it + +- **It makes the device** if there isn't one, and adds any variable of `points` that the PLC has and the device does not. +- **It never writes to the PLC.** Every tag it makes is read-only, and a profile has no way to mark one writable. +- **It makes the alarms and the screen** when they are missing, and replaces them only when `revision` is higher than the one that made them. A change a person made to the screen in HotLoop therefore survives until a newer profile ships on purpose. +- **It keeps looking.** Every five minutes, and sooner after a pass that could not finish, because the runtime or HotLoop was not answering yet. diff --git a/src/content/docs/codesys/roadmap.md b/src/content/docs/codesys/roadmap.md new file mode 100644 index 0000000..c51675e --- /dev/null +++ b/src/content/docs/codesys/roadmap.md @@ -0,0 +1,41 @@ +--- +# generated by scripts/sync-docs.mjs +title: "HotLoop for CODESYS roadmap" +description: "What HotLoop for CODESYS has built and what is left to prove before and after the first release." +sidebar: + label: "Roadmap" +editUrl: false +--- + +:::caution[Not released yet] +HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart and the provisioner image are not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. +::: + +This is the list of what is done and what is left, in the order it gets done. It promises nothing that isn't in the code or in a test plan, and it is mostly [the not-proven list](/codesys/where-it-stands/) turned into work. + +## Built + +- [x] A chart around HotLoop Edge with defaults for a runtime on a node: SQLite, one replica, tolerations that keep both pods through a lost control plane. +- [x] A provisioner that applies a profile and keeps it right, with a revision that protects what a person changed. +- [x] The device, tags, alarm, and screen made with no hand step, against a CODESYS Control for Linux SL 4.22.0.0 runtime in a container. +- [x] Recovery from a runtime restart with no hands, about 88 seconds in the lab. +- [x] A signed sign-in from the EmberCORE dashboard, with the refusals. + +## To ship the first version + +- [ ] HotLoop 4.19.0 released. +- [ ] The chart published at `https://hotloop.io/hotloop-codesys/`. +- [ ] The provisioner image public, so it pulls with no login. +- [ ] Release notes for the first version. + +## To prove + +- [ ] An install from the real App Store page, as staff do it. +- [ ] A physical controller. +- [ ] k3s v1.35.7. +- [ ] A node that really loses its link to the control plane, with the pods kept. +- [ ] A download from the CODESYS IDE while the runtime stays up. +- [ ] A runtime on the host's own network beside the HotLoop pod on one node. +- [ ] A runtime with user management on, and a certificate-secured OPC UA endpoint. + +Nothing past this list is decided yet. When it is, it goes here with the same marks: built, or not built. diff --git a/src/content/docs/codesys/where-it-stands.md b/src/content/docs/codesys/where-it-stands.md new file mode 100644 index 0000000..237e85e --- /dev/null +++ b/src/content/docs/codesys/where-it-stands.md @@ -0,0 +1,49 @@ +--- +# generated by scripts/sync-docs.mjs +title: "Where HotLoop for CODESYS stands" +description: "What HotLoop for CODESYS has been run against, what it has not, and what has to ship before you can install it." +sidebar: + label: "Where it stands" +editUrl: false +--- + +:::caution[Not released yet] +HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart and the provisioner image are not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. +::: + +A doc that rounds up is how somebody finds out at commissioning, so this page is the whole list. + +## What is true today + +HotLoop for CODESYS is built and has been run against a real runtime in the lab. It is not published. To install it, four things have to ship, and none of them has: + +- **HotLoop 4.19.0.** The CODESYS connector is in HotLoop core's main branch for that release, and the chart depends on the `hotloop-edge` chart on the `~4.19.0` line. +- **The chart.** `https://hotloop.io/hotloop-codesys/` answers and lists no chart yet. +- **The provisioner image.** `ghcr.io/hotloop-io/hotloop-provision` does not pull without a login yet. +- **The release itself:** the notes, and the version. The first version is [0.3.0](/releases/codesys-0-3-0/). + +## What was run + +In the lab, the chart on a k3s v1.36 node with Store-shaped values, a real CODESYS Control for Linux SL 4.22.0.0 runtime on the same node running HotLoop's own lab program (built with the CODESYS ScriptEngine), and a HotLoop Edge image built from HotLoop's main branch. + +- The device, its tags (none writable), its alarm, and its screen appeared with no hand step. +- Every value read good and moved. +- The pods came back after a pod delete. +- The install read bad with the reason "the PLC's runtime is not answering" through a runtime restart, and came back by itself about 88 seconds after. +- A signed sign-in from the dashboard signed a person in as an operator or an admin, and a wrong app, a wrong tenant, an expired one, a wrong issuer, and a tampered one were each refused. + +The connector under it, HotLoop core's CODESYS driver, is verified live against a CODESYS Control for Linux SL 4.22.0.0 runtime in a container, for reads and writes, and not on a physical controller. Writes are there in the connector, and this product never turns them on. + +## What was not + +- An install from the real App Store page. The Store's code was changed and tested, and no Store has listed the chart, because it is not published. +- A physical controller. The only runtime it has met is a container. +- k3s v1.35.7. The lab is v1.36. +- A node actually losing its link to the control plane. The tolerations are in the pods, and the link was not cut. +- A download from the CODESYS IDE while the runtime stays up. The lab replaces the runtime process. +- A hostNetwork runtime and the HotLoop pod on one node. The lab runtime is a container on the node's own network, reached at the node's address. +- A runtime with user management on, or a certificate-secured OPC UA endpoint. + +## What a profile can't do yet + +One profile makes one device and one screen. There is no way to mark a variable writable from it, on purpose. diff --git a/src/content/docs/index.mdx b/src/content/docs/index.mdx index 9273c66..a3d416c 100644 --- a/src/content/docs/index.mdx +++ b/src/content/docs/index.mdx @@ -1,6 +1,6 @@ --- title: HotLoop documentation -description: "Docs for every HotLoop product: IoT, Edge, Gateway, Edge Relay, Flow, and Cascade, with each claim marked as proven on real equipment or not proven yet." +description: "Docs for every HotLoop product: IoT, Edge, Gateway, Edge Relay, Flow, Cascade, and HotLoop for CODESYS, with each claim marked as proven or not proven yet." template: splash editUrl: false hero: @@ -23,7 +23,7 @@ import LatestReleases from '../../components/LatestReleases.astro'; ## The family -HotLoop is six products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring and Cascade for workflows. They ship on three release lines, so each carries its own version. Each section in the sidebar shows only what that product ships, and a bigger product links back to the pages it carries from a smaller one. +HotLoop is seven products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, and HotLoop for CODESYS for the PLC's own screen. They ship on four release lines, so each carries its own version. Each section in the sidebar shows only what that product ships, and a bigger product links back to the pages it carries from a smaller one. diff --git a/src/content/docs/products.md b/src/content/docs/products.md index 3a83b53..538cd1c 100644 --- a/src/content/docs/products.md +++ b/src/content/docs/products.md @@ -1,7 +1,7 @@ --- # generated by scripts/sync-docs.mjs -title: "HotLoop products: six on three release lines" -description: "Six products on three release lines, what each of the four core products has, which database each runs, how to install them and how to move a site up a product." +title: "HotLoop products: seven on four release lines" +description: "Seven products on four release lines, what each of the four core products has, which database each runs, and how to move a site up a product." editUrl: false --- @@ -9,14 +9,14 @@ editUrl: false This page follows `main` at 8742d79, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: -HotLoop is six products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring and Cascade for workflows. +HotLoop is seven products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, and HotLoop for CODESYS for the PLC's own screen. -They ship on three release lines. **HotLoop core** is IoT, Edge, Gateway, and Edge Relay: four products, one codebase, one tag. Every core release ships all four in lockstep, same version, each with its own image, its own Helm chart and its own +They ship on four release lines. **HotLoop core** is IoT, Edge, Gateway, and Edge Relay: four products, one codebase, one tag. Every core release ships all four in lockstep, same version, each with its own image, its own Helm chart and its own Podman Quadlet units. Pick the one that fits the box. Every product speaks every protocol HotLoop has, so you never step up a product just to read the PLC on your bench. Features split them. Protocols don't. -**Flow** and **Cascade** are their own lines with their own versions, so a Flow release never moves the core, and the other way around. Everything below the table is about the core. Here is where each of the six starts: +**Flow**, **Cascade**, and **HotLoop for CODESYS** are their own lines with their own versions, so a Flow release never moves the core, and the other way around. Everything below the table is about the core. Here is where each of the seven starts: | Product | Release line | Docs | Install | Release notes | Roadmap | |---|---|---|---|---|---| @@ -26,6 +26,7 @@ PLC on your bench. Features split them. Protocols don't. | **HotLoop Edge Relay** | HotLoop core | Docs | Install | Notes | Roadmap | | **HotLoop Flow** | Flow | Docs | Install | Notes | Roadmap | | **HotLoop Cascade** | Cascade | Docs | Install | Notes | Roadmap | +| **HotLoop for CODESYS** | HotLoop for CODESYS | Docs | Install | Notes | Roadmap | The table that follows compares the four core products. diff --git a/src/content/docs/releases/codesys-0-3-0.md b/src/content/docs/releases/codesys-0-3-0.md new file mode 100644 index 0000000..06b3997 --- /dev/null +++ b/src/content/docs/releases/codesys-0-3-0.md @@ -0,0 +1,27 @@ +--- +# generated by scripts/sync-docs.mjs +title: "HotLoop for CODESYS 0.3.0 release notes" +description: "What the first version of HotLoop for CODESYS holds, what it needs, and what it has and has not been run against." +sidebar: + label: "0.3.0" +editUrl: false +--- + +:::caution[Not released yet] +HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart and the provisioner image are not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. +::: + +## What this is + +0.3.0 is the first version of HotLoop for CODESYS: HotLoop Edge beside a CODESYS runtime, set up from a profile with nobody clicking. It needs HotLoop 4.19.0. + +- **A chart that wraps HotLoop Edge** on the 4.19.0 line, with defaults for a runtime on the same node: SQLite on the node's own storage, no database pod, one replica, and the OPC UA server, the broker, edge publishing, and backups off. +- **A provisioner**, one static Go binary, that reads a [profile](/codesys/profile/) (the device, the variables to keep, the alarms, and one screen) and sets all of it up once the PLC's runtime answers. It looks again every five minutes. +- **A PLC that changes is followed.** A variable the profile lists that the PLC has gained since is added. One the PLC lost reads bad with the server's reason. The screen and the alarms are replaced only when the profile's revision is higher. +- **Nothing writes to the PLC.** Every tag the provisioner sets up is read-only. +- **Both pods tolerate an unreachable or not-ready node** with no time limit. +- **Sign-in from the EmberCORE dashboard** comes from the Edge chart's 4.19 sign-in, and this chart inherits it. + +## What isn't proven + +An install from the real App Store page, a physical controller, k3s v1.35.7, a node really losing its link to the control plane, a download from the CODESYS IDE while the runtime stays up, and a runtime on the host's own network beside the HotLoop pod. [Where it stands](/codesys/where-it-stands/) has the whole list and what it was run against. diff --git a/src/content/docs/releases/index.md b/src/content/docs/releases/index.md index 15f1967..7666043 100644 --- a/src/content/docs/releases/index.md +++ b/src/content/docs/releases/index.md @@ -1,11 +1,11 @@ --- # generated by scripts/sync-docs.mjs title: "Release notes" -description: "What shipped in every HotLoop core, HotLoop Flow and HotLoop Cascade release, and what is on main waiting for the next one, newest first." +description: "What shipped in every HotLoop core, HotLoop Flow, HotLoop Cascade and HotLoop for CODESYS release, and what is on main waiting for the next one, newest first." editUrl: false --- -Every release has its own page, written the day it shipped. A note marked "on main, next release" describes a release that is not out yet, so nothing in it is in what you have installed. The latest HotLoop core release is 4.18.11, the latest Flow release is 2.6.0, and the latest Cascade release is 0.1.2. +Every release has its own page, written the day it shipped. A note marked "on main, next release" describes a release that is not out yet, so nothing in it is in what you have installed. The latest HotLoop core release is 4.18.11, the latest Flow release is 2.6.0, and the latest Cascade release is 0.1.2. HotLoop for CODESYS has not been released yet. ## HotLoop core @@ -30,3 +30,7 @@ IoT, Edge, Gateway and Edge Relay release together from one tag, so they share t - [HotLoop Cascade 1.0.0 release notes](/releases/cascade-1-0-0/) (on main, next release) - [HotLoop Cascade 0.1.2 release notes](/releases/cascade-0-1-2/) - [HotLoop Cascade 0.1.1 release notes](/releases/cascade-0-1-1/) + +## HotLoop for CODESYS + +- [HotLoop for CODESYS 0.3.0 release notes](/releases/codesys-0-3-0/) (not released yet) diff --git a/src/content/docs/roadmap.md b/src/content/docs/roadmap.md index dc28d32..57734b6 100644 --- a/src/content/docs/roadmap.md +++ b/src/content/docs/roadmap.md @@ -25,7 +25,7 @@ Every line of it is ours. Nothing is embedded, bridged or forked, so when something breaks at 3 AM there's one codebase to read and nobody else's bug to wait on. -HotLoop is six products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring and Cascade for workflows. This roadmap is for HotLoop core, the four products that come out of one codebase. See [Products](#products). Flow and Cascade keep their own, in the Flow roadmap and the Cascade roadmap. +HotLoop is seven products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, and HotLoop for CODESYS for the PLC's own screen. This roadmap is for HotLoop core, the four products that come out of one codebase. See [Products](#products). Flow, Cascade, and HotLoop for CODESYS keep their own, in the Flow roadmap, the Cascade roadmap, and the HotLoop for CODESYS roadmap. ## Products diff --git a/src/data/sync.json b/src/data/sync.json index 535fb34..8cdd652 100644 --- a/src/data/sync.json +++ b/src/data/sync.json @@ -73,8 +73,20 @@ "name": "HotLoop Cascade", "repo": "cascade", "tagline": "The plant talking to everything else." + }, + { + "id": "codesys", + "name": "HotLoop for CODESYS", + "repo": null, + "tagline": "Screens and alarms for a CODESYS PLC, beside the runtime." } ], + "codesys": { + "released": false, + "version": "0.3.0", + "needsCore": "4.19.0", + "chartRepo": "https://hotloop.io/hotloop-codesys/" + }, "pages": [ { "slug": "iot/entities", @@ -421,7 +433,7 @@ "slug": "products", "product": "shared", "group": "Lineup", - "title": "HotLoop products: six on three release lines", + "title": "HotLoop products: seven on four release lines", "label": null, "status": "changed", "repo": "hotloop", @@ -1003,6 +1015,11 @@ ], "pinned": [ "business.md", + "codesys/install.md", + "codesys/overview.md", + "codesys/profile.md", + "codesys/roadmap.md", + "codesys/where-it-stands.md", "edge/install.md", "edge/overview.md", "edge-relay/install.md", @@ -1013,6 +1030,7 @@ "gateway/upgrading.md", "install/index.md", "iot/install.md", - "iot/overview.md" + "iot/overview.md", + "releases/codesys-0-3-0.md" ] } diff --git a/src/pinned/codesys/install.md b/src/pinned/codesys/install.md new file mode 100644 index 0000000..c91f462 --- /dev/null +++ b/src/pinned/codesys/install.md @@ -0,0 +1,57 @@ +--- +title: "Install HotLoop for CODESYS" +description: "Install HotLoop for CODESYS from the EmberCORE App Store or with Helm: what the node needs, the profile Secret, what it does by itself, and how to check it." +sidebar: + label: "Install" +--- + +{{codesysNotice}} + +HotLoop for CODESYS is a Helm chart, `hotloop-codesys`, that installs HotLoop Edge and a provisioner on the same node as a CODESYS runtime. On EmberNet it is an App Store app. With no EmberNet it is Helm on k3s. + +## What the node needs first + +- **A CODESYS runtime on the same node that publishes its OPC UA server on port 4840.** The provisioner finds the node's own address from Kubernetes and reads `:4840`. The runtime's own chart publishes that port on the host. +- **A Symbol Configuration in the PLC program** with *Support OPC UA features* on, listing the variables you want to see, or `{attribute 'symbol' := 'read'}` on them in the declaration. A PLC with no Symbol Configuration answers the setup with a message that says to add one. This is the only change to the PLC project. +- **HotLoop {{codesysNeeds}}**, which is where the CODESYS connector is. The chart depends on the `hotloop-edge` chart on the `~{{codesysNeeds}}` line. +- **A profile.** One Secret with one key. [The profile page](/codesys/profile/) has the shape. + +## From the EmberCORE App Store + +The chart is marked for staff, so the Store lists it for EmberNet staff, and they install it onto the customer's tenant. The Store writes the profile into the tenant's namespace as `-profile`, passes the node picked and the tenant's labels into the chart, and passes the dashboard's public key for sign-in. After that there is nothing to do. + +## With Helm + +```bash +kubectl -n create secret generic -profile --from-file=profile.json +helm repo add hotloop-codesys {{codesysChartRepo}} +helm repo update +helm install hotloop-codesys/hotloop-codesys -n +``` + +Name the Secret `-profile`, or change what the chart looks for with `profile.existingSecret` (the Secret) and `profile.key` (the key, `profile.json` by default). To pin the install to the runtime's node, set `nodeSelector`. For HotLoop alone with no profile, to set up by hand, install with `--set provisioner.enabled=false`. + +## What installing does + +1. HotLoop Edge starts on that node with SQLite on the node's local-path storage. No database pod, one replica, and the update strategy is `Recreate`. +2. The provisioner starts on the same node. It reads the mounted profile at every pass, so a newer one reaches a running install. It waits for HotLoop and for the node's own CODESYS runtime, then sets up the profile's device, variables, alarms, and screen. +3. It looks again every five minutes and keeps the device right as the PLC's program changes. Variables a profile lists that the PLC now has are added, and one the PLC no longer has reads bad with the server's reason. +4. Both pods tolerate `node.kubernetes.io/unreachable` and `not-ready` with no `tolerationSeconds`, so a node that loses its control plane keeps them. The chart carries this itself and does not depend on the cluster's setting. + +The OPC UA server, the embedded broker, edge publishing, and backups are off, because none of them is wanted beside a runtime. Turn one on through the `hotloop-edge` values if you want it. + +## Check it + +```bash +kubectl -n logs deploy/-provision +``` + +A good start says the device was set up with its variables, none writable, and that the alarms and the screen were made. Open the HotLoop service, sign in as `admin`, and look at Devices and Dashboards. The admin password is in the release Secret, the same as any HotLoop chart. + +## Sign-in from the dashboard + +From HotLoop 4.19 the Edge chart signs a person in from the EmberCORE dashboard's signed assertion (the `embernetSignin` values, four `HOTLOOP_AUTH_ASSERTION_*` variables, and the Service annotation `embernet.ai/signin: assertion`). This chart inherits all of that from the `hotloop-edge` subchart, and the Store passes the public key into it. The provisioner uses the chart's admin account, which local login still allows. In a lab cluster a good assertion signed a person in as an operator or an admin, and a wrong app, a wrong tenant, an expired one, a wrong issuer, and a tampered one were each refused. + +## What isn't proven + +The status page has the list, and the short version is: nobody has installed this from the real Store page, on a physical controller, or on k3s v1.35.7. [Where it stands](/codesys/where-it-stands/). diff --git a/src/pinned/codesys/overview.md b/src/pinned/codesys/overview.md new file mode 100644 index 0000000..3e08bcf --- /dev/null +++ b/src/pinned/codesys/overview.md @@ -0,0 +1,46 @@ +--- +title: "HotLoop for CODESYS" +description: "HotLoop beside a CODESYS runtime: the screens and alarms for a CODESYS PLC, read through the runtime's own OPC UA server, with nothing installed in CODESYS." +sidebar: + label: "Overview" +--- + +{{codesysNotice}} + +HotLoop for CODESYS is HotLoop running on the same node as a CODESYS runtime. It reads the PLC's variables through the runtime's own OPC UA server, puts them on screens that work on a panel PC, a phone, or a wall, raises alarms on them, and keeps the history. Nothing is installed in CODESYS and nothing writes to the PLC. What that buys you: the operators get a screen without a download to the PLC, and the PLC gets a second set of eyes that doesn't depend on anything else on the node. + +It is the seventh HotLoop product, and its own release line. Under it is HotLoop Edge, so everything on the [Edge pages](/edge/overview/) is true here too. + +![The Line 2 screen: four value cards, a gauge, a fifteen minute trend, and an alarm list](/codesys/screen.png) +![The same, in dark](/codesys/screen-dark.png) + +That is a real run: HotLoop's default interface, from a HotLoop Edge build of main, reading a CODESYS Control for Linux SL 4.22.0.0 runtime in a container. The PLC program is HotLoop's own lab program, so the numbers are the lab's. The labels (Line 2, Mixer temperature, Riverside Bottling) are made up and put there by the [profile](/codesys/profile/). + +## The three parts + +| Part | What it is | Where it lives | +|---|---|---| +| The chart, `hotloop-codesys` | A wrapper around `hotloop-edge` with defaults for a runtime on a node: SQLite, one replica, and the parts you don't need beside a PLC switched off. Every HotLoop chart fix reaches it. | `{{codesysChartRepo}}` | +| The provisioner | One static Go binary that applies a profile to HotLoop and keeps it right. It holds no profile. | `ghcr.io/hotloop-io/hotloop-provision` | +| A profile | One JSON file: the device, the variables to keep, the alarms, and one screen. The one input you give. | A Secret in the install's namespace, [described here](/codesys/profile/) | + +## How it reads the PLC + +CODESYS documents one way for a third party to read a controller's variables, and it is the runtime's own OPC UA server. The PLC publishes what you want seen with a Symbol Configuration in the IDE, and HotLoop reads those variables by the names the programmer gave them, like `Application.GVL_Line.rTemp`, not by a node id. The Symbol Configuration is the only change to the PLC project. The CODESYS Gateway's channel protocol is not documented for third parties, and this does not speak it. + +The reading is HotLoop core's CODESYS connector, which is the OPC UA driver plus what a CODESYS PLC needs on top: discovery of what the application exports, the types it has, arrays and structures walked into one point per field, a reconnect with no hands after a restart or a download, and every request cut to the limits the runtime publishes. The [protocols page](/iot/protocols/) carries the connector's reference from HotLoop {{codesysNeeds}} on, and it says what it was verified against and what it was not. + +## What it does by itself + +Once HotLoop and the node's own runtime both answer, the provisioner sets up the profile's device, its variables, its alarms, and its screen. Then it looks again every five minutes. A variable of the profile that the PLC has gained since is added. One the PLC no longer has reads bad with the server's reason. The screen and the alarms are made when missing and replaced only when the profile's `revision` is higher than the one that made them, so a change a person made survives until a newer profile is shipped on purpose. + +## What it won't do + +- **It won't write to your PLC.** Every tag the provisioner sets up is read-only, and the profile marks none writable. A person can arm a tag later, and then the [write gate](/gateway/write-gate/) and the PLC's own symbol rights both get a say. +- **It won't put anything in the runtime.** No library, no task, no agent. +- **It won't need a database pod.** SQLite on the node's own storage, one replica. +- **It won't lose its screens to a bad link, in theory.** Both pods tolerate an unreachable or not-ready node with no time limit. The tolerations are in the chart, and the link was never cut on a real node, so [the status page](/codesys/where-it-stands/) lists that as not shown. + +## Where to go next + +[Install it](/codesys/install/), read what a [profile](/codesys/profile/) holds, or see [where it stands](/codesys/where-it-stands/) and the [roadmap](/codesys/roadmap/). diff --git a/src/pinned/codesys/profile.md b/src/pinned/codesys/profile.md new file mode 100644 index 0000000..690bc70 --- /dev/null +++ b/src/pinned/codesys/profile.md @@ -0,0 +1,59 @@ +--- +title: "The profile" +description: "The one input to HotLoop for CODESYS: a JSON file with a revision, the device and its variables, the alarms, and one screen, and how the provisioner applies it." +sidebar: + label: "The profile" +--- + +{{codesysNotice}} + +A profile is one JSON file in a Secret in the install's namespace, under the key `profile.json`. It is not in the chart or in the provisioner image, so both are generic and public, and nothing in either names anyone's variables. Whoever installs the app gives it. On EmberNet the Store writes it as `-profile`. + +The provisioner reads it again at every pass, so a newer profile reaches a running install without a restart. + +## The shape + +| Key | What it holds | +|---|---| +| `revision` | A whole number from 1. The screen and the alarms are replaced only when this is higher than the revision that made them. | +| `device` | `id`, `name`, `options` (the connector's options, such as `browseRoot`, `arrayElements`, and `browseMaxNodes`), and `points`, the variable names HotLoop keeps from the PLC. | +| `alarms` | HotLoop alarm definitions, each with an `id`. | +| `dashboard` | One HotLoop screen, with an `id`. A [dashboard](/iot/dashboards/) is a list of cards. | + +One profile makes one device and one screen. + +## An example + +This is the profile behind the screenshots on the [overview](/codesys/overview/), against HotLoop's lab program. `GVL_Demo` is the lab program's variable list, and the labels are made up. + +```json +{ + "revision": 2, + "device": { + "id": "line-2", + "name": "Line 2 PLC", + "options": {"browseRoot": "Application.GVL_Demo", "arrayElements": 4, "browseMaxNodes": 500}, + "points": ["GVL_Demo.bRun", "GVL_Demo.rTemp", "GVL_Demo.udiCycles", "GVL_Demo.nEcho", "GVL_Demo.rEcho", "GVL_Demo.rReadOnly"] + }, + "alarms": [ + {"id": "line-2-mixer-hot", "name": "Mixer temperature high", "tagName": "GVL_Demo.rTemp", "condition": "hi", "limit": 20, "deadband": 0.5, "priority": 2, "message": "{device}/{tag} at {value}, limit {limit}"} + ], + "dashboard": { + "id": "line-2-screen", "name": "Line 2", "description": "The Line 2 screen.", "kind": "cards", "roles": [], "homeFor": [], "screens": [], + "cards": [ + {"id": "t", "type": "value", "title": "Mixer temperature", "w": 3, "h": 2, "config": {"tag": "line-2/GVL_Demo.rTemp", "decimals": 1}}, + {"id": "tr", "type": "trend", "title": "Mixer temperature, last 15 minutes", "w": 6, "h": 3, "config": {"tags": ["line-2/GVL_Demo.rTemp"], "minutes": 15}}, + {"id": "al", "type": "alarms", "title": "Line 2 alarms", "w": 6, "h": 3, "config": {"outstanding": true, "limit": 8}} + ] + } +} +``` + +A card's `tag` is the device id, a slash, and the point's name. The card types, the alarm conditions, and the rest of a screen's keys are the same as in HotLoop's [dashboards](/iot/dashboards/) and [the HTTP API](/iot/api/). + +## What the provisioner does with it + +- **It makes the device** if there isn't one, and adds any variable of `points` that the PLC has and the device does not. +- **It never writes to the PLC.** Every tag it makes is read-only, and a profile has no way to mark one writable. +- **It makes the alarms and the screen** when they are missing, and replaces them only when `revision` is higher than the one that made them. A change a person made to the screen in HotLoop therefore survives until a newer profile ships on purpose. +- **It keeps looking.** Every five minutes, and sooner after a pass that could not finish, because the runtime or HotLoop was not answering yet. diff --git a/src/pinned/codesys/roadmap.md b/src/pinned/codesys/roadmap.md new file mode 100644 index 0000000..7b1e2b4 --- /dev/null +++ b/src/pinned/codesys/roadmap.md @@ -0,0 +1,37 @@ +--- +title: "HotLoop for CODESYS roadmap" +description: "What HotLoop for CODESYS has built and what is left to prove before and after the first release." +sidebar: + label: "Roadmap" +--- + +{{codesysNotice}} + +This is the list of what is done and what is left, in the order it gets done. It promises nothing that isn't in the code or in a test plan, and it is mostly [the not-proven list](/codesys/where-it-stands/) turned into work. + +## Built + +- [x] A chart around HotLoop Edge with defaults for a runtime on a node: SQLite, one replica, tolerations that keep both pods through a lost control plane. +- [x] A provisioner that applies a profile and keeps it right, with a revision that protects what a person changed. +- [x] The device, tags, alarm, and screen made with no hand step, against a CODESYS Control for Linux SL 4.22.0.0 runtime in a container. +- [x] Recovery from a runtime restart with no hands, about 88 seconds in the lab. +- [x] A signed sign-in from the EmberCORE dashboard, with the refusals. + +## To ship the first version + +- [ ] HotLoop {{codesysNeeds}} released. +- [ ] The chart published at `{{codesysChartRepo}}`. +- [ ] The provisioner image public, so it pulls with no login. +- [ ] Release notes for the first version. + +## To prove + +- [ ] An install from the real App Store page, as staff do it. +- [ ] A physical controller. +- [ ] k3s v1.35.7. +- [ ] A node that really loses its link to the control plane, with the pods kept. +- [ ] A download from the CODESYS IDE while the runtime stays up. +- [ ] A runtime on the host's own network beside the HotLoop pod on one node. +- [ ] A runtime with user management on, and a certificate-secured OPC UA endpoint. + +Nothing past this list is decided yet. When it is, it goes here with the same marks: built, or not built. diff --git a/src/pinned/codesys/where-it-stands.md b/src/pinned/codesys/where-it-stands.md new file mode 100644 index 0000000..8c54848 --- /dev/null +++ b/src/pinned/codesys/where-it-stands.md @@ -0,0 +1,45 @@ +--- +title: "Where HotLoop for CODESYS stands" +description: "What HotLoop for CODESYS has been run against, what it has not, and what has to ship before you can install it." +sidebar: + label: "Where it stands" +--- + +{{codesysNotice}} + +A doc that rounds up is how somebody finds out at commissioning, so this page is the whole list. + +## What is true today + +HotLoop for CODESYS is built and has been run against a real runtime in the lab. It is not published. To install it, four things have to ship, and none of them has: + +- **HotLoop {{codesysNeeds}}.** The CODESYS connector is in HotLoop core's main branch for that release, and the chart depends on the `hotloop-edge` chart on the `~{{codesysNeeds}}` line. +- **The chart.** `{{codesysChartRepo}}` answers and lists no chart yet. +- **The provisioner image.** `ghcr.io/hotloop-io/hotloop-provision` does not pull without a login yet. +- **The release itself:** the notes, and the version. The first version is [{{codesys}}](/releases/codesys-0-3-0/). + +## What was run + +In the lab, the chart on a k3s v1.36 node with Store-shaped values, a real CODESYS Control for Linux SL 4.22.0.0 runtime on the same node running HotLoop's own lab program (built with the CODESYS ScriptEngine), and a HotLoop Edge image built from HotLoop's main branch. + +- The device, its tags (none writable), its alarm, and its screen appeared with no hand step. +- Every value read good and moved. +- The pods came back after a pod delete. +- The install read bad with the reason "the PLC's runtime is not answering" through a runtime restart, and came back by itself about 88 seconds after. +- A signed sign-in from the dashboard signed a person in as an operator or an admin, and a wrong app, a wrong tenant, an expired one, a wrong issuer, and a tampered one were each refused. + +The connector under it, HotLoop core's CODESYS driver, is verified live against a CODESYS Control for Linux SL 4.22.0.0 runtime in a container, for reads and writes, and not on a physical controller. Writes are there in the connector, and this product never turns them on. + +## What was not + +- An install from the real App Store page. The Store's code was changed and tested, and no Store has listed the chart, because it is not published. +- A physical controller. The only runtime it has met is a container. +- k3s v1.35.7. The lab is v1.36. +- A node actually losing its link to the control plane. The tolerations are in the pods, and the link was not cut. +- A download from the CODESYS IDE while the runtime stays up. The lab replaces the runtime process. +- A hostNetwork runtime and the HotLoop pod on one node. The lab runtime is a container on the node's own network, reached at the node's address. +- A runtime with user management on, or a certificate-secured OPC UA endpoint. + +## What a profile can't do yet + +One profile makes one device and one screen. There is no way to mark a variable writable from it, on purpose. diff --git a/src/pinned/releases/codesys-0-3-0.md b/src/pinned/releases/codesys-0-3-0.md new file mode 100644 index 0000000..35f13c5 --- /dev/null +++ b/src/pinned/releases/codesys-0-3-0.md @@ -0,0 +1,23 @@ +--- +title: "HotLoop for CODESYS 0.3.0 release notes" +description: "What the first version of HotLoop for CODESYS holds, what it needs, and what it has and has not been run against." +sidebar: + label: "0.3.0" +--- + +{{codesysNotice}} + +## What this is + +0.3.0 is the first version of HotLoop for CODESYS: HotLoop Edge beside a CODESYS runtime, set up from a profile with nobody clicking. It needs HotLoop {{codesysNeeds}}. + +- **A chart that wraps HotLoop Edge** on the {{codesysNeeds}} line, with defaults for a runtime on the same node: SQLite on the node's own storage, no database pod, one replica, and the OPC UA server, the broker, edge publishing, and backups off. +- **A provisioner**, one static Go binary, that reads a [profile](/codesys/profile/) (the device, the variables to keep, the alarms, and one screen) and sets all of it up once the PLC's runtime answers. It looks again every five minutes. +- **A PLC that changes is followed.** A variable the profile lists that the PLC has gained since is added. One the PLC lost reads bad with the server's reason. The screen and the alarms are replaced only when the profile's revision is higher. +- **Nothing writes to the PLC.** Every tag the provisioner sets up is read-only. +- **Both pods tolerate an unreachable or not-ready node** with no time limit. +- **Sign-in from the EmberCORE dashboard** comes from the Edge chart's 4.19 sign-in, and this chart inherits it. + +## What isn't proven + +An install from the real App Store page, a physical controller, k3s v1.35.7, a node really losing its link to the control plane, a download from the CODESYS IDE while the runtime stays up, and a runtime on the host's own network beside the HotLoop pod. [Where it stands](/codesys/where-it-stands/) has the whole list and what it was run against. diff --git a/src/routeData.ts b/src/routeData.ts index 5fbe8cf..926b7ed 100644 --- a/src/routeData.ts +++ b/src/routeData.ts @@ -5,7 +5,7 @@ import { defineRouteMiddleware } from '@astrojs/starlight/route-data'; // their own line (HotLoop core, Flow, Cascade), so the pager stays inside it, newest first, the // same order the sidebar shows. The newest and oldest page of a line don't link out to another // product: the newest of HotLoop core keeps its link back to All releases, and the rest have none. -const line = (id: string) => /^releases\/(hotloop|flow|cascade)-/.exec(id)?.[1]; +const line = (id: string) => /^releases\/(hotloop|flow|cascade|codesys)-/.exec(id)?.[1]; export const onRequest = defineRouteMiddleware((context) => { const route = context.locals.starlightRoute; From 494951cadfafca17799d48159e4cde719e5855c0 Mon Sep 17 00:00:00 2001 From: patrickryan01 Date: Sun, 1 Nov 2026 11:11:18 -0500 Subject: [PATCH 02/12] fix(codesys): the provisioner image is public, so the pages stop saying it is not, and the list of what has to ship is shorter --- scripts/sync-docs.mjs | 2 +- src/content/docs/codesys/install.md | 2 +- src/content/docs/codesys/overview.md | 2 +- src/content/docs/codesys/profile.md | 2 +- src/content/docs/codesys/roadmap.md | 3 +-- src/content/docs/codesys/where-it-stands.md | 5 ++--- src/content/docs/releases/codesys-0-3-0.md | 2 +- src/pinned/codesys/roadmap.md | 1 - src/pinned/codesys/where-it-stands.md | 3 +-- 9 files changed, 9 insertions(+), 13 deletions(-) diff --git a/scripts/sync-docs.mjs b/scripts/sync-docs.mjs index 18d85f5..e1e93df 100644 --- a/scripts/sync-docs.mjs +++ b/scripts/sync-docs.mjs @@ -300,7 +300,7 @@ for (const [repo, files] of Object.entries(SKIPPED_SECTIONS)) { } const codesysNotice = () => `:::caution[Not released yet] -HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop ${CODESYS.needsCore}, and the chart and the provisioner image are not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. +HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop ${CODESYS.needsCore}, and the chart is not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. ::: `; diff --git a/src/content/docs/codesys/install.md b/src/content/docs/codesys/install.md index 9298dc1..dc04b87 100644 --- a/src/content/docs/codesys/install.md +++ b/src/content/docs/codesys/install.md @@ -8,7 +8,7 @@ editUrl: false --- :::caution[Not released yet] -HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart and the provisioner image are not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. +HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart is not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. ::: HotLoop for CODESYS is a Helm chart, `hotloop-codesys`, that installs HotLoop Edge and a provisioner on the same node as a CODESYS runtime. On EmberNet it is an App Store app. With no EmberNet it is Helm on k3s. diff --git a/src/content/docs/codesys/overview.md b/src/content/docs/codesys/overview.md index eb39115..aa3a460 100644 --- a/src/content/docs/codesys/overview.md +++ b/src/content/docs/codesys/overview.md @@ -8,7 +8,7 @@ editUrl: false --- :::caution[Not released yet] -HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart and the provisioner image are not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. +HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart is not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. ::: HotLoop for CODESYS is HotLoop running on the same node as a CODESYS runtime. It reads the PLC's variables through the runtime's own OPC UA server, puts them on screens that work on a panel PC, a phone, or a wall, raises alarms on them, and keeps the history. Nothing is installed in CODESYS and nothing writes to the PLC. What that buys you: the operators get a screen without a download to the PLC, and the PLC gets a second set of eyes that doesn't depend on anything else on the node. diff --git a/src/content/docs/codesys/profile.md b/src/content/docs/codesys/profile.md index 529b0a0..95904b7 100644 --- a/src/content/docs/codesys/profile.md +++ b/src/content/docs/codesys/profile.md @@ -8,7 +8,7 @@ editUrl: false --- :::caution[Not released yet] -HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart and the provisioner image are not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. +HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart is not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. ::: A profile is one JSON file in a Secret in the install's namespace, under the key `profile.json`. It is not in the chart or in the provisioner image, so both are generic and public, and nothing in either names anyone's variables. Whoever installs the app gives it. On EmberNet the Store writes it as `-profile`. diff --git a/src/content/docs/codesys/roadmap.md b/src/content/docs/codesys/roadmap.md index c51675e..9561b73 100644 --- a/src/content/docs/codesys/roadmap.md +++ b/src/content/docs/codesys/roadmap.md @@ -8,7 +8,7 @@ editUrl: false --- :::caution[Not released yet] -HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart and the provisioner image are not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. +HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart is not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. ::: This is the list of what is done and what is left, in the order it gets done. It promises nothing that isn't in the code or in a test plan, and it is mostly [the not-proven list](/codesys/where-it-stands/) turned into work. @@ -25,7 +25,6 @@ This is the list of what is done and what is left, in the order it gets done. It - [ ] HotLoop 4.19.0 released. - [ ] The chart published at `https://hotloop.io/hotloop-codesys/`. -- [ ] The provisioner image public, so it pulls with no login. - [ ] Release notes for the first version. ## To prove diff --git a/src/content/docs/codesys/where-it-stands.md b/src/content/docs/codesys/where-it-stands.md index 237e85e..7b0cb8f 100644 --- a/src/content/docs/codesys/where-it-stands.md +++ b/src/content/docs/codesys/where-it-stands.md @@ -8,18 +8,17 @@ editUrl: false --- :::caution[Not released yet] -HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart and the provisioner image are not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. +HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart is not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. ::: A doc that rounds up is how somebody finds out at commissioning, so this page is the whole list. ## What is true today -HotLoop for CODESYS is built and has been run against a real runtime in the lab. It is not published. To install it, four things have to ship, and none of them has: +HotLoop for CODESYS is built and has been run against a real runtime in the lab. It is not published. To install it, three things have to ship, and none of them has: - **HotLoop 4.19.0.** The CODESYS connector is in HotLoop core's main branch for that release, and the chart depends on the `hotloop-edge` chart on the `~4.19.0` line. - **The chart.** `https://hotloop.io/hotloop-codesys/` answers and lists no chart yet. -- **The provisioner image.** `ghcr.io/hotloop-io/hotloop-provision` does not pull without a login yet. - **The release itself:** the notes, and the version. The first version is [0.3.0](/releases/codesys-0-3-0/). ## What was run diff --git a/src/content/docs/releases/codesys-0-3-0.md b/src/content/docs/releases/codesys-0-3-0.md index 06b3997..5349bc8 100644 --- a/src/content/docs/releases/codesys-0-3-0.md +++ b/src/content/docs/releases/codesys-0-3-0.md @@ -8,7 +8,7 @@ editUrl: false --- :::caution[Not released yet] -HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart and the provisioner image are not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. +HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart is not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. ::: ## What this is diff --git a/src/pinned/codesys/roadmap.md b/src/pinned/codesys/roadmap.md index 7b1e2b4..da1bad9 100644 --- a/src/pinned/codesys/roadmap.md +++ b/src/pinned/codesys/roadmap.md @@ -21,7 +21,6 @@ This is the list of what is done and what is left, in the order it gets done. It - [ ] HotLoop {{codesysNeeds}} released. - [ ] The chart published at `{{codesysChartRepo}}`. -- [ ] The provisioner image public, so it pulls with no login. - [ ] Release notes for the first version. ## To prove diff --git a/src/pinned/codesys/where-it-stands.md b/src/pinned/codesys/where-it-stands.md index 8c54848..3e81cc2 100644 --- a/src/pinned/codesys/where-it-stands.md +++ b/src/pinned/codesys/where-it-stands.md @@ -11,11 +11,10 @@ A doc that rounds up is how somebody finds out at commissioning, so this page is ## What is true today -HotLoop for CODESYS is built and has been run against a real runtime in the lab. It is not published. To install it, four things have to ship, and none of them has: +HotLoop for CODESYS is built and has been run against a real runtime in the lab. It is not published. To install it, three things have to ship, and none of them has: - **HotLoop {{codesysNeeds}}.** The CODESYS connector is in HotLoop core's main branch for that release, and the chart depends on the `hotloop-edge` chart on the `~{{codesysNeeds}}` line. - **The chart.** `{{codesysChartRepo}}` answers and lists no chart yet. -- **The provisioner image.** `ghcr.io/hotloop-io/hotloop-provision` does not pull without a login yet. - **The release itself:** the notes, and the version. The first version is [{{codesys}}](/releases/codesys-0-3-0/). ## What was run From 910119c396dedee18cf4ba96450b2ada2f0b8592 Mon Sep 17 00:00:00 2001 From: patrickryan01 Date: Sun, 1 Nov 2026 11:03:20 -0500 Subject: [PATCH 03/12] docs: a hotloop transmitter section, the install page, the api, the wire format, the roadmap and a draft of the release notes, held until the first release ships --- astro.config.mjs | 14 +++ .../docs/releases/transmitter-1-0-0.md | 10 ++ src/content/docs/transmitter/api.md | 63 ++++++++++++ src/content/docs/transmitter/install.md | 37 +++++++ src/content/docs/transmitter/overview.md | 72 ++++++++++++++ src/content/docs/transmitter/proof.md | 50 ++++++++++ src/content/docs/transmitter/roadmap.md | 38 +++++++ src/content/docs/transmitter/timing.md | 27 +++++ src/content/docs/transmitter/wire-format.md | 99 +++++++++++++++++++ 9 files changed, 410 insertions(+) create mode 100644 src/content/docs/releases/transmitter-1-0-0.md create mode 100644 src/content/docs/transmitter/api.md create mode 100644 src/content/docs/transmitter/install.md create mode 100644 src/content/docs/transmitter/overview.md create mode 100644 src/content/docs/transmitter/proof.md create mode 100644 src/content/docs/transmitter/roadmap.md create mode 100644 src/content/docs/transmitter/timing.md create mode 100644 src/content/docs/transmitter/wire-format.md diff --git a/astro.config.mjs b/astro.config.mjs index 33d1ea1..4682ada 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -161,6 +161,20 @@ export default defineConfig({ collapsed: true, items: grouped('cascade'), }, + { + label: 'HotLoop Transmitter (not released)', + collapsed: true, + items: [ + { slug: 'transmitter/overview', label: 'Overview' }, + { slug: 'transmitter/install', label: 'Install' }, + { slug: 'transmitter/api', label: 'API' }, + { slug: 'transmitter/wire-format', label: 'What goes on the wire' }, + { slug: 'transmitter/timing', label: 'What it adds to the task' }, + { slug: 'transmitter/proof', label: 'What was run' }, + { slug: 'transmitter/roadmap', label: 'Roadmap' }, + { slug: 'releases/transmitter-1-0-0', label: 'Release notes (draft)' }, + ], + }, { label: 'Release notes', collapsed: true, diff --git a/src/content/docs/releases/transmitter-1-0-0.md b/src/content/docs/releases/transmitter-1-0-0.md new file mode 100644 index 0000000..36ae2ae --- /dev/null +++ b/src/content/docs/releases/transmitter-1-0-0.md @@ -0,0 +1,10 @@ +--- +title: "HotLoop Transmitter 1.0.0" +description: "The first release of HotLoop Transmitter: not out yet. What it will contain and what has been run." +--- + +:::caution[Not released] +There is no HotLoop Transmitter release. This page is the draft of the notes for the first one, and it is replaced by the real notes the day 1.0.0 ships. +::: + +The first release is the publisher function block, `FB_HLTX_Publisher`, with the Variant and RawData encodings, unicast and multicast destinations, and the types a PLC uses. [What was run](/transmitter/proof/) says what it has been tried against, and [the roadmap](/transmitter/roadmap/) says what comes after. diff --git a/src/content/docs/transmitter/api.md b/src/content/docs/transmitter/api.md new file mode 100644 index 0000000..d40e43c --- /dev/null +++ b/src/content/docs/transmitter/api.md @@ -0,0 +1,63 @@ +--- +title: "HotLoop Transmitter API" +description: "Every input, output and method of the HotLoop Transmitter publisher function block." +--- + +:::caution[Not released] +HotLoop Transmitter has no release yet. This page describes the library as built on `main` of HotLoop-io/hotloop-transmitter and run on the CODESYS Control for Linux SL 4.22.0.0 runtime in a container. It has not run on a physical controller. +::: + +Everything is in the `HLTX` namespace. The block is `HLTX.FB_HLTX_Publisher`. + +## Inputs + +| Input | Type | Default | Meaning | +|---|---|---|---| +| `bEnable` | BOOL | FALSE | TRUE opens the socket and starts publishing. FALSE closes it and returns the block to `Disabled`, which also clears a `ConfigError` | +| `sDestination` | STRING(15) | `127.0.0.1` | dotted IPv4 address: a unicast host, or a multicast group from 224.0.0.0 to 239.255.255.255 | +| `uiPort` | UINT | 4840 | destination UDP port. 4840 is the one OPC UA registers | +| `sLocalAddress` | STRING(15) | empty | multicast only: the address of the interface to send from. Empty lets the OS choose | +| `usiMulticastTTL` | USINT | 1 | multicast time to live | +| `uiPublisherId` | UINT | 1 | PublisherId, sent as UInt16 | +| `uiWriterGroupId` | UINT | 1 | WriterGroupId | +| `uiDataSetWriterId` | UINT | 1 | DataSetWriterId | +| `tPublishingInterval` | TIME | T#100MS | time between messages. Minimum T#1MS. The block can only send on a cycle, so the real rate is the interval rounded up to a whole number of cycles of the task that calls it | +| `eEncoding` | `E_HLTX_Encoding` | `Variant` | `Variant` or `RawData`. Change it while disabled | +| `udiGroupVersion` | UDINT | 1 | GroupVersion in the group header | +| `udiConfigMajor`, `udiConfigMinor` | UDINT | 1, 0 | DataSet ConfigurationVersion. Bump the major whenever the field list changes | +| `tRetry` | TIME | T#2S | how long to wait before reopening the socket after ten sends in a row failed | + +## Outputs + +| Output | Type | Meaning | +|---|---|---| +| `eState` | `E_HLTX_State` | `Disabled`, `Running`, `Backoff` (waiting to reopen the socket) or `ConfigError` (see `eError`; nothing is sent) | +| `eError` | `E_HLTX_Error` | `None`, `NoFields`, `BadInterval`, `BadAddress`, `SocketCreate`, `SocketOption`, `TooBig`, `BadField` | +| `bActive` | BOOL | TRUE while messages are going out | +| `udiSent` | UDINT | messages handed to the network | +| `udiSendErrors` | UDINT | sends the OS refused or cut short | +| `udiSkipped` | UDINT | publish slots missed because the task ran late | +| `uiMessageSize` | UINT | bytes in the last message | +| `diLastSocketResult` | UDINT | the last runtime error code from a socket call, 0 is fine | +| `udiLastCallUs`, `udiMaxCallUs` | UDINT | microseconds spent in the last call of the block, and the longest since enable or `Clear()` | + +## Methods + +Add fields once, before the first call, in the order a receiver should read them. Each returns TRUE when the field +was accepted. Up to 128 fields. + +| Method | Adds | +|---|---| +| `AddBool(pValue)`, `AddSInt`, `AddUSInt`, `AddInt`, `AddUInt`, `AddDInt`, `AddUDInt`, `AddLInt`, `AddULInt`, `AddReal`, `AddLReal`, `AddTime` | one scalar. `pValue` is `ADR(variable)` | +| `AddString(pValue, uiMaxLen)` | one STRING. `uiMaxLen` is the N in `STRING(N)` | +| `AddArray(pFirst, eType, uiCount)` | an array of `uiCount` elements of any type but STRING. `pFirst` is `ADR(array[first])` | +| `AddField(pData, eType, uiCount, uiMaxLen)` | the general form the others call | +| `Clear()` | forgets the field list and the maximum call time | + +The block keeps the addresses you give it, so after an online change that moves variables, call `Clear()` and add +the fields again. WORD, DWORD and LWORD go in as UINT, UDINT and ULINT through the same-sized method. + +## Calling it + +Call the instance once per cycle from one task. Do not call one instance from two tasks. Several publishers in +one program are fine and each owns its own socket; give each its own writer group and dataset writer id. diff --git a/src/content/docs/transmitter/install.md b/src/content/docs/transmitter/install.md new file mode 100644 index 0000000..7d6bb1b --- /dev/null +++ b/src/content/docs/transmitter/install.md @@ -0,0 +1,37 @@ +--- +title: "Install HotLoop Transmitter" +description: "Install the library into the CODESYS library repository, add it to a project, and what to do when the block reports an error." +--- + +:::caution[Not released] +HotLoop Transmitter has no release yet. This page describes the library as built on `main` of HotLoop-io/hotloop-transmitter and run on the CODESYS Control for Linux SL 4.22.0.0 runtime in a container. It has not run on a physical controller. +::: + +You need a CODESYS development system, 3.5 SP22 or later, and a runtime whose target has the SysSocket component, +which the CODESYS Control runtimes for Linux SL have. + +1. Download `HotLoopTransmitter-.library` from the release. +2. In the CODESYS IDE: Tools, Library Repository, Install, pick the file. It is now in the repository under the + company HotLoop. +3. In your project, open the Library Manager of the application, Add Library, and pick HotLoop Transmitter. + SysSocket and its interface libraries come with it as dependencies and need nothing from you. +4. Declare a `HLTX.FB_HLTX_Publisher`, add your fields, call it every cycle (README has the example). +5. Download to the controller. The destination must be reachable from the controller's network; for multicast the + network's switches must carry the group. + +The `.compiled-library` file is the same library without its source. Install that one instead if you do not want the +Structured Text visible in the Library Manager. + +To check what arrives, `test/capture` in this repository is a small Go program that listens on a port or joins a +multicast group and prints each datagram as a line of JSON with its hex. + +## If the block reports an error + +| `eError` | Meaning | Do | +|---|---|---| +| `NoFields` | no field was added | call an `Add` method before enabling | +| `BadInterval` | `tPublishingInterval` is under 1 ms | set it | +| `BadAddress` | `sDestination` is not a dotted IPv4 address | fix it | +| `SocketCreate`, `SocketOption` | the runtime refused a socket call; `diLastSocketResult` has its code | the block retries by itself after `tRetry` | +| `TooBig` | the fields do not fit in 1472 bytes | publish fewer, or use two publishers with different writer ids | +| `BadField` | a stored address was cleared | `Clear()` and add the fields again | diff --git a/src/content/docs/transmitter/overview.md b/src/content/docs/transmitter/overview.md new file mode 100644 index 0000000..977ad6c --- /dev/null +++ b/src/content/docs/transmitter/overview.md @@ -0,0 +1,72 @@ +--- +title: "HotLoop Transmitter" +description: "A CODESYS library, written in Structured Text over SysSocket UDP, that publishes PLC values as OPC UA PubSub (UADP) with no other library and no configurator." +--- + +:::caution[Not released] +HotLoop Transmitter has no release yet. This page describes the library as built on `main` of HotLoop-io/hotloop-transmitter and run on the CODESYS Control for Linux SL 4.22.0.0 runtime in a container. It has not run on a physical controller. +::: + +HotLoop Transmitter puts a PLC's values on the network as OPC UA PubSub, the way Part 14 of the OPC UA spec says to, +from a library you drop into the CODESYS project. It is a transmitter in the instrument-loop sense: the part that +puts the process value on the wire so something else can read it. + +It is written in Structured Text over `SysSocket` UDP, and it needs no other library, no extra license, and no +configurator. You add the library, call one function block once per cycle, and a UADP NetworkMessage goes out every +publishing interval to a unicast address or a multicast group. + +What that means for you: a PLC that has no PubSub library can still feed anything that subscribes to OPC UA PubSub, +including HotLoop itself, with a few lines of Structured Text. + +## Why this is Structured Text and not Go + +Every new HotLoop tool is written in Go unless there is a real reason. This is the real reason: the thing has to +run inside the PLC's own scan, in the IEC 61131-3 runtime, as a library the programmer references from their project. +A CODESYS runtime runs Structured Text, not Go. The tests and tools around the library (the capture tool, the +verifier) are Go. + +## Use it + +1. Install `HotLoopTransmitter-.library` into the CODESYS library repository (Tools, Library Repository, + Install), then add it to the project's Library Manager. `docs/INSTALL.md` has the details. +2. Declare a publisher, add the variables you want to publish once at start, and call it every cycle: + +```iecst +PROGRAM PLC_PRG +VAR + pub : HLTX.FB_HLTX_Publisher; + bInit : BOOL; +END_VAR + +IF NOT bInit THEN + bInit := TRUE; + pub.sDestination := '239.0.0.22'; // a unicast host or a multicast group + pub.uiPort := 4840; + pub.uiPublisherId := 1; + pub.uiWriterGroupId := 1; + pub.uiDataSetWriterId := 1; + pub.tPublishingInterval := T#100MS; + pub.AddReal(ADR(GVL.rTemperature)); + pub.AddBool(ADR(GVL.bRunning)); + pub.AddArray(ADR(GVL.aValues), HLTX.E_HLTX_Type.REAL_T, 250); +END_IF +pub.bEnable := TRUE; +pub(); +``` + +`docs/API.md` lists every input, output and method. `docs/WIRE-FORMAT.md` is the packet, byte by byte, with the +sections of the spec that define each byte. + +## What it will and won't do to your scan + +* It never blocks. The socket is non-blocking and the message is built in a fixed buffer. +* The cost of a call is the cost of building one message, and it is only paid on the cycles where a message goes + out. The measured numbers are in `docs/TIMING.md`. +* A socket error, a bad address or an oversized field list never faults the application. The block reports an + `eState` and an `eError`, counts the failure, and the program keeps scanning. +* It does not fragment. A message is at most 1472 bytes. A field list that does not fit puts the block in + `ConfigError` and sends nothing. + +The wire format is in [What goes on the wire](/transmitter/wire-format/), every input and method is in the [API](/transmitter/api/), and what was run is in [What was run](/transmitter/proof/). + +HotLoop Transmitter is under the HotLoop Business Source License 1.1, like every HotLoop product. diff --git a/src/content/docs/transmitter/proof.md b/src/content/docs/transmitter/proof.md new file mode 100644 index 0000000..8a6d111 --- /dev/null +++ b/src/content/docs/transmitter/proof.md @@ -0,0 +1,50 @@ +--- +title: "What was run" +description: "What the library was built with, run on, and read back by, and the one place two readers disagree." +--- + +:::caution[Not released] +HotLoop Transmitter has no release yet. This page describes the library as built on `main` of HotLoop-io/hotloop-transmitter and run on the CODESYS Control for Linux SL 4.22.0.0 runtime in a container. It has not run on a physical controller. +::: + +Everything below ran on 2026-11-01 on The Beast, from `test/run.sh`. The raw outputs are in the codex at `work/out/hotloop/transmitter/evidence/2026-11-01/`. Nothing here ran on a physical controller. + +## The build + +* Library: `test/build.sh` ends `Compile complete -- 0 errors, 0 warnings` and `RESULT OK`, in the CODESYS 3.5.22.30 (SP22 Patch 3) ScriptEngine under Wine. +* Example application, built against the installed library, for the CODESYS Control for Linux SL device (4102, 0000 0005, 4.20.0.0): `Build complete -- 0 errors, 0 warnings : Ready for download`. + +## The runtime + +`ghcr.io/embernet-ai/codesys-control-sl:4.22.0.0`, started by `test/lab/start_runtime.sh`, loads the application as a boot project and reports `Application started`, `CODESYS Control ready`. Demo mode, because there is no runtime license. The longest single run was about an hour; what happens at the end of the two hour demo window was not tried. + +## What went over the wire, and who read it + +The example application has two publishers, both to a capture listener on a Podman network: writer group 1 and dataset writer 1 in the Variant encoding (1142 bytes), and writer group 2 and dataset writer 2 in the RawData encoding (1144 bytes). Seventeen fields each: one of every type the library supports, a 250 element REAL array, a 4 element INT array, and two counters. + +| Reader | What it is | Variant | RawData | +|---|---|---|---| +| `test/verify` | a decoder written from OPC 10000-14 and 10000-6 alone, which also reads the same variables from the runtime's OPC UA server and compares them | every field equal to the PLC's, no gap in the NetworkMessage and DataSetMessage sequence numbers over 117 to 119 messages | the same | +| open62541 1.4.9 | an independent PubSub implementation, built from its release tarball (sha256 `8735e61391cde0d84e6347a4293d2400b6a72838fb44513caf22d70dfca3a0cf`), run as a subscriber with a DataSet metadata of the 17 fields | all 15 values checked equal, including the string, both arrays and the TIME | the 11 numeric scalars equal. Its RawData reader reads one scalar per field and bounds its buffer by the fields' in-memory sizes (`DataSetReader_processRaw`, `src/pubsub/ua_pubsub_reader.c`), so it cannot read a RawData string longer than a few characters or any RawData array | +| UT3-Code `uadp.Decode` at commit 79157e7a | the decoder in the Fireball UT3 receiver | 118 of 118 messages decoded, every value correct | refused: `trailing_bytes: 52 bytes after the last RawData field are not padding` | + +Wireshark 4.4.7's `tshark` (Alpine package) was tried on a capture and dissects UDP port 4840 as plain data: its OPC UA dissector is for the TCP protocol, so it was not usable as a UADP decoder. + +HotLoop core's UADP subscribe (agent HK, bead 5a8ca6) has no code in its branch yet (`git grep -il uadp` over `hk/kafka-uadp` found no Go file), so it was not run. + +## The RawData disagreement + +The UT3-Code decoder reads a RawData array as back-to-back elements. This library writes an Int32 element count first, and a string as an Int32 length, its bytes, then zero padding up to MaxStringLength. The reasoning, with its sources: + +1. OPC 10000-14, 7.2.4.5.11: "The encoding of the DataSetMessage fields is handled like a Structure DataType", with padding "to the maximum size indicated by ArrayDimensions or MaxStringLength". +2. OPC 10000-6, 5.2.5: "One dimensional Arrays are encoded as a sequence of elements preceded by the number of elements encoded as an Int32 value." + +Put together, an array field in RawData carries its count. The spec text never says so in one sentence, and the only other implementation tried here (open62541) does not read RawData arrays at all, so the array count is the one choice in this library that has a second reader's agreement on neither side. UT3-Code's `fields.go` states the opposite reading (a RawData array and separate fields are the same bytes). Which of the two is Part 14's meaning is a question for whoever owns the receiver or for the OPC Foundation; this repository did not touch the receiver. Variant has no such ambiguity and is the default. + +## Not verified + +* Any physical controller, any CODESYS runtime other than Control for Linux SL 4.22.0.0, and any CPU architecture other than x86-64 (the library is Structured Text, but the byte order handling for a big endian target is written and not run). +* Multicast. The block sets the TTL, loopback and send interface for a multicast group; the lab used unicast only. +* A runtime that loses and regains its network, and a send to an address that is not there. The code counts failures and backs off, but a deliberate fault test was not run. +* The behavior at the end of the two hour demo window. +* Receivers other than the three above. diff --git a/src/content/docs/transmitter/roadmap.md b/src/content/docs/transmitter/roadmap.md new file mode 100644 index 0000000..df52202 --- /dev/null +++ b/src/content/docs/transmitter/roadmap.md @@ -0,0 +1,38 @@ +--- +title: "Transmitter roadmap" +description: "What HotLoop Transmitter has built, what is next, and what is deliberately not planned." +--- + +:::caution[Not released] +HotLoop Transmitter has no release yet. This page describes the library as built on `main` of HotLoop-io/hotloop-transmitter and run on the CODESYS Control for Linux SL 4.22.0.0 runtime in a container. It has not run on a physical controller. +::: + +What is in the box today, what is next, and what is deliberately not planned. A line moves to "Shipped" only +when it has run on the real 4.22.0.0 runtime and a receiver has read it. + +## Shipped in 1.0.0 + +* One publisher block, `FB_HLTX_Publisher`: one NetworkMessage per publishing interval, one DataSetMessage, a Data + Key Frame, UADP over UDP, from Structured Text over SysSocket. +* Variant and RawData field encodings. +* BOOL, SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, REAL, LREAL, STRING and TIME fields, and arrays of + every one of those but STRING, in both encodings. +* Unicast and multicast destinations, publisher id, writer group id, dataset writer id, publishing interval, + group version and configuration version, all set as inputs of the block. +* A non-blocking send, a bounded cost per call, counters for sent, refused and skipped, and an error state that + never faults the application. + +## Next + +* DataSetMessage and NetworkMessage timestamps, from the runtime's real-time clock. +* Several DataSetMessages in one NetworkMessage (the Sizes array), so one datagram can carry more than one writer. +* Data Delta Frames and KeepAlive messages, to cut the bytes of a mostly steady dataset. +* WSTRING fields. +* A per-field status, so a Bad value can be sent as Bad. + +## Not planned + +* Message security (signing and encryption). The block sends in the clear, on a network the plant already trusts. +* Chunked NetworkMessages. A message that does not fit in one 1500 byte frame is refused, not split. +* The subscriber side. HotLoop core subscribes to UADP; this library publishes. +* MQTT transport. UDP is what a CODESYS runtime reaches without more libraries. diff --git a/src/content/docs/transmitter/timing.md b/src/content/docs/transmitter/timing.md new file mode 100644 index 0000000..c195ee0 --- /dev/null +++ b/src/content/docs/transmitter/timing.md @@ -0,0 +1,27 @@ +--- +title: "What Transmitter adds to the PLC task" +description: "The measured cost of the publisher on a 20 ms cyclic task, and what that does and does not tell you about a physical controller." +--- + +:::caution[Not released] +HotLoop Transmitter has no release yet. This page describes the library as built on `main` of HotLoop-io/hotloop-transmitter and run on the CODESYS Control for Linux SL 4.22.0.0 runtime in a container. It has not run on a physical controller. +::: + +Measured on 2026-11-01 on The Beast (a 64 thread AMD Threadripper 2990WX shared with other containers), with the CODESYS Control for Linux SL 4.22.0.0 runtime in a container, in demo mode, running the example application at a 20 ms cyclic task. The runtime's own task statistics were not available over OPC UA, so the application times itself: `PLC_PRG` reads `LTIME()` at its start and end and keeps a mean and a maximum (`udiPrgMeanNs`, `udiPrgMaxUs` in `examples/lab/build_app.py`). Both runs are the same program; the baseline never calls the publishers. + +The publish run has two publishers, one Variant and one RawData, each sending a message of about 1.1 KB every 100 ms, so a message goes out every fifth cycle of the 20 ms task. Statistics were reset 45 s after the runtime started and read 180 s later (`test/run.sh timing`, evidence in `work/out/hotloop/transmitter/evidence/2026-11-01/timing.txt` in the codex). + +| Measure | baseline (no publisher) | two publishers | +|---|---|---| +| Mean time in `PLC_PRG` per cycle | 232 ns | 8 977 ns | +| Longest time in `PLC_PRG` in the window | 1 021 us | 3 090 us | +| Cycles in the window | 8 920 | 11 123 (its window ran longer, the rate was 50 per second in both) | + +What that says: + +* **The mean cost is about 8.7 us per cycle**, which is 0.04 percent of a 20 ms task. Spread over the cycles that send, a cycle that sends two 1.1 KB messages costs about 44 us, so about 22 us per message. That is the cost of building the message byte by byte in Structured Text and one non-blocking `sendto`. +* **The worst case in the window was 3.1 ms against 1.0 ms for the baseline.** The baseline's 1 ms is the container and the shared host (the program does nothing but count), so the part this library can claim is bounded by about 2 ms, in a 20 ms task, on a loaded machine. It is not a real-time guarantee: this was a container on a general purpose kernel. +* **No send blocked.** `udiSendErrors` stayed 0. +* **28 publish slots were counted as skipped, all in the first seconds after the runtime started** (the runtime was making its keys). The counter did not move again in the window or in the minutes after it. + +What this does not tell you: the cost on a physical controller, where a small ARM CPU can be ten to a hundred times slower than this host. The block's cost is the time to copy the published bytes, so it grows with the size of the field list. Measure it on the target with `udiLastCallUs` and `udiMaxCallUs` on the block, which are there for that. diff --git a/src/content/docs/transmitter/wire-format.md b/src/content/docs/transmitter/wire-format.md new file mode 100644 index 0000000..848c01b --- /dev/null +++ b/src/content/docs/transmitter/wire-format.md @@ -0,0 +1,99 @@ +--- +title: "What goes on the wire" +description: "The NetworkMessage and DataSetMessage HotLoop Transmitter sends, byte by byte, with the OPC 10000-14 and 10000-6 sections that define each one." +--- + +:::caution[Not released] +HotLoop Transmitter has no release yet. This page describes the library as built on `main` of HotLoop-io/hotloop-transmitter and run on the CODESYS Control for Linux SL 4.22.0.0 runtime in a container. It has not run on a physical controller. +::: + +Every byte below comes from OPC 10000-14 (Part 14, PubSub) version 1.05 and OPC 10000-6 (Part 6, mappings), +read at reference.opcfoundation.org on 2026-10-31. The section numbers are the ones to open when a byte looks wrong. +Nothing here was learned by looking at another vendor's packets. + +One publisher block sends one NetworkMessage per publishing interval. A NetworkMessage carries one DataSetMessage, +a Data Key Frame, so every message holds every field. All multi-byte values are little endian, which is how OPC UA +binary is defined; the block writes them byte by byte, so the host's byte order does not matter. + +## NetworkMessage (Part 14, 7.2.4.4.2) + +| Bytes | Value | Meaning | +|---|---|---| +| 1 | `F1` | UADPVersion 1 in bits 0 to 3. UADPFlags in bits 4 to 7: PublisherId (bit 4), GroupHeader (bit 5), PayloadHeader (bit 6) and ExtendedFlags1 (bit 7) all present | +| 1 | `01` | ExtendedFlags1: PublisherId type 001 = UInt16. No DataSetClassId, no security header, no timestamp, no ExtendedFlags2 | +| 2 | PublisherId | `uiPublisherId` | +| 1 | `0F` | GroupFlags: WriterGroupId, GroupVersion, NetworkMessageNumber and SequenceNumber present | +| 2 | WriterGroupId | `uiWriterGroupId` | +| 4 | GroupVersion | `udiGroupVersion` | +| 2 | NetworkMessageNumber | always 1, because 0 is invalid | +| 2 | SequenceNumber | counts messages sent, wraps at 65535 | +| 1 | Count | always 1 (payload header, 7.2.4.5.2) | +| 2 | DataSetWriterId | `uiDataSetWriterId` | + +Because Count is 1, the payload has no Sizes array. The block does not send chunked messages, discovery messages, +promoted fields or a security header, and a receiver that requires one of those is not served by this version. + +## DataSetMessage (Part 14, 7.2.4.5.4 and 7.2.4.5.5) + +| Bytes | Value | Meaning | +|---|---|---| +| 1 | `69` Variant, `6B` RawData | DataSetFlags1: valid (bit 0), field encoding (bits 1 and 2: 00 Variant, 01 RawData), sequence number (bit 3), ConfigurationVersion major (bit 5) and minor (bit 6). Status, DataSetFlags2 and timestamps are absent, so the type is the default, a Data Key Frame | +| 2 | DataSetMessage sequence number | counts messages sent, wraps at 65535 | +| 4 | ConfigurationVersion major | `udiConfigMajor` | +| 4 | ConfigurationVersion minor | `udiConfigMinor` | +| 2 | FieldCount | Variant only. Omitted for RawData (7.2.4.5.5) | +| ... | the fields | in the order they were added | + +Bump `udiConfigMajor` whenever the field list changes. A receiver that keeps a layout keyed on the version can then +refuse a message built for a different list instead of decoding it wrong. + +## Fields, Variant encoding (Part 6, 5.2.2.16) + +Each field is an EncodingMask byte, then the value. Bits 0 to 5 of the mask are the built-in type id (Part 6, 5.1.2, +table 1), and bit 7 says the value is an array, in which case an Int32 element count comes before the elements. + +| PLC type | Type id | Value bytes | +|---|---|---| +| BOOL | 1 Boolean | 1, `00` or `01` | +| SINT | 2 SByte | 1 | +| USINT, BYTE | 3 Byte | 1 | +| INT | 4 Int16 | 2 | +| UINT, WORD | 5 UInt16 | 2 | +| DINT | 6 Int32 | 4 | +| UDINT, DWORD | 7 UInt32 | 4 | +| LINT | 8 Int64 | 8 | +| ULINT, LWORD | 9 UInt64 | 8 | +| REAL | 10 Float | 4, IEEE 754 | +| LREAL | 11 Double | 8, IEEE 754 | +| STRING | 12 String | Int32 length in bytes, then UTF-8 (5.2.2.4) | +| TIME | 7 UInt32 | milliseconds, which is how a CODESYS TIME is held | + +A CODESYS STRING holds one byte per character. Bytes up to `7F` are ASCII and go out unchanged. Bytes above `7F` are +read as ISO 8859-1 and written as their two byte UTF-8 form. That is an assumption about the PLC's code page, and it +is the one place the block interprets text. + +## Fields, RawData encoding (Part 14, 7.2.4.5.11) + +No mask and no count: each field is just its value, in order, so the receiver must know the layout. Part 14 says the +fields are "handled like a Structure DataType", so each value is encoded as a Structure field is in Part 6. + +* **Scalars** are their value bytes, as in the Variant table, with no mask. +* **Arrays** are an Int32 element count and then the elements (Part 6, 5.2.5: "One dimensional Arrays are encoded as + a sequence of elements preceded by the number of elements encoded as an Int32 value"). The block always sends + every element it was given, so the count equals the array's declared size and there is no padding after it. +* **Strings** are an Int32 length in bytes and the UTF-8 bytes, then zero bytes up to MaxStringLength, so the field is + always 4 + MaxStringLength bytes (7.2.4.5.11: "the field shall be padded with bytes with value zero"). The block + uses the N of `STRING(N)` as MaxStringLength, in bytes. Text longer than that is cut at a character boundary, + because the field cannot grow. A receiver's field metadata must carry the same MaxStringLength and an + ArrayDimensions entry for each array. + +The array count is the one place where receivers have disagreed in practice: open62541 1.4.9 reads it, and the +decoder in UT3-Code at commit 79157e7a does not (see `docs/PROOF.md`). The reading above is the one the two quoted +sentences support. + +## Size + +The block builds the message in a 1472 byte buffer: 1500 bytes of Ethernet payload less 20 of IP and 8 of UDP, so a +message never fragments. A field list that does not fit puts the block in `ConfigError` with error `TooBig`; it does +not truncate. A 250 element REAL array in Variant encoding is 1005 bytes, so a message of that array plus the header +fits, and two of them do not. From e589ca76da4ced72559825bbdc94fad9bc377ef8 Mon Sep 17 00:00:00 2001 From: patrickryan01 Date: Sun, 1 Nov 2026 12:01:45 -0500 Subject: [PATCH 04/12] docs: the transmitter pages follow the timing run that was pinned to its own cores --- src/content/docs/transmitter/api.md | 1 + src/content/docs/transmitter/proof.md | 2 +- src/content/docs/transmitter/timing.md | 27 ++++++++++++++++---------- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/content/docs/transmitter/api.md b/src/content/docs/transmitter/api.md index d40e43c..63e8e2d 100644 --- a/src/content/docs/transmitter/api.md +++ b/src/content/docs/transmitter/api.md @@ -40,6 +40,7 @@ Everything is in the `HLTX` namespace. The block is `HLTX.FB_HLTX_Publisher`. | `uiMessageSize` | UINT | bytes in the last message | | `diLastSocketResult` | UDINT | the last runtime error code from a socket call, 0 is fine | | `udiLastCallUs`, `udiMaxCallUs` | UDINT | microseconds spent in the last call of the block, and the longest since enable or `Clear()` | +| `udiMaxEncodeUs`, `udiMaxSendUs` | UDINT | the longest time spent building one message, and in the send call itself, since enable or `Clear()` | ## Methods diff --git a/src/content/docs/transmitter/proof.md b/src/content/docs/transmitter/proof.md index 8a6d111..b76d7ee 100644 --- a/src/content/docs/transmitter/proof.md +++ b/src/content/docs/transmitter/proof.md @@ -16,7 +16,7 @@ Everything below ran on 2026-11-01 on The Beast, from `test/run.sh`. The raw out ## The runtime -`ghcr.io/embernet-ai/codesys-control-sl:4.22.0.0`, started by `test/lab/start_runtime.sh`, loads the application as a boot project and reports `Application started`, `CODESYS Control ready`. Demo mode, because there is no runtime license. The longest single run was about an hour; what happens at the end of the two hour demo window was not tried. +`ghcr.io/embernet-ai/codesys-control-sl:4.22.0.0`, started by `test/lab/start_runtime.sh`, loads the application as a boot project and reports `Application started`, `CODESYS Control ready`. Demo mode, because there is no runtime license. The longest single run was under an hour; what happens at the end of the two hour demo window was not tried. ## What went over the wire, and who read it diff --git a/src/content/docs/transmitter/timing.md b/src/content/docs/transmitter/timing.md index c195ee0..d4074c2 100644 --- a/src/content/docs/transmitter/timing.md +++ b/src/content/docs/transmitter/timing.md @@ -7,21 +7,28 @@ description: "The measured cost of the publisher on a 20 ms cyclic task, and wha HotLoop Transmitter has no release yet. This page describes the library as built on `main` of HotLoop-io/hotloop-transmitter and run on the CODESYS Control for Linux SL 4.22.0.0 runtime in a container. It has not run on a physical controller. ::: -Measured on 2026-11-01 on The Beast (a 64 thread AMD Threadripper 2990WX shared with other containers), with the CODESYS Control for Linux SL 4.22.0.0 runtime in a container, in demo mode, running the example application at a 20 ms cyclic task. The runtime's own task statistics were not available over OPC UA, so the application times itself: `PLC_PRG` reads `LTIME()` at its start and end and keeps a mean and a maximum (`udiPrgMeanNs`, `udiPrgMaxUs` in `examples/lab/build_app.py`). Both runs are the same program; the baseline never calls the publishers. +Measured on 2026-11-01 on The Beast, which is a 64 thread AMD Threadripper 2990WX that other work shares (load average 30 to 37 during these runs). The runtime is CODESYS Control for Linux SL 4.22.0.0 in a container, in demo mode, with a 20 ms cyclic task, pinned to four cores (40 to 43) with `taskset`. The runtime's own task statistics were not available over OPC UA, so the example application times itself: `PLC_PRG` reads `LTIME()` at its start and end, keeps a mean and a maximum, and counts each cycle into a histogram (`examples/lab/build_app.py`). The baseline is the same program without the publisher calls. -The publish run has two publishers, one Variant and one RawData, each sending a message of about 1.1 KB every 100 ms, so a message goes out every fifth cycle of the 20 ms task. Statistics were reset 45 s after the runtime started and read 180 s later (`test/run.sh timing`, evidence in `work/out/hotloop/transmitter/evidence/2026-11-01/timing.txt` in the codex). +The publish run has two publishers, one Variant and one RawData, each sending about 1.1 KB every 100 ms, so a message goes out every fifth cycle. Statistics were reset 45 s after the runtime started and read 240 s later (`HLTX_RT_CPUS=40-43 test/run.sh timing`; raw output is `run4-timing-pinned.txt` in the codex evidence folder `work/out/hotloop/transmitter/evidence/2026-11-01/`). | Measure | baseline (no publisher) | two publishers | |---|---|---| -| Mean time in `PLC_PRG` per cycle | 232 ns | 8 977 ns | -| Longest time in `PLC_PRG` in the window | 1 021 us | 3 090 us | -| Cycles in the window | 8 920 | 11 123 (its window ran longer, the rate was 50 per second in both) | +| Mean time in `PLC_PRG` per cycle | 125 ns | 11 661 ns | +| Longest time in `PLC_PRG` in the window | 2 us | 3 668 us | +| Cycles under 10 us | 8 947 of 8 947 | 9 559 of 12 003 | +| Cycles 10 to 50 us | 0 | 1 421 | +| Cycles 50 to 100 us | 0 | 1 008 | +| Cycles 100 us to 1 ms | 0 | 13 | +| Cycles 1 to 10 ms | 0 | 2 | +| Messages sent / refused / slots skipped | 0 / 0 / 0 | 2 853 / 0 / 0 | What that says: -* **The mean cost is about 8.7 us per cycle**, which is 0.04 percent of a 20 ms task. Spread over the cycles that send, a cycle that sends two 1.1 KB messages costs about 44 us, so about 22 us per message. That is the cost of building the message byte by byte in Structured Text and one non-blocking `sendto`. -* **The worst case in the window was 3.1 ms against 1.0 ms for the baseline.** The baseline's 1 ms is the container and the shared host (the program does nothing but count), so the part this library can claim is bounded by about 2 ms, in a 20 ms task, on a loaded machine. It is not a real-time guarantee: this was a container on a general purpose kernel. -* **No send blocked.** `udiSendErrors` stayed 0. -* **28 publish slots were counted as skipped, all in the first seconds after the runtime started** (the runtime was making its keys). The counter did not move again in the window or in the minutes after it. +* **A cycle that sends costs 10 to 100 us.** About 2 400 cycles in the window sent (one in five), and 2 444 cycles took 10 us or more, so the sending cycles are the whole of the cost: 58 percent of them took 10 to 50 us and 41 percent took 50 to 100 us, for two messages of about 1.1 KB. The cycles in between cost what the baseline costs. +* **The mean added cost is about 11.5 us per 20 ms cycle**, 0.06 percent of the task. +* **The tail is the send call.** The longest message took 3.65 ms, of which `udiMaxSendUs` (the `sendto` itself) was 3.65 ms and `udiMaxEncodeUs` (building the message) 0.76 ms. `sendto` is a kernel call into a container network on a busy host, and the block cannot make it faster. It is non-blocking in the sense that it never waits for the network; it can still be slow when the kernel is busy. +* **No send was refused and no slot was skipped** in the window. -What this does not tell you: the cost on a physical controller, where a small ARM CPU can be ten to a hundred times slower than this host. The block's cost is the time to copy the published bytes, so it grows with the size of the field list. Measure it on the target with `udiLastCallUs` and `udiMaxCallUs` on the block, which are there for that. +An earlier run on the same host, with the runtime sharing cores with a build (load average 37), saw single stalls of 1.0 s in the encode and 2.5 s in the send and 460 skipped slots. The encode is plain arithmetic, so a one second stall in it is the runtime's thread not being scheduled, not the block. That run is kept in the evidence folder (`run3-all-loaded.out`) because it shows the limit of this measurement: this is a container on a general purpose kernel with no real-time scheduling, so it says what the block costs, and says nothing about the worst case a PLC task can suffer on such a host. + +What this does not tell you: the cost on a physical controller. A small ARM CPU can be ten to a hundred times slower than this host, and the cost grows with the size of the field list. Measure it on the target with `udiLastCallUs`, `udiMaxCallUs`, `udiMaxEncodeUs` and `udiMaxSendUs` on the block, which are there for that. From ba1933b76b877307c3ad2ec05163d0eaf762a306 Mon Sep 17 00:00:00 2001 From: patrickryan01 Date: Sun, 1 Nov 2026 12:59:19 -0500 Subject: [PATCH 05/12] docs: the transmitter pages carry no customer name and the raw data reading from the opc foundation's stack --- src/content/docs/transmitter/overview.md | 2 +- src/content/docs/transmitter/proof.md | 18 +++++++++++------- src/content/docs/transmitter/wire-format.md | 4 +--- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/content/docs/transmitter/overview.md b/src/content/docs/transmitter/overview.md index 977ad6c..f2ef11c 100644 --- a/src/content/docs/transmitter/overview.md +++ b/src/content/docs/transmitter/overview.md @@ -67,6 +67,6 @@ sections of the spec that define each byte. * It does not fragment. A message is at most 1472 bytes. A field list that does not fit puts the block in `ConfigError` and sends nothing. -The wire format is in [What goes on the wire](/transmitter/wire-format/), every input and method is in the [API](/transmitter/api/), and what was run is in [What was run](/transmitter/proof/). +The wire format is in [What goes on the wire](/tx2/wire-format/), every input and method is in the [API](/transmitter/api/), and what was run is in [What was run](/transmitter/proof/). HotLoop Transmitter is under the HotLoop Business Source License 1.1, like every HotLoop product. diff --git a/src/content/docs/transmitter/proof.md b/src/content/docs/transmitter/proof.md index b76d7ee..5a4e98b 100644 --- a/src/content/docs/transmitter/proof.md +++ b/src/content/docs/transmitter/proof.md @@ -26,20 +26,24 @@ The example application has two publishers, both to a capture listener on a Podm |---|---|---|---| | `test/verify` | a decoder written from OPC 10000-14 and 10000-6 alone, which also reads the same variables from the runtime's OPC UA server and compares them | every field equal to the PLC's, no gap in the NetworkMessage and DataSetMessage sequence numbers over 117 to 119 messages | the same | | open62541 1.4.9 | an independent PubSub implementation, built from its release tarball (sha256 `8735e61391cde0d84e6347a4293d2400b6a72838fb44513caf22d70dfca3a0cf`), run as a subscriber with a DataSet metadata of the 17 fields | all 15 values checked equal, including the string, both arrays and the TIME | the 11 numeric scalars equal. Its RawData reader reads one scalar per field and bounds its buffer by the fields' in-memory sizes (`DataSetReader_processRaw`, `src/pubsub/ua_pubsub_reader.c`), so it cannot read a RawData string longer than a few characters or any RawData array | -| UT3-Code `uadp.Decode` at commit 79157e7a | the decoder in the Fireball UT3 receiver | 118 of 118 messages decoded, every value correct | refused: `trailing_bytes: 52 bytes after the last RawData field are not padding` | +| A second Go decoder | the UADP decoder in our own receiver code, at commit 79157e7a of that repository | 118 of 118 messages decoded, every value correct | refused: `trailing_bytes: 52 bytes after the last RawData field are not padding` | Wireshark 4.4.7's `tshark` (Alpine package) was tried on a capture and dissects UDP port 4840 as plain data: its OPC UA dissector is for the TCP protocol, so it was not usable as a UADP decoder. HotLoop core's UADP subscribe (agent HK, bead 5a8ca6) has no code in its branch yet (`git grep -il uadp` over `hk/kafka-uadp` found no Go file), so it was not run. -## The RawData disagreement +## RawData arrays and strings -The UT3-Code decoder reads a RawData array as back-to-back elements. This library writes an Int32 element count first, and a string as an Int32 length, its bytes, then zero padding up to MaxStringLength. The reasoning, with its sources: +This library writes an Int32 element count before each RawData array, and a string as an Int32 length, its bytes, then zero padding up to MaxStringLength. That is what the OPC Foundation's reference stack does. It was looked up, not argued from the spec text alone: -1. OPC 10000-14, 7.2.4.5.11: "The encoding of the DataSetMessage fields is handled like a Structure DataType", with padding "to the maximum size indicated by ArrayDimensions or MaxStringLength". -2. OPC 10000-6, 5.2.5: "One dimensional Arrays are encoded as a sequence of elements preceded by the number of elements encoded as an Int32 value." +* UA-.NETStandard at commit `fcfc84eab5c105780d7268474a47d344d100aca1`, `src/Opc.Ua.PubSub/Encoding/Uadp/UadpBinaryReader.cs` lines 389 to 403 (the `ReadRawScalar` documentation) and 593 to 648 (`TryReadPaddedArray`): arrays keep their Part 6 length prefix and the block is padded to `product(ArrayDimensions)` elements, and a string is an Int32 length inside a `4 + MaxStringLength` block. +* The same repository's `tests/Opc.Ua.PubSub.Tests/Encoding/Uadp/UadpRawDataPaddingTests.cs` asserts the string layout. +* The spec text it implements: OPC 10000-14 7.2.4.5.11 ("handled like a Structure DataType", padding "to the maximum size indicated by ArrayDimensions or MaxStringLength") with OPC 10000-6 5.2.5 ("One dimensional Arrays are encoded as a sequence of elements preceded by the number of elements encoded as an Int32 value"). +* open62541 1.4.9 does not read RawData arrays at all, so it neither agrees nor disagrees. -Put together, an array field in RawData carries its count. The spec text never says so in one sentence, and the only other implementation tried here (open62541) does not read RawData arrays at all, so the array count is the one choice in this library that has a second reader's agreement on neither side. UT3-Code's `fields.go` states the opposite reading (a RawData array and separate fields are the same bytes). Which of the two is Part 14's meaning is a question for whoever owns the receiver or for the OPC Foundation; this repository did not touch the receiver. Variant has no such ambiguity and is the default. +The second Go decoder above reads a RawData array as back-to-back elements, with no count, so it refuses this library's RawData with `trailing_bytes`. By the reference stack that decoder is the one that is wrong. It is tracked in the codex as a bead and is not changed here. Variant has no such question and is the default. + +One difference from the reference stack: where it throws when a string is longer than MaxStringLength, this library cuts it at a character boundary, because a PLC task has nowhere to throw to. ## Not verified @@ -47,4 +51,4 @@ Put together, an array field in RawData carries its count. The spec text never s * Multicast. The block sets the TTL, loopback and send interface for a multicast group; the lab used unicast only. * A runtime that loses and regains its network, and a send to an address that is not there. The code counts failures and backs off, but a deliberate fault test was not run. * The behavior at the end of the two hour demo window. -* Receivers other than the three above. +* Receivers other than the ones above. diff --git a/src/content/docs/transmitter/wire-format.md b/src/content/docs/transmitter/wire-format.md index 848c01b..2558dc2 100644 --- a/src/content/docs/transmitter/wire-format.md +++ b/src/content/docs/transmitter/wire-format.md @@ -87,9 +87,7 @@ fields are "handled like a Structure DataType", so each value is encoded as a St because the field cannot grow. A receiver's field metadata must carry the same MaxStringLength and an ArrayDimensions entry for each array. -The array count is the one place where receivers have disagreed in practice: open62541 1.4.9 reads it, and the -decoder in UT3-Code at commit 79157e7a does not (see `docs/PROOF.md`). The reading above is the one the two quoted -sentences support. +This is the reading of the OPC Foundation's own reference stack. In UA-.NETStandard (commit `fcfc84eab5c105780d7268474a47d344d100aca1`), `src/Opc.Ua.PubSub/Encoding/Uadp/UadpBinaryReader.cs` lines 389 to 403 say a string is "read like a Structure field (Int32 length prefix and value) from a fixed-size 4 + MaxStringLength byte block whose remainder is zero padding", and that for an array "the array's Part 6 length (or dimensions) prefix gives the actual element count and the block is padded to product(arrayDimensions) elements". `TryReadPaddedArray` at lines 593 to 648 implements it, and `tests/Opc.Ua.PubSub.Tests/Encoding/Uadp/UadpRawDataPaddingTests.cs` asserts it. `docs/PROOF.md` has the rest. ## Size From acd364c4f8a4f6300d7643398ba7bd355bf1e1c2 Mon Sep 17 00:00:00 2001 From: patrickryan01 Date: Sun, 1 Nov 2026 13:00:18 -0500 Subject: [PATCH 06/12] docs: the overview links to the wire format page it means --- src/content/docs/transmitter/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/transmitter/overview.md b/src/content/docs/transmitter/overview.md index f2ef11c..977ad6c 100644 --- a/src/content/docs/transmitter/overview.md +++ b/src/content/docs/transmitter/overview.md @@ -67,6 +67,6 @@ sections of the spec that define each byte. * It does not fragment. A message is at most 1472 bytes. A field list that does not fit puts the block in `ConfigError` and sends nothing. -The wire format is in [What goes on the wire](/tx2/wire-format/), every input and method is in the [API](/transmitter/api/), and what was run is in [What was run](/transmitter/proof/). +The wire format is in [What goes on the wire](/transmitter/wire-format/), every input and method is in the [API](/transmitter/api/), and what was run is in [What was run](/transmitter/proof/). HotLoop Transmitter is under the HotLoop Business Source License 1.1, like every HotLoop product. From c0940b34648ce392e1e95fffede0edff606032af Mon Sep 17 00:00:00 2001 From: patrickryan01 Date: Sun, 1 Nov 2026 13:01:37 -0500 Subject: [PATCH 07/12] chore: hotloop transmitter comes off the forbidden list in the change that adds it, held with the rest --- scripts/forbidden.mjs | 3 --- 1 file changed, 3 deletions(-) diff --git a/scripts/forbidden.mjs b/scripts/forbidden.mjs index c9f8cf8..e9d7bfb 100644 --- a/scripts/forbidden.mjs +++ b/scripts/forbidden.mjs @@ -2,15 +2,12 @@ // own, so no customer is named, not even by a project code, and a product that has not shipped // is not on the page. The build and the sync both fail on a match, in the generated pages, the // built HTML, the search index, and the strings the social cards are drawn from. -// -// When HotLoop Transmitter ships, take it off this list in the same change that adds it to the site. export const FORBIDDEN = [ [/\bUT3\b/i, 'UT3, a customer project code'], [/\bTrane\b/i, 'Trane, a customer'], [/tranetech/i, 'tranetech, a customer tenant'], [/expert[ -]?lift/i, 'Expert Lift, a customer'], [/a customer'?s? production (program|plc)/i, 'a customer program, described by whose it is'], - [/HotLoop Transmitter/, 'HotLoop Transmitter, which is not on the public lineup until it ships'], ]; // Returns one line per match, with a little of the text around it. From 032991e9f559fb38a83b194de756c0638b304084 Mon Sep 17 00:00:00 2001 From: patrickryan01 Date: Mon, 2 Nov 2026 18:33:18 -0500 Subject: [PATCH 08/12] fix(docs): the cascade install and status pages name 1.0.2, because the readme they come from still said 1.0.1 was out --- scripts/sync-docs.mjs | 2 +- scripts/sync-manifest.mjs | 12 ++++++++++++ src/content/docs/cascade/running.md | 4 ++-- src/content/docs/cascade/status.md | 4 ++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/scripts/sync-docs.mjs b/scripts/sync-docs.mjs index 029618e..d16cfd1 100644 --- a/scripts/sync-docs.mjs +++ b/scripts/sync-docs.mjs @@ -374,7 +374,7 @@ function transform(page) { re.lastIndex = 0; if (!re.test(body) && [...(e.rules || []), ...(SLUG_RULES[e.slug] || [])].some(([r]) => r === re)) fail(`${e.slug}: a page rule no longer matches its source: ${re}`); re.lastIndex = 0; - body = body.replace(re, typeof to === 'function' ? to : to.replace('{{LICENSE_URL}}', licenseUrl())); + body = body.replace(re, typeof to === 'function' ? to : to.replace('{{LICENSE_URL}}', licenseUrl()).replace(/\{\{(hotloop|flow|cascade)\}\}/g, (_, r) => releases[r].version)); } // A table with an empty header cell leaves every cell under it unlabeled for a screen reader. { diff --git a/scripts/sync-manifest.mjs b/scripts/sync-manifest.mjs index 892112c..804961a 100644 --- a/scripts/sync-manifest.mjs +++ b/scripts/sync-manifest.mjs @@ -220,6 +220,18 @@ Object.assign(SLUG_RULES, { .map(([n, l, d, i, r, m]) => `| **HotLoop ${n}** | ${l} | Docs | Install | Notes | Roadmap |`).join('\n') + '\n\nThe table that follows compares the four core products.'], ], + // Cascade's README on main still says 1.0.1 is the release out today. 1.0.2 is the release, so + // the install lines name the latest release, and the status page says what 1.0.2 is. Each rule + // fails the sync the moment the README is fixed at the source, and then it comes out of here. + 'cascade/running': [ + [/(?hotloop-cascade:)\d+\.\d+\.\d+/g, "${{cascade}}"], + [/(?hotloop-cascade --version )\d+\.\d+\.\d+/g, "${{cascade}}"], + ], + 'cascade/status': [ + [ws('1.0.1 is the release out today, and 1.0.0 is the one before it.'), + '1.0.2 is the release out today, and 1.0.1 and 1.0.0 are the two before it. 1.0.2 lets a workflow sign and verify with an HMAC key kept as a credential, and lets a public form on another website call a webhook from the browser. Nothing else changed from 1.0.1.'], + [ws('with tags `1.0.1`,'), 'with tags `{{cascade}}`,'], + ], 'cascade/overview': [ [ws("scoped API keys and HA workers ship to everyone. There is no license check anywhere in the code, so there's nothing to rug-pull later."), 'scoped API keys and HA workers are all in the one binary. There is no license check anywhere in the code.'], ], diff --git a/src/content/docs/cascade/running.md b/src/content/docs/cascade/running.md index e2bba6c..a0cdbec 100644 --- a/src/content/docs/cascade/running.md +++ b/src/content/docs/cascade/running.md @@ -14,7 +14,7 @@ it. To pull a version by hand: ```sh -podman pull ghcr.io/hotloop-io/hotloop-cascade:1.0.1 +podman pull ghcr.io/hotloop-io/hotloop-cascade:1.0.2 ``` The units follow `:stable` and Podman's auto-update timer moves them. @@ -22,7 +22,7 @@ The units follow `:stable` and Podman's auto-update timer moves them. On k3s, `charts/hotloop-cascade` is the Helm chart: ```sh -helm install cascade oci://ghcr.io/hotloop-io/charts/hotloop-cascade --version 1.0.1 +helm install cascade oci://ghcr.io/hotloop-io/charts/hotloop-cascade --version 1.0.2 ``` The chart carries the labels the EmberNet dashboard reads, on the Service and on diff --git a/src/content/docs/cascade/status.md b/src/content/docs/cascade/status.md index 56d4a08..3ad27df 100644 --- a/src/content/docs/cascade/status.md +++ b/src/content/docs/cascade/status.md @@ -5,7 +5,7 @@ description: "Cascade is released: what is in it, what is not in it yet, and whe editUrl: false --- -1.0.1 is the release out today, and 1.0.0 is the one before it. 1.0.0 is the first +1.0.2 is the release out today, and 1.0.1 and 1.0.0 are the two before it. 1.0.2 lets a workflow sign and verify with an HMAC key kept as a credential, and lets a public form on another website call a webhook from the browser. Nothing else changed from 1.0.1. 1.0.0 is the first with the identity and governance work, each piece tried against the real server it talks to: SAML (against Keycloak), LDAP and Active Directory (OpenLDAP and a Samba domain controller), SCIM (against scim2-tester), custom roles, external secrets @@ -21,5 +21,5 @@ What isn't here yet (Git source control and environments, more connectors, AI st and an MCP server) is in `docs/ROADMAP.md`. The repository is private. The image and the chart are public and pull with no -login. The image is `ghcr.io/hotloop-io/hotloop-cascade`, with tags `1.0.1`, +login. The image is `ghcr.io/hotloop-io/hotloop-cascade`, with tags `1.0.2`, `1.0`, `1`, `latest` and `stable`, for amd64 and arm64. From cf3fd257f9976b87f5ce176c8e583546bf258e50 Mon Sep 17 00:00:00 2001 From: patrickryan01 Date: Mon, 2 Nov 2026 18:38:30 -0500 Subject: [PATCH 09/12] feat(docs): i added transmitter beside codesys and moved the lineup to eight products on five release lines, with the cascade install pages naming 1.0.2 --- scripts/sync-docs.mjs | 6 +++++- scripts/sync-manifest.mjs | 15 +++++++++------ src/components/ProductPicker.astro | 7 +++++-- src/content/docs/index.mdx | 2 +- src/content/docs/products.md | 11 ++++++----- src/content/docs/releases/index.md | 8 ++++++-- src/content/docs/roadmap.md | 2 +- src/data/sync.json | 8 +++++++- 8 files changed, 40 insertions(+), 19 deletions(-) diff --git a/scripts/sync-docs.mjs b/scripts/sync-docs.mjs index be2c683..d0dcf5d 100644 --- a/scripts/sync-docs.mjs +++ b/scripts/sync-docs.mjs @@ -472,7 +472,7 @@ for (const [slug, p] of mainPages) { .sort((a, b) => b.slug.localeCompare(a.slug, undefined, { numeric: true })) .map((m) => `- [${m.title}](/${m.slug}/)${m.status === 'next' ? ' (on main, next release)' : ''}`) .join('\n'); - const fm = ['---', MARK, 'title: "Release notes"', 'description: "What shipped in every HotLoop core, HotLoop Flow, HotLoop Cascade and HotLoop for CODESYS release, and what is on main waiting for the next one, newest first."', 'editUrl: false', '---', ''].join('\n'); + const fm = ['---', MARK, 'title: "Release notes"', 'description: "What shipped in every HotLoop core, Flow, Cascade, CODESYS and Transmitter release, and what is on main waiting for the next one, newest first."', 'editUrl: false', '---', ''].join('\n'); out.set('releases/index.md', `${fm} Every release has its own page, written the day it shipped. A note marked "on main, next release" describes a release that is not out yet, so nothing in it is in what you have installed. The latest HotLoop core release is ${releases.hotloop.version}, the latest Flow release is ${releases.flow.version}, and the latest Cascade release is ${releases.cascade.version}. ${CODESYS.released ? `The latest HotLoop for CODESYS release is ${CODESYS.version}.` : 'HotLoop for CODESYS has not been released yet.'} @@ -493,6 +493,10 @@ ${rows('cascade')} ## HotLoop for CODESYS - [HotLoop for CODESYS ${CODESYS.version} release notes](/releases/codesys-${CODESYS.version.replace(/\./g, '-')}/)${CODESYS.released ? '' : ' (not released yet)'} + +## HotLoop Transmitter + +- [HotLoop Transmitter 1.0.0 release notes](/releases/transmitter-1-0-0/) (draft, not released yet) `); } diff --git a/scripts/sync-manifest.mjs b/scripts/sync-manifest.mjs index 3ec084f..0f51264 100644 --- a/scripts/sync-manifest.mjs +++ b/scripts/sync-manifest.mjs @@ -16,7 +16,7 @@ export const REPOS = { cascade: { slug: 'HotLoop-io/hotloop-cascade', private: true, releaseName: 'HotLoop Cascade' }, }; -// The seven sections of the site, in the order the product picker shows them. +// The eight sections of the site, in the order the product picker shows them. export const PRODUCTS = [ { id: 'iot', name: 'HotLoop IoT', repo: 'hotloop', tagline: 'The automation base, built in Go for OT.' }, { id: 'edge', name: 'HotLoop Edge', repo: 'hotloop', tagline: 'IoT plus the machine layer.' }, @@ -26,6 +26,8 @@ export const PRODUCTS = [ { id: 'cascade', name: 'HotLoop Cascade', repo: 'cascade', tagline: 'The plant talking to everything else.' }, // No repo here: HotLoop for CODESYS has no release to compare pages against, so its pages are all hand-written (src/pinned/codesys). { id: 'codesys', name: 'HotLoop for CODESYS', repo: null, tagline: 'Screens and alarms for a CODESYS PLC, beside the runtime.' }, + // Hand-written like CODESYS: the library has no release yet, and its pages are plain files in src/content/docs/transmitter. + { id: 'transmitter', name: 'HotLoop Transmitter', repo: null, tagline: 'OPC UA PubSub from inside the PLC.' }, ]; // HotLoop for CODESYS, the seventh product and its own release line (HotLoop-io/hotloop-codesys). @@ -114,7 +116,7 @@ export const PAGES = [ { product: 'shared', group: 'Install', slug: 'install/helm', repo: 'hotloop', file: 'docs/DEPLOYMENT.md', title: 'k3s and Helm', description: 'Deploy any HotLoop chart on k3s or any Kubernetes: the values worth setting, the database choice, upgrades, rollbacks and what a good install looks like.' }, { product: 'shared', group: 'Install', slug: 'install/quadlet', repo: 'hotloop', file: 'deploy/quadlet/README.md', stopAt: 'Updates', title: 'Podman Quadlet', description: 'Run HotLoop as real systemd services on a Pi or small industrial PC with Podman Quadlet, with no Docker, no Compose and no cluster.' }, { product: 'shared', group: 'Install', slug: 'install/auto-update', repo: 'hotloop', file: 'deploy/quadlet/README.md', sections: ['Updates'], title: 'The :stable auto-update', description: 'Every box follows the stable tag and Podman moves it. What an update does, what a rollback cannot undo, and how to hold updates until you say.' }, - { product: 'shared', group: 'Lineup', slug: 'products', repo: 'hotloop', file: 'docs/PRODUCTS.md', title: 'HotLoop products: seven on four release lines', description: 'Seven products on four release lines, what each of the four core products has, which database each runs, and how to move a site up a product.' }, + { product: 'shared', group: 'Lineup', slug: 'products', repo: 'hotloop', file: 'docs/PRODUCTS.md', title: 'HotLoop products: eight on five release lines', description: 'Eight products on five release lines, what each of the four core products has, which database each runs, and how to move a site up a product.' }, { product: 'shared', group: 'Lineup', slug: 'roadmap', repo: 'hotloop', file: 'docs/ROADMAP.md', title: 'HotLoop roadmap', description: "What HotLoop is, what is left to build and what is broken, in the order it gets done, for HotLoop core. Flow and Cascade link their own." }, // ---- HotLoop Flow ---- @@ -217,13 +219,13 @@ Object.assign(SLUG_RULES, { roadmap: [ // The roadmap is the core's. Say so, and say where the other two lines keep theirs. Links are HTML because the link pass runs after the rules and would drop a site path. [ws('HotLoop core ships as four products out of one codebase. See [Products](#products).'), - 'HotLoop is seven products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, and HotLoop for CODESYS for the PLC\'s own screen. This roadmap is for HotLoop core, the four products that come out of one codebase. See [Products](#products). Flow, Cascade, and HotLoop for CODESYS keep their own, in the Flow roadmap, the Cascade roadmap, and the HotLoop for CODESYS roadmap.'], + 'HotLoop is eight products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, HotLoop for CODESYS for the PLC\'s own screens, and Transmitter for putting its values on the wire. This roadmap is for HotLoop core, the four products that come out of one codebase. See [Products](#products). Flow, Cascade, HotLoop for CODESYS, and Transmitter keep their own, in the Flow roadmap, the Cascade roadmap, the HotLoop for CODESYS roadmap, and the Transmitter roadmap.'], ], 'products': [ [ws('HotLoop core is four products, one codebase, one tag. Every core release ships all four in lockstep,'), - 'HotLoop is seven products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, and HotLoop for CODESYS for the PLC\'s own screen.\n\nThey ship on four release lines. **HotLoop core** is IoT, Edge, Gateway, and Edge Relay: four products, one codebase, one tag. Every core release ships all four in lockstep,'], + 'HotLoop is eight products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, HotLoop for CODESYS for the PLC\'s own screens, and Transmitter for putting its values on the wire.\n\nThey ship on five release lines. **HotLoop core** is IoT, Edge, Gateway, and Edge Relay: four products, one codebase, one tag. Every core release ships all four in lockstep,'], [ws("PLC on your bench. Features split them. Protocols don't."), - "PLC on your bench. Features split them. Protocols don't.\n\n**Flow**, **Cascade**, and **HotLoop for CODESYS** are their own lines with their own versions, so a Flow release never moves the core, and the other way around. Everything below the table is about the core. Here is where each of the seven starts:\n\n" + "PLC on your bench. Features split them. Protocols don't.\n\n**Flow**, **Cascade**, **HotLoop for CODESYS**, and **Transmitter** are their own lines with their own versions, so a Flow release never moves the core, and the other way around. Everything below the table is about the core. Here is where each of the eight starts:\n\n" + '| Product | Release line | Docs | Install | Release notes | Roadmap |\n|---|---|---|---|---|---|\n' + [['IoT', 'HotLoop core', 'iot/overview', 'iot/install', 'releases/#hotloop-core', 'roadmap'], ['Edge', 'HotLoop core', 'edge/overview', 'edge/install', 'releases/#hotloop-core', 'roadmap'], @@ -231,7 +233,8 @@ Object.assign(SLUG_RULES, { ['Edge Relay', 'HotLoop core', 'edge-relay/overview', 'edge-relay/install', 'releases/#hotloop-core', 'roadmap'], ['Flow', 'Flow', 'flow/overview', 'flow/install', 'releases/#hotloop-flow', 'flow/roadmap'], ['Cascade', 'Cascade', 'cascade/overview', 'cascade/running', 'releases/#hotloop-cascade', 'cascade/roadmap'], - ['for CODESYS', 'HotLoop for CODESYS', 'codesys/overview', 'codesys/install', 'releases/#hotloop-for-codesys', 'codesys/roadmap']] + ['for CODESYS', 'HotLoop for CODESYS', 'codesys/overview', 'codesys/install', 'releases/#hotloop-for-codesys', 'codesys/roadmap'], + ['Transmitter', 'Transmitter', 'transmitter/overview', 'transmitter/install', 'releases/transmitter-1-0-0', 'transmitter/roadmap']] .map(([n, l, d, i, r, m]) => `| **HotLoop ${n}** | ${l} | Docs | Install | Notes | Roadmap |`).join('\n') + '\n\nThe table that follows compares the four core products.'], ], diff --git a/src/components/ProductPicker.astro b/src/components/ProductPicker.astro index 2f9fc3c..b2f0519 100644 --- a/src/components/ProductPicker.astro +++ b/src/components/ProductPicker.astro @@ -1,5 +1,5 @@ --- -// The family map: seven products on four release lines, each with the same five things +// The family map: eight products on five release lines, each with the same five things // (docs, install, release notes, roadmap, and its version). Versions and release state // come from src/data/sync.json, which the sync writes, so this can't disagree with the pages. import sync from '../data/sync.json'; @@ -8,6 +8,8 @@ const hot = sync.repos.hotloop.release; const flow = sync.repos.flow.release; const cascade = sync.repos.cascade.release; const codesys = sync.codesys; +// Transmitter has no release yet. When one ships, set this to true and give it the version. +const transmitter = { released: false, version: '1.0.0' }; const latest = (prefix: string) => sync.pages.filter((p) => p.release && p.status !== 'next' && p.slug.startsWith(prefix)).map((p) => p.slug).sort((a, b) => b.localeCompare(a, undefined, { numeric: true }))[0]; @@ -17,8 +19,9 @@ const lines = [ { id: 'flow', label: 'Flow', version: flow.version, note: 'Its own release line, running next to HotLoop.', notes: `/${latest('releases/flow-')}/`, roadmap: '/flow/roadmap/', ids: ['flow'] }, { id: 'cascade', label: 'Cascade', version: cascade.version, note: cascade.prerelease ? 'Pre-release. Its own release line, running next to HotLoop.' : 'Its own release line, running next to HotLoop.', notes: `/${latest('releases/cascade-')}/`, roadmap: '/cascade/roadmap/', ids: ['cascade'] }, { id: 'codesys', label: 'HotLoop for CODESYS', version: codesys.version, note: codesys.released ? 'Its own release line, running next to HotLoop.' : `Not released yet. It needs HotLoop ${codesys.needsCore}, and nothing of it is published.`, notes: `/releases/codesys-${codesys.version.replace(/\./g, '-')}/`, roadmap: '/codesys/roadmap/', ids: ['codesys'], unreleased: !codesys.released }, + { id: 'transmitter', label: 'Transmitter', version: transmitter.version, note: transmitter.released ? 'Its own release line, running next to HotLoop.' : 'Not released yet. The library builds and has run against a CODESYS runtime in a container, and there is no download.', notes: `/releases/transmitter-${transmitter.version.replace(/\./g, '-')}/`, roadmap: '/transmitter/roadmap/', ids: ['transmitter'], unreleased: !transmitter.released }, ]; -const install: Record = { iot: '/iot/install/', edge: '/edge/install/', gateway: '/gateway/install/', 'edge-relay': '/edge-relay/install/', flow: '/flow/install/', cascade: '/cascade/running/', codesys: '/codesys/install/' }; +const install: Record = { iot: '/iot/install/', edge: '/edge/install/', gateway: '/gateway/install/', 'edge-relay': '/edge-relay/install/', flow: '/flow/install/', cascade: '/cascade/running/', codesys: '/codesys/install/', transmitter: '/transmitter/install/' }; ---
diff --git a/src/content/docs/index.mdx b/src/content/docs/index.mdx index a3d416c..9666f0a 100644 --- a/src/content/docs/index.mdx +++ b/src/content/docs/index.mdx @@ -23,7 +23,7 @@ import LatestReleases from '../../components/LatestReleases.astro'; ## The family -HotLoop is seven products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, and HotLoop for CODESYS for the PLC's own screen. They ship on four release lines, so each carries its own version. Each section in the sidebar shows only what that product ships, and a bigger product links back to the pages it carries from a smaller one. +HotLoop is eight products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, HotLoop for CODESYS for the PLC's own screens, and Transmitter for putting its values on the wire. They ship on four release lines, so each carries its own version. Each section in the sidebar shows only what that product ships, and a bigger product links back to the pages it carries from a smaller one. diff --git a/src/content/docs/products.md b/src/content/docs/products.md index 7d52e8f..461da51 100644 --- a/src/content/docs/products.md +++ b/src/content/docs/products.md @@ -1,7 +1,7 @@ --- # generated by scripts/sync-docs.mjs -title: "HotLoop products: seven on four release lines" -description: "Seven products on four release lines, what each of the four core products has, which database each runs, and how to move a site up a product." +title: "HotLoop products: eight on five release lines" +description: "Eight products on five release lines, what each of the four core products has, which database each runs, and how to move a site up a product." editUrl: false --- @@ -9,14 +9,14 @@ editUrl: false This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: -HotLoop is seven products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, and HotLoop for CODESYS for the PLC's own screen. +HotLoop is eight products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, HotLoop for CODESYS for the PLC's own screens, and Transmitter for putting its values on the wire. -They ship on four release lines. **HotLoop core** is IoT, Edge, Gateway, and Edge Relay: four products, one codebase, one tag. Every core release ships all four in lockstep, same version, each with its own image, its own Helm chart and its own +They ship on five release lines. **HotLoop core** is IoT, Edge, Gateway, and Edge Relay: four products, one codebase, one tag. Every core release ships all four in lockstep, same version, each with its own image, its own Helm chart and its own Podman Quadlet units. Pick the one that fits the box. Every product speaks every protocol HotLoop has, so you never step up a product just to read the PLC on your bench. Features split them. Protocols don't. -**Flow**, **Cascade**, and **HotLoop for CODESYS** are their own lines with their own versions, so a Flow release never moves the core, and the other way around. Everything below the table is about the core. Here is where each of the seven starts: +**Flow**, **Cascade**, **HotLoop for CODESYS**, and **Transmitter** are their own lines with their own versions, so a Flow release never moves the core, and the other way around. Everything below the table is about the core. Here is where each of the eight starts: | Product | Release line | Docs | Install | Release notes | Roadmap | |---|---|---|---|---|---| @@ -27,6 +27,7 @@ PLC on your bench. Features split them. Protocols don't. | **HotLoop Flow** | Flow | Docs | Install | Notes | Roadmap | | **HotLoop Cascade** | Cascade | Docs | Install | Notes | Roadmap | | **HotLoop for CODESYS** | HotLoop for CODESYS | Docs | Install | Notes | Roadmap | +| **HotLoop Transmitter** | Transmitter | Docs | Install | Notes | Roadmap | The table that follows compares the four core products. diff --git a/src/content/docs/releases/index.md b/src/content/docs/releases/index.md index 13cfe76..938e0ca 100644 --- a/src/content/docs/releases/index.md +++ b/src/content/docs/releases/index.md @@ -1,11 +1,11 @@ --- # generated by scripts/sync-docs.mjs title: "Release notes" -description: "What shipped in every HotLoop core, HotLoop Flow, HotLoop Cascade and HotLoop for CODESYS release, and what is on main waiting for the next one, newest first." +description: "What shipped in every HotLoop core, Flow, Cascade, CODESYS and Transmitter release, and what is on main waiting for the next one, newest first." editUrl: false --- -Every release has its own page, written the day it shipped. A note marked "on main, next release" describes a release that is not out yet, so nothing in it is in what you have installed. The latest HotLoop core release is 4.18.11, the latest Flow release is 2.8.1, and the latest Cascade release is 1.0.2. +Every release has its own page, written the day it shipped. A note marked "on main, next release" describes a release that is not out yet, so nothing in it is in what you have installed. The latest HotLoop core release is 4.18.11, the latest Flow release is 2.8.1, and the latest Cascade release is 1.0.2. HotLoop for CODESYS has not been released yet. ## HotLoop core @@ -41,3 +41,7 @@ IoT, Edge, Gateway and Edge Relay release together from one tag, so they share t ## HotLoop for CODESYS - [HotLoop for CODESYS 0.3.0 release notes](/releases/codesys-0-3-0/) (not released yet) + +## HotLoop Transmitter + +- [HotLoop Transmitter 1.0.0 release notes](/releases/transmitter-1-0-0/) (draft, not released yet) diff --git a/src/content/docs/roadmap.md b/src/content/docs/roadmap.md index 3b4b42b..668151c 100644 --- a/src/content/docs/roadmap.md +++ b/src/content/docs/roadmap.md @@ -25,7 +25,7 @@ Every line of it is ours. Nothing is embedded, bridged or forked, so when something breaks at 3 AM there's one codebase to read and nobody else's bug to wait on. -HotLoop is seven products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, and HotLoop for CODESYS for the PLC's own screen. This roadmap is for HotLoop core, the four products that come out of one codebase. See [Products](#products). Flow, Cascade, and HotLoop for CODESYS keep their own, in the Flow roadmap, the Cascade roadmap, and the HotLoop for CODESYS roadmap. +HotLoop is eight products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, HotLoop for CODESYS for the PLC's own screens, and Transmitter for putting its values on the wire. This roadmap is for HotLoop core, the four products that come out of one codebase. See [Products](#products). Flow, Cascade, HotLoop for CODESYS, and Transmitter keep their own, in the Flow roadmap, the Cascade roadmap, the HotLoop for CODESYS roadmap, and the Transmitter roadmap. ## Products diff --git a/src/data/sync.json b/src/data/sync.json index ebf7a4c..7c6764c 100644 --- a/src/data/sync.json +++ b/src/data/sync.json @@ -79,6 +79,12 @@ "name": "HotLoop for CODESYS", "repo": null, "tagline": "Screens and alarms for a CODESYS PLC, beside the runtime." + }, + { + "id": "transmitter", + "name": "HotLoop Transmitter", + "repo": null, + "tagline": "OPC UA PubSub from inside the PLC." } ], "codesys": { @@ -433,7 +439,7 @@ "slug": "products", "product": "shared", "group": "Lineup", - "title": "HotLoop products: seven on four release lines", + "title": "HotLoop products: eight on five release lines", "label": null, "status": "changed", "repo": "hotloop", From abc8e82db1bb094f001fd0ed99a9ccff62bfe462 Mon Sep 17 00:00:00 2001 From: patrickryan01 Date: Mon, 2 Nov 2026 21:48:06 -0500 Subject: [PATCH 10/12] fix(docs): the cascade pages follow the readme now that it says 1.0.2, the terms name eight products, and the codesys install page says its chart is not out --- scripts/sync-docs.mjs | 2 ++ scripts/sync-manifest.mjs | 12 ------------ src/content/docs/cascade/running.md | 4 ++++ src/content/docs/cascade/status.md | 10 ++++++++-- src/content/docs/codesys/install.md | 2 ++ src/data/sync.json | 6 +++--- src/pinned/codesys/install.md | 2 ++ 7 files changed, 21 insertions(+), 17 deletions(-) diff --git a/scripts/sync-docs.mjs b/scripts/sync-docs.mjs index d0dcf5d..bc2662c 100644 --- a/scripts/sync-docs.mjs +++ b/scripts/sync-docs.mjs @@ -305,6 +305,7 @@ HotLoop for CODESYS is built and has run against a real CODESYS runtime in the l ::: `; +const codesysHelmNote = () => `Not released yet, so these commands will not work today. The chart repository at ${CODESYS.chartRepo} answers and lists no chart, so \`helm repo add\` succeeds and \`helm install\` finds nothing to install. They are the commands the chart will take.`; const licenseUrl = () => (legalOut.has('license.md') || (!argv.includes('--legal') && existsSync(join(CONTENT, 'license.md'))) ? '/license/' : 'https://hotloop.io/license/'); function slugHref(slug, anchor) { return `/${slug}/${anchor ? '#' + anchor : ''}`; } @@ -518,6 +519,7 @@ if (existsSync(PINNED)) { // HotLoop for CODESYS has no release to read, so its tokens come from the manifest. The notice is the one // place a page says it is not out, so the day it is, one switch in the manifest takes it off every page. t = t.replace(/\{\{codesysNotice\}\}\n*/g, CODESYS.released ? '' : codesysNotice()) + .replace(/\{\{codesysHelmNote\}\}\n*/g, CODESYS.released ? '' : codesysHelmNote() + '\n\n') .replace(/\{\{codesysNeeds\}\}/g, CODESYS.needsCore).replace(/\{\{codesysChartRepo\}\}/g, CODESYS.chartRepo).replace(/\{\{codesys\}\}/g, CODESYS.version); // A Go template like `{{.Digest}}` in a unit file is content. An unfilled token is {{word}}. if (/\{\{\s*[A-Za-z_]\w*\s*\}\}/.test(t)) fail(`${rel}: an unfilled {{token}}`); diff --git a/scripts/sync-manifest.mjs b/scripts/sync-manifest.mjs index 0f51264..b42fb38 100644 --- a/scripts/sync-manifest.mjs +++ b/scripts/sync-manifest.mjs @@ -238,18 +238,6 @@ Object.assign(SLUG_RULES, { .map(([n, l, d, i, r, m]) => `| **HotLoop ${n}** | ${l} | Docs | Install | Notes | Roadmap |`).join('\n') + '\n\nThe table that follows compares the four core products.'], ], - // Cascade's README on main still says 1.0.1 is the release out today. 1.0.2 is the release, so - // the install lines name the latest release, and the status page says what 1.0.2 is. Each rule - // fails the sync the moment the README is fixed at the source, and then it comes out of here. - 'cascade/running': [ - [/(?hotloop-cascade:)\d+\.\d+\.\d+/g, "${{cascade}}"], - [/(?hotloop-cascade --version )\d+\.\d+\.\d+/g, "${{cascade}}"], - ], - 'cascade/status': [ - [ws('1.0.1 is the release out today, and 1.0.0 is the one before it.'), - '1.0.2 is the release out today, and 1.0.1 and 1.0.0 are the two before it. 1.0.2 lets a workflow sign and verify with an HMAC key kept as a credential, and lets a public form on another website call a webhook from the browser. Nothing else changed from 1.0.1.'], - [ws('with tags `1.0.1`,'), 'with tags `{{cascade}}`,'], - ], 'cascade/overview': [ [ws("scoped API keys and HA workers ship to everyone. There is no license check anywhere in the code, so there's nothing to rug-pull later."), 'scoped API keys and HA workers are all in the one binary. There is no license check anywhere in the code.'], ], diff --git a/src/content/docs/cascade/running.md b/src/content/docs/cascade/running.md index a0cdbec..1277472 100644 --- a/src/content/docs/cascade/running.md +++ b/src/content/docs/cascade/running.md @@ -5,6 +5,10 @@ description: "Run Cascade with Podman Quadlet or Helm on k3s, on SQLite or Postg editUrl: false --- +:::note[Written against main] +This page follows `main` at 1f8ad0c, and it differs from the copy in HotLoop Cascade 1.0.2, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +::: + On a Podman host, `deploy/quadlet` has systemd units. One file and a volume is Cascade on SQLite; `deploy/quadlet/postgres` is the server, a worker and PostgreSQL on a network of their own. Both start at boot, restart on failure and diff --git a/src/content/docs/cascade/status.md b/src/content/docs/cascade/status.md index 3ad27df..64ff720 100644 --- a/src/content/docs/cascade/status.md +++ b/src/content/docs/cascade/status.md @@ -5,7 +5,11 @@ description: "Cascade is released: what is in it, what is not in it yet, and whe editUrl: false --- -1.0.2 is the release out today, and 1.0.1 and 1.0.0 are the two before it. 1.0.2 lets a workflow sign and verify with an HMAC key kept as a credential, and lets a public form on another website call a webhook from the browser. Nothing else changed from 1.0.1. 1.0.0 is the first +:::note[Written against main] +This page follows `main` at 1f8ad0c, and it differs from the copy in HotLoop Cascade 1.0.2, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +::: + +1.0.2 is the release out today, and 1.0.1 and 1.0.0 are the two before it. 1.0.0 is the first with the identity and governance work, each piece tried against the real server it talks to: SAML (against Keycloak), LDAP and Active Directory (OpenLDAP and a Samba domain controller), SCIM (against scim2-tester), custom roles, external secrets @@ -15,7 +19,9 @@ Azurite). It also has a new editor, so every one of those has a screen. 1.0.1 fi one mistake in sign-in: when the database could not be read, Cascade answered "not signed in" and cleared the cookie, so a short outage signed everyone out and could turn a good second factor into a wrong code. Now it says to try again and keeps the -session. Nothing migrates between the two. +session. 1.0.2 lets a workflow sign and verify with an HMAC key kept as a credential, +and lets a public form on another website call a webhook from the browser. Nothing +migrates between 1.0.0 and 1.0.2. What isn't here yet (Git source control and environments, more connectors, AI steps and an MCP server) is in `docs/ROADMAP.md`. diff --git a/src/content/docs/codesys/install.md b/src/content/docs/codesys/install.md index dc04b87..20fe664 100644 --- a/src/content/docs/codesys/install.md +++ b/src/content/docs/codesys/install.md @@ -26,6 +26,8 @@ The chart is marked for staff, so the Store lists it for EmberNet staff, and the ## With Helm +Not released yet, so these commands will not work today. The chart repository at https://hotloop.io/hotloop-codesys/ answers and lists no chart, so `helm repo add` succeeds and `helm install` finds nothing to install. They are the commands the chart will take. + ```bash kubectl -n create secret generic -profile --from-file=profile.json helm repo add hotloop-codesys https://hotloop.io/hotloop-codesys/ diff --git a/src/data/sync.json b/src/data/sync.json index 7c6764c..6f93a74 100644 --- a/src/data/sync.json +++ b/src/data/sync.json @@ -27,7 +27,7 @@ "cascade": { "slug": "HotLoop-io/hotloop-cascade", "ref": "origin/main", - "sha": "437c21c21c4d9f1efa97cce5a38e17385009333f", + "sha": "1f8ad0c3abb13f37f6d4fe3c6c2f1dd97b3794a3", "release": { "tag": "v1.0.2", "version": "1.0.2", @@ -793,7 +793,7 @@ "group": "Start here", "title": "Where Cascade stands", "label": null, - "status": "released", + "status": "changed", "repo": "cascade", "source": "README.md", "release": false @@ -815,7 +815,7 @@ "group": "Use it", "title": "Running Cascade", "label": null, - "status": "released", + "status": "changed", "repo": "cascade", "source": "README.md", "release": false diff --git a/src/pinned/codesys/install.md b/src/pinned/codesys/install.md index c91f462..548500d 100644 --- a/src/pinned/codesys/install.md +++ b/src/pinned/codesys/install.md @@ -22,6 +22,8 @@ The chart is marked for staff, so the Store lists it for EmberNet staff, and the ## With Helm +{{codesysHelmNote}} + ```bash kubectl -n create secret generic -profile --from-file=profile.json helm repo add hotloop-codesys {{codesysChartRepo}} From 7cc7e922b1fe5bcdf98ca2ee0f958318805989fa Mon Sep 17 00:00:00 2001 From: patrickryan01 Date: Mon, 2 Nov 2026 23:04:05 -0500 Subject: [PATCH 11/12] feat(docs): the gateway overview points at the release notes instead of repeating them, and the terms page carries the new text and date --- src/content/docs/gateway/overview.md | 62 +++----------------- src/content/docs/gateway/reports.md | 2 +- src/content/docs/gateway/upgrading.md | 4 +- src/content/docs/install/auto-update.md | 2 +- src/content/docs/install/helm.md | 2 +- src/content/docs/install/quadlet.md | 2 +- src/content/docs/iot/api.md | 2 +- src/content/docs/iot/authentication.md | 2 +- src/content/docs/iot/backup.md | 2 +- src/content/docs/iot/dashboards.md | 2 +- src/content/docs/iot/helpers.md | 2 +- src/content/docs/iot/historian-targets.md | 2 +- src/content/docs/iot/integrations.md | 2 +- src/content/docs/iot/mcp.md | 2 +- src/content/docs/iot/mqtt-discovery.md | 2 +- src/content/docs/iot/protocols.md | 6 +- src/content/docs/iot/recipes.md | 2 +- src/content/docs/iot/scripts.md | 2 +- src/content/docs/iot/unifi.md | 2 +- src/content/docs/products.md | 2 +- src/content/docs/releases/hotloop-4-19-0.md | 63 +++++++++++++++++---- src/content/docs/roadmap.md | 2 +- src/data/sync.json | 2 +- src/pinned/gateway/overview.md | 62 +++----------------- src/pinned/gateway/upgrading.md | 4 +- 25 files changed, 96 insertions(+), 143 deletions(-) diff --git a/src/content/docs/gateway/overview.md b/src/content/docs/gateway/overview.md index 1b83b59..f71f243 100644 --- a/src/content/docs/gateway/overview.md +++ b/src/content/docs/gateway/overview.md @@ -28,17 +28,17 @@ The ground floor, in 4.18.11 and in every release back to 4.16.0: - [Automations](/iot/automations/) covers triggers, conditions, and actions, and why a rule is compiled when you save it instead of when it fires at 3 AM. - [Model Context Protocol](/iot/mcp/) is the Gateway as an MCP server and client, and how one Gateway reads every site. -New in 4.18.11, and not in 4.18.10: the database is PostgreSQL 17 with an upgrade that runs itself, SNMP and BACnet/IP through one integrations flow, kiosk sign-in with a lockout, alarm escalation, and a UI that installs on a phone. [Below](#new-in-41811) is what each one buys you, and what it costs. +New in 4.18.11, and not in 4.18.10: the database is PostgreSQL 17 with an upgrade that runs itself, SNMP and BACnet/IP through one integrations flow, kiosk sign-in with a lockout, alarm escalation, and a UI that installs on a phone. [The release notes](/releases/hotloop-4-18-11/) say what each one buys you, and what it costs. -New in 4.18.10, and not in 4.17.0: the four-product lineup, a choice of database, MQTT, and network discovery, historian targets, and boxes that update themselves. [Below](#new-in-41810) is what each one buys you. +New in 4.18.10, and not in 4.17.0: the four-product lineup, a choice of database, MQTT, and network discovery, historian targets, and boxes that update themselves. [The release notes](/releases/hotloop-4-18-10/) say what each one buys you. New in 4.17.0, and not in 4.16.0: -- [Recipes](/iot/recipes/), [Scripts](/iot/scripts/), [Blueprints](/iot/blueprints/), [Helpers](/iot/helpers/), [Logbook](/iot/logbook/) and [UniFi Network](/iot/unifi/). [Below](#new-in-4170) is what each one buys you. +- [Recipes](/iot/recipes/), [Scripts](/iot/scripts/), [Blueprints](/iot/blueprints/), [Helpers](/iot/helpers/), [Logbook](/iot/logbook/) and [UniFi Network](/iot/unifi/). [The release notes](/releases/hotloop-4-17-0/) say what each one buys you. ## What it does with the data -**Historian.** TimescaleDB by default (on PostgreSQL 17 since 4.18.11), and plain PostgreSQL or a SQLite file work too, because [the database is a setting](#new-in-41810). The history table is a hypertable when the extension is there and natively range-partitioned when it isn't, so a plain PostgreSQL works instead of failing. Set a deadband per tag. Without one, a sensor jittering in its last bit writes a row every scan forever, and a thousand tags polled every second is about 86 million rows a day. +**Historian.** TimescaleDB by default (on PostgreSQL 17 since 4.18.11), and plain PostgreSQL or a SQLite file work too, because [the database is a setting](/releases/hotloop-4-18-10/). The history table is a hypertable when the extension is there and natively range-partitioned when it isn't, so a plain PostgreSQL works instead of failing. Set a deadband per tag. Without one, a sensor jittering in its last bit writes a row every scan forever, and a thousand tags polled every second is about 86 million rows a day. **Alarms.** ISA-18.2, including the state most homegrown systems miss: `rtn-unack`, an alarm that cleared on its own before anybody saw it. Acknowledged and returned-to-normal are separate axes, so the transient trip at 03:00 is still on the list when the morning shift walks in, instead of vanishing with nobody the wiser. Asymmetric deadbands and on and off delays stop a borderline value from chattering the list into noise nobody reads. Shelving tops out at 24 hours, because a shelve with no end is a suppression nobody wrote down. @@ -64,57 +64,13 @@ HotLoop is one codebase shipped as four products, all released together from one All four are installable today, all 4.18.11. The relay is its own image and chart, about 15 MB against the Gateway's 37, with no database and no UI. The Gateway's fleet management tracks and commands every registered relay, and it's API only (`/api/fleet`): there's no Fleet screen in the UI. -## New in 4.18.11 +## What changed, release by release -:::caution[Read this one before you upgrade a running plant] -The database engine changed. HotLoop runs on PostgreSQL 17 from this release, and a box with PostgreSQL 16 data moves itself on its next upgrade. It needs about as much free disk as your data takes, the database pod sits in `Init` for as long as the copy lasts, and `helm rollback` to 4.18.10 will not start its database. [Upgrading from 4.18.10](/gateway/upgrading/#upgrading-from-41810) has all of it. The short version: take a backup on 4.18.10 first, and roll forward. -::: - -- **PostgreSQL 17, and the upgrade comes with it.** PostgreSQL won't open another major version's data directory, so a bare image change would have left every existing box with a database that can't start. A script runs before the database, copies your data across with `pg_upgrade`, proves the new server opens it, and only then swaps the names. The old directory stays as `pgdata.pg16`, which is your way back and is yours to delete. Proven on real 4.18.10 data for the Gateway, Edge, and IoT, on the chart and on Quadlet, with every row kept. -- **[Integrations](/iot/integrations/): point HotLoop at a device you know the address of.** One flow for every kind of device: ask what it needs, look at the real thing with the answers, keep the points you want. Nothing it makes is armed, every tag is read-only, and a setup that fails part way leaves no device behind. -- **SNMP and BACnet/IP, read-only.** SNMP v1, v2c, and v3 for switches, UPSs, PDUs, and meters, with no default community, because `public` is how a plant's switches get read by whoever asks. BACnet/IP for building controllers and meters. HotLoop never sends a SET and never writes a BACnet property: a write lands on a priority array, and a priority left set holds the equipment where it was put. Proven against a real net-snmp agent and recorded BACnet frames in the lab, not on a physical switch or controller, so treat the first read of a real device as commissioning. -- **Kiosk sign-in, and a lockout that is on by default.** A panel opened at `/?screen=` asks for one field, a PIN or whatever a keyboard badge reader types, and every write through the gate is that person's, so the audit trail says who opened the valve instead of "panel-3". Left alone for 15 minutes it signs out. The thing to know: ten wrong passwords or PINs in a row now lock that one account for 5 minutes on every install, kiosk or not, and a script that retries a wrong password will start getting `429`. `HOTLOOP_AUTH_LOCKOUT_ATTEMPTS=0` turns it off. -- **Alarm escalation.** An alarm nobody acknowledges goes to the next person. An admin writes the policy: who, after how many minutes, and a repeat. An acknowledgement from anywhere stops it, and every step is a row in the alarm's own trail. It is off until you turn it on. A page to a phone on a nightstand used to be the end of it. -- **The UI installs on a phone and opens with no connection.** It keeps the page and the last answers a person looks at, a bar says what time they are as of, and every write is refused before it leaves the page. It only runs over https or `localhost`. -- **Smaller fixes you can notice.** The live feed closes when its session does. Every time history returns is in UTC, so a trend no longer spells `-04:00` on one plant and `Z` on another. A reconnecting edge node announces itself once, where a millisecond-apart second birth could make a host see a stopped node come back. - -## New in 4.18.10 - -:::note[Not in 4.17.0] -Everything in this section shipped in 4.18.10. A 4.17.0 Gateway has none of it, so don't go looking for it there. [Upgrade](/gateway/upgrading/) first. -::: - -:::caution[There is no 4.18.0 to 4.18.9] -I tagged all ten, and none of them published a complete release. Nine published nothing. 4.18.8 passed every test and then I cancelled its run by mistake while it was publishing, so it left Gateway, Edge Relay, IoT, and Edge images on ghcr.io with no chart and no release, and the Gateway, Edge Relay, and IoT ones moved `:stable` with them. 4.18.10 replaced it, so a box that follows `:stable` may have run 4.18.8 until it updated. -::: - -- **[Four products, one tag](/products/).** IoT and Edge are new on ghcr.io and in the chart repository, and the Gateway keeps its names. A product is a build, not a setting: the OPC UA server isn't switched off in the IoT image, it isn't in it. A route for a feature the product doesn't have answers `404` and names the product that does. -- **The database is a setting.** `HOTLOOP_DB_TYPE=sqlite` runs any product on a file, with no second container. In the chart it's `database.type`, and a product offers only what it runs on. Moving between databases is a backup and a restore. [Install](/gateway/install/) has it. -- **[MQTT discovery](/iot/mqtt-discovery/) and [network discovery](/iot/network-discovery/).** Point ESPHome, Zigbee2MQTT, Tasmota, or a Shelly at the broker and it shows up, reading. It can't command anything until an admin accepts it and arms each point by hand. Network discovery listens and sends nothing unless you list a network to probe. -- **[Historian targets](/iot/historian-targets/).** Every reading HotLoop keeps also goes to the plant's own PostgreSQL, TimescaleDB, SQL Server, InfluxDB, or MySQL and MariaDB, the same rows with the same quality. A target that's down slows nothing down. -- **Boxes follow `:stable` and roll a bad release back.** Podman Quadlet units for the Gateway, Edge, and IoT are new, and [the auto-update page](/install/auto-update/) says what an update does. That only works because migrations only add, and an app refuses to start on a schema two releases ahead of it. -- **[Edge publish](/edge/edge-publish/) survives the ugly cases.** A boot during an outage, a link that dies without a reset, and a replay that has to outrun the plant. The outage queue is capped at 64 MiB by default now. -- **The Edge Relay takes a pushed config live,** with no restart and no lost Sparkplug session, discovers devices on a broker like the Gateway does, and reports its version and image digest in every birth, so the Gateway's fleet list shows what each one runs. -- **Broker logins with rules.** A login made in Settings, MQTT carries publish and subscribe rules from a profile, checked on every publish, subscription, and outgoing message. -- **[The sun](/iot/sun/).** Sunrise, sunset, and the sun's height worked out on the box from a latitude and a longitude. -- **UniFi on a wall board and a phone,** and two more MCP tools, `get_network_topology` and `get_network_events`. -- **Every image carries every third-party license,** and a GPL, AGPL, or LGPL module, or one with no license, stops the build. - -## New in 4.17.0 - -:::note[Not in 4.16.0] -Everything in this section shipped in 4.17.0. A 4.16.0 Gateway has none of it, so don't go looking for it there. [Upgrade](/gateway/upgrading/) first. -::: +Each release has its own notes, and the notes are where the detail lives, so it is in one place and not two. -- **[Recipes](/iot/recipes/).** Grade A's zone temps, line speed, and die gap go out together or not at all: checked whole, refused whole, written in order through the gate, and read back from the device. The laminated sheet of numbers taped to the HMI can finally retire. -- **[Scripts](/iot/scripts/).** Write the CIP cycle once, name it, and run it the same way from the Scripts screen, a rule, MCP, or its own entity. Paste it into four rules instead, and one day somebody fixes a step in three of them. -- **[Blueprints](/iot/blueprints/).** A rule written once with typed blanks, filled in per pump. Each rule keeps the blueprint version it was made from until a person reviews the upgrade, so Wednesday's edit to the blueprint doesn't change what pump 7 does on Thursday. -- **[Helpers](/iot/helpers/).** The values your people own and no PLC keeps: the batch target, which shift is on, the purge timer. Seven kinds, kept across restarts, and a value outside its range is refused, never clamped. -- **[Logbook](/iot/logbook/).** State changes, writes, alarms, rule runs, and config changes on one timeline, for the whole plant, one branch of the tree, one entity, or one actor. "What happened right before it broke" stops being a tour of five screens. -- **[The automation language](/iot/automations/).** Condition, wait, and stop steps inside a sequence, and `forSec` on a state trigger, so "the press has run for ten minutes" is a trigger instead of a delay and a prayer. -- **[UniFi Network, read-only](/iot/unifi/).** Switches, ports, PoE, WAN links, and clients as ordinary tags. When a PLC goes quiet, its drawer says which switch port it's on and whether that link is up, and a stranger on a network you marked OT raises an alarm. Nothing writes to a console. Its first real read of our own Cloud Gateway got fooled: it called the 5G backup up when it had been dead for two days, because it trusted the WAN block's stale `up` the same way the console's summary did. The health checks knew, and the driver reads those now. A real cable pull and a phone joining SCADA haven't been done on real gear yet, and the page says so. -- **Device passwords encrypted at rest.** A database dump or a backup holds ciphertext, with the key in a Secret the chart generates (`-secret-key`) and keeps. Coming from 4.16.0, the first start seals every stored password, and from then on that Secret is part of your data: back it up somewhere other than next to your backups, because a restore with credentials needs it. [Device credentials](/iot/protocols/#device-credentials) has the rules. -- **[MCP goes from 16 tools to 25](/iot/mcp/).** Nine more, for the logbook, scripts, recipes, blueprints, and the network. Every one that can move anything still demands a stated reason and still goes through the same gate as an operator. +- [4.18.11](/releases/hotloop-4-18-11/): PostgreSQL 17 with an upgrade that runs itself (read this one before you upgrade a running plant), SNMP and BACnet/IP through one integrations flow, kiosk sign-in with a lockout, alarm escalation, and a UI that installs on a phone. +- [4.18.10](/releases/hotloop-4-18-10/): the four-product lineup, a choice of database, MQTT and network discovery, historian targets, and boxes that update themselves. There is no 4.18.0 to 4.18.9, and the notes say why. +- [4.17.0](/releases/hotloop-4-17-0/): recipes, scripts, blueprints, helpers, the logbook, and UniFi Network, read-only. ## License diff --git a/src/content/docs/gateway/reports.md b/src/content/docs/gateway/reports.md index 01edb18..08a288e 100644 --- a/src/content/docs/gateway/reports.md +++ b/src/content/docs/gateway/reports.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: Added in 4.14.0. `internal/reports` runs operator-defined reports on a schedule: diff --git a/src/content/docs/gateway/upgrading.md b/src/content/docs/gateway/upgrading.md index aeae84e..8617b44 100644 --- a/src/content/docs/gateway/upgrading.md +++ b/src/content/docs/gateway/upgrading.md @@ -15,7 +15,7 @@ The chart repository's index lists only the latest chart, 4.18.11, so `hotloop/h ## Upgrading from 4.18.10 -Why bother: the database is PostgreSQL 17 now, and the box moves itself. You also get [integrations](/iot/integrations/) with SNMP and BACnet/IP, kiosk sign-in, alarm escalation, and a UI that installs on a phone. [The Gateway overview](/gateway/overview/#new-in-41811) has the list. What follows is the part that bites. +Why bother: the database is PostgreSQL 17 now, and the box moves itself. You also get [integrations](/iot/integrations/) with SNMP and BACnet/IP, kiosk sign-in, alarm escalation, and a UI that installs on a phone. [The 4.18.11 release notes](/releases/hotloop-4-18-11/) have the list. What follows is the part that bites. PostgreSQL will not open another major version's data directory, so a bare image change would have left every existing box with a database that can't start. HotLoop doesn't ask you to dump and reload. The first start after the upgrade runs a script before the database, and the script does the move. @@ -59,7 +59,7 @@ Copy the new `hotloop-db.container`, `hotloop-db-upgrade.container`, and `hotloo ## Upgrading from 4.17.0 -Why bother: the Gateway stops being the only image. IoT and Edge are new, the database is a setting, devices that announce themselves over MQTT show up on their own, history can be written out to the plant's own database, and a box that follows `:stable` rolls a bad update back by itself. That last one only works because migrations only add. [The Gateway overview](/gateway/overview/#new-in-41810) has the list. +Why bother: the Gateway stops being the only image. IoT and Edge are new, the database is a setting, devices that announce themselves over MQTT show up on their own, history can be written out to the plant's own database, and a box that follows `:stable` rolls a bad update back by itself. That last one only works because migrations only add. [The 4.18.10 release notes](/releases/hotloop-4-18-10/) have the list. It's a plain `helm upgrade`. I rendered the 4.17.0 and 4.18.11 Gateway charts side by side with the same values: the same eight objects, the same selectors, the same volume claims. diff --git a/src/content/docs/install/auto-update.md b/src/content/docs/install/auto-update.md index 3845202..4709fb2 100644 --- a/src/content/docs/install/auto-update.md +++ b/src/content/docs/install/auto-update.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: Every box tracks `:stable` and Podman updates it. That is the rule for all four diff --git a/src/content/docs/install/helm.md b/src/content/docs/install/helm.md index 2f8cbf2..a75a5bc 100644 --- a/src/content/docs/install/helm.md +++ b/src/content/docs/install/helm.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: The chart deploys two workloads: the gateway (a Deployment, it holds no durable diff --git a/src/content/docs/install/quadlet.md b/src/content/docs/install/quadlet.md index 38af714..e1a8cb8 100644 --- a/src/content/docs/install/quadlet.md +++ b/src/content/docs/install/quadlet.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: For a Pi or a small industrial PC that is **not** part of a k3s cluster. If diff --git a/src/content/docs/iot/api.md b/src/content/docs/iot/api.md index 932ab9a..1b2081a 100644 --- a/src/content/docs/iot/api.md +++ b/src/content/docs/iot/api.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: Every call the Gateway answers over HTTP, what it needs, what it takes and what diff --git a/src/content/docs/iot/authentication.md b/src/content/docs/iot/authentication.md index dd1fa4d..46bfc94 100644 --- a/src/content/docs/iot/authentication.md +++ b/src/content/docs/iot/authentication.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: Added in 4.4.0. Before it, this gateway had no login of its own: the EmberNet diff --git a/src/content/docs/iot/backup.md b/src/content/docs/iot/backup.md index 9233b92..5544e66 100644 --- a/src/content/docs/iot/backup.md +++ b/src/content/docs/iot/backup.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: Added in 4.12.0. `internal/backup` takes logical, table-data-only snapshots diff --git a/src/content/docs/iot/dashboards.md b/src/content/docs/iot/dashboards.md index 8d60c7f..04dcd19 100644 --- a/src/content/docs/iot/dashboards.md +++ b/src/content/docs/iot/dashboards.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: A dashboard is a page of cards somebody built. Gauges, trends, lists of diff --git a/src/content/docs/iot/helpers.md b/src/content/docs/iot/helpers.md index cb86be1..71cd268 100644 --- a/src/content/docs/iot/helpers.md +++ b/src/content/docs/iot/helpers.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: A helper is a value the plant's people own rather than a PLC. "Line 2 is in diff --git a/src/content/docs/iot/historian-targets.md b/src/content/docs/iot/historian-targets.md index 783c714..29bf0e7 100644 --- a/src/content/docs/iot/historian-targets.md +++ b/src/content/docs/iot/historian-targets.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: HotLoop keeps its own history, and it isn't going anywhere. But a plant diff --git a/src/content/docs/iot/integrations.md b/src/content/docs/iot/integrations.md index fb0ff5b..8c87ba6 100644 --- a/src/content/docs/iot/integrations.md +++ b/src/content/docs/iot/integrations.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: An integration is how you point HotLoop at a kind of device you know the diff --git a/src/content/docs/iot/mcp.md b/src/content/docs/iot/mcp.md index c12c3c0..02a6d1e 100644 --- a/src/content/docs/iot/mcp.md +++ b/src/content/docs/iot/mcp.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: The gateway speaks MCP in both directions: agents can read and drive the plant, diff --git a/src/content/docs/iot/mqtt-discovery.md b/src/content/docs/iot/mqtt-discovery.md index 059e4dc..6ca713b 100644 --- a/src/content/docs/iot/mqtt-discovery.md +++ b/src/content/docs/iot/mqtt-discovery.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: Point a device at HotLoop's broker and it shows up. Its sensors read, its diff --git a/src/content/docs/iot/protocols.md b/src/content/docs/iot/protocols.md index 7838b96..feba407 100644 --- a/src/content/docs/iot/protocols.md +++ b/src/content/docs/iot/protocols.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: This document says exactly what the gateway speaks, exactly how far each driver @@ -650,7 +650,9 @@ things about open62541 itself, found doing it: its subscriber discards keep alive messages ("Only keyframes are supported") though a keep alive is a valid DataSetMessage, and its RawData publisher sends one message and then stops with `BadInternalError`. HotLoop's publisher is read correctly by its subscriber all -the same, and the RawData read is of that one message. A CODESYS ST publisher and a Go receiver written elsewhere were read for interoperability and share no code with this. +the same, and the RawData read is of that one message. A CODESYS ST publisher and a Go +receiver written elsewhere were read for interoperability and share no code +with this. ### CODESYS A PLC that runs a CODESYS Control runtime (Linux SL, ARM64, Raspberry Pi, Windows, diff --git a/src/content/docs/iot/recipes.md b/src/content/docs/iot/recipes.md index 661113d..d97e115 100644 --- a/src/content/docs/iot/recipes.md +++ b/src/content/docs/iot/recipes.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: A recipe is a set of values that go out to the plant together. Grade A's zone diff --git a/src/content/docs/iot/scripts.md b/src/content/docs/iot/scripts.md index c8f16fe..74b26a4 100644 --- a/src/content/docs/iot/scripts.md +++ b/src/content/docs/iot/scripts.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: A script is a sequence of steps with a name. The CIP cycle. The line purge. diff --git a/src/content/docs/iot/unifi.md b/src/content/docs/iot/unifi.md index c5bdda0..6b5647b 100644 --- a/src/content/docs/iot/unifi.md +++ b/src/content/docs/iot/unifi.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: A plant's network is equipment. When a PLC goes quiet, the first question is diff --git a/src/content/docs/products.md b/src/content/docs/products.md index 461da51..9c05d73 100644 --- a/src/content/docs/products.md +++ b/src/content/docs/products.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: HotLoop is eight products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, HotLoop for CODESYS for the PLC's own screens, and Transmitter for putting its values on the wire. diff --git a/src/content/docs/releases/hotloop-4-19-0.md b/src/content/docs/releases/hotloop-4-19-0.md index 79a1101..3d6582e 100644 --- a/src/content/docs/releases/hotloop-4-19-0.md +++ b/src/content/docs/releases/hotloop-4-19-0.md @@ -11,35 +11,49 @@ sidebar: --- :::caution[On main, next release] -This page was written from `main` at 4d5da2f. These notes are for a release that is not out. HotLoop core 4.18.11 is the latest one you can install. +This page was written from `main` at 3e371c8. These notes are for a release that is not out. HotLoop core 4.18.11 is the latest one you can install. ::: -A value you write to a scaled tag now goes to the device the way you meant it. That is the one thing in 4.19.0 you need to read before you touch a running plant, -because it changes what lands in a register, and a plant that worked around the old behavior has to stop. A Kafka event stream and OPC UA PubSub over UADP come with it, both new, neither changing anything that runs today. +Two things in 4.19.0 change what an existing plant does, so read these before you touch a running one. Agents over MCP can write now, and the MCP endpoint always has a token. And a value you write to a scaled tag finally lands in the register the way you meant it, which means anyone who worked around the old behavior has to stop. Everything after those two is new, or a fix. -## MCP ships on, with writes +The full notes are in the README: +What changed in 4.19.0. -- **Agents can write now, where an operator could.** MCP is on in every HotLoop product and reads and writes. `allowMcpWrites` defaults to true in the code and in all three charts. A deployment that has `allowWrites` on and never set `allowMcpWrites` gets agent writes after this upgrade, through the same gate as the screen: the user's permissions, the tag's writable mark and its range all still apply. -- **`allowWrites` did not change.** It stays off by default and still decides whether anything can write, the UI and agents alike. -- **A deployment that saved `allowMcpWrites: false` stays off**, including one installed from the App Store, which stores every answer. Change it if you want agents to write. -- **The MCP endpoint is never open.** A HotLoop started with no `HOTLOOP_MCP_TOKEN` (a Quadlet unit, a bare binary) makes a token at its first start and keeps it in its database. A call without it is a `401`. `hotloop mcp-token` prints it. The charts already set one. +## MCP is on, it writes, and it always has a token + +- **Agents can write now, where an operator could.** MCP is on in every HotLoop product and it reads and writes. `allowMcpWrites` defaults to true in the code and in all three charts. A deployment that has `allowWrites` on and never set `allowMcpWrites` gets agent writes after this upgrade, through the same gate as the screen: the user's permissions, the tag's writable mark and its range all still apply. +- **`allowWrites` did not change.** It stays off by default and it still decides whether anything can write, the UI and agents alike. If it is off, nothing writes, MCP included. +- **A deployment that saved `allowMcpWrites: false` stays off.** That includes one installed from the App Store, which stores every answer. Flip it if you want agents to write. +- **The endpoint is never open.** The charts always set an MCP token. A HotLoop started without `HOTLOOP_MCP_TOKEN` (a Quadlet unit, a bare binary) used to serve `/mcp` to anybody who could reach the port and only logged a warning. It now makes a 24 byte token at its first start and keeps it in its database, so every replica and every restore carries the same one. A call without the token is a `401`. A token you configured is never replaced. +- **To get the token on a bare or Quadlet install:** `hotloop mcp-token` prints it. If you have an agent pointed at `/mcp` on one of those installs with no token, it stops working at this upgrade until you give it that token. That is on purpose. +- **Who made the call.** A static token says which client called, never which person. With the OIDC settings on, a Vord login or a Fireball Hub assertion on `/mcp` makes the audit name the person (`mcp:pat@example.com`), and an optional write role narrows writes per caller on top of the switches above. It is off unless you set it, and the token keeps working beside it. docs/MCP.md has the setup. ### Writes to a scaled tag - **What was wrong.** A tag with a scale, say 0.1 on a temperature register that holds tenths of a degree, shows you the engineering value: the register says 555 and the screen says 55.5. Writing went the other way without the same care. Type 55.5 for the setpoint and HotLoop put 55 in the register, which then read back as 5.5. It was the same on every screen, through the API, from an automation, a script, a recipe, a loop and over MCP, because they all go through the same write gate. The audit row said 55.5 the whole time, so nothing looked wrong in the log. - **What changes.** The number you write is in the tag's own units, the same as the number you read. HotLoop takes the scale and the offset back off before it sends: 55.5 on a tag scaled by 0.1 puts 555 in the register, and it reads back as 55.5. A tag with no scale and no offset is not touched at all. Bits, coils, strings and Sparkplug and MQTT writes of a flag are not scaled either. - **If you worked around it, stop.** If anyone has been typing raw counts into a scaled tag to get the right number, typing 555 to get 55.5, that now sends 5550 and reads back as 555. Type the engineering value. Look at your scaled tags before you upgrade: any tag with a scale other than 1, or an offset, that somebody writes to by hand, from an automation or from a recipe is worth a look. Recipes and automations that wrote counts need their numbers changed to engineering values in the same step as the upgrade. -- **A value the register cannot hold is refused.** After the scale is taken off, a count that does not fit the register, 7000 on a `uint16` scaled by 0.1, is refused with a plain message that names the count and the register, and nothing is sent. It used to wrap quietly: 70000 on a 16-bit register went out as 4464. That goes for Modbus, S7, EtherNet/IP and OPC UA integer types. -- **A recipe with a value that does not fit is refused whole.** Before its first write, every target is checked, so a recipe never half-applies and then refuses. For Modbus, S7 and EtherNet/IP the check knows each tag's register type from its address. For OPC UA, which is the path to a CODESYS runtime, it uses the type the tag's last reading arrived as. A tag that has never been read since HotLoop started has no type to check against yet, so a recipe that targets it is refused at that tag's own write, after the targets before it were written, and the application records which. Reading it once, which the poll does within a second of connecting, closes that. -- **A fraction of a count is cut off.** A register holds whole counts, so 12.34 on a tenth-scaled register holds 12.3, as it always did. +- **A value the register cannot hold is refused.** After the scale is taken off, a count that does not fit the register, 7000 on a `uint16` scaled by 0.1, is refused with a plain message that names the count and the register, and nothing is sent. It used to wrap quietly: 70000 on a 16 bit register went out as 4464. That goes for Modbus, S7, EtherNet/IP and OPC UA integer types. +- **A recipe with a value that does not fit is refused whole.** Before its first write, every target is checked, so a recipe never half applies and then refuses. For Modbus, S7 and EtherNet/IP the check knows each tag's register type from its address. For OPC UA, which is the path to a CODESYS runtime, it uses the type the tag's last reading arrived as. A tag that has never been read since HotLoop started has no type to check against yet, so a recipe that targets it is refused at that tag's own write, after the targets before it were written, and the application records which. Reading it once, which the poll does within a second of connecting, closes that. +- **A fraction of a count is cut off.** A register holds whole counts, so 12.34 on a tenth scaled register holds 12.3, as it always did. - **What did not change.** The range check on a tag and the audit row use the number you typed. The write gate, the permissions and the refusal rules are the same. +### A store install signs you in as yourself + +The chart made a random admin password in a Secret the tenant can't read, so a store install landed on a login with no way through. With the dashboard's public key configured, a request carrying a valid signed assertion for this tenant and this Service signs that person in, makes their user the first time, keeps their role in step with what the dashboard sent, and the audit trail names them. A bad, expired, wrong tenant or wrong app assertion is refused, and local login is untouched. It is off unless a key is set, and the three product charts take the key from the store. docs/AUTH.md has the settings. + +### CODESYS, by the names the programmer gave the variables + +HotLoop reads and writes a CODESYS PLC through the runtime's own OPC UA server, the way CODESYS documents: the application's Symbol Configuration, published under the PLCopen IEC 61131-3 model. Discovery lists what the application exports with the types and the access the programmer gave them, walking into arrays and structures, and a tag is an IEC symbol that is found under whatever the project calls its PLC and application. A restart, a download or a lost link reads bad with the reason and comes back with no hands. I proved it against a real 4.22.0.0 runtime in the lab running my own program, with a write the PLC's own logic answers, and against a second program of over a hundred thousand variables, read in 2.4 seconds. It has not been run on a physical controller. + +This touches a driver plants run, so plainly: the OPC UA driver asked for 200 nodes a request and never read what the server allows. A CODESYS runtime publishes OperationLimits of 100 and refuses more, and the driver answered by declaring every discovered tag a float and by reading none of the tags of a device with more than a hundred. Requests are now cut to the limits the server publishes at connect, and halved when a server that publishes none says too many. A data type that is a subtype of a standard one (a CODESYS STRING, BYTE or TIME) is followed up to the standard type, so it is typed and written as that. Every OPC UA device gets this, not only CODESYS ones. + ### A Kafka event stream - **What it is.** HotLoop can send its readings and its system log to any broker that speaks the Kafka API: Apache Kafka, Redpanda, and the rest of that family. It is a new kind of historian target, under Settings, Historian targets, so it has the queue, the catch-up from HotLoop's own history and the status those have. Readings go to one topic and the system log (alarms, devices going up and down, changes) to another, as JSON. - **TLS and SASL.** SCRAM-SHA-256, SCRAM-SHA-512 and PLAIN (PLAIN only over TLS), with your own CA if the broker's certificate isn't from a public one. Client certificates, Kerberos and OAuth logins are not supported yet. - **It is at least once.** A reading can arrive twice after an outage, because the catch-up overlaps what already went out on purpose. `deviceId`, `tag` and `ts` name a duplicate. Events are the live feed and have no history to catch up from, so one produced while the broker is away is lost, and the target's status counts it. -- **A broker that vanishes mid-write.** The target goes down within 25 seconds and the readings in that write are owed, instead of staying "up" with its queue overflowing. +- **A broker that vanishes mid write.** The target goes down within 25 seconds and the readings in that write are owed, instead of staying up with its queue overflowing. - **A topic made a moment ago.** The first look at a topic that was just made, by you or by the target's own last try, waits for it to exist and have a leader instead of reporting the target down. - **What it costs.** About 5 MiB on the binary of every product with a database. The Edge Relay has no historian targets and doesn't carry it. The client is franz-go, credited in `NOTICE`. - **Upgrading.** Migration 0026 adds an `options` column to the historian targets, empty for every target that exists. Nothing changes for them. HISTORIAN-TARGETS.md has the record formats and what is and isn't proven. @@ -50,3 +64,28 @@ because it changes what lands in a register, and a plant that worked around the - **Publishing.** Edge and Gateway can publish the tags a layout names as UADP, off until `HOTLOOP_UADP_PUBLISH_ENABLED` is set. Key frames when values change and keep alives when they don't. A bad tag is published as its status, never as its last value. - **Not yet.** Message security (signed or encrypted messages) is refused by name, as are chunked messages, discovery, events and array fields. Delta frames are read but not sent. - **What it was proven against.** open62541 1.5.10, an independent OPC UA stack, in both directions in the lab. It has not been run against a CODESYS, Siemens or Beckhoff publisher or across a router. PROTOCOLS.md has the setup and the limits. + +### Images, and a second set of screens + +- **amd64 only, this once.** The 4.19.0 images are built for amd64. The version tag lists amd64 alone, and `stable` and `latest` carry the new amd64 image beside the arm64 and arm/v7 images they already had, which are the previous release's. An arm box that follows `stable` keeps pulling and keeps running what it ran. The next release builds every architecture again and is a version bump with nothing else in it. +- **The new screens are at `/next`.** A rebuilt web UI is in every image behind the old one, which is still what you get at `/`. Try it at `/next` on any install; nothing about the default changes. + +### Fixes + +- **A pin on the board no longer wipes the board.** The page only read the board when the board screen opened, so a reload on the tags screen held an empty list and the first pin replaced the saved board with that one tag. The page reads the board at start now, a pin refuses until it has, and a save carries the board's `rev`, so the server answers `409` to a save over a board that changed since it was read. The `rev` is optional in the API: leave it out and the save is not checked. +- **A stalled OPC UA subscription is noticed.** The library keeps its keep alives to itself, so a stopped publish loop looked like a quiet plant and served its last values as good. After ten publishing intervals of quiet (thirty seconds at least) the driver reads the nodes once, compares them with what it holds, and falls back to reads if any differ. +- **A PLC that goes silent with its socket open is down, not degraded.** Modbus, S7 and EtherNet/IP kept their last values until TCP gave up, because the poll returned before it judged the session. They judge now. No S7 or CIP server is on the wire in the lab yet, and the roadmap says so. +- **A credential typed into a URL or free text is encrypted at rest.** Every screen already hid `mqtt://user:pass@host` and `?token=` from people, but the database and the backups held them as typed. A string that carries one, by the same test redaction hides it by, is sealed whole and comes back exactly as written, so the driver still gets the URL it was given. A key turned on later seals what was stored before, and a restore asks for the key when only an address needs it. +- **Every time the API writes is UTC.** A plant set to New York spelled `-04:00` where one on UTC spelled `Z`, across about thirty fields: `created_at`, `updated_at`, an alarm's `raisedAt`, an event's time, a device's `lastPoll`, a tag's timestamp, a logbook entry, a report's next run. They read the same on both now. If you parse these in a script that expected your local offset, it now gets `Z`. +- **Monthly partitions were skipped on the 31st.** The history and logbook tables made their next partition with a month added to today, and on the 31st that skipped a month, so a month's rows sat in the default partition. They start from the first of the month now. +- **The UniFi event log is ordered by when the event happened,** not by when the frame got here, so a replay after a reconnect stops sitting on top. +- **A switch's faceplate fits a phone.** Eight ports were wider than a 390 pixel screen and the page scrolled sideways by 113 pixels. The ports are tight tiles now, with the PoE watts in the port's detail, and a faceplate that still outgrows its card scrolls inside it. +- **A phone with no session and no connection gets the sign-in screen and the reason** instead of an empty app, and reloads when HotLoop answers. +- **A rollback is one command.** The chart index merges into the live one instead of being rebuilt from the release's own charts, so an older version still resolves. + +### Upgrading from 4.18.11 + +- Read the first two sections above before you do anything on a running plant. +- Migration 0026 is the only one. It is additive and every existing row keeps working. +- A bare binary or Quadlet install gets an MCP token at its first start. `hotloop mcp-token` prints it. +- `helm upgrade` as usual. Quadlet units follow `:stable` and need nothing. `helm rollback` to 4.18.11 is fine for this release: the database is already PostgreSQL 17 and nothing here changes it. diff --git a/src/content/docs/roadmap.md b/src/content/docs/roadmap.md index 668151c..b8e75f3 100644 --- a/src/content/docs/roadmap.md +++ b/src/content/docs/roadmap.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: What HotLoop is, what's left to build, and what's broken. If it isn't on this diff --git a/src/data/sync.json b/src/data/sync.json index 6f93a74..9a73f10 100644 --- a/src/data/sync.json +++ b/src/data/sync.json @@ -3,7 +3,7 @@ "hotloop": { "slug": "HotLoop-io/hotloop", "ref": "origin/main", - "sha": "4d5da2f216e276bba9587f9aa5e3343bad13258f", + "sha": "3e371c8ae38395000a9f2fc3c442c4767b4ddaaf", "release": { "tag": "v4.18.11", "version": "4.18.11", diff --git a/src/pinned/gateway/overview.md b/src/pinned/gateway/overview.md index 0fc05dd..7083aa1 100644 --- a/src/pinned/gateway/overview.md +++ b/src/pinned/gateway/overview.md @@ -27,17 +27,17 @@ The ground floor, in {{hotloop}} and in every release back to 4.16.0: - [Automations](/iot/automations/) covers triggers, conditions, and actions, and why a rule is compiled when you save it instead of when it fires at 3 AM. - [Model Context Protocol](/iot/mcp/) is the Gateway as an MCP server and client, and how one Gateway reads every site. -New in 4.18.11, and not in 4.18.10: the database is PostgreSQL 17 with an upgrade that runs itself, SNMP and BACnet/IP through one integrations flow, kiosk sign-in with a lockout, alarm escalation, and a UI that installs on a phone. [Below](#new-in-41811) is what each one buys you, and what it costs. +New in 4.18.11, and not in 4.18.10: the database is PostgreSQL 17 with an upgrade that runs itself, SNMP and BACnet/IP through one integrations flow, kiosk sign-in with a lockout, alarm escalation, and a UI that installs on a phone. [The release notes](/releases/hotloop-4-18-11/) say what each one buys you, and what it costs. -New in 4.18.10, and not in 4.17.0: the four-product lineup, a choice of database, MQTT, and network discovery, historian targets, and boxes that update themselves. [Below](#new-in-41810) is what each one buys you. +New in 4.18.10, and not in 4.17.0: the four-product lineup, a choice of database, MQTT, and network discovery, historian targets, and boxes that update themselves. [The release notes](/releases/hotloop-4-18-10/) say what each one buys you. New in 4.17.0, and not in 4.16.0: -- [Recipes](/iot/recipes/), [Scripts](/iot/scripts/), [Blueprints](/iot/blueprints/), [Helpers](/iot/helpers/), [Logbook](/iot/logbook/) and [UniFi Network](/iot/unifi/). [Below](#new-in-4170) is what each one buys you. +- [Recipes](/iot/recipes/), [Scripts](/iot/scripts/), [Blueprints](/iot/blueprints/), [Helpers](/iot/helpers/), [Logbook](/iot/logbook/) and [UniFi Network](/iot/unifi/). [The release notes](/releases/hotloop-4-17-0/) say what each one buys you. ## What it does with the data -**Historian.** TimescaleDB by default (on PostgreSQL 17 since 4.18.11), and plain PostgreSQL or a SQLite file work too, because [the database is a setting](#new-in-41810). The history table is a hypertable when the extension is there and natively range-partitioned when it isn't, so a plain PostgreSQL works instead of failing. Set a deadband per tag. Without one, a sensor jittering in its last bit writes a row every scan forever, and a thousand tags polled every second is about 86 million rows a day. +**Historian.** TimescaleDB by default (on PostgreSQL 17 since 4.18.11), and plain PostgreSQL or a SQLite file work too, because [the database is a setting](/releases/hotloop-4-18-10/). The history table is a hypertable when the extension is there and natively range-partitioned when it isn't, so a plain PostgreSQL works instead of failing. Set a deadband per tag. Without one, a sensor jittering in its last bit writes a row every scan forever, and a thousand tags polled every second is about 86 million rows a day. **Alarms.** ISA-18.2, including the state most homegrown systems miss: `rtn-unack`, an alarm that cleared on its own before anybody saw it. Acknowledged and returned-to-normal are separate axes, so the transient trip at 03:00 is still on the list when the morning shift walks in, instead of vanishing with nobody the wiser. Asymmetric deadbands and on and off delays stop a borderline value from chattering the list into noise nobody reads. Shelving tops out at 24 hours, because a shelve with no end is a suppression nobody wrote down. @@ -63,57 +63,13 @@ HotLoop is one codebase shipped as four products, all released together from one All four are installable today, all {{hotloop}}. The relay is its own image and chart, about 15 MB against the Gateway's 37, with no database and no UI. The Gateway's fleet management tracks and commands every registered relay, and it's API only (`/api/fleet`): there's no Fleet screen in the UI. -## New in 4.18.11 +## What changed, release by release -:::caution[Read this one before you upgrade a running plant] -The database engine changed. HotLoop runs on PostgreSQL 17 from this release, and a box with PostgreSQL 16 data moves itself on its next upgrade. It needs about as much free disk as your data takes, the database pod sits in `Init` for as long as the copy lasts, and `helm rollback` to 4.18.10 will not start its database. [Upgrading from 4.18.10](/gateway/upgrading/#upgrading-from-41810) has all of it. The short version: take a backup on 4.18.10 first, and roll forward. -::: - -- **PostgreSQL 17, and the upgrade comes with it.** PostgreSQL won't open another major version's data directory, so a bare image change would have left every existing box with a database that can't start. A script runs before the database, copies your data across with `pg_upgrade`, proves the new server opens it, and only then swaps the names. The old directory stays as `pgdata.pg16`, which is your way back and is yours to delete. Proven on real 4.18.10 data for the Gateway, Edge, and IoT, on the chart and on Quadlet, with every row kept. -- **[Integrations](/iot/integrations/): point HotLoop at a device you know the address of.** One flow for every kind of device: ask what it needs, look at the real thing with the answers, keep the points you want. Nothing it makes is armed, every tag is read-only, and a setup that fails part way leaves no device behind. -- **SNMP and BACnet/IP, read-only.** SNMP v1, v2c, and v3 for switches, UPSs, PDUs, and meters, with no default community, because `public` is how a plant's switches get read by whoever asks. BACnet/IP for building controllers and meters. HotLoop never sends a SET and never writes a BACnet property: a write lands on a priority array, and a priority left set holds the equipment where it was put. Proven against a real net-snmp agent and recorded BACnet frames in the lab, not on a physical switch or controller, so treat the first read of a real device as commissioning. -- **Kiosk sign-in, and a lockout that is on by default.** A panel opened at `/?screen=` asks for one field, a PIN or whatever a keyboard badge reader types, and every write through the gate is that person's, so the audit trail says who opened the valve instead of "panel-3". Left alone for 15 minutes it signs out. The thing to know: ten wrong passwords or PINs in a row now lock that one account for 5 minutes on every install, kiosk or not, and a script that retries a wrong password will start getting `429`. `HOTLOOP_AUTH_LOCKOUT_ATTEMPTS=0` turns it off. -- **Alarm escalation.** An alarm nobody acknowledges goes to the next person. An admin writes the policy: who, after how many minutes, and a repeat. An acknowledgement from anywhere stops it, and every step is a row in the alarm's own trail. It is off until you turn it on. A page to a phone on a nightstand used to be the end of it. -- **The UI installs on a phone and opens with no connection.** It keeps the page and the last answers a person looks at, a bar says what time they are as of, and every write is refused before it leaves the page. It only runs over https or `localhost`. -- **Smaller fixes you can notice.** The live feed closes when its session does. Every time history returns is in UTC, so a trend no longer spells `-04:00` on one plant and `Z` on another. A reconnecting edge node announces itself once, where a millisecond-apart second birth could make a host see a stopped node come back. - -## New in 4.18.10 - -:::note[Not in 4.17.0] -Everything in this section shipped in 4.18.10. A 4.17.0 Gateway has none of it, so don't go looking for it there. [Upgrade](/gateway/upgrading/) first. -::: - -:::caution[There is no 4.18.0 to 4.18.9] -I tagged all ten, and none of them published a complete release. Nine published nothing. 4.18.8 passed every test and then I cancelled its run by mistake while it was publishing, so it left Gateway, Edge Relay, IoT, and Edge images on ghcr.io with no chart and no release, and the Gateway, Edge Relay, and IoT ones moved `:stable` with them. 4.18.10 replaced it, so a box that follows `:stable` may have run 4.18.8 until it updated. -::: - -- **[Four products, one tag](/products/).** IoT and Edge are new on ghcr.io and in the chart repository, and the Gateway keeps its names. A product is a build, not a setting: the OPC UA server isn't switched off in the IoT image, it isn't in it. A route for a feature the product doesn't have answers `404` and names the product that does. -- **The database is a setting.** `HOTLOOP_DB_TYPE=sqlite` runs any product on a file, with no second container. In the chart it's `database.type`, and a product offers only what it runs on. Moving between databases is a backup and a restore. [Install](/gateway/install/) has it. -- **[MQTT discovery](/iot/mqtt-discovery/) and [network discovery](/iot/network-discovery/).** Point ESPHome, Zigbee2MQTT, Tasmota, or a Shelly at the broker and it shows up, reading. It can't command anything until an admin accepts it and arms each point by hand. Network discovery listens and sends nothing unless you list a network to probe. -- **[Historian targets](/iot/historian-targets/).** Every reading HotLoop keeps also goes to the plant's own PostgreSQL, TimescaleDB, SQL Server, InfluxDB, or MySQL and MariaDB, the same rows with the same quality. A target that's down slows nothing down. -- **Boxes follow `:stable` and roll a bad release back.** Podman Quadlet units for the Gateway, Edge, and IoT are new, and [the auto-update page](/install/auto-update/) says what an update does. That only works because migrations only add, and an app refuses to start on a schema two releases ahead of it. -- **[Edge publish](/edge/edge-publish/) survives the ugly cases.** A boot during an outage, a link that dies without a reset, and a replay that has to outrun the plant. The outage queue is capped at 64 MiB by default now. -- **The Edge Relay takes a pushed config live,** with no restart and no lost Sparkplug session, discovers devices on a broker like the Gateway does, and reports its version and image digest in every birth, so the Gateway's fleet list shows what each one runs. -- **Broker logins with rules.** A login made in Settings, MQTT carries publish and subscribe rules from a profile, checked on every publish, subscription, and outgoing message. -- **[The sun](/iot/sun/).** Sunrise, sunset, and the sun's height worked out on the box from a latitude and a longitude. -- **UniFi on a wall board and a phone,** and two more MCP tools, `get_network_topology` and `get_network_events`. -- **Every image carries every third-party license,** and a GPL, AGPL, or LGPL module, or one with no license, stops the build. - -## New in 4.17.0 - -:::note[Not in 4.16.0] -Everything in this section shipped in 4.17.0. A 4.16.0 Gateway has none of it, so don't go looking for it there. [Upgrade](/gateway/upgrading/) first. -::: +Each release has its own notes, and the notes are where the detail lives, so it is in one place and not two. -- **[Recipes](/iot/recipes/).** Grade A's zone temps, line speed, and die gap go out together or not at all: checked whole, refused whole, written in order through the gate, and read back from the device. The laminated sheet of numbers taped to the HMI can finally retire. -- **[Scripts](/iot/scripts/).** Write the CIP cycle once, name it, and run it the same way from the Scripts screen, a rule, MCP, or its own entity. Paste it into four rules instead, and one day somebody fixes a step in three of them. -- **[Blueprints](/iot/blueprints/).** A rule written once with typed blanks, filled in per pump. Each rule keeps the blueprint version it was made from until a person reviews the upgrade, so Wednesday's edit to the blueprint doesn't change what pump 7 does on Thursday. -- **[Helpers](/iot/helpers/).** The values your people own and no PLC keeps: the batch target, which shift is on, the purge timer. Seven kinds, kept across restarts, and a value outside its range is refused, never clamped. -- **[Logbook](/iot/logbook/).** State changes, writes, alarms, rule runs, and config changes on one timeline, for the whole plant, one branch of the tree, one entity, or one actor. "What happened right before it broke" stops being a tour of five screens. -- **[The automation language](/iot/automations/).** Condition, wait, and stop steps inside a sequence, and `forSec` on a state trigger, so "the press has run for ten minutes" is a trigger instead of a delay and a prayer. -- **[UniFi Network, read-only](/iot/unifi/).** Switches, ports, PoE, WAN links, and clients as ordinary tags. When a PLC goes quiet, its drawer says which switch port it's on and whether that link is up, and a stranger on a network you marked OT raises an alarm. Nothing writes to a console. Its first real read of our own Cloud Gateway got fooled: it called the 5G backup up when it had been dead for two days, because it trusted the WAN block's stale `up` the same way the console's summary did. The health checks knew, and the driver reads those now. A real cable pull and a phone joining SCADA haven't been done on real gear yet, and the page says so. -- **Device passwords encrypted at rest.** A database dump or a backup holds ciphertext, with the key in a Secret the chart generates (`-secret-key`) and keeps. Coming from 4.16.0, the first start seals every stored password, and from then on that Secret is part of your data: back it up somewhere other than next to your backups, because a restore with credentials needs it. [Device credentials](/iot/protocols/#device-credentials) has the rules. -- **[MCP goes from 16 tools to 25](/iot/mcp/).** Nine more, for the logbook, scripts, recipes, blueprints, and the network. Every one that can move anything still demands a stated reason and still goes through the same gate as an operator. +- [4.18.11](/releases/hotloop-4-18-11/): PostgreSQL 17 with an upgrade that runs itself (read this one before you upgrade a running plant), SNMP and BACnet/IP through one integrations flow, kiosk sign-in with a lockout, alarm escalation, and a UI that installs on a phone. +- [4.18.10](/releases/hotloop-4-18-10/): the four-product lineup, a choice of database, MQTT and network discovery, historian targets, and boxes that update themselves. There is no 4.18.0 to 4.18.9, and the notes say why. +- [4.17.0](/releases/hotloop-4-17-0/): recipes, scripts, blueprints, helpers, the logbook, and UniFi Network, read-only. ## License diff --git a/src/pinned/gateway/upgrading.md b/src/pinned/gateway/upgrading.md index 26df628..401ab15 100644 --- a/src/pinned/gateway/upgrading.md +++ b/src/pinned/gateway/upgrading.md @@ -14,7 +14,7 @@ The chart repository's index lists only the latest chart, {{hotloop}}, so `hotlo ## Upgrading from 4.18.10 -Why bother: the database is PostgreSQL 17 now, and the box moves itself. You also get [integrations](/iot/integrations/) with SNMP and BACnet/IP, kiosk sign-in, alarm escalation, and a UI that installs on a phone. [The Gateway overview](/gateway/overview/#new-in-41811) has the list. What follows is the part that bites. +Why bother: the database is PostgreSQL 17 now, and the box moves itself. You also get [integrations](/iot/integrations/) with SNMP and BACnet/IP, kiosk sign-in, alarm escalation, and a UI that installs on a phone. [The 4.18.11 release notes](/releases/hotloop-4-18-11/) have the list. What follows is the part that bites. PostgreSQL will not open another major version's data directory, so a bare image change would have left every existing box with a database that can't start. HotLoop doesn't ask you to dump and reload. The first start after the upgrade runs a script before the database, and the script does the move. @@ -58,7 +58,7 @@ Copy the new `hotloop-db.container`, `hotloop-db-upgrade.container`, and `hotloo ## Upgrading from 4.17.0 -Why bother: the Gateway stops being the only image. IoT and Edge are new, the database is a setting, devices that announce themselves over MQTT show up on their own, history can be written out to the plant's own database, and a box that follows `:stable` rolls a bad update back by itself. That last one only works because migrations only add. [The Gateway overview](/gateway/overview/#new-in-41810) has the list. +Why bother: the Gateway stops being the only image. IoT and Edge are new, the database is a setting, devices that announce themselves over MQTT show up on their own, history can be written out to the plant's own database, and a box that follows `:stable` rolls a bad update back by itself. That last one only works because migrations only add. [The 4.18.10 release notes](/releases/hotloop-4-18-10/) have the list. It's a plain `helm upgrade`. I rendered the 4.17.0 and {{hotloop}} Gateway charts side by side with the same values: the same eight objects, the same selectors, the same volume claims. From ec480d7c61a9c7ed9a9939dc8fa488ce7033d122 Mon Sep 17 00:00:00 2001 From: patrickryan01 Date: Tue, 3 Nov 2026 06:58:28 -0500 Subject: [PATCH 12/12] fix(docs): the lineup stays at six, because neither codesys nor transmitter has a release, so their sections come back out and stay on the held branches --- astro.config.mjs | 26 ----- public/codesys/alarms-dark.png | Bin 45459 -> 0 bytes public/codesys/alarms.png | Bin 45676 -> 0 bytes public/codesys/device-dark.png | Bin 45364 -> 0 bytes public/codesys/device.png | Bin 45704 -> 0 bytes public/codesys/screen-dark.png | Bin 77356 -> 0 bytes public/codesys/screen-phone-dark.png | Bin 104332 -> 0 bytes public/codesys/screen-phone.png | Bin 105741 -> 0 bytes public/codesys/screen.png | Bin 122109 -> 0 bytes scripts/forbidden.mjs | 3 + scripts/sync-docs.mjs | 28 +---- scripts/sync-manifest.mjs | 30 ++---- src/components/ProductPicker.astro | 12 +-- src/components/SiteFooter.astro | 1 - src/content/docs/codesys/install.md | 63 ------------ src/content/docs/codesys/overview.md | 50 --------- src/content/docs/codesys/profile.md | 63 ------------ src/content/docs/codesys/roadmap.md | 40 -------- src/content/docs/codesys/where-it-stands.md | 48 --------- src/content/docs/gateway/reports.md | 2 +- src/content/docs/index.mdx | 4 +- src/content/docs/install/auto-update.md | 2 +- src/content/docs/install/helm.md | 2 +- src/content/docs/install/quadlet.md | 2 +- src/content/docs/iot/api.md | 2 +- src/content/docs/iot/authentication.md | 2 +- src/content/docs/iot/backup.md | 2 +- src/content/docs/iot/dashboards.md | 2 +- src/content/docs/iot/helpers.md | 2 +- src/content/docs/iot/historian-targets.md | 2 +- src/content/docs/iot/integrations.md | 2 +- src/content/docs/iot/mcp.md | 2 +- src/content/docs/iot/mqtt-discovery.md | 2 +- src/content/docs/iot/protocols.md | 6 +- src/content/docs/iot/recipes.md | 2 +- src/content/docs/iot/scripts.md | 2 +- src/content/docs/iot/unifi.md | 2 +- src/content/docs/products.md | 14 ++- src/content/docs/releases/codesys-0-3-0.md | 27 ----- src/content/docs/releases/hotloop-4-19-0.md | 63 +++--------- src/content/docs/releases/index.md | 12 +-- .../docs/releases/transmitter-1-0-0.md | 10 -- src/content/docs/roadmap.md | 4 +- src/content/docs/transmitter/api.md | 64 ------------ src/content/docs/transmitter/install.md | 37 ------- src/content/docs/transmitter/overview.md | 72 ------------- src/content/docs/transmitter/proof.md | 54 ---------- src/content/docs/transmitter/roadmap.md | 38 ------- src/content/docs/transmitter/timing.md | 34 ------ src/content/docs/transmitter/wire-format.md | 97 ------------------ src/data/sync.json | 32 +----- src/pinned/codesys/install.md | 59 ----------- src/pinned/codesys/overview.md | 46 --------- src/pinned/codesys/profile.md | 59 ----------- src/pinned/codesys/roadmap.md | 36 ------- src/pinned/codesys/where-it-stands.md | 44 -------- src/pinned/releases/codesys-0-3-0.md | 23 ----- src/routeData.ts | 2 +- 58 files changed, 63 insertions(+), 1170 deletions(-) delete mode 100644 public/codesys/alarms-dark.png delete mode 100644 public/codesys/alarms.png delete mode 100644 public/codesys/device-dark.png delete mode 100644 public/codesys/device.png delete mode 100644 public/codesys/screen-dark.png delete mode 100644 public/codesys/screen-phone-dark.png delete mode 100644 public/codesys/screen-phone.png delete mode 100644 public/codesys/screen.png delete mode 100644 src/content/docs/codesys/install.md delete mode 100644 src/content/docs/codesys/overview.md delete mode 100644 src/content/docs/codesys/profile.md delete mode 100644 src/content/docs/codesys/roadmap.md delete mode 100644 src/content/docs/codesys/where-it-stands.md delete mode 100644 src/content/docs/releases/codesys-0-3-0.md delete mode 100644 src/content/docs/releases/transmitter-1-0-0.md delete mode 100644 src/content/docs/transmitter/api.md delete mode 100644 src/content/docs/transmitter/install.md delete mode 100644 src/content/docs/transmitter/overview.md delete mode 100644 src/content/docs/transmitter/proof.md delete mode 100644 src/content/docs/transmitter/roadmap.md delete mode 100644 src/content/docs/transmitter/timing.md delete mode 100644 src/content/docs/transmitter/wire-format.md delete mode 100644 src/pinned/codesys/install.md delete mode 100644 src/pinned/codesys/overview.md delete mode 100644 src/pinned/codesys/profile.md delete mode 100644 src/pinned/codesys/roadmap.md delete mode 100644 src/pinned/codesys/where-it-stands.md delete mode 100644 src/pinned/releases/codesys-0-3-0.md diff --git a/astro.config.mjs b/astro.config.mjs index 085e00e..33d1ea1 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -161,31 +161,6 @@ export default defineConfig({ collapsed: true, items: grouped('cascade'), }, - { - label: 'HotLoop for CODESYS', - collapsed: true, - items: [ - { slug: 'codesys/overview', label: 'Overview' }, - { slug: 'codesys/install', label: 'Install' }, - { slug: 'codesys/profile', label: 'The profile' }, - { slug: 'codesys/where-it-stands', label: 'Where it stands' }, - { slug: 'codesys/roadmap', label: 'Roadmap' }, - ], - }, - { - label: 'HotLoop Transmitter (not released)', - collapsed: true, - items: [ - { slug: 'transmitter/overview', label: 'Overview' }, - { slug: 'transmitter/install', label: 'Install' }, - { slug: 'transmitter/api', label: 'API' }, - { slug: 'transmitter/wire-format', label: 'What goes on the wire' }, - { slug: 'transmitter/timing', label: 'What it adds to the task' }, - { slug: 'transmitter/proof', label: 'What was run' }, - { slug: 'transmitter/roadmap', label: 'Roadmap' }, - { slug: 'releases/transmitter-1-0-0', label: 'Release notes (draft)' }, - ], - }, { label: 'Release notes', collapsed: true, @@ -194,7 +169,6 @@ export default defineConfig({ { label: 'HotLoop core', collapsed: true, items: hlRelease.sort(relSort).map(page) }, { label: 'HotLoop Flow', collapsed: true, items: flowRelease.sort(relSort).map(page) }, { label: 'HotLoop Cascade', collapsed: true, items: cascadeRelease.sort(relSort).map(page) }, - { label: 'HotLoop for CODESYS', collapsed: true, items: [{ slug: `releases/codesys-${sync.codesys.version.replace(/\./g, '-')}`, label: sync.codesys.version, ...(sync.codesys.released ? {} : { badge: { text: 'Not released', variant: 'caution' } }) }] }, ], }, { slug: 'roadmap', label: 'HotLoop roadmap' }, diff --git a/public/codesys/alarms-dark.png b/public/codesys/alarms-dark.png deleted file mode 100644 index f3dafee7f014598155038901111ef6ea0b9b8b7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45459 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%0D_P&{_ypt&(ahhvOcR}bZSMpQ^V_$ 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 H!K;4*)D-&i diff --git a/public/codesys/alarms.png b/public/codesys/alarms.png deleted file mode 100644 index d09cfb83cd81271b7ce5b5a3078073d4da27e95b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45676 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%0DvYe~u~E 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 Ipn`b(Z?!gEO#lD@ diff --git a/public/codesys/device.png b/public/codesys/device.png deleted file mode 100644 index ca1f45752f6e425dc63674007d85cb3f9cb0d0b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45704 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 Aga7~l diff --git a/public/codesys/screen-phone-dark.png b/public/codesys/screen-phone-dark.png deleted file mode 100644 index 20c6731c51cc88ec36d6c6f05bada31a98d4079f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104332 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

73=(I`X%DPX5C3a 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

vp43e$4d@4tuzLkynJ~7 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 YtR2zT^k?!D_z#MdxctX*(a+!h56HIpo&W#< diff --git a/public/codesys/screen.png b/public/codesys/screen.png deleted file mode 100644 index 4d9df8606fe2fb9790e5827ae760f050e775b76e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122109 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®Qd8V-nD$)C< zgOb1kdZE8WE=ALs`A9o+rSRLIi5N>nm^MhR`%~lxP}5wYhGX>hctavfJhnnet&(|g z=YGW4(D0nCUYlq7P!4WG;Q?WKc^r=8hr?4tQb`runaasfvVs$sIs{g@-|kRZ$}Fbu zdCg`s*N*ZDE?_=0@^Cr2nN510Ke9P@ps zbCJ1}nL_7rIt{{B0{<-z??Ca&*8<-1BIFos)sj-?r`)+VY^+7NL%WR3g-kMucy9Sa zb9w8maNfV;xG3%N=7mn%7833ImUJPLVpC?UA=scHri;lD5&^YTLyuQmcu1}56z$~i zM45J#+*$;trBW1n>Qh~dDk6XWhy#9?=kw%oe7GDJ@}dG>7hlTPB2-k8Ne&A@M#gotTq%2Fl2-KXYoKQI!ce9|j?&xB zMFQ=SX9G@B^vyY#YQmEc_;!nj}Tfeahn$>IZD-(!kT{l1%i`5 zA~g8DmuVzsAQAbxOthgIeIIB*AnDFm!^zMG%fqAnEpz!m_R@E~!<$C>9+qI zYkA$pHxsIhl-A2r#v#0eLwf41>U8bi;Fswti?RF)2pMQ(OU^XG) zG9#)7Fzn~DVb}VE8W~pbmf_i9PZ2R5M!cmeqaTRX$5au#$ z0bWKKx8JCasAdB)QLWBVt*+SqX>kD#?VEIE#EPOK7SP||Ec=rlXU&q~BNQR;1dlqhgzYII7gD2x!&m@zcex;_6Q~>Xc43+^xi#V|Br$!nPdV!Wd zgIf`b{&Y;ab(1uu2YYx z*NwZ|#@*eW;O@S;ohQlrez#8DI(2{Cx~G3p>|Wiyq-W1L)|g`^5)h8t=y_)9sjC;~ zD{54@*)c0M(bF1*zn(6dMn&BG8ko<+ulJc(s3lX4DH^Op$obFuR5IUyuB3r>xWtst>jv;O@`c(K84x(9Ol z0eC*wPEx20_MOXntpzuWI({*7uDrAd&r~t+_>8WFXLKBtA>8;6RM_DL3nhh0v}S^@ z0`t#$PR*3)V3YxJ(rYDT_P6r(-h{eiDK+IkMKyTPxD@+_w}h@w&IMpUuv5SH9I;;v zi;<)&DhUey=rVt=G|^yu$g!13QhjV8s5zZ4!c6mzR;^pI?U;xL84%-jWJ+^K!`*B~ zVlU+QP>Ct8%QTQPGB$69Z*5s+)0CgUz#DDN~^204kQ&VKL@5HdX=bD&A$6^ z@QGa&59We}PrP2(r>amHa)}q~8?+g;p^~q){sYHCUw^$G;Hj58Gxwd~IlqiGCJII$ z0caYM71U4hw0pB<^r=N&(zwJ1z2y-tzf#XCHGq@H?^s16w= z{w=wd*(O~G#wLtu6Z2K?rP;Ti-L}gSw!=CZ4Gm^8L7x}F?S3(I?4hpb5)Y2wI$jRe z86HsfYc^4TwM~q9+XM?A%F{hf!CP5*Lq!%-9+de)z}=)W9ux3TSj23n;UR+RePWWyeK|c*RqobWtM1`9 z2uw=KUT*x$Zx-vHaia%k5q~}JhzC0z6nGUPgHd(Ol&H@nqeG+oLI`+AI(xr7@XhC< zXxkye>T{j#>gzWQPxe)-GD)KoCq1cs$6JtP`6?-$hW&N<~-5|CSaf4myuqybFJ} z2)5b(Icr|@K1+&qBk>4oWkBQ|E9xWpn@R^Qv)FgAjI;M_Ljc@l8aiS= zcy!4muAGNYd-iM#htEh_rdHZgnr`}S1XC+A0e;CZP-vyU_QTOF1IRTj7PPRjmYUdXqtoR!G0|&x z5oJxJ@Ra+*ZV?cwiF`8Jm%Nq1WurWGj+oe3r=8u<>fxzyAjavSl_pf4S85biXz#Y0 zP3$dkb7WIB>sVIF?8>1J%IS4AyyR)OgK{gdlH`GEnt*aPja}aFQ5ru=$q$Di|WZmSDsDLs4 zpx_fq0x%m+^W2nVke-$K={kF=LNc!9CIDYsFCv@I%@kDjlatKQSYkv$p%D7W-D14Q zdwO321B3O)xpPL}-FkpF>V&JZ7!*|z^z4%)SGeT-%ZnGCHQIJw5NeN~75bEPzOMmH z=EU6wn}l)n#yYsK76p4Yh-uTXGpu-wK~H4LXDCX!e^UYfJstPya5H+9o0ofN$$i^bGTBF}-hkbA7;EdKSb3h>Pb z;1_wF<9mpO{nTikiM5G=p`rLRkdj0dys|!d+(usfexw2Eikp(RT-=0W15~_NtJI}G ze^)ctXnEDlb*U)6GdIXp$Yf7DWzsY>yRjBrP%A4`H_zFD;NFzuM4>wQVkEu9nx_8R zM9x5nXv#vj=($DEL&7;V{5_ z*EO3v2lMMuMa@jf#Zhp8kOU?$DS7&)MY`PmX420zD1<)bJZDSKC;#hRcyp;fKQtO zwK1A*65>rk!=G-WFIC4n8ngOD*YxlEAEwy%a-qpJTz16|O^f;}DMt_|#f{$HVf~J5 z#ow~1s85!4o3ynSF{oy{ZK0<kRwZY?T2-p@Ko1BE&9&9#p=#KRO!1Z#id#oU3y(0C7Mp)7(=*h4V`_Z$p z&fd;Ii?=b+gBR~}GL@jAgszTz!ph%%r6^qu6n^HEq57nDFG_fzIA;`49ju=Ww!UTO z=4Jw|SI;CYA8aT9cyX5))gU(zRdmv79c@SL{6vM5#!)GVW=R*9yapl$>H=cI*yGL` zyTQRhDhq*vQK%FW4M^UX8#42F=UfKf!_7&hUjhV*>Qa7O(N5PA2F~Zn^7Jvm%8c9R z&@=&1VeQT*1M7RnfxRs;mqQo>8Ug|n%1Kr>L}{d>rWcF>&HSMWaCmm?@V4$7uM>y) zen{%R@6&y=#h{fgq(BofQKCDe#H0K|Q6XunNZd2?9zW+acXhpPe=rN>=KIKpdTFKl z`p0ABL5zga$%8M~FrjV|f020z737V4{VQ3JO-kdo4;spgdAEi*x$auA8BxqxWd4#G3y`lf0urL zd1|5*QE<@G#MAs>reL{2nv_hmeJZKfL=U`JDLIw>MmJadCkOPF@sEcKVu6UMM{9Ra z^5QK7PHa^o@PC^QmD}p(Qc}u&Afe2{NHQuk0hvh*G?IxDAiBBG4!U%mtDv1;0JiFS!q32v525jS)RO}W8mf(iVHyhk z?l$s2<4F125ieK6H+zplA#~F>!KyniYbvVVOq7^3ur0(hUtX+AdED8}7eD0dP!gun zQ0KH|hRY{Y8X2Jz@e1IF9h(%`(Pjw_2N*5TzYDMPmeGIfWJSMso7d)Nu}5XiB>csq z;lq7~;XFt^u}1xx943n6o9F$BOT@nV1N6J=WlW97-A#evXIcwhjje4tV4oe>F}vv= z*~CyUG}xp=Ss+7M=;slEEDAeg9V(b3K$~Jdr&92q(INtkq0ajjg)UHE zEcj}J5~S<^=z{ECXkK1cN70v7mcB$00k-aed#o}KT3sYB6Y+#hvh^{KZg^Ge_XhD% zKR}kxb&lJ&Jj`cWnn27gPRaZvC5LcG4>nOX#`#>5_4ek|IbwLQu5||D`JKJJgBiQ; zOt^lCx1ggO*gGnvnMU<>03R6}9xawZcA_6+J?*wOE&`m2-ApE?3RAXpaq)PZe4gxD z*iJ=kl%y{-*;0zHIPbago3STyu7Qt*;DSwT&wnNZ%e_-&6UCQb<6rm;VGsKqT89y+ zXgZmIq5|my3Sbxlv|Rkwg39LkqT8(y+gN7A5>xW z`{ov7VO2B*wghq={p}hSO{*f5-G~TEz?$YAx(hMejS5@`)Wlr5j$zRS?01*D)p}=_ zqzL&ROVBQF9$Efk0oo0E!O{$wkrCi$W;L=0)JPH>9(_LYos7zRXoM57d6G{b6CbD{ zgdki9{`NExyRmS@ZeQS0l-uIPE{e8IBo!W@jY z6~Orby;y~L^>T2rOlexgG;Qu1X}IirK!R@O^2c^pF&lb=R$~V*n2t2rqCdgyTXo_8|lIt+^HzNgETbsrH zLm&tF@o6$tq4GW*{!ZQ!zrce$rh+Bf@lAB~JEPBcsI<0iQ&UYe;Y`I(MXJB)<3a}2 z@BhU`1H0r~W5BPuadfEk3d>|maz{Y=WCTskg7qC*jcz<2sX16#p$<~Z=$3nu$}w+g zDN_X`a+4TC>fdeEw|k&Byj-D57SE`>!0bZoU3|4d#i;lB?Lp#w2hFE7eG{eMa)SNvHfYHf`mukW{_JFKBd2RG)0h*>yn6tiRJk6{Hx_QoKwy1 zFE*8qd94V9PHPw&AayNprN0v62(+?_U?<6BDg6id`PUJxl&%Rf&-KTo7eR3F^-lf3 z79ha!+yLIp>0SLF$`&ieldvuMTH9m;rO{-8cvC!NCamj4gx~Gu+h4AH<#ld<^Q}WH z;7gQOu+@9s4C2n;Kf;;AKP4K@VJZFYdLKYTb_A>C_|w!J^(oOt21{8iJ26F% zG=GRts0T!IB7fOnF#yd?M-m=2ewhlQMpIvhpoh*|3Bba69~@R3QRl3F z--*8nlR5XfuZ8DWm(*)_A$vPofDnhZjROtdJ{-5>Cd;UBgTqVAh!r$Nj zA2dS$CsXo&f5-n<@}vL9TskFgGOkft&o=JuLEu~3hz+9;>Te7rRk)r>(-|p}LA)Si z9Xfi4ZCQSWE`ao!8@@u%21;0YHCtT}kca^&aAG2N>Zkj_P!awv&C3a4PoeKb3?X&& z;wVObQz)8@kTSGT5P?R826;~io*~6^CjCx~aB6xj97ma`&7s0w?4F->H$W6@%aa%8 zl@b=FMu&^6o4^m}YYs?}dP&D5Qc4Z>OpU(Uku)Xz&nv(NvIg#xOy}knCP*l$Y3*F` zs*oZ5xs=}b&MD2;gjDqnk*IbP);SaGCedWEwB=`~(I}7zuZb3|J{?i)yol!_n8XoY zZ)&^%mNUM(bDf}96NnUZwdt450gha=$=53{yB2VGxr-|=@-5Os*RZRXeD%T#_HfYZ zsrKDwg8K#;d-{f$S;v@}MvO{c0HjV@GFo<4vUz^peA-dH-`9a-&8>e*)K-ex7SNA! zC0pe|D|w?3CnRnGJAU2YFJF6I5!6347~A`k4Yvz3S@pyiEoeuaoD<-ZqxdT7s{SSC znoCwa`&7FvY8&S$!v57w30;S zCOlY0`CTF&V9hcAUUX^bBOGM_Z(ukrVN^C-d(d16Pq2-&bvvGVL-^Mt9FY9Bdh+ufc&h0KqB1@GD~=A9xqWc{A2zG2my;BqS)yBl zX3u_Z;=RTf$BzQqxUBsiih9pIWo&a{%Y)r~RGXhhDiUX*7<_kKOAUhq)?4MAp4J@# zi7LA

@@ -29,7 +24,7 @@ const install: Record = { iot: '/iot/install/', edge: '/edge/ins

{l.label} line

- {l.unreleased ? Not released yet : {l.id === 'cascade' && cascade.prerelease ? 'Pre-release ' : 'Version '}{l.version}} + {l.id === 'cascade' && cascade.prerelease ? 'Pre-release ' : 'Version '}{l.version}

{l.note}

@@ -75,6 +70,5 @@ const install: Record = { iot: '/iot/install/', edge: '/edge/ins font-size: var(--hl-fs-2xs); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--hl-ink-soft); } .chip::before { content: ''; width: 0.5em; height: 0.5em; border-radius: 50%; background: currentColor; } - .chip.warn { color: var(--hl-warn-text); background: var(--hl-warn-tint); border-color: color-mix(in srgb, var(--hl-warn) 35%, transparent); } .chip.ok { color: var(--hl-ok-text); background: var(--hl-ok-tint); border-color: color-mix(in srgb, var(--hl-ok) 35%, transparent); } diff --git a/src/components/SiteFooter.astro b/src/components/SiteFooter.astro index 82cabd7..b8b43fa 100644 --- a/src/components/SiteFooter.astro +++ b/src/components/SiteFooter.astro @@ -35,7 +35,6 @@ const hasTerms = existsSync(new URL('../content/docs/terms.md', import.meta.url) HotLoop roadmap Flow roadmap Cascade roadmap - HotLoop for CODESYS roadmap {hasLicense && License} {hasTerms && Terms} diff --git a/src/content/docs/codesys/install.md b/src/content/docs/codesys/install.md deleted file mode 100644 index 20fe664..0000000 --- a/src/content/docs/codesys/install.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -# generated by scripts/sync-docs.mjs -title: "Install HotLoop for CODESYS" -description: "Install HotLoop for CODESYS from the EmberCORE App Store or with Helm: what the node needs, the profile Secret, what it does by itself, and how to check it." -sidebar: - label: "Install" -editUrl: false ---- - -:::caution[Not released yet] -HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart is not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. -::: - -HotLoop for CODESYS is a Helm chart, `hotloop-codesys`, that installs HotLoop Edge and a provisioner on the same node as a CODESYS runtime. On EmberNet it is an App Store app. With no EmberNet it is Helm on k3s. - -## What the node needs first - -- **A CODESYS runtime on the same node that publishes its OPC UA server on port 4840.** The provisioner finds the node's own address from Kubernetes and reads `:4840`. The runtime's own chart publishes that port on the host. -- **A Symbol Configuration in the PLC program** with *Support OPC UA features* on, listing the variables you want to see, or `{attribute 'symbol' := 'read'}` on them in the declaration. A PLC with no Symbol Configuration answers the setup with a message that says to add one. This is the only change to the PLC project. -- **HotLoop 4.19.0**, which is where the CODESYS connector is. The chart depends on the `hotloop-edge` chart on the `~4.19.0` line. -- **A profile.** One Secret with one key. [The profile page](/codesys/profile/) has the shape. - -## From the EmberCORE App Store - -The chart is marked for staff, so the Store lists it for EmberNet staff, and they install it onto the customer's tenant. The Store writes the profile into the tenant's namespace as `-profile`, passes the node picked and the tenant's labels into the chart, and passes the dashboard's public key for sign-in. After that there is nothing to do. - -## With Helm - -Not released yet, so these commands will not work today. The chart repository at https://hotloop.io/hotloop-codesys/ answers and lists no chart, so `helm repo add` succeeds and `helm install` finds nothing to install. They are the commands the chart will take. - -```bash -kubectl -n create secret generic -profile --from-file=profile.json -helm repo add hotloop-codesys https://hotloop.io/hotloop-codesys/ -helm repo update -helm install hotloop-codesys/hotloop-codesys -n -``` - -Name the Secret `-profile`, or change what the chart looks for with `profile.existingSecret` (the Secret) and `profile.key` (the key, `profile.json` by default). To pin the install to the runtime's node, set `nodeSelector`. For HotLoop alone with no profile, to set up by hand, install with `--set provisioner.enabled=false`. - -## What installing does - -1. HotLoop Edge starts on that node with SQLite on the node's local-path storage. No database pod, one replica, and the update strategy is `Recreate`. -2. The provisioner starts on the same node. It reads the mounted profile at every pass, so a newer one reaches a running install. It waits for HotLoop and for the node's own CODESYS runtime, then sets up the profile's device, variables, alarms, and screen. -3. It looks again every five minutes and keeps the device right as the PLC's program changes. Variables a profile lists that the PLC now has are added, and one the PLC no longer has reads bad with the server's reason. -4. Both pods tolerate `node.kubernetes.io/unreachable` and `not-ready` with no `tolerationSeconds`, so a node that loses its control plane keeps them. The chart carries this itself and does not depend on the cluster's setting. - -The OPC UA server, the embedded broker, edge publishing, and backups are off, because none of them is wanted beside a runtime. Turn one on through the `hotloop-edge` values if you want it. - -## Check it - -```bash -kubectl -n logs deploy/-provision -``` - -A good start says the device was set up with its variables, none writable, and that the alarms and the screen were made. Open the HotLoop service, sign in as `admin`, and look at Devices and Dashboards. The admin password is in the release Secret, the same as any HotLoop chart. - -## Sign-in from the dashboard - -From HotLoop 4.19 the Edge chart signs a person in from the EmberCORE dashboard's signed assertion (the `embernetSignin` values, four `HOTLOOP_AUTH_ASSERTION_*` variables, and the Service annotation `embernet.ai/signin: assertion`). This chart inherits all of that from the `hotloop-edge` subchart, and the Store passes the public key into it. The provisioner uses the chart's admin account, which local login still allows. In a lab cluster a good assertion signed a person in as an operator or an admin, and a wrong app, a wrong tenant, an expired one, a wrong issuer, and a tampered one were each refused. - -## What isn't proven - -The status page has the list, and the short version is: nobody has installed this from the real Store page, on a physical controller, or on k3s v1.35.7. [Where it stands](/codesys/where-it-stands/). diff --git a/src/content/docs/codesys/overview.md b/src/content/docs/codesys/overview.md deleted file mode 100644 index aa3a460..0000000 --- a/src/content/docs/codesys/overview.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -# generated by scripts/sync-docs.mjs -title: "HotLoop for CODESYS" -description: "HotLoop beside a CODESYS runtime: the screens and alarms for a CODESYS PLC, read through the runtime's own OPC UA server, with nothing installed in CODESYS." -sidebar: - label: "Overview" -editUrl: false ---- - -:::caution[Not released yet] -HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart is not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. -::: - -HotLoop for CODESYS is HotLoop running on the same node as a CODESYS runtime. It reads the PLC's variables through the runtime's own OPC UA server, puts them on screens that work on a panel PC, a phone, or a wall, raises alarms on them, and keeps the history. Nothing is installed in CODESYS and nothing writes to the PLC. What that buys you: the operators get a screen without a download to the PLC, and the PLC gets a second set of eyes that doesn't depend on anything else on the node. - -It is the seventh HotLoop product, and its own release line. Under it is HotLoop Edge, so everything on the [Edge pages](/edge/overview/) is true here too. - -![The Line 2 screen: four value cards, a gauge, a fifteen minute trend, and an alarm list](/codesys/screen.png) -![The same, in dark](/codesys/screen-dark.png) - -That is a real run: HotLoop's default interface, from a HotLoop Edge build of main, reading a CODESYS Control for Linux SL 4.22.0.0 runtime in a container. The PLC program is HotLoop's own lab program, so the numbers are the lab's. The labels (Line 2, Mixer temperature, Riverside Bottling) are made up and put there by the [profile](/codesys/profile/). - -## The three parts - -| Part | What it is | Where it lives | -|---|---|---| -| The chart, `hotloop-codesys` | A wrapper around `hotloop-edge` with defaults for a runtime on a node: SQLite, one replica, and the parts you don't need beside a PLC switched off. Every HotLoop chart fix reaches it. | `https://hotloop.io/hotloop-codesys/` | -| The provisioner | One static Go binary that applies a profile to HotLoop and keeps it right. It holds no profile. | `ghcr.io/hotloop-io/hotloop-provision` | -| A profile | One JSON file: the device, the variables to keep, the alarms, and one screen. The one input you give. | A Secret in the install's namespace, [described here](/codesys/profile/) | - -## How it reads the PLC - -CODESYS documents one way for a third party to read a controller's variables, and it is the runtime's own OPC UA server. The PLC publishes what you want seen with a Symbol Configuration in the IDE, and HotLoop reads those variables by the names the programmer gave them, like `Application.GVL_Line.rTemp`, not by a node id. The Symbol Configuration is the only change to the PLC project. The CODESYS Gateway's channel protocol is not documented for third parties, and this does not speak it. - -The reading is HotLoop core's CODESYS connector, which is the OPC UA driver plus what a CODESYS PLC needs on top: discovery of what the application exports, the types it has, arrays and structures walked into one point per field, a reconnect with no hands after a restart or a download, and every request cut to the limits the runtime publishes. The [protocols page](/iot/protocols/) carries the connector's reference from HotLoop 4.19.0 on, and it says what it was verified against and what it was not. - -## What it does by itself - -Once HotLoop and the node's own runtime both answer, the provisioner sets up the profile's device, its variables, its alarms, and its screen. Then it looks again every five minutes. A variable of the profile that the PLC has gained since is added. One the PLC no longer has reads bad with the server's reason. The screen and the alarms are made when missing and replaced only when the profile's `revision` is higher than the one that made them, so a change a person made survives until a newer profile is shipped on purpose. - -## What it won't do - -- **It won't write to your PLC.** Every tag the provisioner sets up is read-only, and the profile marks none writable. A person can arm a tag later, and then the [write gate](/gateway/write-gate/) and the PLC's own symbol rights both get a say. -- **It won't put anything in the runtime.** No library, no task, no agent. -- **It won't need a database pod.** SQLite on the node's own storage, one replica. -- **It won't lose its screens to a bad link, in theory.** Both pods tolerate an unreachable or not-ready node with no time limit. The tolerations are in the chart, and the link was never cut on a real node, so [the status page](/codesys/where-it-stands/) lists that as not shown. - -## Where to go next - -[Install it](/codesys/install/), read what a [profile](/codesys/profile/) holds, or see [where it stands](/codesys/where-it-stands/) and the [roadmap](/codesys/roadmap/). diff --git a/src/content/docs/codesys/profile.md b/src/content/docs/codesys/profile.md deleted file mode 100644 index 95904b7..0000000 --- a/src/content/docs/codesys/profile.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -# generated by scripts/sync-docs.mjs -title: "The profile" -description: "The one input to HotLoop for CODESYS: a JSON file with a revision, the device and its variables, the alarms, and one screen, and how the provisioner applies it." -sidebar: - label: "The profile" -editUrl: false ---- - -:::caution[Not released yet] -HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart is not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. -::: - -A profile is one JSON file in a Secret in the install's namespace, under the key `profile.json`. It is not in the chart or in the provisioner image, so both are generic and public, and nothing in either names anyone's variables. Whoever installs the app gives it. On EmberNet the Store writes it as `-profile`. - -The provisioner reads it again at every pass, so a newer profile reaches a running install without a restart. - -## The shape - -| Key | What it holds | -|---|---| -| `revision` | A whole number from 1. The screen and the alarms are replaced only when this is higher than the revision that made them. | -| `device` | `id`, `name`, `options` (the connector's options, such as `browseRoot`, `arrayElements`, and `browseMaxNodes`), and `points`, the variable names HotLoop keeps from the PLC. | -| `alarms` | HotLoop alarm definitions, each with an `id`. | -| `dashboard` | One HotLoop screen, with an `id`. A [dashboard](/iot/dashboards/) is a list of cards. | - -One profile makes one device and one screen. - -## An example - -This is the profile behind the screenshots on the [overview](/codesys/overview/), against HotLoop's lab program. `GVL_Demo` is the lab program's variable list, and the labels are made up. - -```json -{ - "revision": 2, - "device": { - "id": "line-2", - "name": "Line 2 PLC", - "options": {"browseRoot": "Application.GVL_Demo", "arrayElements": 4, "browseMaxNodes": 500}, - "points": ["GVL_Demo.bRun", "GVL_Demo.rTemp", "GVL_Demo.udiCycles", "GVL_Demo.nEcho", "GVL_Demo.rEcho", "GVL_Demo.rReadOnly"] - }, - "alarms": [ - {"id": "line-2-mixer-hot", "name": "Mixer temperature high", "tagName": "GVL_Demo.rTemp", "condition": "hi", "limit": 20, "deadband": 0.5, "priority": 2, "message": "{device}/{tag} at {value}, limit {limit}"} - ], - "dashboard": { - "id": "line-2-screen", "name": "Line 2", "description": "The Line 2 screen.", "kind": "cards", "roles": [], "homeFor": [], "screens": [], - "cards": [ - {"id": "t", "type": "value", "title": "Mixer temperature", "w": 3, "h": 2, "config": {"tag": "line-2/GVL_Demo.rTemp", "decimals": 1}}, - {"id": "tr", "type": "trend", "title": "Mixer temperature, last 15 minutes", "w": 6, "h": 3, "config": {"tags": ["line-2/GVL_Demo.rTemp"], "minutes": 15}}, - {"id": "al", "type": "alarms", "title": "Line 2 alarms", "w": 6, "h": 3, "config": {"outstanding": true, "limit": 8}} - ] - } -} -``` - -A card's `tag` is the device id, a slash, and the point's name. The card types, the alarm conditions, and the rest of a screen's keys are the same as in HotLoop's [dashboards](/iot/dashboards/) and [the HTTP API](/iot/api/). - -## What the provisioner does with it - -- **It makes the device** if there isn't one, and adds any variable of `points` that the PLC has and the device does not. -- **It never writes to the PLC.** Every tag it makes is read-only, and a profile has no way to mark one writable. -- **It makes the alarms and the screen** when they are missing, and replaces them only when `revision` is higher than the one that made them. A change a person made to the screen in HotLoop therefore survives until a newer profile ships on purpose. -- **It keeps looking.** Every five minutes, and sooner after a pass that could not finish, because the runtime or HotLoop was not answering yet. diff --git a/src/content/docs/codesys/roadmap.md b/src/content/docs/codesys/roadmap.md deleted file mode 100644 index 9561b73..0000000 --- a/src/content/docs/codesys/roadmap.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -# generated by scripts/sync-docs.mjs -title: "HotLoop for CODESYS roadmap" -description: "What HotLoop for CODESYS has built and what is left to prove before and after the first release." -sidebar: - label: "Roadmap" -editUrl: false ---- - -:::caution[Not released yet] -HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart is not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. -::: - -This is the list of what is done and what is left, in the order it gets done. It promises nothing that isn't in the code or in a test plan, and it is mostly [the not-proven list](/codesys/where-it-stands/) turned into work. - -## Built - -- [x] A chart around HotLoop Edge with defaults for a runtime on a node: SQLite, one replica, tolerations that keep both pods through a lost control plane. -- [x] A provisioner that applies a profile and keeps it right, with a revision that protects what a person changed. -- [x] The device, tags, alarm, and screen made with no hand step, against a CODESYS Control for Linux SL 4.22.0.0 runtime in a container. -- [x] Recovery from a runtime restart with no hands, about 88 seconds in the lab. -- [x] A signed sign-in from the EmberCORE dashboard, with the refusals. - -## To ship the first version - -- [ ] HotLoop 4.19.0 released. -- [ ] The chart published at `https://hotloop.io/hotloop-codesys/`. -- [ ] Release notes for the first version. - -## To prove - -- [ ] An install from the real App Store page, as staff do it. -- [ ] A physical controller. -- [ ] k3s v1.35.7. -- [ ] A node that really loses its link to the control plane, with the pods kept. -- [ ] A download from the CODESYS IDE while the runtime stays up. -- [ ] A runtime on the host's own network beside the HotLoop pod on one node. -- [ ] A runtime with user management on, and a certificate-secured OPC UA endpoint. - -Nothing past this list is decided yet. When it is, it goes here with the same marks: built, or not built. diff --git a/src/content/docs/codesys/where-it-stands.md b/src/content/docs/codesys/where-it-stands.md deleted file mode 100644 index 7b0cb8f..0000000 --- a/src/content/docs/codesys/where-it-stands.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -# generated by scripts/sync-docs.mjs -title: "Where HotLoop for CODESYS stands" -description: "What HotLoop for CODESYS has been run against, what it has not, and what has to ship before you can install it." -sidebar: - label: "Where it stands" -editUrl: false ---- - -:::caution[Not released yet] -HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart is not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. -::: - -A doc that rounds up is how somebody finds out at commissioning, so this page is the whole list. - -## What is true today - -HotLoop for CODESYS is built and has been run against a real runtime in the lab. It is not published. To install it, three things have to ship, and none of them has: - -- **HotLoop 4.19.0.** The CODESYS connector is in HotLoop core's main branch for that release, and the chart depends on the `hotloop-edge` chart on the `~4.19.0` line. -- **The chart.** `https://hotloop.io/hotloop-codesys/` answers and lists no chart yet. -- **The release itself:** the notes, and the version. The first version is [0.3.0](/releases/codesys-0-3-0/). - -## What was run - -In the lab, the chart on a k3s v1.36 node with Store-shaped values, a real CODESYS Control for Linux SL 4.22.0.0 runtime on the same node running HotLoop's own lab program (built with the CODESYS ScriptEngine), and a HotLoop Edge image built from HotLoop's main branch. - -- The device, its tags (none writable), its alarm, and its screen appeared with no hand step. -- Every value read good and moved. -- The pods came back after a pod delete. -- The install read bad with the reason "the PLC's runtime is not answering" through a runtime restart, and came back by itself about 88 seconds after. -- A signed sign-in from the dashboard signed a person in as an operator or an admin, and a wrong app, a wrong tenant, an expired one, a wrong issuer, and a tampered one were each refused. - -The connector under it, HotLoop core's CODESYS driver, is verified live against a CODESYS Control for Linux SL 4.22.0.0 runtime in a container, for reads and writes, and not on a physical controller. Writes are there in the connector, and this product never turns them on. - -## What was not - -- An install from the real App Store page. The Store's code was changed and tested, and no Store has listed the chart, because it is not published. -- A physical controller. The only runtime it has met is a container. -- k3s v1.35.7. The lab is v1.36. -- A node actually losing its link to the control plane. The tolerations are in the pods, and the link was not cut. -- A download from the CODESYS IDE while the runtime stays up. The lab replaces the runtime process. -- A hostNetwork runtime and the HotLoop pod on one node. The lab runtime is a container on the node's own network, reached at the node's address. -- A runtime with user management on, or a certificate-secured OPC UA endpoint. - -## What a profile can't do yet - -One profile makes one device and one screen. There is no way to mark a variable writable from it, on purpose. diff --git a/src/content/docs/gateway/reports.md b/src/content/docs/gateway/reports.md index 08a288e..01edb18 100644 --- a/src/content/docs/gateway/reports.md +++ b/src/content/docs/gateway/reports.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: Added in 4.14.0. `internal/reports` runs operator-defined reports on a schedule: diff --git a/src/content/docs/index.mdx b/src/content/docs/index.mdx index 9666f0a..9273c66 100644 --- a/src/content/docs/index.mdx +++ b/src/content/docs/index.mdx @@ -1,6 +1,6 @@ --- title: HotLoop documentation -description: "Docs for every HotLoop product: IoT, Edge, Gateway, Edge Relay, Flow, Cascade, and HotLoop for CODESYS, with each claim marked as proven or not proven yet." +description: "Docs for every HotLoop product: IoT, Edge, Gateway, Edge Relay, Flow, and Cascade, with each claim marked as proven on real equipment or not proven yet." template: splash editUrl: false hero: @@ -23,7 +23,7 @@ import LatestReleases from '../../components/LatestReleases.astro'; ## The family -HotLoop is eight products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, HotLoop for CODESYS for the PLC's own screens, and Transmitter for putting its values on the wire. They ship on four release lines, so each carries its own version. Each section in the sidebar shows only what that product ships, and a bigger product links back to the pages it carries from a smaller one. +HotLoop is six products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring and Cascade for workflows. They ship on three release lines, so each carries its own version. Each section in the sidebar shows only what that product ships, and a bigger product links back to the pages it carries from a smaller one. diff --git a/src/content/docs/install/auto-update.md b/src/content/docs/install/auto-update.md index 4709fb2..3845202 100644 --- a/src/content/docs/install/auto-update.md +++ b/src/content/docs/install/auto-update.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: Every box tracks `:stable` and Podman updates it. That is the rule for all four diff --git a/src/content/docs/install/helm.md b/src/content/docs/install/helm.md index a75a5bc..2f8cbf2 100644 --- a/src/content/docs/install/helm.md +++ b/src/content/docs/install/helm.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: The chart deploys two workloads: the gateway (a Deployment, it holds no durable diff --git a/src/content/docs/install/quadlet.md b/src/content/docs/install/quadlet.md index e1a8cb8..38af714 100644 --- a/src/content/docs/install/quadlet.md +++ b/src/content/docs/install/quadlet.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: For a Pi or a small industrial PC that is **not** part of a k3s cluster. If diff --git a/src/content/docs/iot/api.md b/src/content/docs/iot/api.md index 1b2081a..932ab9a 100644 --- a/src/content/docs/iot/api.md +++ b/src/content/docs/iot/api.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: Every call the Gateway answers over HTTP, what it needs, what it takes and what diff --git a/src/content/docs/iot/authentication.md b/src/content/docs/iot/authentication.md index 46bfc94..dd1fa4d 100644 --- a/src/content/docs/iot/authentication.md +++ b/src/content/docs/iot/authentication.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: Added in 4.4.0. Before it, this gateway had no login of its own: the EmberNet diff --git a/src/content/docs/iot/backup.md b/src/content/docs/iot/backup.md index 5544e66..9233b92 100644 --- a/src/content/docs/iot/backup.md +++ b/src/content/docs/iot/backup.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: Added in 4.12.0. `internal/backup` takes logical, table-data-only snapshots diff --git a/src/content/docs/iot/dashboards.md b/src/content/docs/iot/dashboards.md index 04dcd19..8d60c7f 100644 --- a/src/content/docs/iot/dashboards.md +++ b/src/content/docs/iot/dashboards.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: A dashboard is a page of cards somebody built. Gauges, trends, lists of diff --git a/src/content/docs/iot/helpers.md b/src/content/docs/iot/helpers.md index 71cd268..cb86be1 100644 --- a/src/content/docs/iot/helpers.md +++ b/src/content/docs/iot/helpers.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: A helper is a value the plant's people own rather than a PLC. "Line 2 is in diff --git a/src/content/docs/iot/historian-targets.md b/src/content/docs/iot/historian-targets.md index 29bf0e7..783c714 100644 --- a/src/content/docs/iot/historian-targets.md +++ b/src/content/docs/iot/historian-targets.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: HotLoop keeps its own history, and it isn't going anywhere. But a plant diff --git a/src/content/docs/iot/integrations.md b/src/content/docs/iot/integrations.md index 8c87ba6..fb0ff5b 100644 --- a/src/content/docs/iot/integrations.md +++ b/src/content/docs/iot/integrations.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: An integration is how you point HotLoop at a kind of device you know the diff --git a/src/content/docs/iot/mcp.md b/src/content/docs/iot/mcp.md index 02a6d1e..c12c3c0 100644 --- a/src/content/docs/iot/mcp.md +++ b/src/content/docs/iot/mcp.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: The gateway speaks MCP in both directions: agents can read and drive the plant, diff --git a/src/content/docs/iot/mqtt-discovery.md b/src/content/docs/iot/mqtt-discovery.md index 6ca713b..059e4dc 100644 --- a/src/content/docs/iot/mqtt-discovery.md +++ b/src/content/docs/iot/mqtt-discovery.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: Point a device at HotLoop's broker and it shows up. Its sensors read, its diff --git a/src/content/docs/iot/protocols.md b/src/content/docs/iot/protocols.md index feba407..7838b96 100644 --- a/src/content/docs/iot/protocols.md +++ b/src/content/docs/iot/protocols.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: This document says exactly what the gateway speaks, exactly how far each driver @@ -650,9 +650,7 @@ things about open62541 itself, found doing it: its subscriber discards keep alive messages ("Only keyframes are supported") though a keep alive is a valid DataSetMessage, and its RawData publisher sends one message and then stops with `BadInternalError`. HotLoop's publisher is read correctly by its subscriber all -the same, and the RawData read is of that one message. A CODESYS ST publisher and a Go -receiver written elsewhere were read for interoperability and share no code -with this. +the same, and the RawData read is of that one message. A CODESYS ST publisher and a Go receiver written elsewhere were read for interoperability and share no code with this. ### CODESYS A PLC that runs a CODESYS Control runtime (Linux SL, ARM64, Raspberry Pi, Windows, diff --git a/src/content/docs/iot/recipes.md b/src/content/docs/iot/recipes.md index d97e115..661113d 100644 --- a/src/content/docs/iot/recipes.md +++ b/src/content/docs/iot/recipes.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: A recipe is a set of values that go out to the plant together. Grade A's zone diff --git a/src/content/docs/iot/scripts.md b/src/content/docs/iot/scripts.md index 74b26a4..c8f16fe 100644 --- a/src/content/docs/iot/scripts.md +++ b/src/content/docs/iot/scripts.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: A script is a sequence of steps with a name. The CIP cycle. The line purge. diff --git a/src/content/docs/iot/unifi.md b/src/content/docs/iot/unifi.md index 6b5647b..c5bdda0 100644 --- a/src/content/docs/iot/unifi.md +++ b/src/content/docs/iot/unifi.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: A plant's network is equipment. When a PLC goes quiet, the first question is diff --git a/src/content/docs/products.md b/src/content/docs/products.md index 9c05d73..4f550f4 100644 --- a/src/content/docs/products.md +++ b/src/content/docs/products.md @@ -1,22 +1,22 @@ --- # generated by scripts/sync-docs.mjs -title: "HotLoop products: eight on five release lines" -description: "Eight products on five release lines, what each of the four core products has, which database each runs, and how to move a site up a product." +title: "HotLoop products: six on three release lines" +description: "Six products on three release lines, what each of the four core products has, which database each runs, how to install them and how to move a site up a product." editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: -HotLoop is eight products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, HotLoop for CODESYS for the PLC's own screens, and Transmitter for putting its values on the wire. +HotLoop is six products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring and Cascade for workflows. -They ship on five release lines. **HotLoop core** is IoT, Edge, Gateway, and Edge Relay: four products, one codebase, one tag. Every core release ships all four in lockstep, same version, each with its own image, its own Helm chart and its own +They ship on three release lines. **HotLoop core** is IoT, Edge, Gateway, and Edge Relay: four products, one codebase, one tag. Every core release ships all four in lockstep, same version, each with its own image, its own Helm chart and its own Podman Quadlet units. Pick the one that fits the box. Every product speaks every protocol HotLoop has, so you never step up a product just to read the PLC on your bench. Features split them. Protocols don't. -**Flow**, **Cascade**, **HotLoop for CODESYS**, and **Transmitter** are their own lines with their own versions, so a Flow release never moves the core, and the other way around. Everything below the table is about the core. Here is where each of the eight starts: +**Flow** and **Cascade** are their own lines with their own versions, so a Flow release never moves the core, and the other way around. Everything below the table is about the core. Here is where each of the six starts: | Product | Release line | Docs | Install | Release notes | Roadmap | |---|---|---|---|---|---| @@ -26,8 +26,6 @@ PLC on your bench. Features split them. Protocols don't. | **HotLoop Edge Relay** | HotLoop core | Docs | Install | Notes | Roadmap | | **HotLoop Flow** | Flow | Docs | Install | Notes | Roadmap | | **HotLoop Cascade** | Cascade | Docs | Install | Notes | Roadmap | -| **HotLoop for CODESYS** | HotLoop for CODESYS | Docs | Install | Notes | Roadmap | -| **HotLoop Transmitter** | Transmitter | Docs | Install | Notes | Roadmap | The table that follows compares the four core products. diff --git a/src/content/docs/releases/codesys-0-3-0.md b/src/content/docs/releases/codesys-0-3-0.md deleted file mode 100644 index 5349bc8..0000000 --- a/src/content/docs/releases/codesys-0-3-0.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -# generated by scripts/sync-docs.mjs -title: "HotLoop for CODESYS 0.3.0 release notes" -description: "What the first version of HotLoop for CODESYS holds, what it needs, and what it has and has not been run against." -sidebar: - label: "0.3.0" -editUrl: false ---- - -:::caution[Not released yet] -HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop 4.19.0, and the chart is not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. -::: - -## What this is - -0.3.0 is the first version of HotLoop for CODESYS: HotLoop Edge beside a CODESYS runtime, set up from a profile with nobody clicking. It needs HotLoop 4.19.0. - -- **A chart that wraps HotLoop Edge** on the 4.19.0 line, with defaults for a runtime on the same node: SQLite on the node's own storage, no database pod, one replica, and the OPC UA server, the broker, edge publishing, and backups off. -- **A provisioner**, one static Go binary, that reads a [profile](/codesys/profile/) (the device, the variables to keep, the alarms, and one screen) and sets all of it up once the PLC's runtime answers. It looks again every five minutes. -- **A PLC that changes is followed.** A variable the profile lists that the PLC has gained since is added. One the PLC lost reads bad with the server's reason. The screen and the alarms are replaced only when the profile's revision is higher. -- **Nothing writes to the PLC.** Every tag the provisioner sets up is read-only. -- **Both pods tolerate an unreachable or not-ready node** with no time limit. -- **Sign-in from the EmberCORE dashboard** comes from the Edge chart's 4.19 sign-in, and this chart inherits it. - -## What isn't proven - -An install from the real App Store page, a physical controller, k3s v1.35.7, a node really losing its link to the control plane, a download from the CODESYS IDE while the runtime stays up, and a runtime on the host's own network beside the HotLoop pod. [Where it stands](/codesys/where-it-stands/) has the whole list and what it was run against. diff --git a/src/content/docs/releases/hotloop-4-19-0.md b/src/content/docs/releases/hotloop-4-19-0.md index 3d6582e..79a1101 100644 --- a/src/content/docs/releases/hotloop-4-19-0.md +++ b/src/content/docs/releases/hotloop-4-19-0.md @@ -11,49 +11,35 @@ sidebar: --- :::caution[On main, next release] -This page was written from `main` at 3e371c8. These notes are for a release that is not out. HotLoop core 4.18.11 is the latest one you can install. +This page was written from `main` at 4d5da2f. These notes are for a release that is not out. HotLoop core 4.18.11 is the latest one you can install. ::: -Two things in 4.19.0 change what an existing plant does, so read these before you touch a running one. Agents over MCP can write now, and the MCP endpoint always has a token. And a value you write to a scaled tag finally lands in the register the way you meant it, which means anyone who worked around the old behavior has to stop. Everything after those two is new, or a fix. +A value you write to a scaled tag now goes to the device the way you meant it. That is the one thing in 4.19.0 you need to read before you touch a running plant, +because it changes what lands in a register, and a plant that worked around the old behavior has to stop. A Kafka event stream and OPC UA PubSub over UADP come with it, both new, neither changing anything that runs today. -The full notes are in the README: -What changed in 4.19.0. +## MCP ships on, with writes -## MCP is on, it writes, and it always has a token - -- **Agents can write now, where an operator could.** MCP is on in every HotLoop product and it reads and writes. `allowMcpWrites` defaults to true in the code and in all three charts. A deployment that has `allowWrites` on and never set `allowMcpWrites` gets agent writes after this upgrade, through the same gate as the screen: the user's permissions, the tag's writable mark and its range all still apply. -- **`allowWrites` did not change.** It stays off by default and it still decides whether anything can write, the UI and agents alike. If it is off, nothing writes, MCP included. -- **A deployment that saved `allowMcpWrites: false` stays off.** That includes one installed from the App Store, which stores every answer. Flip it if you want agents to write. -- **The endpoint is never open.** The charts always set an MCP token. A HotLoop started without `HOTLOOP_MCP_TOKEN` (a Quadlet unit, a bare binary) used to serve `/mcp` to anybody who could reach the port and only logged a warning. It now makes a 24 byte token at its first start and keeps it in its database, so every replica and every restore carries the same one. A call without the token is a `401`. A token you configured is never replaced. -- **To get the token on a bare or Quadlet install:** `hotloop mcp-token` prints it. If you have an agent pointed at `/mcp` on one of those installs with no token, it stops working at this upgrade until you give it that token. That is on purpose. -- **Who made the call.** A static token says which client called, never which person. With the OIDC settings on, a Vord login or a Fireball Hub assertion on `/mcp` makes the audit name the person (`mcp:pat@example.com`), and an optional write role narrows writes per caller on top of the switches above. It is off unless you set it, and the token keeps working beside it. docs/MCP.md has the setup. +- **Agents can write now, where an operator could.** MCP is on in every HotLoop product and reads and writes. `allowMcpWrites` defaults to true in the code and in all three charts. A deployment that has `allowWrites` on and never set `allowMcpWrites` gets agent writes after this upgrade, through the same gate as the screen: the user's permissions, the tag's writable mark and its range all still apply. +- **`allowWrites` did not change.** It stays off by default and still decides whether anything can write, the UI and agents alike. +- **A deployment that saved `allowMcpWrites: false` stays off**, including one installed from the App Store, which stores every answer. Change it if you want agents to write. +- **The MCP endpoint is never open.** A HotLoop started with no `HOTLOOP_MCP_TOKEN` (a Quadlet unit, a bare binary) makes a token at its first start and keeps it in its database. A call without it is a `401`. `hotloop mcp-token` prints it. The charts already set one. ### Writes to a scaled tag - **What was wrong.** A tag with a scale, say 0.1 on a temperature register that holds tenths of a degree, shows you the engineering value: the register says 555 and the screen says 55.5. Writing went the other way without the same care. Type 55.5 for the setpoint and HotLoop put 55 in the register, which then read back as 5.5. It was the same on every screen, through the API, from an automation, a script, a recipe, a loop and over MCP, because they all go through the same write gate. The audit row said 55.5 the whole time, so nothing looked wrong in the log. - **What changes.** The number you write is in the tag's own units, the same as the number you read. HotLoop takes the scale and the offset back off before it sends: 55.5 on a tag scaled by 0.1 puts 555 in the register, and it reads back as 55.5. A tag with no scale and no offset is not touched at all. Bits, coils, strings and Sparkplug and MQTT writes of a flag are not scaled either. - **If you worked around it, stop.** If anyone has been typing raw counts into a scaled tag to get the right number, typing 555 to get 55.5, that now sends 5550 and reads back as 555. Type the engineering value. Look at your scaled tags before you upgrade: any tag with a scale other than 1, or an offset, that somebody writes to by hand, from an automation or from a recipe is worth a look. Recipes and automations that wrote counts need their numbers changed to engineering values in the same step as the upgrade. -- **A value the register cannot hold is refused.** After the scale is taken off, a count that does not fit the register, 7000 on a `uint16` scaled by 0.1, is refused with a plain message that names the count and the register, and nothing is sent. It used to wrap quietly: 70000 on a 16 bit register went out as 4464. That goes for Modbus, S7, EtherNet/IP and OPC UA integer types. -- **A recipe with a value that does not fit is refused whole.** Before its first write, every target is checked, so a recipe never half applies and then refuses. For Modbus, S7 and EtherNet/IP the check knows each tag's register type from its address. For OPC UA, which is the path to a CODESYS runtime, it uses the type the tag's last reading arrived as. A tag that has never been read since HotLoop started has no type to check against yet, so a recipe that targets it is refused at that tag's own write, after the targets before it were written, and the application records which. Reading it once, which the poll does within a second of connecting, closes that. -- **A fraction of a count is cut off.** A register holds whole counts, so 12.34 on a tenth scaled register holds 12.3, as it always did. +- **A value the register cannot hold is refused.** After the scale is taken off, a count that does not fit the register, 7000 on a `uint16` scaled by 0.1, is refused with a plain message that names the count and the register, and nothing is sent. It used to wrap quietly: 70000 on a 16-bit register went out as 4464. That goes for Modbus, S7, EtherNet/IP and OPC UA integer types. +- **A recipe with a value that does not fit is refused whole.** Before its first write, every target is checked, so a recipe never half-applies and then refuses. For Modbus, S7 and EtherNet/IP the check knows each tag's register type from its address. For OPC UA, which is the path to a CODESYS runtime, it uses the type the tag's last reading arrived as. A tag that has never been read since HotLoop started has no type to check against yet, so a recipe that targets it is refused at that tag's own write, after the targets before it were written, and the application records which. Reading it once, which the poll does within a second of connecting, closes that. +- **A fraction of a count is cut off.** A register holds whole counts, so 12.34 on a tenth-scaled register holds 12.3, as it always did. - **What did not change.** The range check on a tag and the audit row use the number you typed. The write gate, the permissions and the refusal rules are the same. -### A store install signs you in as yourself - -The chart made a random admin password in a Secret the tenant can't read, so a store install landed on a login with no way through. With the dashboard's public key configured, a request carrying a valid signed assertion for this tenant and this Service signs that person in, makes their user the first time, keeps their role in step with what the dashboard sent, and the audit trail names them. A bad, expired, wrong tenant or wrong app assertion is refused, and local login is untouched. It is off unless a key is set, and the three product charts take the key from the store. docs/AUTH.md has the settings. - -### CODESYS, by the names the programmer gave the variables - -HotLoop reads and writes a CODESYS PLC through the runtime's own OPC UA server, the way CODESYS documents: the application's Symbol Configuration, published under the PLCopen IEC 61131-3 model. Discovery lists what the application exports with the types and the access the programmer gave them, walking into arrays and structures, and a tag is an IEC symbol that is found under whatever the project calls its PLC and application. A restart, a download or a lost link reads bad with the reason and comes back with no hands. I proved it against a real 4.22.0.0 runtime in the lab running my own program, with a write the PLC's own logic answers, and against a second program of over a hundred thousand variables, read in 2.4 seconds. It has not been run on a physical controller. - -This touches a driver plants run, so plainly: the OPC UA driver asked for 200 nodes a request and never read what the server allows. A CODESYS runtime publishes OperationLimits of 100 and refuses more, and the driver answered by declaring every discovered tag a float and by reading none of the tags of a device with more than a hundred. Requests are now cut to the limits the server publishes at connect, and halved when a server that publishes none says too many. A data type that is a subtype of a standard one (a CODESYS STRING, BYTE or TIME) is followed up to the standard type, so it is typed and written as that. Every OPC UA device gets this, not only CODESYS ones. - ### A Kafka event stream - **What it is.** HotLoop can send its readings and its system log to any broker that speaks the Kafka API: Apache Kafka, Redpanda, and the rest of that family. It is a new kind of historian target, under Settings, Historian targets, so it has the queue, the catch-up from HotLoop's own history and the status those have. Readings go to one topic and the system log (alarms, devices going up and down, changes) to another, as JSON. - **TLS and SASL.** SCRAM-SHA-256, SCRAM-SHA-512 and PLAIN (PLAIN only over TLS), with your own CA if the broker's certificate isn't from a public one. Client certificates, Kerberos and OAuth logins are not supported yet. - **It is at least once.** A reading can arrive twice after an outage, because the catch-up overlaps what already went out on purpose. `deviceId`, `tag` and `ts` name a duplicate. Events are the live feed and have no history to catch up from, so one produced while the broker is away is lost, and the target's status counts it. -- **A broker that vanishes mid write.** The target goes down within 25 seconds and the readings in that write are owed, instead of staying up with its queue overflowing. +- **A broker that vanishes mid-write.** The target goes down within 25 seconds and the readings in that write are owed, instead of staying "up" with its queue overflowing. - **A topic made a moment ago.** The first look at a topic that was just made, by you or by the target's own last try, waits for it to exist and have a leader instead of reporting the target down. - **What it costs.** About 5 MiB on the binary of every product with a database. The Edge Relay has no historian targets and doesn't carry it. The client is franz-go, credited in `NOTICE`. - **Upgrading.** Migration 0026 adds an `options` column to the historian targets, empty for every target that exists. Nothing changes for them. HISTORIAN-TARGETS.md has the record formats and what is and isn't proven. @@ -64,28 +50,3 @@ This touches a driver plants run, so plainly: the OPC UA driver asked for 200 no - **Publishing.** Edge and Gateway can publish the tags a layout names as UADP, off until `HOTLOOP_UADP_PUBLISH_ENABLED` is set. Key frames when values change and keep alives when they don't. A bad tag is published as its status, never as its last value. - **Not yet.** Message security (signed or encrypted messages) is refused by name, as are chunked messages, discovery, events and array fields. Delta frames are read but not sent. - **What it was proven against.** open62541 1.5.10, an independent OPC UA stack, in both directions in the lab. It has not been run against a CODESYS, Siemens or Beckhoff publisher or across a router. PROTOCOLS.md has the setup and the limits. - -### Images, and a second set of screens - -- **amd64 only, this once.** The 4.19.0 images are built for amd64. The version tag lists amd64 alone, and `stable` and `latest` carry the new amd64 image beside the arm64 and arm/v7 images they already had, which are the previous release's. An arm box that follows `stable` keeps pulling and keeps running what it ran. The next release builds every architecture again and is a version bump with nothing else in it. -- **The new screens are at `/next`.** A rebuilt web UI is in every image behind the old one, which is still what you get at `/`. Try it at `/next` on any install; nothing about the default changes. - -### Fixes - -- **A pin on the board no longer wipes the board.** The page only read the board when the board screen opened, so a reload on the tags screen held an empty list and the first pin replaced the saved board with that one tag. The page reads the board at start now, a pin refuses until it has, and a save carries the board's `rev`, so the server answers `409` to a save over a board that changed since it was read. The `rev` is optional in the API: leave it out and the save is not checked. -- **A stalled OPC UA subscription is noticed.** The library keeps its keep alives to itself, so a stopped publish loop looked like a quiet plant and served its last values as good. After ten publishing intervals of quiet (thirty seconds at least) the driver reads the nodes once, compares them with what it holds, and falls back to reads if any differ. -- **A PLC that goes silent with its socket open is down, not degraded.** Modbus, S7 and EtherNet/IP kept their last values until TCP gave up, because the poll returned before it judged the session. They judge now. No S7 or CIP server is on the wire in the lab yet, and the roadmap says so. -- **A credential typed into a URL or free text is encrypted at rest.** Every screen already hid `mqtt://user:pass@host` and `?token=` from people, but the database and the backups held them as typed. A string that carries one, by the same test redaction hides it by, is sealed whole and comes back exactly as written, so the driver still gets the URL it was given. A key turned on later seals what was stored before, and a restore asks for the key when only an address needs it. -- **Every time the API writes is UTC.** A plant set to New York spelled `-04:00` where one on UTC spelled `Z`, across about thirty fields: `created_at`, `updated_at`, an alarm's `raisedAt`, an event's time, a device's `lastPoll`, a tag's timestamp, a logbook entry, a report's next run. They read the same on both now. If you parse these in a script that expected your local offset, it now gets `Z`. -- **Monthly partitions were skipped on the 31st.** The history and logbook tables made their next partition with a month added to today, and on the 31st that skipped a month, so a month's rows sat in the default partition. They start from the first of the month now. -- **The UniFi event log is ordered by when the event happened,** not by when the frame got here, so a replay after a reconnect stops sitting on top. -- **A switch's faceplate fits a phone.** Eight ports were wider than a 390 pixel screen and the page scrolled sideways by 113 pixels. The ports are tight tiles now, with the PoE watts in the port's detail, and a faceplate that still outgrows its card scrolls inside it. -- **A phone with no session and no connection gets the sign-in screen and the reason** instead of an empty app, and reloads when HotLoop answers. -- **A rollback is one command.** The chart index merges into the live one instead of being rebuilt from the release's own charts, so an older version still resolves. - -### Upgrading from 4.18.11 - -- Read the first two sections above before you do anything on a running plant. -- Migration 0026 is the only one. It is additive and every existing row keeps working. -- A bare binary or Quadlet install gets an MCP token at its first start. `hotloop mcp-token` prints it. -- `helm upgrade` as usual. Quadlet units follow `:stable` and need nothing. `helm rollback` to 4.18.11 is fine for this release: the database is already PostgreSQL 17 and nothing here changes it. diff --git a/src/content/docs/releases/index.md b/src/content/docs/releases/index.md index 938e0ca..c472ca4 100644 --- a/src/content/docs/releases/index.md +++ b/src/content/docs/releases/index.md @@ -1,11 +1,11 @@ --- # generated by scripts/sync-docs.mjs title: "Release notes" -description: "What shipped in every HotLoop core, Flow, Cascade, CODESYS and Transmitter release, and what is on main waiting for the next one, newest first." +description: "What shipped in every HotLoop core, HotLoop Flow and HotLoop Cascade release, and what is on main waiting for the next one, newest first." editUrl: false --- -Every release has its own page, written the day it shipped. A note marked "on main, next release" describes a release that is not out yet, so nothing in it is in what you have installed. The latest HotLoop core release is 4.18.11, the latest Flow release is 2.8.1, and the latest Cascade release is 1.0.2. HotLoop for CODESYS has not been released yet. +Every release has its own page, written the day it shipped. A note marked "on main, next release" describes a release that is not out yet, so nothing in it is in what you have installed. The latest HotLoop core release is 4.18.11, the latest Flow release is 2.8.1, and the latest Cascade release is 1.0.2. ## HotLoop core @@ -37,11 +37,3 @@ IoT, Edge, Gateway and Edge Relay release together from one tag, so they share t - [HotLoop Cascade 1.0.0 release notes](/releases/cascade-1-0-0/) - [HotLoop Cascade 0.1.2 release notes](/releases/cascade-0-1-2/) - [HotLoop Cascade 0.1.1 release notes](/releases/cascade-0-1-1/) - -## HotLoop for CODESYS - -- [HotLoop for CODESYS 0.3.0 release notes](/releases/codesys-0-3-0/) (not released yet) - -## HotLoop Transmitter - -- [HotLoop Transmitter 1.0.0 release notes](/releases/transmitter-1-0-0/) (draft, not released yet) diff --git a/src/content/docs/releases/transmitter-1-0-0.md b/src/content/docs/releases/transmitter-1-0-0.md deleted file mode 100644 index 36ae2ae..0000000 --- a/src/content/docs/releases/transmitter-1-0-0.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "HotLoop Transmitter 1.0.0" -description: "The first release of HotLoop Transmitter: not out yet. What it will contain and what has been run." ---- - -:::caution[Not released] -There is no HotLoop Transmitter release. This page is the draft of the notes for the first one, and it is replaced by the real notes the day 1.0.0 ships. -::: - -The first release is the publisher function block, `FB_HLTX_Publisher`, with the Variant and RawData encodings, unicast and multicast destinations, and the types a PLC uses. [What was run](/transmitter/proof/) says what it has been tried against, and [the roadmap](/transmitter/roadmap/) says what comes after. diff --git a/src/content/docs/roadmap.md b/src/content/docs/roadmap.md index b8e75f3..70d3b70 100644 --- a/src/content/docs/roadmap.md +++ b/src/content/docs/roadmap.md @@ -6,7 +6,7 @@ editUrl: false --- :::note[Written against main] -This page follows `main` at 3e371c8, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. +This page follows `main` at 4d5da2f, and it differs from the copy in HotLoop core 4.18.11, the latest release. Parts of it may be newer than what you have installed. The [release notes](/releases/) say what moved. ::: What HotLoop is, what's left to build, and what's broken. If it isn't on this @@ -25,7 +25,7 @@ Every line of it is ours. Nothing is embedded, bridged or forked, so when something breaks at 3 AM there's one codebase to read and nobody else's bug to wait on. -HotLoop is eight products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, HotLoop for CODESYS for the PLC's own screens, and Transmitter for putting its values on the wire. This roadmap is for HotLoop core, the four products that come out of one codebase. See [Products](#products). Flow, Cascade, HotLoop for CODESYS, and Transmitter keep their own, in the Flow roadmap, the Cascade roadmap, the HotLoop for CODESYS roadmap, and the Transmitter roadmap. +HotLoop is six products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring and Cascade for workflows. This roadmap is for HotLoop core, the four products that come out of one codebase. See [Products](#products). Flow and Cascade keep their own, in the Flow roadmap and the Cascade roadmap. ## Products diff --git a/src/content/docs/transmitter/api.md b/src/content/docs/transmitter/api.md deleted file mode 100644 index 63e8e2d..0000000 --- a/src/content/docs/transmitter/api.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: "HotLoop Transmitter API" -description: "Every input, output and method of the HotLoop Transmitter publisher function block." ---- - -:::caution[Not released] -HotLoop Transmitter has no release yet. This page describes the library as built on `main` of HotLoop-io/hotloop-transmitter and run on the CODESYS Control for Linux SL 4.22.0.0 runtime in a container. It has not run on a physical controller. -::: - -Everything is in the `HLTX` namespace. The block is `HLTX.FB_HLTX_Publisher`. - -## Inputs - -| Input | Type | Default | Meaning | -|---|---|---|---| -| `bEnable` | BOOL | FALSE | TRUE opens the socket and starts publishing. FALSE closes it and returns the block to `Disabled`, which also clears a `ConfigError` | -| `sDestination` | STRING(15) | `127.0.0.1` | dotted IPv4 address: a unicast host, or a multicast group from 224.0.0.0 to 239.255.255.255 | -| `uiPort` | UINT | 4840 | destination UDP port. 4840 is the one OPC UA registers | -| `sLocalAddress` | STRING(15) | empty | multicast only: the address of the interface to send from. Empty lets the OS choose | -| `usiMulticastTTL` | USINT | 1 | multicast time to live | -| `uiPublisherId` | UINT | 1 | PublisherId, sent as UInt16 | -| `uiWriterGroupId` | UINT | 1 | WriterGroupId | -| `uiDataSetWriterId` | UINT | 1 | DataSetWriterId | -| `tPublishingInterval` | TIME | T#100MS | time between messages. Minimum T#1MS. The block can only send on a cycle, so the real rate is the interval rounded up to a whole number of cycles of the task that calls it | -| `eEncoding` | `E_HLTX_Encoding` | `Variant` | `Variant` or `RawData`. Change it while disabled | -| `udiGroupVersion` | UDINT | 1 | GroupVersion in the group header | -| `udiConfigMajor`, `udiConfigMinor` | UDINT | 1, 0 | DataSet ConfigurationVersion. Bump the major whenever the field list changes | -| `tRetry` | TIME | T#2S | how long to wait before reopening the socket after ten sends in a row failed | - -## Outputs - -| Output | Type | Meaning | -|---|---|---| -| `eState` | `E_HLTX_State` | `Disabled`, `Running`, `Backoff` (waiting to reopen the socket) or `ConfigError` (see `eError`; nothing is sent) | -| `eError` | `E_HLTX_Error` | `None`, `NoFields`, `BadInterval`, `BadAddress`, `SocketCreate`, `SocketOption`, `TooBig`, `BadField` | -| `bActive` | BOOL | TRUE while messages are going out | -| `udiSent` | UDINT | messages handed to the network | -| `udiSendErrors` | UDINT | sends the OS refused or cut short | -| `udiSkipped` | UDINT | publish slots missed because the task ran late | -| `uiMessageSize` | UINT | bytes in the last message | -| `diLastSocketResult` | UDINT | the last runtime error code from a socket call, 0 is fine | -| `udiLastCallUs`, `udiMaxCallUs` | UDINT | microseconds spent in the last call of the block, and the longest since enable or `Clear()` | -| `udiMaxEncodeUs`, `udiMaxSendUs` | UDINT | the longest time spent building one message, and in the send call itself, since enable or `Clear()` | - -## Methods - -Add fields once, before the first call, in the order a receiver should read them. Each returns TRUE when the field -was accepted. Up to 128 fields. - -| Method | Adds | -|---|---| -| `AddBool(pValue)`, `AddSInt`, `AddUSInt`, `AddInt`, `AddUInt`, `AddDInt`, `AddUDInt`, `AddLInt`, `AddULInt`, `AddReal`, `AddLReal`, `AddTime` | one scalar. `pValue` is `ADR(variable)` | -| `AddString(pValue, uiMaxLen)` | one STRING. `uiMaxLen` is the N in `STRING(N)` | -| `AddArray(pFirst, eType, uiCount)` | an array of `uiCount` elements of any type but STRING. `pFirst` is `ADR(array[first])` | -| `AddField(pData, eType, uiCount, uiMaxLen)` | the general form the others call | -| `Clear()` | forgets the field list and the maximum call time | - -The block keeps the addresses you give it, so after an online change that moves variables, call `Clear()` and add -the fields again. WORD, DWORD and LWORD go in as UINT, UDINT and ULINT through the same-sized method. - -## Calling it - -Call the instance once per cycle from one task. Do not call one instance from two tasks. Several publishers in -one program are fine and each owns its own socket; give each its own writer group and dataset writer id. diff --git a/src/content/docs/transmitter/install.md b/src/content/docs/transmitter/install.md deleted file mode 100644 index 7d6bb1b..0000000 --- a/src/content/docs/transmitter/install.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "Install HotLoop Transmitter" -description: "Install the library into the CODESYS library repository, add it to a project, and what to do when the block reports an error." ---- - -:::caution[Not released] -HotLoop Transmitter has no release yet. This page describes the library as built on `main` of HotLoop-io/hotloop-transmitter and run on the CODESYS Control for Linux SL 4.22.0.0 runtime in a container. It has not run on a physical controller. -::: - -You need a CODESYS development system, 3.5 SP22 or later, and a runtime whose target has the SysSocket component, -which the CODESYS Control runtimes for Linux SL have. - -1. Download `HotLoopTransmitter-.library` from the release. -2. In the CODESYS IDE: Tools, Library Repository, Install, pick the file. It is now in the repository under the - company HotLoop. -3. In your project, open the Library Manager of the application, Add Library, and pick HotLoop Transmitter. - SysSocket and its interface libraries come with it as dependencies and need nothing from you. -4. Declare a `HLTX.FB_HLTX_Publisher`, add your fields, call it every cycle (README has the example). -5. Download to the controller. The destination must be reachable from the controller's network; for multicast the - network's switches must carry the group. - -The `.compiled-library` file is the same library without its source. Install that one instead if you do not want the -Structured Text visible in the Library Manager. - -To check what arrives, `test/capture` in this repository is a small Go program that listens on a port or joins a -multicast group and prints each datagram as a line of JSON with its hex. - -## If the block reports an error - -| `eError` | Meaning | Do | -|---|---|---| -| `NoFields` | no field was added | call an `Add` method before enabling | -| `BadInterval` | `tPublishingInterval` is under 1 ms | set it | -| `BadAddress` | `sDestination` is not a dotted IPv4 address | fix it | -| `SocketCreate`, `SocketOption` | the runtime refused a socket call; `diLastSocketResult` has its code | the block retries by itself after `tRetry` | -| `TooBig` | the fields do not fit in 1472 bytes | publish fewer, or use two publishers with different writer ids | -| `BadField` | a stored address was cleared | `Clear()` and add the fields again | diff --git a/src/content/docs/transmitter/overview.md b/src/content/docs/transmitter/overview.md deleted file mode 100644 index 977ad6c..0000000 --- a/src/content/docs/transmitter/overview.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: "HotLoop Transmitter" -description: "A CODESYS library, written in Structured Text over SysSocket UDP, that publishes PLC values as OPC UA PubSub (UADP) with no other library and no configurator." ---- - -:::caution[Not released] -HotLoop Transmitter has no release yet. This page describes the library as built on `main` of HotLoop-io/hotloop-transmitter and run on the CODESYS Control for Linux SL 4.22.0.0 runtime in a container. It has not run on a physical controller. -::: - -HotLoop Transmitter puts a PLC's values on the network as OPC UA PubSub, the way Part 14 of the OPC UA spec says to, -from a library you drop into the CODESYS project. It is a transmitter in the instrument-loop sense: the part that -puts the process value on the wire so something else can read it. - -It is written in Structured Text over `SysSocket` UDP, and it needs no other library, no extra license, and no -configurator. You add the library, call one function block once per cycle, and a UADP NetworkMessage goes out every -publishing interval to a unicast address or a multicast group. - -What that means for you: a PLC that has no PubSub library can still feed anything that subscribes to OPC UA PubSub, -including HotLoop itself, with a few lines of Structured Text. - -## Why this is Structured Text and not Go - -Every new HotLoop tool is written in Go unless there is a real reason. This is the real reason: the thing has to -run inside the PLC's own scan, in the IEC 61131-3 runtime, as a library the programmer references from their project. -A CODESYS runtime runs Structured Text, not Go. The tests and tools around the library (the capture tool, the -verifier) are Go. - -## Use it - -1. Install `HotLoopTransmitter-.library` into the CODESYS library repository (Tools, Library Repository, - Install), then add it to the project's Library Manager. `docs/INSTALL.md` has the details. -2. Declare a publisher, add the variables you want to publish once at start, and call it every cycle: - -```iecst -PROGRAM PLC_PRG -VAR - pub : HLTX.FB_HLTX_Publisher; - bInit : BOOL; -END_VAR - -IF NOT bInit THEN - bInit := TRUE; - pub.sDestination := '239.0.0.22'; // a unicast host or a multicast group - pub.uiPort := 4840; - pub.uiPublisherId := 1; - pub.uiWriterGroupId := 1; - pub.uiDataSetWriterId := 1; - pub.tPublishingInterval := T#100MS; - pub.AddReal(ADR(GVL.rTemperature)); - pub.AddBool(ADR(GVL.bRunning)); - pub.AddArray(ADR(GVL.aValues), HLTX.E_HLTX_Type.REAL_T, 250); -END_IF -pub.bEnable := TRUE; -pub(); -``` - -`docs/API.md` lists every input, output and method. `docs/WIRE-FORMAT.md` is the packet, byte by byte, with the -sections of the spec that define each byte. - -## What it will and won't do to your scan - -* It never blocks. The socket is non-blocking and the message is built in a fixed buffer. -* The cost of a call is the cost of building one message, and it is only paid on the cycles where a message goes - out. The measured numbers are in `docs/TIMING.md`. -* A socket error, a bad address or an oversized field list never faults the application. The block reports an - `eState` and an `eError`, counts the failure, and the program keeps scanning. -* It does not fragment. A message is at most 1472 bytes. A field list that does not fit puts the block in - `ConfigError` and sends nothing. - -The wire format is in [What goes on the wire](/transmitter/wire-format/), every input and method is in the [API](/transmitter/api/), and what was run is in [What was run](/transmitter/proof/). - -HotLoop Transmitter is under the HotLoop Business Source License 1.1, like every HotLoop product. diff --git a/src/content/docs/transmitter/proof.md b/src/content/docs/transmitter/proof.md deleted file mode 100644 index 5a4e98b..0000000 --- a/src/content/docs/transmitter/proof.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: "What was run" -description: "What the library was built with, run on, and read back by, and the one place two readers disagree." ---- - -:::caution[Not released] -HotLoop Transmitter has no release yet. This page describes the library as built on `main` of HotLoop-io/hotloop-transmitter and run on the CODESYS Control for Linux SL 4.22.0.0 runtime in a container. It has not run on a physical controller. -::: - -Everything below ran on 2026-11-01 on The Beast, from `test/run.sh`. The raw outputs are in the codex at `work/out/hotloop/transmitter/evidence/2026-11-01/`. Nothing here ran on a physical controller. - -## The build - -* Library: `test/build.sh` ends `Compile complete -- 0 errors, 0 warnings` and `RESULT OK`, in the CODESYS 3.5.22.30 (SP22 Patch 3) ScriptEngine under Wine. -* Example application, built against the installed library, for the CODESYS Control for Linux SL device (4102, 0000 0005, 4.20.0.0): `Build complete -- 0 errors, 0 warnings : Ready for download`. - -## The runtime - -`ghcr.io/embernet-ai/codesys-control-sl:4.22.0.0`, started by `test/lab/start_runtime.sh`, loads the application as a boot project and reports `Application started`, `CODESYS Control ready`. Demo mode, because there is no runtime license. The longest single run was under an hour; what happens at the end of the two hour demo window was not tried. - -## What went over the wire, and who read it - -The example application has two publishers, both to a capture listener on a Podman network: writer group 1 and dataset writer 1 in the Variant encoding (1142 bytes), and writer group 2 and dataset writer 2 in the RawData encoding (1144 bytes). Seventeen fields each: one of every type the library supports, a 250 element REAL array, a 4 element INT array, and two counters. - -| Reader | What it is | Variant | RawData | -|---|---|---|---| -| `test/verify` | a decoder written from OPC 10000-14 and 10000-6 alone, which also reads the same variables from the runtime's OPC UA server and compares them | every field equal to the PLC's, no gap in the NetworkMessage and DataSetMessage sequence numbers over 117 to 119 messages | the same | -| open62541 1.4.9 | an independent PubSub implementation, built from its release tarball (sha256 `8735e61391cde0d84e6347a4293d2400b6a72838fb44513caf22d70dfca3a0cf`), run as a subscriber with a DataSet metadata of the 17 fields | all 15 values checked equal, including the string, both arrays and the TIME | the 11 numeric scalars equal. Its RawData reader reads one scalar per field and bounds its buffer by the fields' in-memory sizes (`DataSetReader_processRaw`, `src/pubsub/ua_pubsub_reader.c`), so it cannot read a RawData string longer than a few characters or any RawData array | -| A second Go decoder | the UADP decoder in our own receiver code, at commit 79157e7a of that repository | 118 of 118 messages decoded, every value correct | refused: `trailing_bytes: 52 bytes after the last RawData field are not padding` | - -Wireshark 4.4.7's `tshark` (Alpine package) was tried on a capture and dissects UDP port 4840 as plain data: its OPC UA dissector is for the TCP protocol, so it was not usable as a UADP decoder. - -HotLoop core's UADP subscribe (agent HK, bead 5a8ca6) has no code in its branch yet (`git grep -il uadp` over `hk/kafka-uadp` found no Go file), so it was not run. - -## RawData arrays and strings - -This library writes an Int32 element count before each RawData array, and a string as an Int32 length, its bytes, then zero padding up to MaxStringLength. That is what the OPC Foundation's reference stack does. It was looked up, not argued from the spec text alone: - -* UA-.NETStandard at commit `fcfc84eab5c105780d7268474a47d344d100aca1`, `src/Opc.Ua.PubSub/Encoding/Uadp/UadpBinaryReader.cs` lines 389 to 403 (the `ReadRawScalar` documentation) and 593 to 648 (`TryReadPaddedArray`): arrays keep their Part 6 length prefix and the block is padded to `product(ArrayDimensions)` elements, and a string is an Int32 length inside a `4 + MaxStringLength` block. -* The same repository's `tests/Opc.Ua.PubSub.Tests/Encoding/Uadp/UadpRawDataPaddingTests.cs` asserts the string layout. -* The spec text it implements: OPC 10000-14 7.2.4.5.11 ("handled like a Structure DataType", padding "to the maximum size indicated by ArrayDimensions or MaxStringLength") with OPC 10000-6 5.2.5 ("One dimensional Arrays are encoded as a sequence of elements preceded by the number of elements encoded as an Int32 value"). -* open62541 1.4.9 does not read RawData arrays at all, so it neither agrees nor disagrees. - -The second Go decoder above reads a RawData array as back-to-back elements, with no count, so it refuses this library's RawData with `trailing_bytes`. By the reference stack that decoder is the one that is wrong. It is tracked in the codex as a bead and is not changed here. Variant has no such question and is the default. - -One difference from the reference stack: where it throws when a string is longer than MaxStringLength, this library cuts it at a character boundary, because a PLC task has nowhere to throw to. - -## Not verified - -* Any physical controller, any CODESYS runtime other than Control for Linux SL 4.22.0.0, and any CPU architecture other than x86-64 (the library is Structured Text, but the byte order handling for a big endian target is written and not run). -* Multicast. The block sets the TTL, loopback and send interface for a multicast group; the lab used unicast only. -* A runtime that loses and regains its network, and a send to an address that is not there. The code counts failures and backs off, but a deliberate fault test was not run. -* The behavior at the end of the two hour demo window. -* Receivers other than the ones above. diff --git a/src/content/docs/transmitter/roadmap.md b/src/content/docs/transmitter/roadmap.md deleted file mode 100644 index df52202..0000000 --- a/src/content/docs/transmitter/roadmap.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "Transmitter roadmap" -description: "What HotLoop Transmitter has built, what is next, and what is deliberately not planned." ---- - -:::caution[Not released] -HotLoop Transmitter has no release yet. This page describes the library as built on `main` of HotLoop-io/hotloop-transmitter and run on the CODESYS Control for Linux SL 4.22.0.0 runtime in a container. It has not run on a physical controller. -::: - -What is in the box today, what is next, and what is deliberately not planned. A line moves to "Shipped" only -when it has run on the real 4.22.0.0 runtime and a receiver has read it. - -## Shipped in 1.0.0 - -* One publisher block, `FB_HLTX_Publisher`: one NetworkMessage per publishing interval, one DataSetMessage, a Data - Key Frame, UADP over UDP, from Structured Text over SysSocket. -* Variant and RawData field encodings. -* BOOL, SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, REAL, LREAL, STRING and TIME fields, and arrays of - every one of those but STRING, in both encodings. -* Unicast and multicast destinations, publisher id, writer group id, dataset writer id, publishing interval, - group version and configuration version, all set as inputs of the block. -* A non-blocking send, a bounded cost per call, counters for sent, refused and skipped, and an error state that - never faults the application. - -## Next - -* DataSetMessage and NetworkMessage timestamps, from the runtime's real-time clock. -* Several DataSetMessages in one NetworkMessage (the Sizes array), so one datagram can carry more than one writer. -* Data Delta Frames and KeepAlive messages, to cut the bytes of a mostly steady dataset. -* WSTRING fields. -* A per-field status, so a Bad value can be sent as Bad. - -## Not planned - -* Message security (signing and encryption). The block sends in the clear, on a network the plant already trusts. -* Chunked NetworkMessages. A message that does not fit in one 1500 byte frame is refused, not split. -* The subscriber side. HotLoop core subscribes to UADP; this library publishes. -* MQTT transport. UDP is what a CODESYS runtime reaches without more libraries. diff --git a/src/content/docs/transmitter/timing.md b/src/content/docs/transmitter/timing.md deleted file mode 100644 index d4074c2..0000000 --- a/src/content/docs/transmitter/timing.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "What Transmitter adds to the PLC task" -description: "The measured cost of the publisher on a 20 ms cyclic task, and what that does and does not tell you about a physical controller." ---- - -:::caution[Not released] -HotLoop Transmitter has no release yet. This page describes the library as built on `main` of HotLoop-io/hotloop-transmitter and run on the CODESYS Control for Linux SL 4.22.0.0 runtime in a container. It has not run on a physical controller. -::: - -Measured on 2026-11-01 on The Beast, which is a 64 thread AMD Threadripper 2990WX that other work shares (load average 30 to 37 during these runs). The runtime is CODESYS Control for Linux SL 4.22.0.0 in a container, in demo mode, with a 20 ms cyclic task, pinned to four cores (40 to 43) with `taskset`. The runtime's own task statistics were not available over OPC UA, so the example application times itself: `PLC_PRG` reads `LTIME()` at its start and end, keeps a mean and a maximum, and counts each cycle into a histogram (`examples/lab/build_app.py`). The baseline is the same program without the publisher calls. - -The publish run has two publishers, one Variant and one RawData, each sending about 1.1 KB every 100 ms, so a message goes out every fifth cycle. Statistics were reset 45 s after the runtime started and read 240 s later (`HLTX_RT_CPUS=40-43 test/run.sh timing`; raw output is `run4-timing-pinned.txt` in the codex evidence folder `work/out/hotloop/transmitter/evidence/2026-11-01/`). - -| Measure | baseline (no publisher) | two publishers | -|---|---|---| -| Mean time in `PLC_PRG` per cycle | 125 ns | 11 661 ns | -| Longest time in `PLC_PRG` in the window | 2 us | 3 668 us | -| Cycles under 10 us | 8 947 of 8 947 | 9 559 of 12 003 | -| Cycles 10 to 50 us | 0 | 1 421 | -| Cycles 50 to 100 us | 0 | 1 008 | -| Cycles 100 us to 1 ms | 0 | 13 | -| Cycles 1 to 10 ms | 0 | 2 | -| Messages sent / refused / slots skipped | 0 / 0 / 0 | 2 853 / 0 / 0 | - -What that says: - -* **A cycle that sends costs 10 to 100 us.** About 2 400 cycles in the window sent (one in five), and 2 444 cycles took 10 us or more, so the sending cycles are the whole of the cost: 58 percent of them took 10 to 50 us and 41 percent took 50 to 100 us, for two messages of about 1.1 KB. The cycles in between cost what the baseline costs. -* **The mean added cost is about 11.5 us per 20 ms cycle**, 0.06 percent of the task. -* **The tail is the send call.** The longest message took 3.65 ms, of which `udiMaxSendUs` (the `sendto` itself) was 3.65 ms and `udiMaxEncodeUs` (building the message) 0.76 ms. `sendto` is a kernel call into a container network on a busy host, and the block cannot make it faster. It is non-blocking in the sense that it never waits for the network; it can still be slow when the kernel is busy. -* **No send was refused and no slot was skipped** in the window. - -An earlier run on the same host, with the runtime sharing cores with a build (load average 37), saw single stalls of 1.0 s in the encode and 2.5 s in the send and 460 skipped slots. The encode is plain arithmetic, so a one second stall in it is the runtime's thread not being scheduled, not the block. That run is kept in the evidence folder (`run3-all-loaded.out`) because it shows the limit of this measurement: this is a container on a general purpose kernel with no real-time scheduling, so it says what the block costs, and says nothing about the worst case a PLC task can suffer on such a host. - -What this does not tell you: the cost on a physical controller. A small ARM CPU can be ten to a hundred times slower than this host, and the cost grows with the size of the field list. Measure it on the target with `udiLastCallUs`, `udiMaxCallUs`, `udiMaxEncodeUs` and `udiMaxSendUs` on the block, which are there for that. diff --git a/src/content/docs/transmitter/wire-format.md b/src/content/docs/transmitter/wire-format.md deleted file mode 100644 index 2558dc2..0000000 --- a/src/content/docs/transmitter/wire-format.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: "What goes on the wire" -description: "The NetworkMessage and DataSetMessage HotLoop Transmitter sends, byte by byte, with the OPC 10000-14 and 10000-6 sections that define each one." ---- - -:::caution[Not released] -HotLoop Transmitter has no release yet. This page describes the library as built on `main` of HotLoop-io/hotloop-transmitter and run on the CODESYS Control for Linux SL 4.22.0.0 runtime in a container. It has not run on a physical controller. -::: - -Every byte below comes from OPC 10000-14 (Part 14, PubSub) version 1.05 and OPC 10000-6 (Part 6, mappings), -read at reference.opcfoundation.org on 2026-10-31. The section numbers are the ones to open when a byte looks wrong. -Nothing here was learned by looking at another vendor's packets. - -One publisher block sends one NetworkMessage per publishing interval. A NetworkMessage carries one DataSetMessage, -a Data Key Frame, so every message holds every field. All multi-byte values are little endian, which is how OPC UA -binary is defined; the block writes them byte by byte, so the host's byte order does not matter. - -## NetworkMessage (Part 14, 7.2.4.4.2) - -| Bytes | Value | Meaning | -|---|---|---| -| 1 | `F1` | UADPVersion 1 in bits 0 to 3. UADPFlags in bits 4 to 7: PublisherId (bit 4), GroupHeader (bit 5), PayloadHeader (bit 6) and ExtendedFlags1 (bit 7) all present | -| 1 | `01` | ExtendedFlags1: PublisherId type 001 = UInt16. No DataSetClassId, no security header, no timestamp, no ExtendedFlags2 | -| 2 | PublisherId | `uiPublisherId` | -| 1 | `0F` | GroupFlags: WriterGroupId, GroupVersion, NetworkMessageNumber and SequenceNumber present | -| 2 | WriterGroupId | `uiWriterGroupId` | -| 4 | GroupVersion | `udiGroupVersion` | -| 2 | NetworkMessageNumber | always 1, because 0 is invalid | -| 2 | SequenceNumber | counts messages sent, wraps at 65535 | -| 1 | Count | always 1 (payload header, 7.2.4.5.2) | -| 2 | DataSetWriterId | `uiDataSetWriterId` | - -Because Count is 1, the payload has no Sizes array. The block does not send chunked messages, discovery messages, -promoted fields or a security header, and a receiver that requires one of those is not served by this version. - -## DataSetMessage (Part 14, 7.2.4.5.4 and 7.2.4.5.5) - -| Bytes | Value | Meaning | -|---|---|---| -| 1 | `69` Variant, `6B` RawData | DataSetFlags1: valid (bit 0), field encoding (bits 1 and 2: 00 Variant, 01 RawData), sequence number (bit 3), ConfigurationVersion major (bit 5) and minor (bit 6). Status, DataSetFlags2 and timestamps are absent, so the type is the default, a Data Key Frame | -| 2 | DataSetMessage sequence number | counts messages sent, wraps at 65535 | -| 4 | ConfigurationVersion major | `udiConfigMajor` | -| 4 | ConfigurationVersion minor | `udiConfigMinor` | -| 2 | FieldCount | Variant only. Omitted for RawData (7.2.4.5.5) | -| ... | the fields | in the order they were added | - -Bump `udiConfigMajor` whenever the field list changes. A receiver that keeps a layout keyed on the version can then -refuse a message built for a different list instead of decoding it wrong. - -## Fields, Variant encoding (Part 6, 5.2.2.16) - -Each field is an EncodingMask byte, then the value. Bits 0 to 5 of the mask are the built-in type id (Part 6, 5.1.2, -table 1), and bit 7 says the value is an array, in which case an Int32 element count comes before the elements. - -| PLC type | Type id | Value bytes | -|---|---|---| -| BOOL | 1 Boolean | 1, `00` or `01` | -| SINT | 2 SByte | 1 | -| USINT, BYTE | 3 Byte | 1 | -| INT | 4 Int16 | 2 | -| UINT, WORD | 5 UInt16 | 2 | -| DINT | 6 Int32 | 4 | -| UDINT, DWORD | 7 UInt32 | 4 | -| LINT | 8 Int64 | 8 | -| ULINT, LWORD | 9 UInt64 | 8 | -| REAL | 10 Float | 4, IEEE 754 | -| LREAL | 11 Double | 8, IEEE 754 | -| STRING | 12 String | Int32 length in bytes, then UTF-8 (5.2.2.4) | -| TIME | 7 UInt32 | milliseconds, which is how a CODESYS TIME is held | - -A CODESYS STRING holds one byte per character. Bytes up to `7F` are ASCII and go out unchanged. Bytes above `7F` are -read as ISO 8859-1 and written as their two byte UTF-8 form. That is an assumption about the PLC's code page, and it -is the one place the block interprets text. - -## Fields, RawData encoding (Part 14, 7.2.4.5.11) - -No mask and no count: each field is just its value, in order, so the receiver must know the layout. Part 14 says the -fields are "handled like a Structure DataType", so each value is encoded as a Structure field is in Part 6. - -* **Scalars** are their value bytes, as in the Variant table, with no mask. -* **Arrays** are an Int32 element count and then the elements (Part 6, 5.2.5: "One dimensional Arrays are encoded as - a sequence of elements preceded by the number of elements encoded as an Int32 value"). The block always sends - every element it was given, so the count equals the array's declared size and there is no padding after it. -* **Strings** are an Int32 length in bytes and the UTF-8 bytes, then zero bytes up to MaxStringLength, so the field is - always 4 + MaxStringLength bytes (7.2.4.5.11: "the field shall be padded with bytes with value zero"). The block - uses the N of `STRING(N)` as MaxStringLength, in bytes. Text longer than that is cut at a character boundary, - because the field cannot grow. A receiver's field metadata must carry the same MaxStringLength and an - ArrayDimensions entry for each array. - -This is the reading of the OPC Foundation's own reference stack. In UA-.NETStandard (commit `fcfc84eab5c105780d7268474a47d344d100aca1`), `src/Opc.Ua.PubSub/Encoding/Uadp/UadpBinaryReader.cs` lines 389 to 403 say a string is "read like a Structure field (Int32 length prefix and value) from a fixed-size 4 + MaxStringLength byte block whose remainder is zero padding", and that for an array "the array's Part 6 length (or dimensions) prefix gives the actual element count and the block is padded to product(arrayDimensions) elements". `TryReadPaddedArray` at lines 593 to 648 implements it, and `tests/Opc.Ua.PubSub.Tests/Encoding/Uadp/UadpRawDataPaddingTests.cs` asserts it. `docs/PROOF.md` has the rest. - -## Size - -The block builds the message in a 1472 byte buffer: 1500 bytes of Ethernet payload less 20 of IP and 8 of UDP, so a -message never fragments. A field list that does not fit puts the block in `ConfigError` with error `TooBig`; it does -not truncate. A 250 element REAL array in Variant encoding is 1005 bytes, so a message of that array plus the header -fits, and two of them do not. diff --git a/src/data/sync.json b/src/data/sync.json index 9a73f10..bd8e1a5 100644 --- a/src/data/sync.json +++ b/src/data/sync.json @@ -2,8 +2,8 @@ "repos": { "hotloop": { "slug": "HotLoop-io/hotloop", - "ref": "origin/main", - "sha": "3e371c8ae38395000a9f2fc3c442c4767b4ddaaf", + "ref": "4d5da2f", + "sha": "4d5da2f216e276bba9587f9aa5e3343bad13258f", "release": { "tag": "v4.18.11", "version": "4.18.11", @@ -73,26 +73,8 @@ "name": "HotLoop Cascade", "repo": "cascade", "tagline": "The plant talking to everything else." - }, - { - "id": "codesys", - "name": "HotLoop for CODESYS", - "repo": null, - "tagline": "Screens and alarms for a CODESYS PLC, beside the runtime." - }, - { - "id": "transmitter", - "name": "HotLoop Transmitter", - "repo": null, - "tagline": "OPC UA PubSub from inside the PLC." } ], - "codesys": { - "released": false, - "version": "0.3.0", - "needsCore": "4.19.0", - "chartRepo": "https://hotloop.io/hotloop-codesys/" - }, "pages": [ { "slug": "iot/entities", @@ -439,7 +421,7 @@ "slug": "products", "product": "shared", "group": "Lineup", - "title": "HotLoop products: eight on five release lines", + "title": "HotLoop products: six on three release lines", "label": null, "status": "changed", "repo": "hotloop", @@ -1131,11 +1113,6 @@ ], "pinned": [ "business.md", - "codesys/install.md", - "codesys/overview.md", - "codesys/profile.md", - "codesys/roadmap.md", - "codesys/where-it-stands.md", "edge/install.md", "edge/overview.md", "edge-relay/install.md", @@ -1146,7 +1123,6 @@ "gateway/upgrading.md", "install/index.md", "iot/install.md", - "iot/overview.md", - "releases/codesys-0-3-0.md" + "iot/overview.md" ] } diff --git a/src/pinned/codesys/install.md b/src/pinned/codesys/install.md deleted file mode 100644 index 548500d..0000000 --- a/src/pinned/codesys/install.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: "Install HotLoop for CODESYS" -description: "Install HotLoop for CODESYS from the EmberCORE App Store or with Helm: what the node needs, the profile Secret, what it does by itself, and how to check it." -sidebar: - label: "Install" ---- - -{{codesysNotice}} - -HotLoop for CODESYS is a Helm chart, `hotloop-codesys`, that installs HotLoop Edge and a provisioner on the same node as a CODESYS runtime. On EmberNet it is an App Store app. With no EmberNet it is Helm on k3s. - -## What the node needs first - -- **A CODESYS runtime on the same node that publishes its OPC UA server on port 4840.** The provisioner finds the node's own address from Kubernetes and reads `:4840`. The runtime's own chart publishes that port on the host. -- **A Symbol Configuration in the PLC program** with *Support OPC UA features* on, listing the variables you want to see, or `{attribute 'symbol' := 'read'}` on them in the declaration. A PLC with no Symbol Configuration answers the setup with a message that says to add one. This is the only change to the PLC project. -- **HotLoop {{codesysNeeds}}**, which is where the CODESYS connector is. The chart depends on the `hotloop-edge` chart on the `~{{codesysNeeds}}` line. -- **A profile.** One Secret with one key. [The profile page](/codesys/profile/) has the shape. - -## From the EmberCORE App Store - -The chart is marked for staff, so the Store lists it for EmberNet staff, and they install it onto the customer's tenant. The Store writes the profile into the tenant's namespace as `-profile`, passes the node picked and the tenant's labels into the chart, and passes the dashboard's public key for sign-in. After that there is nothing to do. - -## With Helm - -{{codesysHelmNote}} - -```bash -kubectl -n create secret generic -profile --from-file=profile.json -helm repo add hotloop-codesys {{codesysChartRepo}} -helm repo update -helm install hotloop-codesys/hotloop-codesys -n -``` - -Name the Secret `-profile`, or change what the chart looks for with `profile.existingSecret` (the Secret) and `profile.key` (the key, `profile.json` by default). To pin the install to the runtime's node, set `nodeSelector`. For HotLoop alone with no profile, to set up by hand, install with `--set provisioner.enabled=false`. - -## What installing does - -1. HotLoop Edge starts on that node with SQLite on the node's local-path storage. No database pod, one replica, and the update strategy is `Recreate`. -2. The provisioner starts on the same node. It reads the mounted profile at every pass, so a newer one reaches a running install. It waits for HotLoop and for the node's own CODESYS runtime, then sets up the profile's device, variables, alarms, and screen. -3. It looks again every five minutes and keeps the device right as the PLC's program changes. Variables a profile lists that the PLC now has are added, and one the PLC no longer has reads bad with the server's reason. -4. Both pods tolerate `node.kubernetes.io/unreachable` and `not-ready` with no `tolerationSeconds`, so a node that loses its control plane keeps them. The chart carries this itself and does not depend on the cluster's setting. - -The OPC UA server, the embedded broker, edge publishing, and backups are off, because none of them is wanted beside a runtime. Turn one on through the `hotloop-edge` values if you want it. - -## Check it - -```bash -kubectl -n logs deploy/-provision -``` - -A good start says the device was set up with its variables, none writable, and that the alarms and the screen were made. Open the HotLoop service, sign in as `admin`, and look at Devices and Dashboards. The admin password is in the release Secret, the same as any HotLoop chart. - -## Sign-in from the dashboard - -From HotLoop 4.19 the Edge chart signs a person in from the EmberCORE dashboard's signed assertion (the `embernetSignin` values, four `HOTLOOP_AUTH_ASSERTION_*` variables, and the Service annotation `embernet.ai/signin: assertion`). This chart inherits all of that from the `hotloop-edge` subchart, and the Store passes the public key into it. The provisioner uses the chart's admin account, which local login still allows. In a lab cluster a good assertion signed a person in as an operator or an admin, and a wrong app, a wrong tenant, an expired one, a wrong issuer, and a tampered one were each refused. - -## What isn't proven - -The status page has the list, and the short version is: nobody has installed this from the real Store page, on a physical controller, or on k3s v1.35.7. [Where it stands](/codesys/where-it-stands/). diff --git a/src/pinned/codesys/overview.md b/src/pinned/codesys/overview.md deleted file mode 100644 index 3e08bcf..0000000 --- a/src/pinned/codesys/overview.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "HotLoop for CODESYS" -description: "HotLoop beside a CODESYS runtime: the screens and alarms for a CODESYS PLC, read through the runtime's own OPC UA server, with nothing installed in CODESYS." -sidebar: - label: "Overview" ---- - -{{codesysNotice}} - -HotLoop for CODESYS is HotLoop running on the same node as a CODESYS runtime. It reads the PLC's variables through the runtime's own OPC UA server, puts them on screens that work on a panel PC, a phone, or a wall, raises alarms on them, and keeps the history. Nothing is installed in CODESYS and nothing writes to the PLC. What that buys you: the operators get a screen without a download to the PLC, and the PLC gets a second set of eyes that doesn't depend on anything else on the node. - -It is the seventh HotLoop product, and its own release line. Under it is HotLoop Edge, so everything on the [Edge pages](/edge/overview/) is true here too. - -![The Line 2 screen: four value cards, a gauge, a fifteen minute trend, and an alarm list](/codesys/screen.png) -![The same, in dark](/codesys/screen-dark.png) - -That is a real run: HotLoop's default interface, from a HotLoop Edge build of main, reading a CODESYS Control for Linux SL 4.22.0.0 runtime in a container. The PLC program is HotLoop's own lab program, so the numbers are the lab's. The labels (Line 2, Mixer temperature, Riverside Bottling) are made up and put there by the [profile](/codesys/profile/). - -## The three parts - -| Part | What it is | Where it lives | -|---|---|---| -| The chart, `hotloop-codesys` | A wrapper around `hotloop-edge` with defaults for a runtime on a node: SQLite, one replica, and the parts you don't need beside a PLC switched off. Every HotLoop chart fix reaches it. | `{{codesysChartRepo}}` | -| The provisioner | One static Go binary that applies a profile to HotLoop and keeps it right. It holds no profile. | `ghcr.io/hotloop-io/hotloop-provision` | -| A profile | One JSON file: the device, the variables to keep, the alarms, and one screen. The one input you give. | A Secret in the install's namespace, [described here](/codesys/profile/) | - -## How it reads the PLC - -CODESYS documents one way for a third party to read a controller's variables, and it is the runtime's own OPC UA server. The PLC publishes what you want seen with a Symbol Configuration in the IDE, and HotLoop reads those variables by the names the programmer gave them, like `Application.GVL_Line.rTemp`, not by a node id. The Symbol Configuration is the only change to the PLC project. The CODESYS Gateway's channel protocol is not documented for third parties, and this does not speak it. - -The reading is HotLoop core's CODESYS connector, which is the OPC UA driver plus what a CODESYS PLC needs on top: discovery of what the application exports, the types it has, arrays and structures walked into one point per field, a reconnect with no hands after a restart or a download, and every request cut to the limits the runtime publishes. The [protocols page](/iot/protocols/) carries the connector's reference from HotLoop {{codesysNeeds}} on, and it says what it was verified against and what it was not. - -## What it does by itself - -Once HotLoop and the node's own runtime both answer, the provisioner sets up the profile's device, its variables, its alarms, and its screen. Then it looks again every five minutes. A variable of the profile that the PLC has gained since is added. One the PLC no longer has reads bad with the server's reason. The screen and the alarms are made when missing and replaced only when the profile's `revision` is higher than the one that made them, so a change a person made survives until a newer profile is shipped on purpose. - -## What it won't do - -- **It won't write to your PLC.** Every tag the provisioner sets up is read-only, and the profile marks none writable. A person can arm a tag later, and then the [write gate](/gateway/write-gate/) and the PLC's own symbol rights both get a say. -- **It won't put anything in the runtime.** No library, no task, no agent. -- **It won't need a database pod.** SQLite on the node's own storage, one replica. -- **It won't lose its screens to a bad link, in theory.** Both pods tolerate an unreachable or not-ready node with no time limit. The tolerations are in the chart, and the link was never cut on a real node, so [the status page](/codesys/where-it-stands/) lists that as not shown. - -## Where to go next - -[Install it](/codesys/install/), read what a [profile](/codesys/profile/) holds, or see [where it stands](/codesys/where-it-stands/) and the [roadmap](/codesys/roadmap/). diff --git a/src/pinned/codesys/profile.md b/src/pinned/codesys/profile.md deleted file mode 100644 index 690bc70..0000000 --- a/src/pinned/codesys/profile.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: "The profile" -description: "The one input to HotLoop for CODESYS: a JSON file with a revision, the device and its variables, the alarms, and one screen, and how the provisioner applies it." -sidebar: - label: "The profile" ---- - -{{codesysNotice}} - -A profile is one JSON file in a Secret in the install's namespace, under the key `profile.json`. It is not in the chart or in the provisioner image, so both are generic and public, and nothing in either names anyone's variables. Whoever installs the app gives it. On EmberNet the Store writes it as `-profile`. - -The provisioner reads it again at every pass, so a newer profile reaches a running install without a restart. - -## The shape - -| Key | What it holds | -|---|---| -| `revision` | A whole number from 1. The screen and the alarms are replaced only when this is higher than the revision that made them. | -| `device` | `id`, `name`, `options` (the connector's options, such as `browseRoot`, `arrayElements`, and `browseMaxNodes`), and `points`, the variable names HotLoop keeps from the PLC. | -| `alarms` | HotLoop alarm definitions, each with an `id`. | -| `dashboard` | One HotLoop screen, with an `id`. A [dashboard](/iot/dashboards/) is a list of cards. | - -One profile makes one device and one screen. - -## An example - -This is the profile behind the screenshots on the [overview](/codesys/overview/), against HotLoop's lab program. `GVL_Demo` is the lab program's variable list, and the labels are made up. - -```json -{ - "revision": 2, - "device": { - "id": "line-2", - "name": "Line 2 PLC", - "options": {"browseRoot": "Application.GVL_Demo", "arrayElements": 4, "browseMaxNodes": 500}, - "points": ["GVL_Demo.bRun", "GVL_Demo.rTemp", "GVL_Demo.udiCycles", "GVL_Demo.nEcho", "GVL_Demo.rEcho", "GVL_Demo.rReadOnly"] - }, - "alarms": [ - {"id": "line-2-mixer-hot", "name": "Mixer temperature high", "tagName": "GVL_Demo.rTemp", "condition": "hi", "limit": 20, "deadband": 0.5, "priority": 2, "message": "{device}/{tag} at {value}, limit {limit}"} - ], - "dashboard": { - "id": "line-2-screen", "name": "Line 2", "description": "The Line 2 screen.", "kind": "cards", "roles": [], "homeFor": [], "screens": [], - "cards": [ - {"id": "t", "type": "value", "title": "Mixer temperature", "w": 3, "h": 2, "config": {"tag": "line-2/GVL_Demo.rTemp", "decimals": 1}}, - {"id": "tr", "type": "trend", "title": "Mixer temperature, last 15 minutes", "w": 6, "h": 3, "config": {"tags": ["line-2/GVL_Demo.rTemp"], "minutes": 15}}, - {"id": "al", "type": "alarms", "title": "Line 2 alarms", "w": 6, "h": 3, "config": {"outstanding": true, "limit": 8}} - ] - } -} -``` - -A card's `tag` is the device id, a slash, and the point's name. The card types, the alarm conditions, and the rest of a screen's keys are the same as in HotLoop's [dashboards](/iot/dashboards/) and [the HTTP API](/iot/api/). - -## What the provisioner does with it - -- **It makes the device** if there isn't one, and adds any variable of `points` that the PLC has and the device does not. -- **It never writes to the PLC.** Every tag it makes is read-only, and a profile has no way to mark one writable. -- **It makes the alarms and the screen** when they are missing, and replaces them only when `revision` is higher than the one that made them. A change a person made to the screen in HotLoop therefore survives until a newer profile ships on purpose. -- **It keeps looking.** Every five minutes, and sooner after a pass that could not finish, because the runtime or HotLoop was not answering yet. diff --git a/src/pinned/codesys/roadmap.md b/src/pinned/codesys/roadmap.md deleted file mode 100644 index da1bad9..0000000 --- a/src/pinned/codesys/roadmap.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "HotLoop for CODESYS roadmap" -description: "What HotLoop for CODESYS has built and what is left to prove before and after the first release." -sidebar: - label: "Roadmap" ---- - -{{codesysNotice}} - -This is the list of what is done and what is left, in the order it gets done. It promises nothing that isn't in the code or in a test plan, and it is mostly [the not-proven list](/codesys/where-it-stands/) turned into work. - -## Built - -- [x] A chart around HotLoop Edge with defaults for a runtime on a node: SQLite, one replica, tolerations that keep both pods through a lost control plane. -- [x] A provisioner that applies a profile and keeps it right, with a revision that protects what a person changed. -- [x] The device, tags, alarm, and screen made with no hand step, against a CODESYS Control for Linux SL 4.22.0.0 runtime in a container. -- [x] Recovery from a runtime restart with no hands, about 88 seconds in the lab. -- [x] A signed sign-in from the EmberCORE dashboard, with the refusals. - -## To ship the first version - -- [ ] HotLoop {{codesysNeeds}} released. -- [ ] The chart published at `{{codesysChartRepo}}`. -- [ ] Release notes for the first version. - -## To prove - -- [ ] An install from the real App Store page, as staff do it. -- [ ] A physical controller. -- [ ] k3s v1.35.7. -- [ ] A node that really loses its link to the control plane, with the pods kept. -- [ ] A download from the CODESYS IDE while the runtime stays up. -- [ ] A runtime on the host's own network beside the HotLoop pod on one node. -- [ ] A runtime with user management on, and a certificate-secured OPC UA endpoint. - -Nothing past this list is decided yet. When it is, it goes here with the same marks: built, or not built. diff --git a/src/pinned/codesys/where-it-stands.md b/src/pinned/codesys/where-it-stands.md deleted file mode 100644 index 3e81cc2..0000000 --- a/src/pinned/codesys/where-it-stands.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "Where HotLoop for CODESYS stands" -description: "What HotLoop for CODESYS has been run against, what it has not, and what has to ship before you can install it." -sidebar: - label: "Where it stands" ---- - -{{codesysNotice}} - -A doc that rounds up is how somebody finds out at commissioning, so this page is the whole list. - -## What is true today - -HotLoop for CODESYS is built and has been run against a real runtime in the lab. It is not published. To install it, three things have to ship, and none of them has: - -- **HotLoop {{codesysNeeds}}.** The CODESYS connector is in HotLoop core's main branch for that release, and the chart depends on the `hotloop-edge` chart on the `~{{codesysNeeds}}` line. -- **The chart.** `{{codesysChartRepo}}` answers and lists no chart yet. -- **The release itself:** the notes, and the version. The first version is [{{codesys}}](/releases/codesys-0-3-0/). - -## What was run - -In the lab, the chart on a k3s v1.36 node with Store-shaped values, a real CODESYS Control for Linux SL 4.22.0.0 runtime on the same node running HotLoop's own lab program (built with the CODESYS ScriptEngine), and a HotLoop Edge image built from HotLoop's main branch. - -- The device, its tags (none writable), its alarm, and its screen appeared with no hand step. -- Every value read good and moved. -- The pods came back after a pod delete. -- The install read bad with the reason "the PLC's runtime is not answering" through a runtime restart, and came back by itself about 88 seconds after. -- A signed sign-in from the dashboard signed a person in as an operator or an admin, and a wrong app, a wrong tenant, an expired one, a wrong issuer, and a tampered one were each refused. - -The connector under it, HotLoop core's CODESYS driver, is verified live against a CODESYS Control for Linux SL 4.22.0.0 runtime in a container, for reads and writes, and not on a physical controller. Writes are there in the connector, and this product never turns them on. - -## What was not - -- An install from the real App Store page. The Store's code was changed and tested, and no Store has listed the chart, because it is not published. -- A physical controller. The only runtime it has met is a container. -- k3s v1.35.7. The lab is v1.36. -- A node actually losing its link to the control plane. The tolerations are in the pods, and the link was not cut. -- A download from the CODESYS IDE while the runtime stays up. The lab replaces the runtime process. -- A hostNetwork runtime and the HotLoop pod on one node. The lab runtime is a container on the node's own network, reached at the node's address. -- A runtime with user management on, or a certificate-secured OPC UA endpoint. - -## What a profile can't do yet - -One profile makes one device and one screen. There is no way to mark a variable writable from it, on purpose. diff --git a/src/pinned/releases/codesys-0-3-0.md b/src/pinned/releases/codesys-0-3-0.md deleted file mode 100644 index 35f13c5..0000000 --- a/src/pinned/releases/codesys-0-3-0.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "HotLoop for CODESYS 0.3.0 release notes" -description: "What the first version of HotLoop for CODESYS holds, what it needs, and what it has and has not been run against." -sidebar: - label: "0.3.0" ---- - -{{codesysNotice}} - -## What this is - -0.3.0 is the first version of HotLoop for CODESYS: HotLoop Edge beside a CODESYS runtime, set up from a profile with nobody clicking. It needs HotLoop {{codesysNeeds}}. - -- **A chart that wraps HotLoop Edge** on the {{codesysNeeds}} line, with defaults for a runtime on the same node: SQLite on the node's own storage, no database pod, one replica, and the OPC UA server, the broker, edge publishing, and backups off. -- **A provisioner**, one static Go binary, that reads a [profile](/codesys/profile/) (the device, the variables to keep, the alarms, and one screen) and sets all of it up once the PLC's runtime answers. It looks again every five minutes. -- **A PLC that changes is followed.** A variable the profile lists that the PLC has gained since is added. One the PLC lost reads bad with the server's reason. The screen and the alarms are replaced only when the profile's revision is higher. -- **Nothing writes to the PLC.** Every tag the provisioner sets up is read-only. -- **Both pods tolerate an unreachable or not-ready node** with no time limit. -- **Sign-in from the EmberCORE dashboard** comes from the Edge chart's 4.19 sign-in, and this chart inherits it. - -## What isn't proven - -An install from the real App Store page, a physical controller, k3s v1.35.7, a node really losing its link to the control plane, a download from the CODESYS IDE while the runtime stays up, and a runtime on the host's own network beside the HotLoop pod. [Where it stands](/codesys/where-it-stands/) has the whole list and what it was run against. diff --git a/src/routeData.ts b/src/routeData.ts index 926b7ed..5fbe8cf 100644 --- a/src/routeData.ts +++ b/src/routeData.ts @@ -5,7 +5,7 @@ import { defineRouteMiddleware } from '@astrojs/starlight/route-data'; // their own line (HotLoop core, Flow, Cascade), so the pager stays inside it, newest first, the // same order the sidebar shows. The newest and oldest page of a line don't link out to another // product: the newest of HotLoop core keeps its link back to All releases, and the rest have none. -const line = (id: string) => /^releases\/(hotloop|flow|cascade|codesys)-/.exec(id)?.[1]; +const line = (id: string) => /^releases\/(hotloop|flow|cascade)-/.exec(id)?.[1]; export const onRequest = defineRouteMiddleware((context) => { const route = context.locals.starlightRoute;

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 diff --git a/scripts/forbidden.mjs b/scripts/forbidden.mjs index e9d7bfb..c9f8cf8 100644 --- a/scripts/forbidden.mjs +++ b/scripts/forbidden.mjs @@ -2,12 +2,15 @@ // own, so no customer is named, not even by a project code, and a product that has not shipped // is not on the page. The build and the sync both fail on a match, in the generated pages, the // built HTML, the search index, and the strings the social cards are drawn from. +// +// When HotLoop Transmitter ships, take it off this list in the same change that adds it to the site. export const FORBIDDEN = [ [/\bUT3\b/i, 'UT3, a customer project code'], [/\bTrane\b/i, 'Trane, a customer'], [/tranetech/i, 'tranetech, a customer tenant'], [/expert[ -]?lift/i, 'Expert Lift, a customer'], [/a customer'?s? production (program|plc)/i, 'a customer program, described by whose it is'], + [/HotLoop Transmitter/, 'HotLoop Transmitter, which is not on the public lineup until it ships'], ]; // Returns one line per match, with a little of the text around it. diff --git a/scripts/sync-docs.mjs b/scripts/sync-docs.mjs index bc2662c..029618e 100644 --- a/scripts/sync-docs.mjs +++ b/scripts/sync-docs.mjs @@ -37,7 +37,7 @@ import { IMAGE_ROOT, imageTarget } from './sync-images.mjs'; import { render as renderLegal, status as legalStatus } from './sync-legal.mjs'; import { oxfordHeadings } from './oxford.mjs'; import { scan } from './forbidden.mjs'; -import { GLOBAL_RULES, SLUG_RULES, PAGES, PRODUCTS, RELEASE_NOTES, REPOS, SKIPPED_SECTIONS, CODESYS } from './sync-manifest.mjs'; +import { GLOBAL_RULES, SLUG_RULES, PAGES, PRODUCTS, RELEASE_NOTES, REPOS, SKIPPED_SECTIONS } from './sync-manifest.mjs'; const ROOT = join(dirname(fileURLToPath(import.meta.url)), '..'); const CONTENT = join(ROOT, 'src/content/docs'); @@ -300,12 +300,6 @@ for (const [repo, files] of Object.entries(SKIPPED_SECTIONS)) { } } -const codesysNotice = () => `:::caution[Not released yet] -HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop ${CODESYS.needsCore}, and the chart is not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. -::: - -`; -const codesysHelmNote = () => `Not released yet, so these commands will not work today. The chart repository at ${CODESYS.chartRepo} answers and lists no chart, so \`helm repo add\` succeeds and \`helm install\` finds nothing to install. They are the commands the chart will take.`; const licenseUrl = () => (legalOut.has('license.md') || (!argv.includes('--legal') && existsSync(join(CONTENT, 'license.md'))) ? '/license/' : 'https://hotloop.io/license/'); function slugHref(slug, anchor) { return `/${slug}/${anchor ? '#' + anchor : ''}`; } @@ -380,7 +374,7 @@ function transform(page) { re.lastIndex = 0; if (!re.test(body) && [...(e.rules || []), ...(SLUG_RULES[e.slug] || [])].some(([r]) => r === re)) fail(`${e.slug}: a page rule no longer matches its source: ${re}`); re.lastIndex = 0; - body = body.replace(re, typeof to === 'function' ? to : to.replace('{{LICENSE_URL}}', licenseUrl()).replace(/\{\{(hotloop|flow|cascade)\}\}/g, (_, r) => releases[r].version)); + body = body.replace(re, typeof to === 'function' ? to : to.replace('{{LICENSE_URL}}', licenseUrl())); } // A table with an empty header cell leaves every cell under it unlabeled for a screen reader. { @@ -473,9 +467,9 @@ for (const [slug, p] of mainPages) { .sort((a, b) => b.slug.localeCompare(a.slug, undefined, { numeric: true })) .map((m) => `- [${m.title}](/${m.slug}/)${m.status === 'next' ? ' (on main, next release)' : ''}`) .join('\n'); - const fm = ['---', MARK, 'title: "Release notes"', 'description: "What shipped in every HotLoop core, Flow, Cascade, CODESYS and Transmitter release, and what is on main waiting for the next one, newest first."', 'editUrl: false', '---', ''].join('\n'); + const fm = ['---', MARK, 'title: "Release notes"', 'description: "What shipped in every HotLoop core, HotLoop Flow and HotLoop Cascade release, and what is on main waiting for the next one, newest first."', 'editUrl: false', '---', ''].join('\n'); out.set('releases/index.md', `${fm} -Every release has its own page, written the day it shipped. A note marked "on main, next release" describes a release that is not out yet, so nothing in it is in what you have installed. The latest HotLoop core release is ${releases.hotloop.version}, the latest Flow release is ${releases.flow.version}, and the latest Cascade release is ${releases.cascade.version}. ${CODESYS.released ? `The latest HotLoop for CODESYS release is ${CODESYS.version}.` : 'HotLoop for CODESYS has not been released yet.'} +Every release has its own page, written the day it shipped. A note marked "on main, next release" describes a release that is not out yet, so nothing in it is in what you have installed. The latest HotLoop core release is ${releases.hotloop.version}, the latest Flow release is ${releases.flow.version}, and the latest Cascade release is ${releases.cascade.version}. ## HotLoop core @@ -490,14 +484,6 @@ ${rows('flow')} ## HotLoop Cascade ${rows('cascade')} - -## HotLoop for CODESYS - -- [HotLoop for CODESYS ${CODESYS.version} release notes](/releases/codesys-${CODESYS.version.replace(/\./g, '-')}/)${CODESYS.released ? '' : ' (not released yet)'} - -## HotLoop Transmitter - -- [HotLoop Transmitter 1.0.0 release notes](/releases/transmitter-1-0-0/) (draft, not released yet) `); } @@ -516,11 +502,6 @@ if (existsSync(PINNED)) { t = t.replace(rv[0], ''); } t = t.replace(/\{\{(hotloop|flow|cascade)\}\}/g, (_, r) => releases[r].version).replace(/\{\{LICENSE_URL\}\}/g, licenseUrl()); - // HotLoop for CODESYS has no release to read, so its tokens come from the manifest. The notice is the one - // place a page says it is not out, so the day it is, one switch in the manifest takes it off every page. - t = t.replace(/\{\{codesysNotice\}\}\n*/g, CODESYS.released ? '' : codesysNotice()) - .replace(/\{\{codesysHelmNote\}\}\n*/g, CODESYS.released ? '' : codesysHelmNote() + '\n\n') - .replace(/\{\{codesysNeeds\}\}/g, CODESYS.needsCore).replace(/\{\{codesysChartRepo\}\}/g, CODESYS.chartRepo).replace(/\{\{codesys\}\}/g, CODESYS.version); // A Go template like `{{.Digest}}` in a unit file is content. An unfilled token is {{word}}. if (/\{\{\s*[A-Za-z_]\w*\s*\}\}/.test(t)) fail(`${rel}: an unfilled {{token}}`); t = t.replace(/^---\n/, `---\n${MARK}\n`).replace(/^(---\n[^]*?\n)(---\n)/, (m, a, b) => (/editUrl:/.test(a) ? m : a + 'editUrl: false\n' + b)); @@ -533,7 +514,6 @@ if (existsSync(PINNED)) { const sync = { repos: Object.fromEntries(Object.keys(REPOS).map((r) => [r, { slug: REPOS[r].slug, ref: refs[r], sha: shas[r], release: releases[r] }])), products: PRODUCTS, - codesys: CODESYS, pages: meta, pinned, }; diff --git a/scripts/sync-manifest.mjs b/scripts/sync-manifest.mjs index b42fb38..892112c 100644 --- a/scripts/sync-manifest.mjs +++ b/scripts/sync-manifest.mjs @@ -16,7 +16,7 @@ export const REPOS = { cascade: { slug: 'HotLoop-io/hotloop-cascade', private: true, releaseName: 'HotLoop Cascade' }, }; -// The eight sections of the site, in the order the product picker shows them. +// The six sections of the site, in the order the product picker shows them. export const PRODUCTS = [ { id: 'iot', name: 'HotLoop IoT', repo: 'hotloop', tagline: 'The automation base, built in Go for OT.' }, { id: 'edge', name: 'HotLoop Edge', repo: 'hotloop', tagline: 'IoT plus the machine layer.' }, @@ -24,24 +24,8 @@ export const PRODUCTS = [ { id: 'edge-relay', name: 'HotLoop Edge Relay', repo: 'hotloop', tagline: 'Poll, forward, survive.' }, { id: 'flow', name: 'HotLoop Flow', repo: 'flow', tagline: 'Node-RED compatible flows on a Go runtime.' }, { id: 'cascade', name: 'HotLoop Cascade', repo: 'cascade', tagline: 'The plant talking to everything else.' }, - // No repo here: HotLoop for CODESYS has no release to compare pages against, so its pages are all hand-written (src/pinned/codesys). - { id: 'codesys', name: 'HotLoop for CODESYS', repo: null, tagline: 'Screens and alarms for a CODESYS PLC, beside the runtime.' }, - // Hand-written like CODESYS: the library has no release yet, and its pages are plain files in src/content/docs/transmitter. - { id: 'transmitter', name: 'HotLoop Transmitter', repo: null, tagline: 'OPC UA PubSub from inside the PLC.' }, ]; -// HotLoop for CODESYS, the seventh product and its own release line (HotLoop-io/hotloop-codesys). -// Nothing of it is published, so `released` is false and every one of its pages says so through -// {{codesysNotice}}. The day it is installable: set released to true, and the version to the one -// the chart was published as. The notice disappears from every page in the same sync, and the -// release index and the product picker stop saying "not released yet". -export const CODESYS = { - released: false, - version: '0.3.0', - needsCore: '4.19.0', - chartRepo: 'https://hotloop.io/hotloop-codesys/', -}; - const ws = (s) => new RegExp(s.trim().split(/\s+/).map((w) => w.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')).join('\\s+'), 'g'); // Wording the site never carries. Home Assistant is never named where a reader sees @@ -116,7 +100,7 @@ export const PAGES = [ { product: 'shared', group: 'Install', slug: 'install/helm', repo: 'hotloop', file: 'docs/DEPLOYMENT.md', title: 'k3s and Helm', description: 'Deploy any HotLoop chart on k3s or any Kubernetes: the values worth setting, the database choice, upgrades, rollbacks and what a good install looks like.' }, { product: 'shared', group: 'Install', slug: 'install/quadlet', repo: 'hotloop', file: 'deploy/quadlet/README.md', stopAt: 'Updates', title: 'Podman Quadlet', description: 'Run HotLoop as real systemd services on a Pi or small industrial PC with Podman Quadlet, with no Docker, no Compose and no cluster.' }, { product: 'shared', group: 'Install', slug: 'install/auto-update', repo: 'hotloop', file: 'deploy/quadlet/README.md', sections: ['Updates'], title: 'The :stable auto-update', description: 'Every box follows the stable tag and Podman moves it. What an update does, what a rollback cannot undo, and how to hold updates until you say.' }, - { product: 'shared', group: 'Lineup', slug: 'products', repo: 'hotloop', file: 'docs/PRODUCTS.md', title: 'HotLoop products: eight on five release lines', description: 'Eight products on five release lines, what each of the four core products has, which database each runs, and how to move a site up a product.' }, + { product: 'shared', group: 'Lineup', slug: 'products', repo: 'hotloop', file: 'docs/PRODUCTS.md', title: 'HotLoop products: six on three release lines', description: 'Six products on three release lines, what each of the four core products has, which database each runs, how to install them and how to move a site up a product.' }, { product: 'shared', group: 'Lineup', slug: 'roadmap', repo: 'hotloop', file: 'docs/ROADMAP.md', title: 'HotLoop roadmap', description: "What HotLoop is, what is left to build and what is broken, in the order it gets done, for HotLoop core. Flow and Cascade link their own." }, // ---- HotLoop Flow ---- @@ -219,22 +203,20 @@ Object.assign(SLUG_RULES, { roadmap: [ // The roadmap is the core's. Say so, and say where the other two lines keep theirs. Links are HTML because the link pass runs after the rules and would drop a site path. [ws('HotLoop core ships as four products out of one codebase. See [Products](#products).'), - 'HotLoop is eight products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, HotLoop for CODESYS for the PLC\'s own screens, and Transmitter for putting its values on the wire. This roadmap is for HotLoop core, the four products that come out of one codebase. See [Products](#products). Flow, Cascade, HotLoop for CODESYS, and Transmitter keep their own, in the Flow roadmap, the Cascade roadmap, the HotLoop for CODESYS roadmap, and the Transmitter roadmap.'], + 'HotLoop is six products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring and Cascade for workflows. This roadmap is for HotLoop core, the four products that come out of one codebase. See [Products](#products). Flow and Cascade keep their own, in the Flow roadmap and the Cascade roadmap.'], ], 'products': [ [ws('HotLoop core is four products, one codebase, one tag. Every core release ships all four in lockstep,'), - 'HotLoop is eight products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, HotLoop for CODESYS for the PLC\'s own screens, and Transmitter for putting its values on the wire.\n\nThey ship on five release lines. **HotLoop core** is IoT, Edge, Gateway, and Edge Relay: four products, one codebase, one tag. Every core release ships all four in lockstep,'], + 'HotLoop is six products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring and Cascade for workflows.\n\nThey ship on three release lines. **HotLoop core** is IoT, Edge, Gateway, and Edge Relay: four products, one codebase, one tag. Every core release ships all four in lockstep,'], [ws("PLC on your bench. Features split them. Protocols don't."), - "PLC on your bench. Features split them. Protocols don't.\n\n**Flow**, **Cascade**, **HotLoop for CODESYS**, and **Transmitter** are their own lines with their own versions, so a Flow release never moves the core, and the other way around. Everything below the table is about the core. Here is where each of the eight starts:\n\n" + "PLC on your bench. Features split them. Protocols don't.\n\n**Flow** and **Cascade** are their own lines with their own versions, so a Flow release never moves the core, and the other way around. Everything below the table is about the core. Here is where each of the six starts:\n\n" + '| Product | Release line | Docs | Install | Release notes | Roadmap |\n|---|---|---|---|---|---|\n' + [['IoT', 'HotLoop core', 'iot/overview', 'iot/install', 'releases/#hotloop-core', 'roadmap'], ['Edge', 'HotLoop core', 'edge/overview', 'edge/install', 'releases/#hotloop-core', 'roadmap'], ['Gateway', 'HotLoop core', 'gateway/overview', 'gateway/install', 'releases/#hotloop-core', 'roadmap'], ['Edge Relay', 'HotLoop core', 'edge-relay/overview', 'edge-relay/install', 'releases/#hotloop-core', 'roadmap'], ['Flow', 'Flow', 'flow/overview', 'flow/install', 'releases/#hotloop-flow', 'flow/roadmap'], - ['Cascade', 'Cascade', 'cascade/overview', 'cascade/running', 'releases/#hotloop-cascade', 'cascade/roadmap'], - ['for CODESYS', 'HotLoop for CODESYS', 'codesys/overview', 'codesys/install', 'releases/#hotloop-for-codesys', 'codesys/roadmap'], - ['Transmitter', 'Transmitter', 'transmitter/overview', 'transmitter/install', 'releases/transmitter-1-0-0', 'transmitter/roadmap']] + ['Cascade', 'Cascade', 'cascade/overview', 'cascade/running', 'releases/#hotloop-cascade', 'cascade/roadmap']] .map(([n, l, d, i, r, m]) => `| **HotLoop ${n}** | ${l} | Docs | Install | Notes | Roadmap |`).join('\n') + '\n\nThe table that follows compares the four core products.'], ], diff --git a/src/components/ProductPicker.astro b/src/components/ProductPicker.astro index b2f0519..7ad4eca 100644 --- a/src/components/ProductPicker.astro +++ b/src/components/ProductPicker.astro @@ -1,5 +1,5 @@ --- -// The family map: eight products on five release lines, each with the same five things +// The family map: six products on three release lines, each with the same five things // (docs, install, release notes, roadmap, and its version). Versions and release state // come from src/data/sync.json, which the sync writes, so this can't disagree with the pages. import sync from '../data/sync.json'; @@ -7,9 +7,6 @@ import sync from '../data/sync.json'; const hot = sync.repos.hotloop.release; const flow = sync.repos.flow.release; const cascade = sync.repos.cascade.release; -const codesys = sync.codesys; -// Transmitter has no release yet. When one ships, set this to true and give it the version. -const transmitter = { released: false, version: '1.0.0' }; const latest = (prefix: string) => sync.pages.filter((p) => p.release && p.status !== 'next' && p.slug.startsWith(prefix)).map((p) => p.slug).sort((a, b) => b.localeCompare(a, undefined, { numeric: true }))[0]; @@ -18,10 +15,8 @@ const lines = [ { id: 'core', label: 'HotLoop core', version: hot.version, note: 'One codebase, one version. IoT to Edge to Gateway is the path a site grows along, and Edge Relay is the headless forwarder beside them.', notes: `/${latest('releases/hotloop-')}/`, roadmap: '/roadmap/', ids: ['iot', 'edge', 'gateway', 'edge-relay'] }, { id: 'flow', label: 'Flow', version: flow.version, note: 'Its own release line, running next to HotLoop.', notes: `/${latest('releases/flow-')}/`, roadmap: '/flow/roadmap/', ids: ['flow'] }, { id: 'cascade', label: 'Cascade', version: cascade.version, note: cascade.prerelease ? 'Pre-release. Its own release line, running next to HotLoop.' : 'Its own release line, running next to HotLoop.', notes: `/${latest('releases/cascade-')}/`, roadmap: '/cascade/roadmap/', ids: ['cascade'] }, - { id: 'codesys', label: 'HotLoop for CODESYS', version: codesys.version, note: codesys.released ? 'Its own release line, running next to HotLoop.' : `Not released yet. It needs HotLoop ${codesys.needsCore}, and nothing of it is published.`, notes: `/releases/codesys-${codesys.version.replace(/\./g, '-')}/`, roadmap: '/codesys/roadmap/', ids: ['codesys'], unreleased: !codesys.released }, - { id: 'transmitter', label: 'Transmitter', version: transmitter.version, note: transmitter.released ? 'Its own release line, running next to HotLoop.' : 'Not released yet. The library builds and has run against a CODESYS runtime in a container, and there is no download.', notes: `/releases/transmitter-${transmitter.version.replace(/\./g, '-')}/`, roadmap: '/transmitter/roadmap/', ids: ['transmitter'], unreleased: !transmitter.released }, ]; -const install: Record = { iot: '/iot/install/', edge: '/edge/install/', gateway: '/gateway/install/', 'edge-relay': '/edge-relay/install/', flow: '/flow/install/', cascade: '/cascade/running/', codesys: '/codesys/install/', transmitter: '/transmitter/install/' }; +const install: Record = { iot: '/iot/install/', edge: '/edge/install/', gateway: '/gateway/install/', 'edge-relay': '/edge-relay/install/', flow: '/flow/install/', cascade: '/cascade/running/' }; ---

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 literal 0 HcmV?d00001 diff --git a/scripts/sync-docs.mjs b/scripts/sync-docs.mjs index 285757b..18d85f5 100644 --- a/scripts/sync-docs.mjs +++ b/scripts/sync-docs.mjs @@ -36,7 +36,7 @@ import GithubSlugger from 'github-slugger'; import { IMAGE_ROOT, imageTarget } from './sync-images.mjs'; import { render as renderLegal, status as legalStatus } from './sync-legal.mjs'; import { oxfordHeadings } from './oxford.mjs'; -import { GLOBAL_RULES, SLUG_RULES, PAGES, PRODUCTS, RELEASE_NOTES, REPOS, SKIPPED_SECTIONS } from './sync-manifest.mjs'; +import { GLOBAL_RULES, SLUG_RULES, PAGES, PRODUCTS, RELEASE_NOTES, REPOS, SKIPPED_SECTIONS, CODESYS } from './sync-manifest.mjs'; const ROOT = join(dirname(fileURLToPath(import.meta.url)), '..'); const CONTENT = join(ROOT, 'src/content/docs'); @@ -299,6 +299,11 @@ for (const [repo, files] of Object.entries(SKIPPED_SECTIONS)) { } } +const codesysNotice = () => `:::caution[Not released yet] +HotLoop for CODESYS is built and has run against a real CODESYS runtime in the lab, and it is not out. It needs HotLoop ${CODESYS.needsCore}, and the chart and the provisioner image are not published, so you can't install it yet. [Where it stands](/codesys/where-it-stands/) has the list. +::: + +`; const licenseUrl = () => (legalOut.has('license.md') || (!argv.includes('--legal') && existsSync(join(CONTENT, 'license.md'))) ? '/license/' : 'https://hotloop.io/license/'); function slugHref(slug, anchor) { return `/${slug}/${anchor ? '#' + anchor : ''}`; } @@ -466,9 +471,9 @@ for (const [slug, p] of mainPages) { .sort((a, b) => b.slug.localeCompare(a.slug, undefined, { numeric: true })) .map((m) => `- [${m.title}](/${m.slug}/)${m.status === 'next' ? ' (on main, next release)' : ''}`) .join('\n'); - const fm = ['---', MARK, 'title: "Release notes"', 'description: "What shipped in every HotLoop core, HotLoop Flow and HotLoop Cascade release, and what is on main waiting for the next one, newest first."', 'editUrl: false', '---', ''].join('\n'); + const fm = ['---', MARK, 'title: "Release notes"', 'description: "What shipped in every HotLoop core, HotLoop Flow, HotLoop Cascade and HotLoop for CODESYS release, and what is on main waiting for the next one, newest first."', 'editUrl: false', '---', ''].join('\n'); out.set('releases/index.md', `${fm} -Every release has its own page, written the day it shipped. A note marked "on main, next release" describes a release that is not out yet, so nothing in it is in what you have installed. The latest HotLoop core release is ${releases.hotloop.version}, the latest Flow release is ${releases.flow.version}, and the latest Cascade release is ${releases.cascade.version}. +Every release has its own page, written the day it shipped. A note marked "on main, next release" describes a release that is not out yet, so nothing in it is in what you have installed. The latest HotLoop core release is ${releases.hotloop.version}, the latest Flow release is ${releases.flow.version}, and the latest Cascade release is ${releases.cascade.version}. ${CODESYS.released ? `The latest HotLoop for CODESYS release is ${CODESYS.version}.` : 'HotLoop for CODESYS has not been released yet.'} ## HotLoop core @@ -483,6 +488,10 @@ ${rows('flow')} ## HotLoop Cascade ${rows('cascade')} + +## HotLoop for CODESYS + +- [HotLoop for CODESYS ${CODESYS.version} release notes](/releases/codesys-${CODESYS.version.replace(/\./g, '-')}/)${CODESYS.released ? '' : ' (not released yet)'} `); } @@ -501,6 +510,10 @@ if (existsSync(PINNED)) { t = t.replace(rv[0], ''); } t = t.replace(/\{\{(hotloop|flow|cascade)\}\}/g, (_, r) => releases[r].version).replace(/\{\{LICENSE_URL\}\}/g, licenseUrl()); + // HotLoop for CODESYS has no release to read, so its tokens come from the manifest. The notice is the one + // place a page says it is not out, so the day it is, one switch in the manifest takes it off every page. + t = t.replace(/\{\{codesysNotice\}\}\n*/g, CODESYS.released ? '' : codesysNotice()) + .replace(/\{\{codesysNeeds\}\}/g, CODESYS.needsCore).replace(/\{\{codesysChartRepo\}\}/g, CODESYS.chartRepo).replace(/\{\{codesys\}\}/g, CODESYS.version); // A Go template like `{{.Digest}}` in a unit file is content. An unfilled token is {{word}}. if (/\{\{\s*[A-Za-z_]\w*\s*\}\}/.test(t)) fail(`${rel}: an unfilled {{token}}`); t = t.replace(/^---\n/, `---\n${MARK}\n`).replace(/^(---\n[^]*?\n)(---\n)/, (m, a, b) => (/editUrl:/.test(a) ? m : a + 'editUrl: false\n' + b)); @@ -513,6 +526,7 @@ if (existsSync(PINNED)) { const sync = { repos: Object.fromEntries(Object.keys(REPOS).map((r) => [r, { slug: REPOS[r].slug, ref: refs[r], sha: shas[r], release: releases[r] }])), products: PRODUCTS, + codesys: CODESYS, pages: meta, pinned, }; diff --git a/scripts/sync-manifest.mjs b/scripts/sync-manifest.mjs index 33d2af1..007beb2 100644 --- a/scripts/sync-manifest.mjs +++ b/scripts/sync-manifest.mjs @@ -16,7 +16,7 @@ export const REPOS = { cascade: { slug: 'HotLoop-io/hotloop-cascade', private: true, releaseName: 'HotLoop Cascade' }, }; -// The six sections of the site, in the order the product picker shows them. +// The seven sections of the site, in the order the product picker shows them. export const PRODUCTS = [ { id: 'iot', name: 'HotLoop IoT', repo: 'hotloop', tagline: 'The automation base, built in Go for OT.' }, { id: 'edge', name: 'HotLoop Edge', repo: 'hotloop', tagline: 'IoT plus the machine layer.' }, @@ -24,8 +24,22 @@ export const PRODUCTS = [ { id: 'edge-relay', name: 'HotLoop Edge Relay', repo: 'hotloop', tagline: 'Poll, forward, survive.' }, { id: 'flow', name: 'HotLoop Flow', repo: 'flow', tagline: 'Node-RED compatible flows on a Go runtime.' }, { id: 'cascade', name: 'HotLoop Cascade', repo: 'cascade', tagline: 'The plant talking to everything else.' }, + // No repo here: HotLoop for CODESYS has no release to compare pages against, so its pages are all hand-written (src/pinned/codesys). + { id: 'codesys', name: 'HotLoop for CODESYS', repo: null, tagline: 'Screens and alarms for a CODESYS PLC, beside the runtime.' }, ]; +// HotLoop for CODESYS, the seventh product and its own release line (HotLoop-io/hotloop-codesys). +// Nothing of it is published, so `released` is false and every one of its pages says so through +// {{codesysNotice}}. The day it is installable: set released to true, and the version to the one +// the chart was published as. The notice disappears from every page in the same sync, and the +// release index and the product picker stop saying "not released yet". +export const CODESYS = { + released: false, + version: '0.3.0', + needsCore: '4.19.0', + chartRepo: 'https://hotloop.io/hotloop-codesys/', +}; + const ws = (s) => new RegExp(s.trim().split(/\s+/).map((w) => w.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')).join('\\s+'), 'g'); // Wording the site never carries. Home Assistant is never named where a reader sees @@ -92,7 +106,7 @@ export const PAGES = [ { product: 'shared', group: 'Install', slug: 'install/helm', repo: 'hotloop', file: 'docs/DEPLOYMENT.md', title: 'k3s and Helm', description: 'Deploy any HotLoop chart on k3s or any Kubernetes: the values worth setting, the database choice, upgrades, rollbacks and what a good install looks like.' }, { product: 'shared', group: 'Install', slug: 'install/quadlet', repo: 'hotloop', file: 'deploy/quadlet/README.md', stopAt: 'Updates', title: 'Podman Quadlet', description: 'Run HotLoop as real systemd services on a Pi or small industrial PC with Podman Quadlet, with no Docker, no Compose and no cluster.' }, { product: 'shared', group: 'Install', slug: 'install/auto-update', repo: 'hotloop', file: 'deploy/quadlet/README.md', sections: ['Updates'], title: 'The :stable auto-update', description: 'Every box follows the stable tag and Podman moves it. What an update does, what a rollback cannot undo, and how to hold updates until you say.' }, - { product: 'shared', group: 'Lineup', slug: 'products', repo: 'hotloop', file: 'docs/PRODUCTS.md', title: 'HotLoop products: six on three release lines', description: 'Six products on three release lines, what each of the four core products has, which database each runs, how to install them and how to move a site up a product.' }, + { product: 'shared', group: 'Lineup', slug: 'products', repo: 'hotloop', file: 'docs/PRODUCTS.md', title: 'HotLoop products: seven on four release lines', description: 'Seven products on four release lines, what each of the four core products has, which database each runs, and how to move a site up a product.' }, { product: 'shared', group: 'Lineup', slug: 'roadmap', repo: 'hotloop', file: 'docs/ROADMAP.md', title: 'HotLoop roadmap', description: "What HotLoop is, what is left to build and what is broken, in the order it gets done, for HotLoop core. Flow and Cascade link their own." }, // ---- HotLoop Flow ---- @@ -192,20 +206,21 @@ Object.assign(SLUG_RULES, { roadmap: [ // The roadmap is the core's. Say so, and say where the other two lines keep theirs. Links are HTML because the link pass runs after the rules and would drop a site path. [ws('HotLoop core ships as four products out of one codebase. See [Products](#products).'), - 'HotLoop is six products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring and Cascade for workflows. This roadmap is for HotLoop core, the four products that come out of one codebase. See [Products](#products). Flow and Cascade keep their own, in the Flow roadmap and the Cascade roadmap.'], + 'HotLoop is seven products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, and HotLoop for CODESYS for the PLC\'s own screen. This roadmap is for HotLoop core, the four products that come out of one codebase. See [Products](#products). Flow, Cascade, and HotLoop for CODESYS keep their own, in the Flow roadmap, the Cascade roadmap, and the HotLoop for CODESYS roadmap.'], ], 'products': [ [ws('HotLoop core is four products, one codebase, one tag. Every core release ships all four in lockstep,'), - 'HotLoop is six products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring and Cascade for workflows.\n\nThey ship on three release lines. **HotLoop core** is IoT, Edge, Gateway, and Edge Relay: four products, one codebase, one tag. Every core release ships all four in lockstep,'], + 'HotLoop is seven products for the plant floor: four that grow with a site (IoT, Edge, Gateway, and Edge Relay), plus Flow for wiring, Cascade for workflows, and HotLoop for CODESYS for the PLC\'s own screen.\n\nThey ship on four release lines. **HotLoop core** is IoT, Edge, Gateway, and Edge Relay: four products, one codebase, one tag. Every core release ships all four in lockstep,'], [ws("PLC on your bench. Features split them. Protocols don't."), - "PLC on your bench. Features split them. Protocols don't.\n\n**Flow** and **Cascade** are their own lines with their own versions, so a Flow release never moves the core, and the other way around. Everything below the table is about the core. Here is where each of the six starts:\n\n" + "PLC on your bench. Features split them. Protocols don't.\n\n**Flow**, **Cascade**, and **HotLoop for CODESYS** are their own lines with their own versions, so a Flow release never moves the core, and the other way around. Everything below the table is about the core. Here is where each of the seven starts:\n\n" + '| Product | Release line | Docs | Install | Release notes | Roadmap |\n|---|---|---|---|---|---|\n' + [['IoT', 'HotLoop core', 'iot/overview', 'iot/install', 'releases/#hotloop-core', 'roadmap'], ['Edge', 'HotLoop core', 'edge/overview', 'edge/install', 'releases/#hotloop-core', 'roadmap'], ['Gateway', 'HotLoop core', 'gateway/overview', 'gateway/install', 'releases/#hotloop-core', 'roadmap'], ['Edge Relay', 'HotLoop core', 'edge-relay/overview', 'edge-relay/install', 'releases/#hotloop-core', 'roadmap'], ['Flow', 'Flow', 'flow/overview', 'flow/install', 'releases/#hotloop-flow', 'flow/roadmap'], - ['Cascade', 'Cascade', 'cascade/overview', 'cascade/running', 'releases/#hotloop-cascade', 'cascade/roadmap']] + ['Cascade', 'Cascade', 'cascade/overview', 'cascade/running', 'releases/#hotloop-cascade', 'cascade/roadmap'], + ['for CODESYS', 'HotLoop for CODESYS', 'codesys/overview', 'codesys/install', 'releases/#hotloop-for-codesys', 'codesys/roadmap']] .map(([n, l, d, i, r, m]) => `| **HotLoop ${n}** | ${l} | Docs | Install | Notes | Roadmap |`).join('\n') + '\n\nThe table that follows compares the four core products.'], ], diff --git a/src/components/ProductPicker.astro b/src/components/ProductPicker.astro index 7ad4eca..2f9fc3c 100644 --- a/src/components/ProductPicker.astro +++ b/src/components/ProductPicker.astro @@ -1,5 +1,5 @@ --- -// The family map: six products on three release lines, each with the same five things +// The family map: seven products on four release lines, each with the same five things // (docs, install, release notes, roadmap, and its version). Versions and release state // come from src/data/sync.json, which the sync writes, so this can't disagree with the pages. import sync from '../data/sync.json'; @@ -7,6 +7,7 @@ import sync from '../data/sync.json'; const hot = sync.repos.hotloop.release; const flow = sync.repos.flow.release; const cascade = sync.repos.cascade.release; +const codesys = sync.codesys; const latest = (prefix: string) => sync.pages.filter((p) => p.release && p.status !== 'next' && p.slug.startsWith(prefix)).map((p) => p.slug).sort((a, b) => b.localeCompare(a, undefined, { numeric: true }))[0]; @@ -15,8 +16,9 @@ const lines = [ { id: 'core', label: 'HotLoop core', version: hot.version, note: 'One codebase, one version. IoT to Edge to Gateway is the path a site grows along, and Edge Relay is the headless forwarder beside them.', notes: `/${latest('releases/hotloop-')}/`, roadmap: '/roadmap/', ids: ['iot', 'edge', 'gateway', 'edge-relay'] }, { id: 'flow', label: 'Flow', version: flow.version, note: 'Its own release line, running next to HotLoop.', notes: `/${latest('releases/flow-')}/`, roadmap: '/flow/roadmap/', ids: ['flow'] }, { id: 'cascade', label: 'Cascade', version: cascade.version, note: cascade.prerelease ? 'Pre-release. Its own release line, running next to HotLoop.' : 'Its own release line, running next to HotLoop.', notes: `/${latest('releases/cascade-')}/`, roadmap: '/cascade/roadmap/', ids: ['cascade'] }, + { id: 'codesys', label: 'HotLoop for CODESYS', version: codesys.version, note: codesys.released ? 'Its own release line, running next to HotLoop.' : `Not released yet. It needs HotLoop ${codesys.needsCore}, and nothing of it is published.`, notes: `/releases/codesys-${codesys.version.replace(/\./g, '-')}/`, roadmap: '/codesys/roadmap/', ids: ['codesys'], unreleased: !codesys.released }, ]; -const install: Record = { iot: '/iot/install/', edge: '/edge/install/', gateway: '/gateway/install/', 'edge-relay': '/edge-relay/install/', flow: '/flow/install/', cascade: '/cascade/running/' }; +const install: Record = { iot: '/iot/install/', edge: '/edge/install/', gateway: '/gateway/install/', 'edge-relay': '/edge-relay/install/', flow: '/flow/install/', cascade: '/cascade/running/', codesys: '/codesys/install/' }; ---