Fabio Manganiello<p>📦 <a class="hashtag" href="https://manganiello.social/tag/platypush" rel="nofollow noopener noreferrer" target="_blank">#Platypush</a> <a href="https://pypi.org/project/platypush/" rel="nofollow noopener noreferrer" target="_blank">1.3.0 is out</a>!</p><p><a href="https://git.platypush.tech/platypush/platypush/src/branch/master/CHANGELOG.md#1-3-0" rel="nofollow noopener noreferrer" target="_blank">This release</a> turns <a href="https://git.platypush.tech/platypush/platypush/issues/341" rel="nofollow noopener noreferrer" target="_blank"><em>procedures</em> into first-class citizens</a>.</p><p>Procedures are the bread-and-butter of Platypush customizations. They allow you to specify some custom logic that can run within the application, either from structured requests or code snippets - both <a class="hashtag" href="https://manganiello.social/tag/python" rel="nofollow noopener noreferrer" target="_blank">#Python</a> and <a class="hashtag" href="https://manganiello.social/tag/yaml" rel="nofollow noopener noreferrer" target="_blank">#YAML</a> scripts are supported. They are akin to recipes in <a class="hashtag" href="https://manganiello.social/tag/ifttt" rel="nofollow noopener noreferrer" target="_blank">#IFTTT</a> and tasks in <a class="hashtag" href="https://manganiello.social/tag/tasker" rel="nofollow noopener noreferrer" target="_blank">#Tasker</a>.</p><p>You can call them from an event hook when a certain condition is met, from a cronjob or an alarm, from stand-alone scripts, from other procedures, and so on.</p><p>This release improves the integration of procedures into the UI, turning them into entities that can be controlled from the <a href="https://docs.platypush.tech/wiki/Entities.html" rel="nofollow noopener noreferrer" target="_blank">entities panel</a> - and, <a href="https://git.platypush.tech/platypush/platypush/issues/228" rel="nofollow noopener noreferrer" target="_blank">soon</a>, embedded into custom dashboards.</p><p>It also introduces a new powerful procedure editor, which allows you to visually create your automation routines through an intuitive UI with drag-and-drop support (a big part of this release has been about getting drag-and-drop to work nicely on mobile too). The new UI supports nested if/for/while blocks, break/continue/return, setting context variables, variable name autocompletion, export to YAML (if you prefer to have your procedures stored in the configuration rather than the db), and more.</p><p>This UI has been inspired by the job done by Joao Dias on Tasker (I’ve always wanted to have a similarly powerful block-based UI to create custom routines also on desktop/server), and in part by IFTTT’s recipe editor.</p><p>This release also includes a new file browser component. You can now browse your files on the Platypush instance, create/edit/delete/upload/download them directly from the Platypush UI, even if you don’t have SSH access to the machine.</p><p>Happy hacking!</p><p>Python procedures can also be easily managed through a new file editor component that allows you to precisely navigate to their definition.</p>