diff --git a/bundles/org.openhab.ui/web/src/assets/definitions/blockly/blocks-scripts.js b/bundles/org.openhab.ui/web/src/assets/definitions/blockly/blocks-scripts.js
index ceaa0f83f..e19b2d929 100644
--- a/bundles/org.openhab.ui/web/src/assets/definitions/blockly/blocks-scripts.js
+++ b/bundles/org.openhab.ui/web/src/assets/definitions/blockly/blocks-scripts.js
@@ -7,6 +7,7 @@
*/
import Blockly from 'blockly'
import { javascriptGenerator } from 'blockly/javascript.js'
+import { blockGetCheckedInputType } from '@/assets/definitions/blockly/utils.js'
export default function defineOHBlocks_Scripts (f7, transformationServices) {
/*
@@ -324,4 +325,30 @@ export default function defineOHBlocks_Scripts (f7, transformationServices) {
const code = block.getFieldValue('inlineScript') + '\n'
return code
}
+
+ Blockly.Blocks['oh_rule_enable'] = {
+ init: function () {
+ this.appendValueInput('ruleUID')
+ .setCheck('String')
+ .appendField('Set Rule ')
+ this.appendValueInput('enable')
+ .appendField('as ')
+ .setCheck(['Boolean', 'String'])
+ this.setInputsInline(true)
+ this.setPreviousStatement(true, null)
+ this.setNextStatement(true, null)
+ this.setColour(0)
+ this.setTooltip('Allows to enable or disable a rule')
+
+ this.setHelpUrl('https://www.openhab.org/docs/configuration/blockly/rules-blockly-run-and-process.html#enableRule')
+ }
+ }
+
+ javascriptGenerator.forBlock['oh_rule_enable'] = function (block) {
+ const ruleUID = javascriptGenerator.valueToCode(block, 'ruleUID', javascriptGenerator.ORDER_ATOMIC)
+ const enableValue = javascriptGenerator.valueToCode(block, 'enable', javascriptGenerator.ORDER_ATOMIC)
+ const enableType = blockGetCheckedInputType(block, 'enable')
+ let enable = (enableType === 'Boolean') ? enableValue : (enableValue === '\'true\'' || enableValue === '\'enabled\'')
+ return `rules.setEnabled(${ruleUID}, ${enable});\n`
+ }
}
diff --git a/bundles/org.openhab.ui/web/src/components/config/controls/blockly-editor.vue b/bundles/org.openhab.ui/web/src/components/config/controls/blockly-editor.vue
index 33d8d4492..691384f26 100644
--- a/bundles/org.openhab.ui/web/src/components/config/controls/blockly-editor.vue
+++ b/bundles/org.openhab.ui/web/src/components/config/controls/blockly-editor.vue
@@ -1112,6 +1112,18 @@
+
+
+
+ ruleUID
+
+
+
+
+ TRUE
+
+
+
@@ -1358,6 +1370,7 @@ export default {
['Thing object', 'oh_thingtype'],
['Quantity', 'oh_quantity'],
['String', 'String'],
+ ['Boolean', 'Boolean'],
['Number', 'Number'],
['Dictionary', 'Dictionary'],
['Colour', 'Colour']