diff --git a/configuration/blockly/index.md b/configuration/blockly/index.md
index 563757b94e..2145a5a810 100644
--- a/configuration/blockly/index.md
+++ b/configuration/blockly/index.md
@@ -6,109 +6,21 @@ title: Rules Blockly
# Blockly Reference
-One of the core feature that openHAB provides is writing rules to allow specific behaviour with the home automation system.
-The usual way of developing rules is by coding them like described in the [Textual Rules](/docs/configuration/rules-dsl.html).
-
-However, this art of programming may become intimidating early on and shy away away people with few or almost no experience in programming.
-Therefore openHAB also provides a graphical way of writing rules which allows to put together rules in a rather visual way (even though some programming background may still help).
-
[[toc]]
## Introduction
-!["built on Blockly"](../images/blockly/builtonblockly.png)
-
-The basic idea behind the visual paradigm and representation within openHAB is based on the [Google Blockly Support](https://developers.google.com/blockly) which has been integrated and which provides the basic blocks for programming like the ones on the left and the right side of the below images
-_Blockly toolbox_.
-
-![blockly-toolbox-1](../images/blockly/blockly-toolbox-1.png)![blockly-toolbox-2](../images/blockly/blockly-toolbox-2.png)![blockly-toolbox-3](../images/blockly/blockly-toolbox-3.png)
-
-All of these provide general functionality that is not specific to openHAB itself. If you want to learn more about how to use them, search for the many blockly tutorials that are available.
-However, to leverage the full capabilities more than _50 specific blocks_ have been provided that are tailored for easy access of openHAB's capabilities.
-
-This section provides a detailed description of the specific blocks and provides examples on how to use them. Note that some of the blocks (like voice, streaming or notifications) need some special setup within openHAB - in these case links to the respective documentation is provided.
-Also see this ![youtube](../images/blockly/youtube-logo-small.png) [Intro](https://youtu.be/EdllUlJ7p6k?t=295) Quick Intro Blockly Rules
-
-## Blockly is a code generator or how the 🦏 found the holy Grail
-
-### Some history
-
-Even though you may not notice it directly, the blocks are eventually used to automatically create code that can run on the openHAB server.
-Please watch the ![youtube](../images/blockly/youtube-logo-small.png) video [Blockly as an ECMA-Script code generator](https://youtu.be/EdllUlJ7p6k?t=1739) for a live demo.
-The code that is generated can be viewed when clicking the button ![showcode](../images/blockly/blockly-workspace-showcode-small.png) on the lower right corner of the blockly editor.
-
-In general, the code that Blockly generates is JavaScript (aka ECMAScript) which exists in several flavours or versions.
-The ECMAScript version that is used by Blockly in **openHAB 3** is **ECMAScript 5.1** and it is run by a component named **NashornJS** 🦏. [Nashorn JS](https://www.oracle.com/technical-resources/articles/java/jf14-nashorn.html) itself was part of Java until version 14 when it was dropped.
-The generated rule code is run within the Java runtime (also known as JVM) on the openHAB server and as openHAB 4 has moved to Java 17, the old ECMAScript 5.1 is not directly available anymore within the JVM via Nashorn.
-A replacement for the Nashorn JS is **GraalJS** ("the holy grail"), which is currently running **ECMAScript 2022** and therefore supports all modern JavaScript features, like arrow functions.
-[**GraalJS**](https://github.com/oracle/graaljs) is already available in openHAB 3 when the [JS Scripting Addon](https://www.openhab.org/addons/automation/jsscripting/) is installed.
-
-::: tip
-
-Please convert your old rules as quickly as possible because only with GraalJS you can leverage the openHAB JavaScript library (aka _openhab-js_) in Blockly.
-Using this library you can not only create much simpler code, it also allows **new functionality** that is not available with Nashorn.
-**Note that some blocks are only available with the openhab-js library on GraalJS.**
-
-:::
-
-### openHAB 3 / openHAB 4 - Migration
-
-#### Migrating Blockly rules to openHAB 4 is easy
-
-From openHAB 4 on, the default script engine is GraalJS when Blockly creates new scripts.
-From a technical perspective a rule internally holds a so-called MIME-type that tells openHAB how the generated JavaScript language has to be interpreted.
-The (default) MIME-type `application/javascript` in openHAB 3 runs the rule with NashornJS, while this same MIME-type will run the Blocky rule with GraalJS in openHAB 4.
-As a result when running a non-converted openHAB 3 Blocky rule on openHAB 4, openHAB 4 will run a rule that was meant for NashornJS with GraalJS, which will fail.
-Therefore a conversion has to take place which in fact is not a lot of work:
-
-There is the choice to
-
-- convert each rule to GraalJS
-- or keep the NashornJS Rules
-
-but both need some work on each blockly rule you have.
-
-#### Migration to GraalJS (recommended)
-
-- Make sure the [JS Scripting Addon](https://www.openhab.org/addons/automation/jsscripting/) addon is installed.
-- **To convert / migrate a rule that was created in openHAB 3 (NashornJS) to a GraalJS-compatible one for openHAB 4, simply open each Blockly rule once in openHAB 4 and save it - that's it.**
-- In this case, nothing more needs to be installed additionally to openHAB 4.
-
-#### Running openHAB 3 Blockly rules without migrating them right away
-
-- If you still want to run the Blockly rules that were created in openHAB 3 for the time being without changing them (see above), you have to install the [JavaScript Scripting (Nashorn) Addon](https://www.openhab.org/addons/automation/jsscriptingnashorn/) which provides backwards compatibility until you have converted all rules.
-- Open each Blockly rule or go to the Code TAB or Search for type: application/javascript;
-- Replace it by `application/javascript;version=ECMAScript-5.1`.
-Open the Blockly rule, find the following symbol and click on it.
-
-![javascript-dialog](../images/blockly/blockly-javascript-dialog.png)
-
-to choose the old version of JavaScript and then save the rule.
-
-![choose-javascript](../images/blockly/blocky-choose-javascript.png)
-
-- After the installation of the Addon both old rules created in openHAB 3 and new rules created in openHAB 4 can run on openHAB 4 at the same time.
-- After all scripts of the rules have been converted, like explained above, please uninstall the JavaScript Scripting (Nashorn) addon to save memory.
-- Note that this allows you to mix rules that run with NashornJS and some that run with GraalJS (see above).
-
-## Looking for help
-
-A special mention should go towards the **Help** entry in a block context menu [right click on any block](rules-blockly-before-using.html#block-context-menu) that links to a resource that is usually very helpful to understand the context of that particular block.
-To retrieve the particular help for a block right click on a block to open the context menu and click on the **help**-entry:
-
-![context-help](../images/blockly/blockly-context-help.png)
-
-There is also a help-button available in each section that links to the documentation of the whole section.
+!["Built on Blockly"](../images/blockly/builtonblockly.png)
-![main-help-button](../images/blockly/blockly-main-help.png)
+openHAB provides a visual programming editor based on [Blockly](https://developers.google.com/blockly) by Google.
+It enables the creation of automation rules by dragging and dropping graphical blocks instead of writing [textual code](/docs/configuration/rules-dsl.html).
+It is ideal for those with little to no programming experience, yet powerful enough to perform most advanced automations with openHAB.
-Please read this information first before asking questions in the forum. _In case you ask for help please always post the respective code that is being generated._
+Check out the ![youtube](../images/blockly/youtube-logo-small.png) [Quick Intro to Blockly Rules](https://youtu.be/EdllUlJ7p6k?t=295).
-Also there is a good intro about that topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Various Help Documentation available in openHAB Blocky](https://youtu.be/EdllUlJ7p6k?t=1589)
+## Getting Started
-## Before using blockly
-
-Please visit [Getting started with openHAB Blocklies and creating a rule](rules-blockly-before-using.html) before asking questions in the forum.
+Please visit [Getting started with Blockly](rules-blockly-before-using.html) to learn the basics of using Blockly.
## Blockly YouTube Tutorials
@@ -162,137 +74,109 @@ Three YouTube tutorials have been made available via the [openHAB YouTube channe
- [Inline Scripts](https://youtu.be/KwhYKy1_qVk?t=2165)
- [Outro](https://youtu.be/KwhYKy1_qVk?t=2257)
-## Blocks Overview
-
-Also view ![youtube](../images/blockly/youtube-logo-small.png) [Overview of the Blockly Sections](https://youtu.be/EdllUlJ7p6k?t=558)
-
-### Items and Things
-
-_Items_ and _Things_ are the [major entities of openHAB](https://www.openhab.org/docs/concepts/) to control and monitor the home.
-
-[![Items and Things](../images/blockly/blockly-items-and-things-small.png "Items and Things")
-](rules-blockly-items-things.html)
-
-See [Items & Things](rules-blockly-items-things.html) section
-
-### Timers and Delays
-
-Timers and Delays are a little more complex but add important functionality to rules. Whilst the “Wait-For”-block is straightforward, the timer blocks should be well understood before being used - they may behave differently than expected.
-This chapter explains what these blocks do, sometimes displaying generated code to explain what is happening behind the scenes.
-
-[![Timers and Delays](../images/blockly/blockly-timers-and-delays-small.png "Items and Things")
-](rules-blockly-timers-and-delays.html)
-
-See [Timers and Delays](rules-blockly-timers-and-delays.html) section.
+## Blockly Toolbox
-### Voice and Multimedia
+The toolbox contains the building blocks of a Blockly program. The following categories are available in the toolbox:
-This section deals with _playing or streaming audio_ to an audio sink e.g a speaker or _saying a text_ via using any Text-to-Speech API (e.g. Google's API)
-
-[![Voice and Multimedia](../images/blockly/blockly-voice-and-multimedia-small.png "Voice and Multimedia")
-](rules-blockly-voice-and-multimedia.html)
-
-See [Voice and Multimedia](rules-blockly-voice-and-multimedia.html) section.
-
-### Units of Measurements
-
-[![Units of Measurement](../images/blockly/blockly-uom-small.png "Units of Measurement")
-](rules-blockly-uom.html)
-
-See [Units of Measurement](rules-blockly-uom.html) section.
-
-### Date Handling
-
-Date blocks are used as input parameters for other blocks.
-Some of these blocks are used by ephemeris blocks, whilst others are used in the persistence section. Therefore blocks are _typed_ to assure correct connection to other blocks.
-
-[![Date Handling](../images/blockly/blockly-date-handling1-small.png "Dates part 1")
-](rules-blockly-date-handling.html) [![Date Handling](../images/blockly/blockly-date-handling2-small.png "Dates Part 2")
-](rules-blockly-date-handling.html)
+![blockly-toolbox-1](../images/blockly/blockly-toolbox-1.png)![blockly-toolbox-2](../images/blockly/blockly-toolbox-2.png)![blockly-toolbox-3](../images/blockly/blockly-toolbox-3.png)
-See [Date Handling](rules-blockly-date-handling.html) section.
+These include general functionalities to perform various operations such as loops, comparison and text manipulation.
+Additionally, more than _50 special blocks_ are provided for performing openHAB related tasks.
-### Ephemeris
+### openHAB Specific Blocks
-The ephemeris category provides blocks with calendar functionality. The blocks can be used to determine what type of day today is, or a number of days before or after today is.
-For example, a way to determine if today is a weekend, a bank holiday, someone’s birthday, trash day, etc.
+The following sections provide detailed descriptions of the openHAB-specific blocks and provide examples on how to use them.
-[![Ephemeris](../images/blockly/blockly-ephemeris-small.png "Ephemeris")
-](rules-blockly-ephemeris.html)
+Also view ![youtube](../images/blockly/youtube-logo-small.png) [Overview of the Blockly Sections](https://youtu.be/EdllUlJ7p6k?t=558)
-See [Ephemeris](rules-blockly-ephemeris.html) section.
+| Section | Description |
+| ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
+| [Items & Things](rules-blockly-items-things.html) | Control and monitor the status of Items and Things in the smart home. |
+| [Timers & Delays](rules-blockly-timers-and-delays.html) | Execute something in the future. |
+| [Voice & Multimedia](rules-blockly-voice-and-multimedia.html) | Play audio and synthesize speech. |
+| [Units of Measurement](rules-blockly-uom.html) | Operations with numeric quantity and unit conversions. |
+| [Dates & Times](rules-blockly-date-handling.html) | Information, operations, and conversions of Date and Time. |
+| [Ephemeris](rules-blockly-ephemeris.html) | Calendar functionality to determine holidays. |
+| [Notifications](rules-blockly-notifications.html) | Send notifications using the [openHAB cloud](https://www.openhab.org/addons/integrations/openhabcloud/). |
+| [Persistence](rules-blockly-persistence.html) | Access historical data. |
+| [Value Storage](rules-blockly-value-storage.html) | Variable storage that is kept after the rule has run, so it can be reused when the rule is run again later in stateful way. |
+| [Run & Process](rules-blockly-run-and-process.html) | Call other scripts, access rule context, and perform data transformations. |
+| [Logging](rules-blockly-logging.html) | Write to the system logs for debugging purposes. |
+| [Extensions to Standard Blocks](rules-blockly-standard-ext.html) | Additions to complement the standard blocks. |
+
+### Community Provided Blocks
-### Notifications
+The core openHAB are meant to cover most of the functionality that is needed to write rules.
+However, there might be functionality that is not available (yet).
+These can be provided by the community.
-For use with your [openHAB cloud](https://www.openhab.org/addons/integrations/openhabcloud/) account, these blocks can be used to send notifications to relevant connected devices.
-Notifications can be used as push message to devices running the openHAB client.
+A good explanation on how to write custom blocks can be found at [How to write openHAB Blockly Libraries](https://community.openhab.org/t/tutorial-how-to-write-block-libraries/130074)
-[![Notifications](../images/blockly/blockly-notifications-small.png "Notifications")
-](rules-blockly-notifications.html)
+All published custom blocks can be found at [Published Blockly Libraries](https://community.openhab.org/c/marketplace/block-libraries/76) and can be directly downloaded within your openHAB installation in the [Settings -> Automation section](/docs/settings/addons.html#automation)
-See [Notifications](rules-blockly-notifications.html) section.
+## Blockly is a Code Generator
-### Persistence
+Even though you may not notice it directly, the blocks are automatically converted into code that can run on the openHAB server. The generated code can be viewed when clicking the button ![showcode](../images/blockly/blockly-workspace-showcode-small.png) on the lower right corner of the Blockly editor.
-Persistence blocks enable access of historical data stored by the default persistence service.
+Please watch the video ![youtube](../images/blockly/youtube-logo-small.png) [Blockly as an ECMA-Script code generator](https://youtu.be/EdllUlJ7p6k?t=1739) for a live demo.
-[![Persistence](../images/blockly/blockly-persistence-small.png "Persistence")
-](rules-blockly-persistence.html)
+### openHAB 3 to openHAB 4 Migration
-See [Persistence](rules-blockly-persistence.html) section.
+#### Background
-### Value Storage
+Blockly generates JavaScript (ECMAScript) code, which exists in two different major implementations and versions:
-These blocks enable storing information _for a rule_ that is kept after the rule has run, so it can be reused when the rule is run again later in stateful way.
+- The older **NashornJS**, a.k.a. **ECMAScript 5.1**, released in 2011
+- The newer **GraalJS**, currently supporting the **ECMAScript 2022** version, released in 2022
-[![Value Storage](../images/blockly/blockly-value-storage-small.png "Value Storage")
-](rules-blockly-value-storage.html)
+The ECMAScript version that is used by Blockly in **openHAB 3** is **ECMAScript 5.1**, a.k.a. [Nashorn JS](https://www.oracle.com/technical-resources/articles/java/jf14-nashorn.html) which was a part of Java until Java 14.
-See [Value Storage](rules-blockly-value-storage.html) section.
+As **openHAB 4** is based on Java 17, the old ECMAScript 5.1 is no longer available by default in the JVM and must be installed as a separate add-on. A replacement for the NashornJS is **GraalJS** ("the holy grail"), which is currently running **ECMAScript 2022** and therefore supports all modern JavaScript features, like arrow functions. This is now the default JavaScript engine for Blockly in openHAB 4.
-### Run & Process (Rules, Scripts and Transformations)
+[**GraalJS**](https://github.com/oracle/graaljs) is already available in openHAB 3 when the [JS Scripting Addon](https://www.openhab.org/addons/automation/jsscripting/) is installed.
-This section allows calling rules or other scripts, retrieving attributes provided by the rule context or transforming values via different conversion methods (e.g. map, regex, jsonpath)
+::: tip
-[![Run & Process](../images/blockly/blockly-run-and-process-small.png "Run & Process")
-](rules-blockly-run-and-process.html)
+Please convert your old rules as quickly as possible because only with GraalJS you can leverage the openHAB JavaScript library (`openhab-js`) in Blockly.
+Using this library you can not only create much simpler code, it also allows **new functionalities** that are not available with NashornJS.
+**Note that some blocks are only available with the openhab-js library on GraalJS.**
-See [Run and Process](rules-blockly-run-and-process.html) section.
+:::
-### Logging
+From a technical perspective a rule internally holds a MIME-type that tells openHAB how the generated JavaScript language has to be interpreted.
+The default MIME-type `application/javascript` in openHAB 3 runs the rule with NashornJS, while this same MIME-type will run the Blocky rule with GraalJS in openHAB 4.
+As a result when running an unconverted openHAB 3 Blocky rule on openHAB 4, openHAB 4 will run a rule that was meant for NashornJS with GraalJS, and it will fail.
-This section allows calling rules or other scripts, retrieving attributes provided by the rule context or transforming values via different conversion methods (e.g. map, regex, jsonpath)
+There is the choice to
-[![Logging](../images/blockly/blockly-logging-overview-small.png "Logging")
-](rules-blockly-logging.html)
+- Convert each rule to GraalJS, or
+- Keep them as NashornJS
-See [Logging](rules-blockly-logging.html) section.
+Either way, some work on each rule needs to be done.
-### openHAB Extensions to the Standard
+#### Conversion to GraalJS (recommended)
-This section explains only the blocks that have been added to the standard blocks by openHAB
+- Make sure the [JS Scripting Addon](https://www.openhab.org/addons/automation/jsscripting/) is installed.
+- **Open each Blockly rule in openHAB 4 and save it - that's it!**
+- After all scripts of all rules have been converted to GraalJS, uninstall the `JavaScript Scripting (Nashorn)` addon to save memory.
-[![openHAB Extensions to the standard](../images/blockly/blockly-text-overview-small.png "openHAB Extensions to the Standard")
-](rules-blockly-standard-ext.html)[![openHAB Extensions to the standard](../images/blockly/blockly-colors-overview-small.png "openHAB Extensions to the Standard")
-](rules-blockly-standard-ext.html)[![openHAB Extensions to the standard](../images/blockly/blockly-lists-dictionary-overview-small.png "openHAB Extensions to the Standard")
-![lists-overview-concat](../images/blockly/blockly-lists-concatenate.png)
-](rules-blockly-standard-ext.html)
-[![openHAB Extensions to the standard](../images/blockly/blockly-bitwise.png "openHAB Extensions to the Standard")
-](rules-blockly-standard-ext.html)
+#### Running openHAB 3 Blockly rules without migrating them right away
-See [openHAB Extensions to the standard](rules-blockly-standard-ext.html) section.
+- If you still want to run the Blockly rules that were created in openHAB 3 for the time being without changing them (see above), you have to install the [JavaScript Scripting (Nashorn) Addon](https://www.openhab.org/addons/automation/jsscriptingnashorn/) which provides backwards compatibility until you have converted all rules.
+- Open each Blockly rule or go to the Code TAB or Search for type: application/javascript;
+- Replace it by `application/javascript;version=ECMAScript-5.1`.
+Open the Blockly rule, find the following symbol and click on it.
-### openHAB Blocks provided by the community
+![javascript-dialog](../images/blockly/blockly-javascript-dialog.png)
-The core openHAB are meant to cover most of the functionality that is needed to write rules.
-However, there might be functionality that is not available (yet).
-These can be provided by the community.
+Choose the old version of JavaScript and then save the rule.
-A good explanation on how to write custom blocks can be found at [How to write openHAB Blockly Libraries](https://community.openhab.org/t/tutorial-how-to-write-block-libraries/130074)
+![choose-javascript](../images/blockly/blocky-choose-javascript.png)
-All published custom blocks can be found at [Published Blockly Libraries](https://community.openhab.org/c/marketplace/block-libraries/76) and can be directly downloaded within your openHAB installation in the [Settings -> Automation section](/docs/settings/addons.html#automation)
+- After the installation of the Addon, both the old rules created in openHAB 3 and the new rules created in openHAB 4 can run on openHAB 4 at the same time.
+- Note that this allows you to mix rules that run with NashornJS and some that run with GraalJS (see above).
-## Tutorials or other useful information
+## Tutorials and other useful information
- [Getting Started: Rules - Blockly](https://community.openhab.org/t/getting-started-rules-blockly/132453)
- [Extending Blockly with new openHAB commands](https://community.openhab.org/t/extending-blockly-with-new-openhab-commands/127169)
diff --git a/configuration/blockly/rules-blockly-before-using.md b/configuration/blockly/rules-blockly-before-using.md
index 6bccdd52f9..4ce016c754 100644
--- a/configuration/blockly/rules-blockly-before-using.md
+++ b/configuration/blockly/rules-blockly-before-using.md
@@ -1,12 +1,12 @@
---
layout: documentation
-title: Rules Blockly - Before Using
+title: Rules Blockly - Getting Started
---
-# Before using blockly in openHAB
+# Getting Started with Blockly in openHAB
-[return to Blockly Reference](index.html#before-using-blockly)
+[Return to Blockly Reference](index.html#getting-started)
## Preface
@@ -17,34 +17,31 @@ Please read them carefully before asking questions in the forum.
[[toc]]
-## **openHAB Configuration Files**
+## openHAB Configuration Files
Some openHAB blocks rely on particular configuration files found in the openHAB configuration folder.
-This folder is referred to as $OPENHAB\_CONF in this page, and the location of this folder for your setup can be found via the UI: _Help & About_ -> _Technical Information_ -> _Configuration folder_.
+This folder is referred to as `$OPENHAB_CONF` throughout this documentation.
+The location of this folder can be found via the UI when logged in as an admin: _Help & About_ -> _Technical Information_ -> _Configuration folder_.
-- via mounting the files shares from the server to your client-PC.
-In the main UI as an admin you can go to _Help & About_ and will have the different folder locations under _Technical information_.
- - the exact configuration of the shares can be found on your server at [/etc/samba/smb.conf](https://github.com/openhab/openhabian/blob/main/includes/smb.conf).
-- Use the share _openHAB_-conf when mounting it from Windows or macOS
+When using openHABian, a [samba share](https://github.com/openhab/openhabian/blob/main/includes/smb.conf) called `openHAB-conf` is created for the configuration folder.
+This share can be mounted on your computer for easy access.
-**Link the openHAB share in Windows**
+### Mounting the openHAB-conf share in Windows
-- Find you openHAB-Server via the network share functionality
-- User the share _openHAB_-conf to assign it to a network drive
+- Find your openHAB-Server via the network share functionality
+- Find the `openHAB-conf` folder and assign it to a network drive
-**Link the openHAB share in macOS**
+### Mounting the openHAB share in macOS
- Finder -> Go -> Connect to Server
- - Enter the username and server name to connect to the openHAB Server
-
+- Enter the username and server name to connect to the openHAB Server
![macos-share-1](../images/blockly/blockly-openhab-macos-share-1.png)
- - then choose the folder you want to mount
-
+- Then choose the folder you want to mount
![macos-share-2](../images/blockly/blockly-openhab-macos-share-2.png)
-**Finding it on Linux**
+### Finding it on Linux
-- Access the folder directly on the openHAB server at _/etc/openhab_
+- Access the folder directly on the openHAB server at `/etc/openhab`
All methods reveal the following folders
@@ -61,29 +58,39 @@ All methods reveal the following folders
- things
- transform
-## Creating a blockly rule via the UI
-
-Also view ![youtube](../images/blockly/youtube-logo-small.png) [Creating a Blockly Rule](https://youtu.be/EdllUlJ7p6k?t=429)
-
-- go to Settings -> Rules
-- press ![plus](../images/blockly/blockly-plus-small.png) on bottom right
-- enter a unique id and rule name for your new blockly rule
-- Under "When" click on "Add Trigger" to define a trigger for the rule (you may add multiple triggers which are perceived as any of those triggers may occurs which stands for an OR combination of the triggers)
- - choose a title for the rule
- - choose "item" (or something else) that should trigger the rule
- - select the item from your model and the click PICK on the upper right corner
- - choose "received a command", "was updated" or "changed"
-- Under "Then" click on "Add Action"
-- choose ![run-script-1](../images/blockly/blockly-run-script.png)
-- click on ![run-script-2](../images/blockly/blockly-run-script-2.png) und you should now see this screen
- ![blockly-edit-screen](../images/blockly/blockly-edit-screen.png)
-- you can now click the ![toolbox-submenu](../images/blockly/blockly-arrow.png) to access all openHAB Blocks.
+## Creating a Blockly
+
+Video tutorial ![youtube](../images/blockly/youtube-logo-small.png) [Creating a Blockly Rule](https://youtu.be/EdllUlJ7p6k?t=429)
+
+Steps:
+
+- Go to `Settings` -> `Rules`
+- Press ![plus](../images/blockly/blockly-plus-small.png) on bottom right
+- Enter a unique id and rule name for your new Blockly rule
+- Under `When`, click `Add Trigger` to define a trigger for the rule.
+ - Choose `Item Event` (or something else) that should trigger the rule.
+ - Select the item from your model and the click `Pick` on the upper right corner.
+ - (Optional) Enter a title for the trigger. A suitable default title will used when none was provided.
+ - Choose "received a command", "was updated" or "changed" accordingly.
+- Under `Then`, click `Add Action`
+ - Click ![Inline Script](../images/blockly/blockly-run-script.png)
+ - Click ![Design with Blockly](../images/blockly/blockly-design-with-blockly.png)
+ - You should now see this screen:
+ ![blockly-edit-screen](../images/blockly/blockly-edit-screen.png)
- Drag and Drop the blocks to the white area
-- Press `Ctrl-s` (Windows) or `Command-s` (macOS) to save your rule
-- Press `Ctrl-r` (Windows) or `Command-r` (macOS) to directly run your rule with the trigger
-- Press `Ctrl-d` (Windows) or `Command-d` (macOS) to disable / enable your rule.
-See the following video on ![youtube](../images/blockly/youtube-logo-small.png) [How to disable Rules](https://youtu.be/hSRfooBKn9A?t=1668)
-- **Click on** ![showblock](../images/blockly/blockly-workspace-showblocks.png) **on the lower right of the bottom toolbar to see the generated code** and will transition to ![showcode](../images/blockly/blockly-workspace-showcode.png)(click again to come back to the blocks).
+- Press Ctrl+S (Windows) or Command+S (macOS) to save your rule
+- Press Ctrl+R (Windows) or Command+R (macOS) to directly run your rule with the trigger
+- Press Ctrl+D (Windows) or Command+D (macOS) to disable / enable your rule.
+ See the following video on ![youtube](../images/blockly/youtube-logo-small.png) [How to disable Rules](https://youtu.be/hSRfooBKn9A?t=1668)
+- **Click on** ![showblock](../images/blockly/blockly-workspace-showblocks.png) **on the lower right of the bottom toolbar to see the generated code** and it will transition to ![showcode](../images/blockly/blockly-workspace-showcode.png)(click again to come back to the blocks).
+
+::: Note
+
+Multiple triggers may be added to the rule.
+The rule will be executed once for each trigger that occurred.
+This means that if multiple trigger occurred, the rule will be executed multiple times.
+
+:::
More about the topic of code generation can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Blockly as an ECMA-Script code generator](https://youtu.be/EdllUlJ7p6k?t=1739)
@@ -108,6 +115,21 @@ A context menu is available when right-clicking on a block.
Right-clicking on an empty area in the workspace will pop up a slightly different context menu.
In particular, `Clean up Blocks` will automatically move and arrange your blocks neatly.
+### Getting Help
+
+Each block offers a **Help** link in its [context menu](#context-menu).
+It will open a page that provides further information about the function of that particular block.
+
+![context-help](../images/blockly/blockly-context-help.png)
+
+There is also a help button available in each section of the toolbox that links to the documentation of the whole section.
+
+![main-help-button](../images/blockly/blockly-main-help.png)
+
+_When asking for help in the community forums, please include the respective code that is being generated._
+
+See also: ![youtube](../images/blockly/youtube-logo-small.png) [Various Help Documentation available in openHAB Blocky](https://youtu.be/EdllUlJ7p6k?t=1589)
+
### Selecting Blocks
Click on a block to select it.
@@ -150,7 +172,7 @@ You can also copy a set of blocks into your clipboard, and paste them into anoth
### Searching the workspace
-Sometimes blockly rules become pretty big, and it is hard to find particular blocks in the rule.
+Sometimes Blockly rules become pretty big, and it is hard to find particular blocks in the rule.
Therefore, a search functionality has been provided by pressing Cmd/Ctrl-F which opens a small search window in the top right (just below the "save"-label).
After pressing _Enter_ all found blocks that contain the search term are marked in black.
@@ -158,20 +180,20 @@ After pressing _Enter_ all found blocks that contain the search term are marked
## Use Frontail for viewing log files
-During development the log-block is lot very often which writes information into the log files.
+The log block can be used to write information into the log file during development.
-- To be able to conveniently view your log files it is recommended to setup _frontail_ which can be achieved easily via [openhabian-config](https://www.openhab.org/docs/installation/openhabian.html#optional-components)
+- To view the log file, it is recommended to setup _frontail_ which can be installed easily with [openhabian-config](https://www.openhab.org/docs/installation/openhabian.html#optional-components)
- Start `openhabian-config` on your server and choose option 20 and then option 21
- After installation you can view your logs under [openhabian-config](http://myopenhab-server:9001) (adapt the server name)
-- **see [how to log](https://www.openhab.org/docs/administration/logging.html)**
+- See [Logging in openHAB](https://www.openhab.org/docs/administration/logging.html) for more details.
More on that topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Logging](https://youtu.be/EdllUlJ7p6k?t=670)
-## Show an item status watch list besides the blockly rules
+## Show an item status watch list besides the Blockly rules
-In the developer section there is the possibility to add a sidebar to the blockly rules development workspace that allows to watch live status of an item.
-View the chapter ![youtube](../images/blockly/youtube-logo-small.png) [Debugging Rules with openHAB Developer Tools to watch Item-Status](https://youtu.be/EdllUlJ7p6k?t=325) for more information
+In the developer section there is the possibility to add a sidebar to the Blockly rules development workspace that allows to watch live status of an item.
+View the chapter ![youtube](../images/blockly/youtube-logo-small.png) [Debugging Rules with openHAB Developer Tools to watch Item-Status](https://youtu.be/EdllUlJ7p6k?t=325) for more information.
## Return to Blockly Reference
-[return to Blockly Reference](index.html#before-using-blockly)
+[Return to Blockly Reference](index.html#before-using-blockly)
diff --git a/configuration/blockly/rules-blockly-date-handling.md b/configuration/blockly/rules-blockly-date-handling.md
index 81cf986a95..ba1c25d056 100644
--- a/configuration/blockly/rules-blockly-date-handling.md
+++ b/configuration/blockly/rules-blockly-date-handling.md
@@ -4,14 +4,13 @@ title: Rules Blockly - Date Handling
---
-# Date Handling
+# Date & Time Handling
-[return to Blockly Reference](index.html#date-handling)
+[Return to Blockly Reference](index.html#date-handling)
## Introduction
-Date blocks are used as input parameters for other blocks or can be used to create or compare date.
-With 3.3.0M6 many blocks were introduced to allow complex tasks with dates
+Date & time blocks are used as input parameters for other blocks or to compare date values.
[[toc]]
@@ -22,11 +21,13 @@ With 3.3.0M6 many blocks were introduced to allow complex tasks with dates
![dates2](../images/blockly/blockly-date-handling2.png)
Note: There is _no need_ for a special block to set a datetime of an openHAB item.
-This can be directly done via the ["send command" / "post command" block](rules-blockly-items-things.html#send-command)
+This can be directly done using the ["send command" / "post command" block](rules-blockly-items-things.html#send-command)
## Date Handling Blocks
-More about that topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Datetimes and Cron-Triggers](https://youtu.be/KwhYKy1_qVk?t=45)
+More about this topic is discussed in this video: ![youtube](../images/blockly/youtube-logo-small.png) [Datetimes and Cron-Triggers](https://youtu.be/KwhYKy1_qVk?t=45).
+
+---
### Help
@@ -34,23 +35,27 @@ More about that topic can be viewed at ![youtube](../images/blockly/youtube-logo
Type: Link to openHAB documentation
-This button serves as a link to this documention page
+This button serves as a link to this documentation page.
+
+---
### Get Datetime now
![now-with-offset](../images/blockly/blockly-date-get-now.png)
-Type: _ZonedDateTime_
+Type: `ZonedDateTime`
-Obtains the current datetime from the system clock in the default timezone as _ZonedDateTime_
+Obtains the current datetime from the system clock in the default timezone as `ZonedDateTime`
+
+---
### Get Datetime now with offset
![now-with-offset](../images/blockly/blockly-get-now-offset.png)
-Type: _ZonedDateTime_
+Type: `ZonedDateTime`
-Obtains the current datetime as _ZonedDateTime_ with an offset relative to the current date _and_ time.
+Obtains the current datetime as `ZonedDateTime` with an offset relative to the current date _and_ time.
The options for the time period base are
@@ -61,39 +66,43 @@ The options for the time period base are
- months
- years
+---
+
### Date-picker
![date-picker](../images/blockly/blockly-date-picker.png)
-Type: _ZonedDateTime_
+Type: `ZonedDateTime`
-Returns a date as _ZonedDateTime_.
+Returns a date as `ZonedDateTime`.
The date can be selected from a date picker.
The time is set to `00:00:00`.
-### Get date
+---
+
+### Convert a String to Date Time
![get-date](../images/blockly/blockly-date-get.png)
-Type: _ZonedDateTime_
+Type: `ZonedDateTime`
-This block will return the date as _ZonedDateTime_ based on the given String.
-The String may be one of the following formats (since 3.3) the following formats are supported)
+This block will convert the given input string into a `ZonedDateTime`.
+The input string may be in one of the following format:
-- HH:mm
-- HH:mm:ss
-- yyyy-MM-dd
-- yyyy-MM-dd HH:mm
-- yyyy-MM-dd HH:mm:ss
-- yyyy-MM-dd HH:mm:ss +HH:mm
-- yyyy-MM-dd HH:mm:ss.SSS
-- yyyy-MM-dd HH:mm:ss.SSSSS
-- yyyy-MM-dd HH:mm:ss.SSS+HH:mm
-- yyyy-MM-dd HH:mm:ss.SSSSSS+HH:mm (local date time standard output)
-- yyyy-MM-dd HH:mm:ss.SS+HHmm (OH standard output format)
+- `HH:mm`
+- `HH:mm:ss`
+- `yyyy-MM-dd`
+- `yyyy-MM-dd HH:mm`
+- `yyyy-MM-dd HH:mm:ss`
+- `yyyy-MM-dd HH:mm:ss +HH:mm`
+- `yyyy-MM-dd HH:mm:ss.SSS`
+- `yyyy-MM-dd HH:mm:ss.SSSSS`
+- `yyyy-MM-dd HH:mm:ss.SSS+HH:mm`
+- `yyyy-MM-dd HH:mm:ss.SSSSSS+HH:mm` (local date time standard output)
+- `yyyy-MM-dd HH:mm:ss.SS+HHmm` (openHAB standard output format)
-The input String may also be provided via variable-block or a date from an item state.
-In case parts of the date are not provided due to shorter pattern, the others are set to 0
+The input string may also be provided by a variable-block or a date from an item state.
+In case parts of the date are not provided due to shorter pattern, the other parts are set to 0.
:::tip
@@ -101,13 +110,15 @@ if you want to create a datetime with your time zone use the "copy of"-block and
:::
-More about that topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Creating Datetimes and other datetime blocks](https://youtu.be/KwhYKy1_qVk?t=2010)
+More about this topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Creating Datetimes and other datetime blocks](https://youtu.be/KwhYKy1_qVk?t=2010)
+
+---
-### Datetime with date and time values
+### Date Time with date and time values
![today](../images/blockly/blockly-datetime-with-values.png)
-Type: _ZonedDateTime_
+Type: `ZonedDateTime`
Creates a ZonedDateTime by providing all necessary six values
@@ -124,17 +135,19 @@ if you want to create a datetime with your time zone use the "copy of"-block and
:::
+---
+
### Create Datetime based on a specific date ("Copy Of")
since 3.3
-More about that topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Copy-Of, Datetime-Now with Math-Operations](https://youtu.be/KwhYKy1_qVk?t=375)
+More about this topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Copy-Of, Datetime-Now with Math-Operations](https://youtu.be/KwhYKy1_qVk?t=375)
![date-copy-of-overview](../images/blockly/blockly-date-copy-of-overview.png)
-Type: _ZonedDateTime_
+Type: `ZonedDateTime`
-This block allows to create a new ZonedDateTime based on a given ZonedDateTime and then either
+This block creates a `ZonedDateTime` based on a given `ZonedDateTime` and then either
- overwrites
- adds
@@ -144,22 +157,24 @@ This block allows to create a new ZonedDateTime based on a given ZonedDateTime a
![date-copy-of-temporal1](../images/blockly/blockly-temporal1.png)![date-copy-of-temporal2](../images/blockly/blockly-temporal2.png)
-More about that topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Datetime - Temporal Units](https://youtu.be/KwhYKy1_qVk?t=410)
+More about this topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Datetime - Temporal Units](https://youtu.be/KwhYKy1_qVk?t=410)
-It is therefore a bit more complex block which is on the other hand very flexible to use.
+It is a more complex block which offers more flexibility.
It consists of the main "copy of"-block and the other two temporal-Blocks that can be added.
The following short video explains how the block can be used
![date-copy-of-tutorial](../images/blockly/blockly-copy-of-tutorial.gif "Copy of Tutorial")
-- first drag the main copyOf-Block to the workspace
-- choose the datetime you want to base your _new_ datetime on and drag it into the position (in the above video the now block is used)
-- select if you want to set (overwrite), add or subtract values via the dropdown
-- open the settings icon and drag as many "temporal units" into the block as you want to modify later, which will create the "holes" into which you can apply the temporal blocks
-- now drag one of the temporal blocks (see description below) in each of these blocks.
-Note that these can be mixed
-- Select the temporal unit by clicking on the arrow of that blocks which allows you to choose from one of the following
+- Drag the main copyOf-Block to the workspace.
+- Choose the datetime you want to base your _new_ datetime on and drag it into the position (in the above video the now block is used).
+- Select if you want to set (overwrite), add or subtract values via the dropdown.
+- Open the settings icon and drag as many "temporal units" into the block as you want to modify later.
+ This will create the input slots into which you can apply the temporal blocks.
+- Drag one of the temporal blocks (see the description below) into each of these slots.
+ Note that these can be mixed.
+- Select the temporal unit by clicking on the arrow on the blocks.
+ This allows you to choose from one of the following
- year
- month
- day
@@ -172,65 +187,65 @@ Note that these can be mixed
- day of year
- Modify the values of the temporal unit blocks
-**The two different temporal unit blocks**
-
-![date-copy-of-temporal1](../images/blockly/blockly-temporal1.png)![date-copy-of-temporal2](../images/blockly/blockly-temporal2.png)
+**The two different temporal unit blocks**:
-There are two different blocks that can be dragged into the main block which have both advantages and disadvantages.
+1. The dense and simple temporal block:
-**The dense and simple temporal block**
+ ![date-copy-of-temporal1](../images/blockly/blockly-temporal1.png)
-![date-copy-of-temporal1](../images/blockly/blockly-temporal1.png)
+ It is suitable for creating a "lightweight" block such as:
-This is the more dense block which is very suitable to create a "lightweight" block itself like so:
+ ![date-copy-of-temporal11](../images/blockly/blockly-date-temporal1-example1.png)
-![date-copy-of-temporal11](../images/blockly/blockly-date-temporal1-example1.png)
+1. The bulky but more powerful temporal block:
-You can achieve the exact same result with the following but it looks more bulky and bit more complicated:
+ ![date-copy-of-temporal2](../images/blockly/blockly-temporal2.png)
-![date-copy-of-temporal21](../images/blockly/blockly-date-temporal2-example1.png)
+ This block also provides a temporal value to the main block but it contains an additional indirection for the value of the temporal block.
+ While the simple block above only takes a constant, the bulky block requires the value to be provided by another block.
-**The bulky but powerful temporal block**
+ The simple block above can be implemented using the bulky temporal block:
-![date-copy-of-temporal2](../images/blockly/blockly-temporal2.png)
+ ![date-copy-of-temporal21](../images/blockly/blockly-date-temporal2-example1.png)
-This block also provides a temporal value to the main block but it contains an additional indirection for the value of the temporal block.
-While the first block only takes a constant, this block allows and even requires the value to be provided by another block which in the standard case is a number block.
+ Any number-returning block can be used, hence any math operation can be applied, for example:
-Using just the number would be the same like providing a constant value but instead, any number-returning block can be used, hence any math operation can be applied like depicted into following image:
+ ![date-copy-of-temporal22](../images/blockly/blockly-date-temporal2-example2.png)
-![date-copy-of-temporal22](../images/blockly/blockly-date-temporal2-example2.png)
+ The main power arrives when using variables, which allows to calculate values that should be applied to the datetime.
-The main power arrives when using variables, which allows to calculate values that should be applied to the datetime.
+ The following example shows two values retrieved from items, then added and assigned to a variable.
+ This variable is then used as the value to amend the lastUpdatedTime of an item which is posted to the target item to be processed.
-In the following two values are retrieved from items, added and assigned to a variable.
-This variable is then used as the value to amend the lastUpdatedTime of an item which is posted to the target item to be processed.
+ ![date-copy-of-temporal22](../images/blockly/blockly-date-temporal2-example3.png)
-![date-copy-of-temporal22](../images/blockly/blockly-date-temporal2-example3.png)
+---
-### Datetime from item
+### Datetime from Item
since 3.3
![datetime-from-item](../images/blockly/blockly-datetime-from-item.png)
-Type: _ZonedDateTime_
+Type: `ZonedDateTime`
-This is a convenience block that retrieves the state of an item (at best of item type datetime) which is then automatically converted to a ZonedDateTime, so it can be easily used as shown in the following example:
+This is a convenience block that converts the state of an Item (preferably a DateTime Item) to a `ZonedDateTime`, so it can be easily used as shown in the following example:
![datetime-item-example](../images/blockly/blockly-datetime-from-item-example.png)
-More about that topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Convert item states to Datetimes](https://youtu.be/KwhYKy1_qVk?t=570)
+More about this topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Convert item states to Datetimes](https://youtu.be/KwhYKy1_qVk?t=570)
+
+---
-### Get String representation of date ("text of")
+### Convert Date to String ("text of")
![get-date-string](../images/blockly/blockly-get-date-string-without.png)
![date-tostring](../images/blockly/blockly-get-date-string.png)
-Type: _String_
+Type: `String`
-Returns the String representation of a given _ZonedDateTime_-block, with, without the time or formatted in openHAB time (like in the logs).
+Returns a String representation of a given `ZonedDateTime`-block, with, without the time or formatted in openHAB time (like in the logs).
It also allows to return the date in a custom format which can be provided in a separate block.
since 3.3: also returns the same datetime format that is used by openHAB itself
@@ -249,20 +264,24 @@ The output in the log will be.
2022-01-31 20:47:36
```
+---
+
### Date Comparison
since 3.3
-An introduction to that topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Date comparison](https://youtu.be/KwhYKy1_qVk?t=520)
+An introduction to this topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Date comparison](https://youtu.be/KwhYKy1_qVk?t=520)
![date-comparison](../images/blockly/blockly-date-comparison.png)
-Checks if the instant of the first ZonedDateTime is before, after or equal to the second ZonedDateTime.
-In the third drop-down list, the accuracy on which the comparison is based can be selected.
+Checks if the instant of the first `ZonedDateTime` is before, after or equal to the second `ZonedDateTime`.
+In the third drop-down list, the accuracy of the comparison can be selected.
+
+Type: `boolean`
-Type: _boolean_
+Returns `true` or `false` based on the comparison.
-Returns true/false based on the comparison
+---
### Date Comparison Between
@@ -270,24 +289,28 @@ since 3.3
![date-comparison-between](../images/blockly/blockly-date-comparison-between.png)
-Check if the instant of the first datetime is between the two other datetimes.
+Checks if the instant of the first datetime is between the two other datetimes.
The drop-down decides if all components, date only or time only should be used for the comparison.
-Type: _boolean_
+Type: `boolean`
+
+Returns `true` or `false` based on the comparison.
-Returns true/false based on the comparison
+---
-### Get part of datetime
+### Get a part of datetime
since 3.3
![date-getpartof](../images/blockly/blockly-date-unit-of.png)
-Type: _Number_
+Type: `Number`
Returns the selected part of the datetime as a number.
-### Get difference between datetimes
+---
+
+### Get the difference between datetimes
since 3.3
@@ -296,7 +319,7 @@ since 3.3
Calculates the amount of time between two datetimes.
The result will be negative if the second object is before the first one.
-Type: _Number_
+Type: `Number`
Returns the difference between the two datetimes.
@@ -306,22 +329,26 @@ Returns the difference between the two datetimes.
![today](../images/blockly/blockly-date-today.png)
-Type: _DayOffset_
+Type: `DayOffset`
-Ephemeris blocks expect a date formatted as the number of days since today.
+[Ephemeris](rules-blockly-ephemeris.html) blocks expect a date formatted as the number of days since today.
As a result, this block always returns 0.
-Used for Emphemeris blocks only.
+Used for Ephemeris blocks only.
+
+---
### today +/- x days (ephemeris block)
![now-plus-minus-offset](../images/blockly/blockly-date-plus.png)
-Type: _DayOffset_
+Type: `DayOffset`
Returns the number of days since today, as configured in the number block.
The number can be positive (offset into the future) or negative (offset into the past).
Used for Emphemeris blocks only.
+---
+
## Return to Blockly Reference
-[return to Blockly Reference](index.html#date-handling)
+[Return to Blockly Reference](index.html#date-handling)
diff --git a/configuration/blockly/rules-blockly-ephemeris.md b/configuration/blockly/rules-blockly-ephemeris.md
index 8c34db49f3..8cbf763f94 100644
--- a/configuration/blockly/rules-blockly-ephemeris.md
+++ b/configuration/blockly/rules-blockly-ephemeris.md
@@ -6,7 +6,7 @@ title: Rules Blockly - Ephemeris
# Ephemeris
-[return to Blockly Reference](index.html#ephemeris)
+[Return to Blockly Reference](index.html#ephemeris)
## Introduction
@@ -61,4 +61,4 @@ Additional holidays must be configured in _ephemeris.cfg_.
## Return to Blockly Reference
-[return to Blockly Reference](index.html#ephemeris)
+[Return to Blockly Reference](index.html#ephemeris)
diff --git a/configuration/blockly/rules-blockly-items-things.md b/configuration/blockly/rules-blockly-items-things.md
index 3fd6481fb2..4bdf036811 100644
--- a/configuration/blockly/rules-blockly-items-things.md
+++ b/configuration/blockly/rules-blockly-items-things.md
@@ -6,7 +6,7 @@ title: Rules Blockly - Items & Things
# Item & Things
-[return to Blockly Reference](index.html#items-and-things)
+[Return to Blockly Reference](index.html#items-and-things)
## Introduction
@@ -305,4 +305,4 @@ Function: Gets a **Thing Status** for use in other Thing related functions
## Return to Blockly Reference
-[return to Blockly Reference](index.html#items-and-things)
+[Return to Blockly Reference](index.html#items-and-things)
diff --git a/configuration/blockly/rules-blockly-logging.md b/configuration/blockly/rules-blockly-logging.md
index 6903cfd2b0..2128c2e797 100644
--- a/configuration/blockly/rules-blockly-logging.md
+++ b/configuration/blockly/rules-blockly-logging.md
@@ -6,7 +6,7 @@ title: Rules Blockly - Logging
# Logging
-[return to Blockly Reference](index.html#logging)
+[Return to Blockly Reference](index.html#logging)
## Introduction
@@ -46,4 +46,4 @@ _Function:_ creates a print statement with the given text in the rule that logs
## Return to Blockly Reference
-[return to Blockly Reference](index.html#logging)
+[Return to Blockly Reference](index.html#logging)
diff --git a/configuration/blockly/rules-blockly-notifications.md b/configuration/blockly/rules-blockly-notifications.md
index 3f6eec24fa..7fb0e37a11 100644
--- a/configuration/blockly/rules-blockly-notifications.md
+++ b/configuration/blockly/rules-blockly-notifications.md
@@ -6,7 +6,7 @@ title: Rules Blockly - Notifications
# Notifications
-[return to Blockly Reference](index.html#notifications)
+[Return to Blockly Reference](index.html#notifications)
## Introduction
@@ -61,4 +61,4 @@ _Function:_ Sends a notification to myopenhab.org only
## Return to Blockly Reference
-[return to Blockly Reference](index.html#notifications)
+[Return to Blockly Reference](index.html#notifications)
diff --git a/configuration/blockly/rules-blockly-persistence.md b/configuration/blockly/rules-blockly-persistence.md
index f2107aae75..62bd509a72 100644
--- a/configuration/blockly/rules-blockly-persistence.md
+++ b/configuration/blockly/rules-blockly-persistence.md
@@ -6,7 +6,7 @@ title: Rules Blockly - Persistence
# Persistence
-[return to Blockly Reference](index.html#persistence)
+[Return to Blockly Reference](index.html#persistence)
## Introduction
@@ -86,4 +86,4 @@ Type: ZonedDateTime
## Return to Blockly Reference
-[return to Blockly Reference](index.html#persistence)
+[Return to Blockly Reference](index.html#persistence)
diff --git a/configuration/blockly/rules-blockly-run-and-process.md b/configuration/blockly/rules-blockly-run-and-process.md
index 36fcddfe00..366ed00d08 100644
--- a/configuration/blockly/rules-blockly-run-and-process.md
+++ b/configuration/blockly/rules-blockly-run-and-process.md
@@ -6,7 +6,7 @@ title: Rules Blockly - Run & Process and Transformations
# Run & Process (Rules and Scripts)
-[return to Blockly Reference](index.html#run-process-rules-and-scripts)
+[Return to Blockly Reference](index.html#run-process-rules-and-scripts)
## Introduction
@@ -189,4 +189,4 @@ See also the short video part about ![youtube](../images/blockly/youtube-logo-sm
## Return to Blockly Reference
-[return to Blockly Reference](index.html#run-process-rules-and-scripts)
+[Return to Blockly Reference](index.html#run-process-rules-and-scripts)
diff --git a/configuration/blockly/rules-blockly-standard-ext.md b/configuration/blockly/rules-blockly-standard-ext.md
index eb552ece51..dcfca62517 100644
--- a/configuration/blockly/rules-blockly-standard-ext.md
+++ b/configuration/blockly/rules-blockly-standard-ext.md
@@ -6,7 +6,7 @@ title: Rules Blockly - openHAB Extensions to the Standard
# openHAB Extensions to the Standard
-[return to Blockly Reference](index.html#openhab-extensions-to-the-standard)
+[Return to Blockly Reference](index.html#openhab-extensions-to-the-standard)
## Introduction
@@ -243,9 +243,9 @@ Therefore there is a good introduction to loops available which can be viewed at
## Functions
-A more advanced feature for reusable blockly code is _functions_.
+A more advanced feature for reusable Blockly code is _functions_.
More about that topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Functions](https://youtu.be/hSRfooBKn9A?t=60) and [Parameters](https://youtu.be/hSRfooBKn9A?t=170).
## Return to Blockly Reference
-[return to Blockly Reference](index.html#openhab-extensions-to-the-standard)
+[Return to Blockly Reference](index.html#openhab-extensions-to-the-standard)
diff --git a/configuration/blockly/rules-blockly-timers-and-delays.md b/configuration/blockly/rules-blockly-timers-and-delays.md
index 2b6d5568d2..4232009e64 100644
--- a/configuration/blockly/rules-blockly-timers-and-delays.md
+++ b/configuration/blockly/rules-blockly-timers-and-delays.md
@@ -6,7 +6,7 @@ title: Rules Blockly - Timers & Delays
# Timers & Delays
-[return to Blockly Reference](index.html#timers-and-delays)
+[Return to Blockly Reference](index.html#timers-and-delays)
Timers and Delays are a little more complex but add important functionality to rules.
Whilst the "Wait-For"-block is straightforward, the timer blocks should be well understood before being used - they may behave differently than expected.
@@ -216,4 +216,4 @@ The rule is triggered when the burglar-alarm-item or the reset-button-item is ch
## Return to Blockly Reference
-[return to Blockly Reference](index.html#timers-and-delays)
+[Return to Blockly Reference](index.html#timers-and-delays)
diff --git a/configuration/blockly/rules-blockly-uom.md b/configuration/blockly/rules-blockly-uom.md
index a49a2347d1..6645f8ddd2 100644
--- a/configuration/blockly/rules-blockly-uom.md
+++ b/configuration/blockly/rules-blockly-uom.md
@@ -6,12 +6,12 @@ title: Rules Blockly - Units of Measurements
# Units of Measurements
-[return to Blockly Reference](index.html#items-and-things)
+[Return to Blockly Reference](index.html#items-and-things)
## Introduction
[Unit of Measurements](docs/concepts/units-of-measurement.html) have been a part of openHAB for a long time already and received some major improvements in particular in openHAB 4.0.
-Therefore, to make the usage in blockly easier and allow math computations with measurement units, severals blocks have been added.
+Therefore, to make the usage in Blockly easier and allow math computations with measurement units, severals blocks have been added.
Note that these blocks are only available since openHAB 4.0 and are based on JS Scripting / graalJS.
@@ -108,4 +108,4 @@ The following examples show how to use it with an Item:
## Return to Blockly Reference
-[return to Blockly Reference](index.html#items-and-things)
+[Return to Blockly Reference](index.html#items-and-things)
diff --git a/configuration/blockly/rules-blockly-value-storage.md b/configuration/blockly/rules-blockly-value-storage.md
index c2ebc79fbe..0af4d4fe38 100644
--- a/configuration/blockly/rules-blockly-value-storage.md
+++ b/configuration/blockly/rules-blockly-value-storage.md
@@ -6,7 +6,7 @@ title: Rules Blockly - Value Storage
# Value Storage
-[return to Blockly Reference](index.html#value-storage)
+[Return to Blockly Reference](index.html#value-storage)
## Introduction
@@ -78,4 +78,4 @@ Function: Checks if a value is undefined in the specified [cache](#caching)
## Return to Blockly Reference
-[return to Blockly Reference](index.html#value-storage)
+[Return to Blockly Reference](index.html#value-storage)
diff --git a/configuration/blockly/rules-blockly-voice-and-multimedia.md b/configuration/blockly/rules-blockly-voice-and-multimedia.md
index f8ef4abcb9..a55b0204c0 100644
--- a/configuration/blockly/rules-blockly-voice-and-multimedia.md
+++ b/configuration/blockly/rules-blockly-voice-and-multimedia.md
@@ -6,7 +6,7 @@ title: Rules Blockly - Voice and Multimedia
# Multimedia
-[return to Blockly Reference](index.html#voice-and-multimedia)
+[Return to Blockly Reference](index.html#voice-and-multimedia)
## Introduction
@@ -16,7 +16,7 @@ In general, this section deals with two topics
1) Saying a text via using any Text-to-Speech API (e.g. Google's API)
It should be noted that both functionalities do not just work right out of the box because e.g for (1) the audio sinks need to be installed in openHAB and for (2) e.g. the whole Google API needs to be configured in particular with your own personal Google account.
-Even though (2) is not trivial but after having done that the usage of the functionality with blockly is very easy and worth the effort.
+Even though (2) is not trivial but after having done that the usage of the functionality with Blockly is very easy and worth the effort.
More about that topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Playing sounds on audio sinks](https://youtu.be/EdllUlJ7p6k?t=2035)
@@ -47,7 +47,7 @@ More about that topic can be viewed at ![youtube](../images/blockly/youtube-logo
_Function:_ Plays an audio file on an audio sink
- the audio file must reside in the sounds-folder of openHAB that can be found [here](https://community.openhab.org/t/blockly-reference/128785#openhab-configuration-files-7)
-- all available audio sinks are automatically provided by openHABs blocklies
+- all available audio sinks are automatically provided by openHABs Blockly
Also view ![youtube](../images/blockly/youtube-logo-small.png)[Playing sounds on audio sinks](https://youtu.be/EdllUlJ7p6k?t=2035)
@@ -60,7 +60,7 @@ _Function:_ Plays an audio file on an audio sink and setting the volume at the s
same as above but also allowing to provide the volume at the same time
- the audio file must reside in the sounds-folder of openHAB that can be found [here](https://community.openhab.org/t/blockly-reference/128785#openhab-configuration-files-7)
-- all available audio sinks are automatically provided by openHABs blocklies
+- all available audio sinks are automatically provided by openHABs Blockly
**Known issue workaround:**
In several cases (like the Google Minis) it is known that setting the volume together with playing the sound results into only setting the volume either during playing the sound or even after the sound has played.
@@ -78,7 +78,7 @@ In case this happens the more robust approach is as follows
_Function:_ Starts a stream playing on an audio sink
- The audio streams must be reachable from the openHAB server and can therefore be either internally or externally hosted
-- All available audio sinks are automatically provided by openHAB's blocklies
+- All available audio sinks are automatically provided by openHAB's Blockly
- Changing the volume needs to be done via the thing volume channel linked to the sink device by sending the respective volume level command to that item
More about that topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png) [Play Stream](https://youtu.be/hSRfooBKn9A?t=335)
@@ -97,4 +97,4 @@ _Function:_ Sends the given text to the sink by using the default Text-to-Speech
More about that topic can be viewed at ![youtube](../images/blockly/youtube-logo-small.png)[Using Text-to-speach easily with blocks](https://youtu.be/EdllUlJ7p6k?t=2403)
-[return to Blockly Reference](index.html#voice-and-multimedia)
+[Return to Blockly Reference](index.html#voice-and-multimedia)
diff --git a/configuration/images/blockly/blockly-arrow.png b/configuration/images/blockly/blockly-arrow.png
deleted file mode 100644
index b86327707f..0000000000
Binary files a/configuration/images/blockly/blockly-arrow.png and /dev/null differ
diff --git a/configuration/images/blockly/blockly-bitwise.png b/configuration/images/blockly/blockly-bitwise.png
deleted file mode 100644
index c42a9db9fc..0000000000
Binary files a/configuration/images/blockly/blockly-bitwise.png and /dev/null differ
diff --git a/configuration/images/blockly/blockly-colors-overview-small.png b/configuration/images/blockly/blockly-colors-overview-small.png
deleted file mode 100644
index 9f6d26cb45..0000000000
Binary files a/configuration/images/blockly/blockly-colors-overview-small.png and /dev/null differ
diff --git a/configuration/images/blockly/blockly-date-handling1-small.png b/configuration/images/blockly/blockly-date-handling1-small.png
deleted file mode 100644
index fe5a40253a..0000000000
Binary files a/configuration/images/blockly/blockly-date-handling1-small.png and /dev/null differ
diff --git a/configuration/images/blockly/blockly-date-handling2-small.png b/configuration/images/blockly/blockly-date-handling2-small.png
deleted file mode 100644
index c991b23583..0000000000
Binary files a/configuration/images/blockly/blockly-date-handling2-small.png and /dev/null differ
diff --git a/configuration/images/blockly/blockly-design-with-blockly.png b/configuration/images/blockly/blockly-design-with-blockly.png
new file mode 100644
index 0000000000..443135d92b
Binary files /dev/null and b/configuration/images/blockly/blockly-design-with-blockly.png differ
diff --git a/configuration/images/blockly/blockly-edit-screen.png b/configuration/images/blockly/blockly-edit-screen.png
index 79b610f490..e15fa0ede8 100644
Binary files a/configuration/images/blockly/blockly-edit-screen.png and b/configuration/images/blockly/blockly-edit-screen.png differ
diff --git a/configuration/images/blockly/blockly-ephemeris-small.png b/configuration/images/blockly/blockly-ephemeris-small.png
deleted file mode 100644
index 371dae89c7..0000000000
Binary files a/configuration/images/blockly/blockly-ephemeris-small.png and /dev/null differ
diff --git a/configuration/images/blockly/blockly-items-and-things-small.png b/configuration/images/blockly/blockly-items-and-things-small.png
deleted file mode 100644
index 0aa0928ad0..0000000000
Binary files a/configuration/images/blockly/blockly-items-and-things-small.png and /dev/null differ
diff --git a/configuration/images/blockly/blockly-lists-dictionary-overview-small.png b/configuration/images/blockly/blockly-lists-dictionary-overview-small.png
deleted file mode 100644
index 40e1b5cf5d..0000000000
Binary files a/configuration/images/blockly/blockly-lists-dictionary-overview-small.png and /dev/null differ
diff --git a/configuration/images/blockly/blockly-logging-overview-small.png b/configuration/images/blockly/blockly-logging-overview-small.png
deleted file mode 100644
index 8fbe162f4d..0000000000
Binary files a/configuration/images/blockly/blockly-logging-overview-small.png and /dev/null differ
diff --git a/configuration/images/blockly/blockly-notifications-small.png b/configuration/images/blockly/blockly-notifications-small.png
deleted file mode 100644
index 78bbd3c682..0000000000
Binary files a/configuration/images/blockly/blockly-notifications-small.png and /dev/null differ
diff --git a/configuration/images/blockly/blockly-persistence-small.png b/configuration/images/blockly/blockly-persistence-small.png
deleted file mode 100644
index e677313de4..0000000000
Binary files a/configuration/images/blockly/blockly-persistence-small.png and /dev/null differ
diff --git a/configuration/images/blockly/blockly-run-and-process-small.png b/configuration/images/blockly/blockly-run-and-process-small.png
deleted file mode 100644
index 29be67fb1c..0000000000
Binary files a/configuration/images/blockly/blockly-run-and-process-small.png and /dev/null differ
diff --git a/configuration/images/blockly/blockly-run-script-2.png b/configuration/images/blockly/blockly-run-script-2.png
deleted file mode 100644
index 6bc1a3c6d6..0000000000
Binary files a/configuration/images/blockly/blockly-run-script-2.png and /dev/null differ
diff --git a/configuration/images/blockly/blockly-run-script.png b/configuration/images/blockly/blockly-run-script.png
index a037b5234b..03bd50ca27 100644
Binary files a/configuration/images/blockly/blockly-run-script.png and b/configuration/images/blockly/blockly-run-script.png differ
diff --git a/configuration/images/blockly/blockly-text-overview-small.png b/configuration/images/blockly/blockly-text-overview-small.png
deleted file mode 100644
index 541d32b066..0000000000
Binary files a/configuration/images/blockly/blockly-text-overview-small.png and /dev/null differ
diff --git a/configuration/images/blockly/blockly-uom-small.png b/configuration/images/blockly/blockly-uom-small.png
deleted file mode 100644
index 9a19a9ba56..0000000000
Binary files a/configuration/images/blockly/blockly-uom-small.png and /dev/null differ
diff --git a/configuration/images/blockly/blockly-value-storage-small.png b/configuration/images/blockly/blockly-value-storage-small.png
deleted file mode 100644
index cc6b4710c7..0000000000
Binary files a/configuration/images/blockly/blockly-value-storage-small.png and /dev/null differ
diff --git a/configuration/images/blockly/youtube-logo-small.png b/configuration/images/blockly/youtube-logo-small.png
index 4f397db9d1..d5bfdaeb4f 100644
Binary files a/configuration/images/blockly/youtube-logo-small.png and b/configuration/images/blockly/youtube-logo-small.png differ
diff --git a/mainui/about.md b/mainui/about.md
index 3f4fe4c6ac..e768e52996 100644
--- a/mainui/about.md
+++ b/mainui/about.md
@@ -135,7 +135,7 @@ You can also configure webaudio as sink when creating rules in the UI:
![play-rule.png](images/play-rule.png)
-or using it in a blockly rule:
+or using it in a Blockly rule:
![webaudio-blockly.png](images/webaudio-blockly.png)
diff --git a/mainui/addons.md b/mainui/addons.md
index 9f30597dd4..de47dc7405 100644
--- a/mainui/addons.md
+++ b/mainui/addons.md
@@ -62,8 +62,8 @@ Automation provides technologies that allow you to write rules and scripts.
These will appear in Main UI when you create a new rule, and will present you with the configuration parameters - after the rule is created, the pre-configured rule modules (triggers, conditions, actions) will appear based on your choices.
- **Block Libraries**: Community extensions to the [Blockly]({{base}}/configuration/blockly/) toolbox.
- These libraries extend the core blockly library with many useful blocks that might else be a bit too specific for the core block library or just fills the gap where a core block is still missing.
- When installed they appear in a separate section beneath the core blocks of the blockly editor.
+ These libraries extend the core Blockly library with many useful blocks that might else be a bit too specific for the core block library or just fills the gap where a core block is still missing.
+ When installed they appear in a separate section beneath the core blocks of the Blockly editor.
## User Interfaces
diff --git a/tutorials/getting_started/rules_scenes.md b/tutorials/getting_started/rules_scenes.md
index 57a0a191a0..9b99ae1bfb 100644
--- a/tutorials/getting_started/rules_scenes.md
+++ b/tutorials/getting_started/rules_scenes.md
@@ -20,7 +20,7 @@ Navigate to Settings and Scenes and click on the **+** icon in the lower right c
Each rule has four pieces of metadata.
| Metadata | Purpose | Notes |
-|-------------|------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| ----------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Unique ID | Uniquely identifies the rule | Must be completely different from all other rule's UIDs, initialized with a random value but it is strongly recommended entering your own UID |
| Name | "title" of the rule | This will be the name under which the rule is shown in MainUI and is the primary field used for search and sorting |
| Description | Describes what the rule does | Do not skip, provide information about what the rule does and what it does it to; leave breadcrumbs you can use later to associated rules with Items and Channels |
@@ -102,7 +102,7 @@ When you now click on that label card, the scene rule will be triggered and all
If we want to use triggers that are known from other rule types we can write such a rule, define that trigger and let that rule call the scene rule.
For the purpose of the tutorial we use a very simple [Blockly Rule]({{base}}/tutorial/rules-blockly.html).
-See the details there on how to create a trigger (e.g. a cron trigger that will call the blockly rule at 22:00 in the evening) to execute that rule.
+See the details there on how to create a trigger (e.g. a cron trigger that will call the Blockly rule at 22:00 in the evening) to execute that rule.
Then use the following block and add the _scene id_ to the block to call the scene