iobroker.javascript 10.2.4 → 10.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -21
- package/admin/assets/AiChatPanel-CpY4Bun-.js +27 -0
- package/admin/assets/{AiChatService-Bsp_rhVx.js → AiChatService-QKcpW4jQ.js} +1 -1
- package/admin/assets/AiDiffView-DscPfZ38.js +1 -0
- package/admin/assets/{AiInlineProvider-BxOW88xU.js → AiInlineProvider-DTSPKoXG.js} +1 -1
- package/admin/assets/BlocklyEditor-BZyoN1JE.js +301 -0
- package/admin/assets/Compile-B0uHjrBE.css +1 -0
- package/admin/assets/Compile-Oss28m_f.js +165 -0
- package/admin/assets/Debugger-teJTIU-2.js +15 -0
- package/admin/assets/Documentation-uz4Ut9pT.js +4339 -0
- package/admin/assets/ExpandMore-V5Ix1QB1.js +1 -0
- package/admin/assets/FbEditor-B8S-mCvc.css +1 -0
- package/admin/assets/FbEditor-aOZ-RpPV.js +15 -0
- package/admin/assets/Import-BIC5Ee9z.js +1 -0
- package/admin/assets/NotificationsActive-BdzH44gp.js +1 -0
- package/admin/assets/RulesEditor-CcDVthPa.js +1 -0
- package/admin/assets/{ScriptEditor-BCGahS47.js → ScriptEditor-CviB6Hif.js} +2 -2
- package/admin/assets/ScriptEditorVanillaMonaco-ByuXwybM.js +3 -0
- package/admin/assets/Send-Mdo32jMb.js +1 -0
- package/admin/assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-BnL93BgK.js +1 -0
- package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__180366418666083__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-NI-3Uv4e.js +1217 -0
- package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__180366418666083__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-DVaMIZyC.js +9 -0
- package/admin/assets/aiPromptBuilder-yTB6N2VT.js +1 -0
- package/admin/assets/blocklyTheme-CGhU3cEO.js +1 -0
- package/admin/assets/blocks_action-BQ4O7NRE.js +1 -0
- package/admin/assets/{blocks_convert-CLb0DLyc.js → blocks_convert-0VBjfhqQ.js} +1 -1
- package/admin/assets/blocks_logic-DAo99xDr.js +1 -0
- package/admin/assets/blocks_number-C--e19NU.js +1 -0
- package/admin/assets/blocks_object-D0TPhdzg.js +1 -0
- package/admin/assets/blocks_procedures-DgTxgXdB.js +3 -0
- package/admin/assets/{blocks_sendto-BxCMg9X4.js → blocks_sendto-CRIrtOUc.js} +1 -1
- package/admin/assets/blocks_switch-b_GYfF0n.js +2 -0
- package/admin/assets/blocks_system-BdkUdSsc.js +1 -0
- package/admin/assets/blocks_text-DSFhEVOf.js +1 -0
- package/admin/assets/blocks_time-CqALAiJp.js +1 -0
- package/admin/assets/blocks_timeout-yrOD2pZp.js +1 -0
- package/admin/assets/{blocks_trigger-XivsIDE5.js → blocks_trigger-DeAYXpSS.js} +1 -1
- package/admin/assets/{cronHoverProvider-BZMOFHO_.js → cronHoverProvider-DoO2_tpG.js} +1 -1
- package/admin/assets/{field_cron-CxKi__cX.js → field_cron-D3Ts_s9M.js} +1 -1
- package/admin/assets/{field_oid-CJIYiGxY.js → field_oid-BRNXredg.js} +1 -1
- package/admin/assets/{field_script-CehplM7L.js → field_script-3X6ousg7.js} +1 -1
- package/admin/assets/helpers-BTGaTdnT.js +1 -0
- package/admin/assets/{hostInit-Bs-bStPF.js → hostInit-2h2Cbsaw.js} +1 -1
- package/admin/assets/iconLibraryData-B5fiyl1C.js +1 -0
- package/admin/assets/index-BHhhebRG.css +1 -0
- package/admin/assets/index-CbQlIKB_.js +156 -0
- package/admin/assets/{inlineChatWidget-NIvdRGmU.js → inlineChatWidget-BwQVCPkx.js} +1 -1
- package/admin/assets/{inlineDiffController-Qh402KhK.js → inlineDiffController-BsDDsDHn.js} +1 -1
- package/admin/assets/loadBlocks-RpqM7PwO.js +117 -0
- package/admin/assets/loadMonaco-BVOEahNw.js +1 -0
- package/admin/assets/{mf-entry-bootstrap-0-019228a5.js → mf-entry-bootstrap-0-0deef484.js} +3 -3
- package/admin/assets/{pendingShares-B3t6ewri.js → pendingShares-BaAadIDv.js} +1 -1
- package/admin/assets/reactour.esm-DX9ZgYlx.js +137 -0
- package/admin/assets/stateHoverProvider-BEadnSXp.js +11 -0
- package/admin/assets/tileFbd-CWAy7R7m.svg +85 -0
- package/admin/custom/assets/Components-FkGDIlId.js +1 -0
- package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1-Cs88NUCd.js +1 -0
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-P-8ffWXw.js +1 -0
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-ZVuRAEo5.js +1 -0
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DVb0ZZ1Q.js +1217 -0
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-Dna3WF04.js +1 -0
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_mui_mf_1_x_mf_2_date_mf_2_pickers__loadShare__.js-DcjdCGAx.js +1 -0
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare__date_mf_2_fns__loadShare__.js-CnhNjamd.js +1 -0
- package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare__leaflet__loadShare__.js-im3edKNs.js → _virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare__leaflet__loadShare__.js-Dz7BFJqH.js} +1 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-B0olko2J.js +1 -0
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-CzN4reh_.js +122 -0
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__prebuild__leaflet__prebuild__-xPcBaiTQ.js +1 -0
- package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-Byvr2uOb.js → _virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-CXpyx8Vy.js} +1 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__prebuild__react_mf_2_dom_mf_1_client__prebuild__-DuFBE5fh.js +9 -0
- package/admin/custom/assets/{hostInit-IJMNq3h7.js → hostInit-6oh4UY2k.js} +1 -1
- package/admin/custom/assets/iconLibraryData-B5fiyl1C.js +1 -0
- package/admin/custom/assets/index-BrlyEy6J.js +1 -0
- package/admin/custom/assets/lib-BmDlTzq2.js +3 -0
- package/admin/custom/assets/{mf-entry-bootstrap-0-f149bc46.js → mf-entry-bootstrap-0-ad1cd7d0.js} +3 -3
- package/admin/custom/assets/pendingShares-kV2kwejX.js +1 -0
- package/admin/custom/assets/rolldown-runtime-Dqfqb5bO.js +1 -0
- package/admin/custom/customComponents.js +3 -2
- package/admin/custom/i18n/en.json +39 -39
- package/admin/custom/i18n/es.json +1 -1
- package/admin/custom/i18n/fr.json +2 -2
- package/admin/custom/i18n/it.json +1 -1
- package/admin/custom/i18n/nl.json +2 -2
- package/admin/custom/i18n/pt.json +2 -2
- package/admin/custom/i18n/ru.json +2 -2
- package/admin/custom/i18n/uk.json +1 -1
- package/admin/custom/i18n/zh-cn.json +1 -1
- package/admin/i18n/de.json +1 -1
- package/admin/i18n/en.json +115 -115
- package/admin/i18n/fr.json +115 -115
- package/admin/i18n/it.json +115 -115
- package/admin/i18n/nl.json +115 -115
- package/admin/i18n/pl.json +1 -1
- package/admin/i18n/pt.json +115 -115
- package/admin/i18n/ru.json +115 -115
- package/admin/i18n/uk.json +115 -115
- package/admin/i18n/zh-cn.json +115 -115
- package/admin/mf-manifest.json +1 -1
- package/admin/mf-stats.json +1 -1
- package/admin/remoteEntry.js +2 -2
- package/admin/tab.html +3 -7
- package/build/lib/fb/analyze.js +288 -0
- package/build/lib/fb/analyze.js.map +1 -0
- package/build/lib/fb/blocks.js +605 -0
- package/build/lib/fb/blocks.js.map +1 -0
- package/build/lib/fb/generate.js +326 -0
- package/build/lib/fb/generate.js.map +1 -0
- package/build/lib/fb/graph.js +240 -0
- package/build/lib/fb/graph.js.map +1 -0
- package/build/lib/fb/index.js +57 -0
- package/build/lib/fb/index.js.map +1 -0
- package/build/lib/fb/js.js +33 -0
- package/build/lib/fb/js.js.map +1 -0
- package/build/lib/fb/layout.js +205 -0
- package/build/lib/fb/layout.js.map +1 -0
- package/build/lib/fb/library.js +657 -0
- package/build/lib/fb/library.js.map +1 -0
- package/build/lib/fb/runtime.js +793 -0
- package/build/lib/fb/runtime.js.map +1 -0
- package/build/lib/fb/time.js +76 -0
- package/build/lib/fb/time.js.map +1 -0
- package/build/lib/fb/types.js +19 -0
- package/build/lib/fb/types.js.map +1 -0
- package/build/lib/fb/user.js +78 -0
- package/build/lib/fb/user.js.map +1 -0
- package/build/lib/javascript.d.ts +17 -17
- package/build/lib/mirror.js +4 -0
- package/build/lib/mirror.js.map +1 -1
- package/build/lib/sandbox.js +44 -0
- package/build/lib/sandbox.js.map +1 -1
- package/build/main.js +66 -1
- package/build/main.js.map +1 -1
- package/build/types.d.ts +9 -1
- package/docs/de/README.md +1 -1
- package/docs/de/fbd.md +274 -0
- package/docs/de/javascript.md +2167 -0
- package/docs/en/fbd.md +260 -0
- package/docs/en/javascript.md +28 -30
- package/io-package.json +52 -28
- package/package.json +8 -8
- package/admin/assets/AiChatPanel-AZko1BsN.js +0 -27
- package/admin/assets/AiDiffView-Cri2QFh1.js +0 -1
- package/admin/assets/Debugger-CVDh3kgz.js +0 -15
- package/admin/assets/Error-Ch2nx5uC.js +0 -1
- package/admin/assets/Import-XKVP-nRT.js +0 -1
- package/admin/assets/RulesEditor-DsO4cKIk.js +0 -1
- package/admin/assets/ScriptEditorVanillaMonaco-BDAw2Bw6.js +0 -3
- package/admin/assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-BMAFQFoH.js +0 -1
- package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__113183188387379__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-D-gi6Mty.js +0 -1217
- package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__113183188387379__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-CDctpiPx.js +0 -9
- package/admin/assets/aiPromptBuilder-aJfHa-eU.js +0 -1
- package/admin/assets/blocks_action-DS28sNfo.js +0 -1
- package/admin/assets/blocks_logic-Dpp2fwlu.js +0 -1
- package/admin/assets/blocks_number-N4IfHvYD.js +0 -1
- package/admin/assets/blocks_object-uK7FHVhS.js +0 -1
- package/admin/assets/blocks_procedures-C_KD0Bm6.js +0 -3
- package/admin/assets/blocks_switch-C8Rls5pK.js +0 -2
- package/admin/assets/blocks_system-CEQnj5fY.js +0 -1
- package/admin/assets/blocks_text-BDEWxu0P.js +0 -1
- package/admin/assets/blocks_time-aHQQK1Uz.js +0 -1
- package/admin/assets/blocks_timeout-C2L93TLJ.js +0 -1
- package/admin/assets/helpers-DiwtLpXM.js +0 -1
- package/admin/assets/index-B0FfAYMN.js +0 -871
- package/admin/assets/index-CXaeqPRy.css +0 -1
- package/admin/assets/stateHoverProvider-BkW15VMN.js +0 -9
- package/admin/assets/virtualExposes-DgGB-18P.js +0 -1
- package/admin/assets/virtual_mf-REMOTE_ENTRY_ID___mfe_internal__iobroker_javascript__remoteEntry_js-CiidVc0O.js +0 -1
- package/admin/assets/virtual_mf-exposes___mfe_internal__iobroker_javascript__remoteEntry_js-ChiJXsfH.js +0 -1
- package/admin/custom/assets/Components-SGnA-3W_.js +0 -1
- package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1-Bx3X6TLB.js +0 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-Cc7MmJgr.js +0 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-CdvEvX5z.js +0 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-D5NaoeJi.js +0 -1217
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-Cbgw_a3f.js +0 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare___mf_0_mui_mf_1_x_mf_2_date_mf_2_pickers__loadShare__.js-CMr75K5w.js +0 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare__date_mf_2_fns__loadShare__.js-DKIvPDPX.js +0 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-D50aYKgD.js +0 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-CEzQFX7o.js +0 -122
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__prebuild__leaflet__prebuild__-BUDmnAcx.js +0 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__prebuild__react_mf_2_dom_mf_1_client__prebuild__-D_1oh1WH.js +0 -9
- package/admin/custom/assets/index-7r4VklMp.js +0 -1
- package/admin/custom/assets/lib-DDU2Oe48.js +0 -3
- package/admin/custom/assets/pendingShares-DarGQhyO.js +0 -1
- package/admin/custom/assets/rolldown-runtime-BcKkbAw3.js +0 -1
- package/admin/custom/assets/virtualExposes-C0IqMANQ.js +0 -1
- package/admin/custom/assets/virtual_mf-REMOTE_ENTRY_ID___mfe_internal__ConfigCustomJavascriptSet__customComponents_js-CqKvh5Xu.js +0 -1
- package/admin/custom/assets/virtual_mf-exposes___mfe_internal__ConfigCustomJavascriptSet__customComponents_js-DrBN_S5o.js +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../../src/lib/fb/library.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FbBlock, FbBlockDef, FbCategory, FbSignalType, FbUserBlock } from './types';\n\n/** The events of the sun ASTRO knows, in the order of a day - the names of `getAstroDate()` */\nexport const FB_ASTRO_EVENTS = [\n 'nightEnd',\n 'nauticalDawn',\n 'dawn',\n 'sunrise',\n 'sunriseEnd',\n 'goldenHourEnd',\n 'solarNoon',\n 'goldenHour',\n 'sunsetStart',\n 'sunset',\n 'dusk',\n 'nauticalDusk',\n 'night',\n 'nadir',\n];\n\n/**\n * The blocks of the library: logic, memory (flip-flops, edges), timers, counters, comparison,\n * arithmetic, conversion, control, calendar, messages, a block with code, and the ioBroker states.\n *\n * Type names follow IEC 61131-3. The editor translates the names of the categories, the types\n * stay as they are - they are what SPS users look for.\n */\nexport const FB_LIBRARY: FbBlockDef[] = [\n // ---- logic\n {\n type: 'AND',\n category: 'logic',\n inputs: [],\n outputs: [{ id: 'OUT', type: 'BOOL' }],\n // an open input of an AND must not block it\n extensible: { prefix: 'IN', type: 'BOOL', default: true, min: 2, max: 16 },\n code: '{OUT} = {IN*: && };',\n },\n {\n type: 'OR',\n category: 'logic',\n inputs: [],\n outputs: [{ id: 'OUT', type: 'BOOL' }],\n extensible: { prefix: 'IN', type: 'BOOL', default: false, min: 2, max: 16 },\n code: '{OUT} = {IN*: || };',\n },\n {\n type: 'XOR',\n category: 'logic',\n inputs: [],\n outputs: [{ id: 'OUT', type: 'BOOL' }],\n // true for an odd number of true inputs, like a chain of XOR gates\n extensible: { prefix: 'IN', type: 'BOOL', default: false, min: 2, max: 16 },\n code: '{OUT} = {IN*: !== };',\n },\n {\n type: 'NOT',\n category: 'logic',\n inputs: [{ id: 'IN', type: 'BOOL', default: false }],\n outputs: [{ id: 'OUT', type: 'BOOL' }],\n code: '{OUT} = !{IN};',\n },\n {\n type: 'RS',\n category: 'memory',\n inputs: [\n { id: 'S', type: 'BOOL', default: false },\n { id: 'R1', type: 'BOOL', default: false },\n ],\n outputs: [{ id: 'Q1', type: 'BOOL' }],\n stateful: true,\n code: '{I}.run({S}, {R1}); {Q1} = {I}.Q1;',\n },\n {\n type: 'SR',\n category: 'memory',\n inputs: [\n { id: 'S1', type: 'BOOL', default: false },\n { id: 'R', type: 'BOOL', default: false },\n ],\n outputs: [{ id: 'Q1', type: 'BOOL' }],\n stateful: true,\n code: '{I}.run({S1}, {R}); {Q1} = {I}.Q1;',\n },\n {\n type: 'R_TRIG',\n category: 'memory',\n inputs: [{ id: 'CLK', type: 'BOOL', default: false }],\n outputs: [{ id: 'Q', type: 'BOOL' }],\n stateful: true,\n code: '{I}.run({CLK}, firstScan); {Q} = {I}.Q;',\n },\n {\n type: 'F_TRIG',\n category: 'memory',\n inputs: [{ id: 'CLK', type: 'BOOL', default: false }],\n outputs: [{ id: 'Q', type: 'BOOL' }],\n stateful: true,\n code: '{I}.run({CLK}, firstScan); {Q} = {I}.Q;',\n },\n\n // ---- timers\n {\n type: 'TON',\n category: 'timers',\n inputs: [\n { id: 'IN', type: 'BOOL', default: false },\n { id: 'PT', type: 'TIME', param: true, default: 1000 },\n ],\n outputs: [\n { id: 'Q', type: 'BOOL' },\n { id: 'ET', type: 'TIME' },\n ],\n stateful: true,\n timeDependent: true,\n code: '{I}.run({IN}, {PT}, dt); {Q} = {I}.Q; {ET} = {I}.ET;',\n },\n {\n type: 'TOF',\n category: 'timers',\n inputs: [\n { id: 'IN', type: 'BOOL', default: false },\n { id: 'PT', type: 'TIME', param: true, default: 1000 },\n ],\n outputs: [\n { id: 'Q', type: 'BOOL' },\n { id: 'ET', type: 'TIME' },\n ],\n stateful: true,\n timeDependent: true,\n code: '{I}.run({IN}, {PT}, dt); {Q} = {I}.Q; {ET} = {I}.ET;',\n },\n {\n type: 'TP',\n category: 'timers',\n inputs: [\n { id: 'IN', type: 'BOOL', default: false },\n { id: 'PT', type: 'TIME', param: true, default: 1000 },\n ],\n outputs: [\n { id: 'Q', type: 'BOOL' },\n { id: 'ET', type: 'TIME' },\n ],\n stateful: true,\n timeDependent: true,\n code: '{I}.run({IN}, {PT}, dt); {Q} = {I}.Q; {ET} = {I}.ET;',\n },\n {\n // blinker: TH ms on, TL ms off, while EN is true\n type: 'BLINK',\n category: 'timers',\n inputs: [\n { id: 'EN', type: 'BOOL', default: true },\n { id: 'TH', type: 'TIME', param: true, default: 1000 },\n { id: 'TL', type: 'TIME', param: true, default: 1000 },\n ],\n outputs: [{ id: 'Q', type: 'BOOL' }],\n stateful: true,\n timeDependent: true,\n code: '{I}.run({EN}, {TH}, {TL}, dt); {Q} = {I}.Q;',\n },\n\n // ---- counters\n {\n type: 'CTU',\n category: 'counters',\n inputs: [\n { id: 'CU', type: 'BOOL', default: false },\n { id: 'R', type: 'BOOL', default: false },\n { id: 'PV', type: 'INT', param: true, default: 10 },\n ],\n outputs: [\n { id: 'Q', type: 'BOOL' },\n { id: 'CV', type: 'INT' },\n ],\n stateful: true,\n code: '{I}.run({CU}, {R}, {PV}, firstScan); {Q} = {I}.Q; {CV} = {I}.CV;',\n },\n {\n type: 'CTD',\n category: 'counters',\n inputs: [\n { id: 'CD', type: 'BOOL', default: false },\n { id: 'LD', type: 'BOOL', default: false },\n { id: 'PV', type: 'INT', param: true, default: 10 },\n ],\n outputs: [\n { id: 'Q', type: 'BOOL' },\n { id: 'CV', type: 'INT' },\n ],\n stateful: true,\n code: '{I}.run({CD}, {LD}, {PV}, firstScan); {Q} = {I}.Q; {CV} = {I}.CV;',\n },\n {\n type: 'CTUD',\n category: 'counters',\n inputs: [\n { id: 'CU', type: 'BOOL', default: false },\n { id: 'CD', type: 'BOOL', default: false },\n { id: 'R', type: 'BOOL', default: false },\n { id: 'LD', type: 'BOOL', default: false },\n { id: 'PV', type: 'INT', param: true, default: 10 },\n ],\n outputs: [\n { id: 'QU', type: 'BOOL' },\n { id: 'QD', type: 'BOOL' },\n { id: 'CV', type: 'INT' },\n ],\n stateful: true,\n code: '{I}.run({CU}, {CD}, {R}, {LD}, {PV}, firstScan); {QU} = {I}.QU; {QD} = {I}.QD; {CV} = {I}.CV;',\n },\n\n // ---- comparison\n ...(\n [\n ['GT', '>'],\n ['GE', '>='],\n ['LT', '<'],\n ['LE', '<='],\n ] as const\n ).map(([type, operator]): FbBlockDef => ({\n type,\n category: 'compare',\n inputs: [\n { id: 'IN1', type: 'REAL', default: 0 },\n { id: 'IN2', type: 'REAL', default: 0 },\n ],\n outputs: [{ id: 'OUT', type: 'BOOL' }],\n code: `{OUT} = {IN1} ${operator} {IN2};`,\n })),\n ...(\n [\n ['EQ', '==='],\n ['NE', '!=='],\n ] as const\n ).map(([type, operator]): FbBlockDef => ({\n type,\n category: 'compare',\n inputs: [\n { id: 'IN1', type: 'ANY', default: 0 },\n { id: 'IN2', type: 'ANY', default: 0 },\n ],\n outputs: [{ id: 'OUT', type: 'BOOL' }],\n code: `{OUT} = {IN1} ${operator} {IN2};`,\n })),\n\n // ---- arithmetic\n {\n type: 'ADD',\n category: 'arithmetic',\n inputs: [],\n outputs: [{ id: 'OUT', type: 'REAL' }],\n extensible: { prefix: 'IN', type: 'REAL', default: 0, min: 2, max: 16 },\n code: '{OUT} = {IN*: + };',\n },\n {\n type: 'MUL',\n category: 'arithmetic',\n inputs: [],\n outputs: [{ id: 'OUT', type: 'REAL' }],\n extensible: { prefix: 'IN', type: 'REAL', default: 1, min: 2, max: 16 },\n code: '{OUT} = {IN*: * };',\n },\n {\n type: 'SUB',\n category: 'arithmetic',\n inputs: [\n { id: 'IN1', type: 'REAL', default: 0 },\n { id: 'IN2', type: 'REAL', default: 0 },\n ],\n outputs: [{ id: 'OUT', type: 'REAL' }],\n code: '{OUT} = {IN1} - {IN2};',\n },\n {\n type: 'DIV',\n category: 'arithmetic',\n inputs: [\n { id: 'IN1', type: 'REAL', default: 0 },\n { id: 'IN2', type: 'REAL', default: 1 },\n ],\n outputs: [{ id: 'OUT', type: 'REAL' }],\n // a division by zero gives 0 instead of Infinity, which no state could store\n code: '{OUT} = fb.div({IN1}, {IN2});',\n },\n {\n type: 'MIN',\n category: 'arithmetic',\n inputs: [],\n outputs: [{ id: 'OUT', type: 'REAL' }],\n extensible: { prefix: 'IN', type: 'REAL', default: 0, min: 2, max: 16 },\n code: '{OUT} = Math.min({IN*:, });',\n },\n {\n type: 'MAX',\n category: 'arithmetic',\n inputs: [],\n outputs: [{ id: 'OUT', type: 'REAL' }],\n extensible: { prefix: 'IN', type: 'REAL', default: 0, min: 2, max: 16 },\n code: '{OUT} = Math.max({IN*:, });',\n },\n {\n type: 'ROUND',\n category: 'arithmetic',\n inputs: [\n { id: 'IN', type: 'REAL', default: 0 },\n // decimals, 0 to 10\n { id: 'DIGITS', type: 'INT', param: true, default: 0 },\n ],\n outputs: [{ id: 'OUT', type: 'REAL' }],\n code: '{OUT} = fb.round({IN}, {DIGITS});',\n },\n\n // ---- conversion: from whatever comes in\n ...(\n [\n ['TO_BOOL', 'BOOL', 'toBool'],\n ['TO_INT', 'INT', 'toInt'],\n ['TO_REAL', 'REAL', 'toReal'],\n ['TO_TIME', 'TIME', 'toTime'],\n ['TO_STRING', 'STRING', 'toStr'],\n ] as const\n ).map(([type, output, convert]): FbBlockDef => ({\n type,\n category: 'convert',\n inputs: [{ id: 'IN', type: 'ANY', default: output === 'STRING' ? '' : 0 }],\n outputs: [{ id: 'OUT', type: output }],\n code: `{OUT} = fb.${convert}({IN});`,\n })),\n {\n // the texts of the inputs one after the other - numbers as they are, use ROUND before\n type: 'CONCAT',\n category: 'convert',\n inputs: [],\n outputs: [{ id: 'OUT', type: 'STRING' }],\n extensible: { prefix: 'IN', type: 'ANY', default: '', min: 2, max: 16 },\n code: '{OUT} = fb.concat({IN*:, });',\n },\n\n // ---- control\n {\n // two-point switch: on above HIGH, off below LOW, as it was in between\n type: 'HYST',\n category: 'control',\n inputs: [\n { id: 'IN', type: 'REAL', default: 0 },\n { id: 'HIGH', type: 'REAL', param: true, default: 1 },\n { id: 'LOW', type: 'REAL', param: true, default: 0 },\n ],\n outputs: [{ id: 'Q', type: 'BOOL' }],\n stateful: true,\n code: '{I}.run({IN}, {HIGH}, {LOW}); {Q} = {I}.Q;',\n },\n {\n // follows IN, but changes by at most UP or DOWN per second; 0 means without limit\n type: 'RAMP',\n category: 'control',\n inputs: [\n { id: 'IN', type: 'REAL', default: 0 },\n { id: 'UP', type: 'REAL', param: true, default: 1 },\n { id: 'DOWN', type: 'REAL', param: true, default: 1 },\n ],\n outputs: [{ id: 'OUT', type: 'REAL' }],\n stateful: true,\n timeDependent: true,\n code: '{I}.run({IN}, {UP}, {DOWN}, dt, firstScan); {OUT} = {I}.OUT;',\n },\n {\n // low pass of the first order: OUT follows IN with the time constant T\n type: 'PT1',\n category: 'control',\n inputs: [\n { id: 'IN', type: 'REAL', default: 0 },\n { id: 'T', type: 'TIME', param: true, default: 10000 },\n ],\n outputs: [{ id: 'OUT', type: 'REAL' }],\n stateful: true,\n timeDependent: true,\n code: '{I}.run({IN}, {T}, dt, firstScan); {OUT} = {I}.OUT;',\n },\n {\n // PID controller: set point SP, process value PV, output Y within YMIN..YMAX\n type: 'PID',\n category: 'control',\n inputs: [\n { id: 'SP', type: 'REAL', default: 0 },\n { id: 'PV', type: 'REAL', default: 0 },\n { id: 'KP', type: 'REAL', param: true, default: 1 },\n // reset time of the integral part, 0: none\n { id: 'TN', type: 'TIME', param: true, default: 0 },\n // derivative time, 0: none\n { id: 'TV', type: 'TIME', param: true, default: 0 },\n { id: 'YMIN', type: 'REAL', param: true, default: 0 },\n { id: 'YMAX', type: 'REAL', param: true, default: 100 },\n { id: 'RST', type: 'BOOL', default: false },\n ],\n outputs: [{ id: 'Y', type: 'REAL' }],\n stateful: true,\n timeDependent: true,\n code: '{I}.run({SP}, {PV}, {KP}, {TN}, {TV}, {YMIN}, {YMAX}, {RST}, dt, firstScan); {Y} = {I}.Y;',\n },\n\n // ---- ioBroker\n {\n type: 'STATE_IN',\n category: 'iobroker',\n inputs: [],\n outputs: [{ id: 'Q', type: { param: 'type' } }],\n params: [\n { id: 'oid', type: 'OID', required: true },\n { id: 'type', type: 'ENUM', options: ['BOOL', 'INT', 'REAL', 'STRING'], default: 'REAL' },\n ],\n code: '{Q} = rt.input({$oid}, {$type});',\n },\n {\n type: 'STATE_OUT',\n category: 'iobroker',\n inputs: [{ id: 'IN', type: 'ANY', default: false }],\n outputs: [],\n params: [\n { id: 'oid', type: 'OID', required: true },\n { id: 'ack', type: 'BOOL', default: false },\n // at most one write per this many ms - the last value is written when it is over\n { id: 'minInterval', type: 'TIME', default: 0 },\n ],\n code: 'rt.output({$oid}, {IN}, {$ack}, {$minInterval});',\n },\n {\n type: 'CONST',\n category: 'iobroker',\n inputs: [],\n outputs: [{ id: 'Q', type: { param: 'type' } }],\n params: [\n { id: 'type', type: 'ENUM', options: ['BOOL', 'INT', 'REAL', 'TIME', 'STRING'], default: 'REAL' },\n { id: 'value', type: { param: 'type' }, default: 0 },\n ],\n code: '{Q} = {$value};',\n },\n\n // ---- calendar\n {\n // the local time, split up; WDAY: 1 Monday ... 7 Sunday\n type: 'CLOCK',\n category: 'calendar',\n inputs: [],\n outputs: [\n { id: 'TOD', type: 'TIME', clock: true },\n { id: 'HOUR', type: 'INT' },\n { id: 'MIN', type: 'INT' },\n { id: 'WDAY', type: 'INT' },\n { id: 'DAY', type: 'INT' },\n { id: 'MONTH', type: 'INT' },\n { id: 'YEAR', type: 'INT' },\n ],\n stateful: true,\n timeDependent: true,\n code:\n '{I}.run(); {TOD} = {I}.TOD; {HOUR} = {I}.HOUR; {MIN} = {I}.MIN; {WDAY} = {I}.WDAY; ' +\n '{DAY} = {I}.DAY; {MONTH} = {I}.MONTH; {YEAR} = {I}.YEAR;',\n },\n {\n // true from START to END on the chosen days; a window over midnight belongs to the day it starts\n type: 'TIMEWINDOW',\n category: 'calendar',\n inputs: [\n { id: 'START', type: 'TIME', param: true, default: 8 * 3600000, clock: true },\n { id: 'END', type: 'TIME', param: true, default: 22 * 3600000, clock: true },\n ],\n outputs: [{ id: 'Q', type: 'BOOL' }],\n params: [{ id: 'days', type: 'ENUM', options: ['all', 'weekdays', 'weekend'], default: 'all' }],\n timeDependent: true,\n code: '{Q} = fb.timeWindow({START}, {END}, {$days});',\n },\n {\n // a pulse of one cycle when the time of the cron pattern comes\n type: 'SCHEDULE',\n category: 'calendar',\n inputs: [],\n outputs: [{ id: 'Q', type: 'BOOL' }],\n params: [{ id: 'cron', type: 'CRON', default: '0 8 * * *', required: true }],\n stateful: true,\n code: '{Q} = rt.cron({I}, {$cron});',\n },\n {\n // true from one sun event to another, like from sunset to sunrise; the offsets are minutes\n type: 'ASTRO',\n category: 'calendar',\n inputs: [],\n outputs: [\n { id: 'Q', type: 'BOOL' },\n { id: 'START', type: 'TIME', clock: true },\n { id: 'END', type: 'TIME', clock: true },\n ],\n params: [\n { id: 'start', type: 'ENUM', options: FB_ASTRO_EVENTS, default: 'sunset' },\n { id: 'startOffset', type: 'INT', default: 0 },\n { id: 'end', type: 'ENUM', options: FB_ASTRO_EVENTS, default: 'sunrise' },\n { id: 'endOffset', type: 'INT', default: 0 },\n ],\n timeDependent: true,\n code:\n '{START} = rt.astro({$start}, {$startOffset}); {END} = rt.astro({$end}, {$endOffset}); ' +\n '{Q} = fb.inWindow(fb.timeOfDay(), {START}, {END});',\n },\n\n // ---- messages\n {\n // a line in the log of ioBroker - `log()` is the one of the script sandbox\n type: 'LOG',\n category: 'messages',\n inputs: [\n { id: 'TRIG', type: 'BOOL', default: false },\n { id: 'IN', type: 'ANY', default: '' },\n ],\n outputs: [],\n params: [\n { id: 'text', type: 'STRING', default: '%s' },\n { id: 'level', type: 'ENUM', options: ['info', 'warn', 'error', 'debug'], default: 'info' },\n { id: 'when', type: 'ENUM', options: ['edge', 'change'], default: 'edge' },\n ],\n stateful: true,\n code: 'if ({I}.run({TRIG}, {IN}, {$text}, {$when}, dt, firstScan)) log({I}.line, {$level});',\n },\n {\n // a message in the notifications of ioBroker, as an information or as an alert\n type: 'NOTIFY',\n category: 'messages',\n inputs: [\n { id: 'TRIG', type: 'BOOL', default: false },\n { id: 'IN', type: 'ANY', default: '' },\n ],\n outputs: [],\n params: [\n { id: 'text', type: 'STRING', default: '%s' },\n { id: 'category', type: 'ENUM', options: ['message', 'alert'], default: 'message' },\n { id: 'when', type: 'ENUM', options: ['edge', 'change'], default: 'edge' },\n ],\n stateful: true,\n code: 'if ({I}.run({TRIG}, {IN}, {$text}, {$when}, dt, firstScan)) rt.notify({I}, {$category});',\n },\n {\n // a message to an adapter, like telegram.0 or pushover.0: `{ text, message, title, subject }`\n type: 'SENDTO',\n category: 'messages',\n inputs: [\n { id: 'TRIG', type: 'BOOL', default: false },\n { id: 'IN', type: 'ANY', default: '' },\n ],\n outputs: [],\n params: [\n { id: 'instance', type: 'INSTANCE', required: true },\n { id: 'text', type: 'STRING', default: '%s' },\n { id: 'title', type: 'STRING', default: '' },\n { id: 'command', type: 'STRING', default: 'send' },\n { id: 'when', type: 'ENUM', options: ['edge', 'change'], default: 'edge' },\n ],\n stateful: true,\n code: 'if ({I}.run({TRIG}, {IN}, {$text}, {$when}, dt, firstScan)) rt.send({I}, {$instance}, {$command}, {$title});',\n },\n\n // ---- expert\n {\n // code of the user: gets IN1..INn, dt, firstScan and state, returns OUT1 or [OUT1, OUT2, ...]\n type: 'JS',\n category: 'expert',\n inputs: [],\n outputs: [],\n extensible: { prefix: 'IN', type: 'ANY', default: 0, min: 0, max: 8, count: 2 },\n extensibleOutputs: { prefix: 'OUT', type: 'ANY', min: 1, max: 8 },\n params: [{ id: 'code', type: 'CODE', default: 'return IN1;' }],\n stateful: true,\n // written by the generator itself: the code becomes a function of the script\n code: '',\n },\n\n // ---- the pins of a user block, only in the diagram of a block\n {\n type: 'FB_IN',\n category: 'interface',\n inputs: [],\n outputs: [{ id: 'Q', type: { param: 'type' } }],\n params: [\n { id: 'pin', type: 'NAME', required: true },\n { id: 'type', type: 'ENUM', options: ['BOOL', 'INT', 'REAL', 'TIME', 'STRING'], default: 'BOOL' },\n // what the input of an instance gets while it is not connected\n { id: 'value', type: { param: 'type' }, default: false },\n ],\n code: '{Q} = self[{$pin}];',\n },\n {\n type: 'FB_OUT',\n category: 'interface',\n inputs: [{ id: 'IN', type: { param: 'type' }, default: false }],\n outputs: [],\n params: [\n { id: 'pin', type: 'NAME', required: true },\n { id: 'type', type: 'ENUM', options: ['BOOL', 'INT', 'REAL', 'TIME', 'STRING'], default: 'BOOL' },\n ],\n code: 'self[{$pin}] = {IN};',\n },\n];\n\n/** The categories in the order of the palette */\nexport const FB_CATEGORIES: FbCategory[] = [\n 'iobroker',\n 'logic',\n 'memory',\n 'timers',\n 'counters',\n 'compare',\n 'arithmetic',\n 'convert',\n 'control',\n 'calendar',\n 'messages',\n 'expert',\n];\n\nconst byType = new Map(FB_LIBRARY.map(def => [def.type, def]));\n\nconst SIGNAL_TYPES: FbSignalType[] = ['BOOL', 'INT', 'REAL', 'TIME', 'STRING'];\n\n/** The FB_IN or FB_OUT blocks of a user block that make its pins, from top to bottom */\nexport function getTerminals(user: FbUserBlock, type: 'FB_IN' | 'FB_OUT'): FbBlock[] {\n return user.graph.blocks\n .filter(block => block.type === type && typeof block.params?.pin === 'string' && block.params.pin)\n .sort((a, b) => a.pos[1] - b.pos[1] || a.pos[0] - b.pos[0]);\n}\n\nfunction terminalType(block: FbBlock): FbSignalType {\n const type = block.params?.type as FbSignalType;\n return SIGNAL_TYPES.includes(type) ? type : 'BOOL';\n}\n\n/** A block depends on time if one of its blocks does - also inside the user blocks it contains */\nfunction isTimeDependent(user: FbUserBlock, userBlocks: Record<string, FbUserBlock>, seen: Set<string>): boolean {\n seen.add(user.type);\n return user.graph.blocks.some(block => {\n const inner = userBlocks[block.type];\n if (inner) {\n return !seen.has(inner.type) && isTimeDependent(inner, userBlocks, seen);\n }\n return !!byType.get(block.type)?.timeDependent;\n });\n}\n\n/**\n * A user block as a block type: its pins are its FB_IN and FB_OUT blocks. It always counts as a block\n * with a state - an instance keeps its outputs from one cycle to the next, so a loop may lead through it.\n */\nfunction userBlockDef(user: FbUserBlock, userBlocks: Record<string, FbUserBlock>): FbBlockDef {\n return {\n type: user.type,\n category: 'user',\n inputs: getTerminals(user, 'FB_IN').map(block => ({\n id: String(block.params!.pin),\n type: terminalType(block),\n default: block.params?.value,\n })),\n outputs: getTerminals(user, 'FB_OUT').map(block => ({\n id: String(block.params!.pin),\n type: terminalType(block),\n })),\n stateful: true,\n timeDependent: isTimeDependent(user, userBlocks, new Set()),\n code: '',\n user,\n };\n}\n\n/**\n * The type of a block: one of the library, or a user block of `userBlocks` - the copies a diagram\n * carries of the blocks it uses.\n */\nexport function getBlockDef(type: string, userBlocks?: Record<string, FbUserBlock>): FbBlockDef | undefined {\n const def = byType.get(type);\n if (def) {\n return def;\n }\n const user = userBlocks?.[type];\n return user ? userBlockDef(user, userBlocks) : undefined;\n}\n"]}
|