Skip to content

Block catalog ​

Messages since 0.1.48 ​

New Messages category, three DE/EN/FR blocks. Setup, credentials and sending.

Since 0.1.50, also Signal · CallMeBot with separate profile selection. Set up the Signal app.

BlockImageFunction
WhatsApp · CallMeBot
ugso_callmebot_action
CallMeBotRecipient profile, text/Jinja and logging. MQTT sends through the UGSo CallMeBot Whatsapp app. Keys remain in the backend.
Signal · CallMeBot
ugso_callmebot_signal_action
CallMeBotRecipient profile, text/Jinja and logging. MQTT sends through the UGSo CallMeBot Signal app. Keys remain in the backend.
WhatsApp integration
ugso_whatsapp_action
WhatsApp integrationwhatsapp.send_message with number or target, or notify.whatsapp. Recipient without +, message and optional account. Configure its token once in HA.

Functions since 0.1.47 ​

The current catalogue contains 169 block types. Parameters, export and limits.

BlockImageFunction
Define action function
procedures_defnoreturn
Define action functionReusable HA action sequence; up to eight parameters via the cog. Definition beside the automation.
Call action function
procedures_callnoreturn
Call action functionDynamic call with argument inputs. Export as an HA sequence with separate parameter bindings.
Conditional return value
ugso_function_result
If return otherwiseIf / value / otherwise; HA evaluates only the selected value branch. No action sequence.

Since 0.1.45, duplicate toolbox entries are removed: number under Mathematics, text under Text, colour under Colour, and expandable AND/OR/NOT under Logic. Values contains percentage only. All 163 block types and existing projects remain supported.

Since 0.1.17, entity fields open a search dialog. Load, select and manually enter entities.

Version 0.1.44: 163 block types, all audited for matching HA selection fields. Images show actual UGSo editor blocks. Guides: HA selection, Date and time, Conversion. Dropdown variants do not count as additional types.

Triggers are orange, conditions purple, values green and actions blue. Side connections are typed; triggers and actions form separate vertical chains. Entity IDs are searched or entered manually.

Colours and value functions since 0.1.15 ​

Usage, HA output and full source comparison.

BlockImageFunction
Random colour
ugso_colour_random
Random colourThree random RGB channels in 0–255. New on each evaluation; not cryptographic.
RGB colour
ugso_colour_rgb
RGB colourClamp percentages to 0–100 and convert to RGB channels. 100/50/0 gives [255,128,0].
Blend colours
ugso_colour_blend
Blend coloursLinear RGB blend, 0–1 share of colour 2. Red/blue at 0.5 gives [128,0,128], without gamma correction.
Define value function
procedures_defreturn
Define value functionOriginal Blockly editor, cog for up to eight parameters, return required. No actions. Jinja expansion during export.
Call value function
procedures_callreturn
Call value functionAppears dynamically in Functions. Argument inputs follow parameters. Result as value or Boolean condition; no recursion.
Original parameter getter
variables_get
Original parameter getterOriginal Blockly getter, e.g. from definition context menu. Reads parameters inside functions, HA variables otherwise. Own getter remains usable.

Math, text, lists and counting loops since 0.1.14 ​

Original Blockly / ioBroker / HA: mapping, examples and limitations.

BlockImageFunction
Arithmetic
ugso_math_arithmetic
ArithmeticAdd, subtract, multiply, divide or raise to a power; numeric values required.
Single-number math
ugso_math_single
Single-number mathSquare root, absolute value, negation, natural/base-10 log and powers of e/10.
Trigonometry
ugso_math_trig
Trigonometrysin/cos/tan use degrees; inverse functions return degrees.
Constants
ugso_math_constant
ConstantsPi, e, golden ratio, square root of 2 and of one half.
Number property
ugso_math_property
Number propertyEven, odd, whole, positive, negative or divisible by a nonzero divisor.
Round
ugso_math_round
RoundRound normally/up/down to 0–10 decimal places. Half ties follow HA/Jinja even rounding.
Math on list
ugso_math_list
Math on listSum, min, max, mean, median or random element; empty sum is 0, other empty results null.
Modulo
ugso_math_modulo
ModuloRemainder with Jinja rules; negative results may differ from JavaScript.
Constrain
ugso_math_clamp
ConstrainClamp between two limits; reversed limits are sorted.
Random integer
ugso_math_random_int
Random integerInclusive integer limits, at most 10000 choices.
Random fraction
ugso_math_random_fraction
Random fraction0 up to but excluding 1, in increments of 0.00001; evaluated anew each time.
atan2 angle
ugso_math_atan2
atan2 angleAdditional Blockly standard operation; four-quadrant angle in degrees.
Newline
ugso_text_newline
NewlineActual LF, CRLF or CR newline value.
Join text
ugso_text_join
Join text0–100 inputs combined as text; gear or +/− controls the input count.
Append text
ugso_text_append
Append textAssign a new value to an already initialized text variable.
Text length
ugso_text_length
Text lengthCount Unicode code points rather than JavaScript UTF-16 units.
Text empty
ugso_text_empty
Text emptyCheck whether text has length zero.
Contains text
ugso_text_contains
Contains textCase-sensitive literal substring check.
Find text
ugso_text_index
Find textFirst/last position, counted from 1; missing result is 0.
Get character
ugso_text_char
Get characterFrom start/end, first/last/random character; out of range returns empty text.
Substring
ugso_text_slice
SubstringInclusive bounds, counted from 1; reversed/invalid bounds return empty text.
Text case
ugso_text_case
Text caseUpper/lower/title case using Unicode rules.
Trim text
ugso_text_trim
Trim textRemove leading/trailing/both whitespace, including tabs and newlines.
Count text
ugso_text_count
Count textNon-overlapping matches; empty search returns 0.
Replace text
ugso_text_replace
Replace textReplace all literal matches; empty search leaves input unchanged.
Reverse text
ugso_text_reverse
Reverse textAdditional standard operation; reverses code points, not grapheme clusters.
Repeat list item
ugso_list_repeat
Repeat list itemCreate a list with 0–10000 repetitions.
Find list item
ugso_list_index
Find list itemFirst/last occurrence, counted from 1; missing result is 0. Uses Python equality.
Get list item
ugso_list_get
Get list itemFrom start/end, first/last/random item; out of range or empty returns null.
Set/insert list item
ugso_list_set
Set/insert list itemAssign a new list value. Index starts at 1; insertion allows length+1. Invalid index leaves list unchanged.
Remove list item
ugso_list_remove
Remove list itemAssign a new list without the item at the 1-based index. Invalid index leaves list unchanged.
Sublist
ugso_list_slice
SublistCopy inclusive 1-based bounds; invalid/reversed bounds return an empty list.
Split/join
ugso_list_split
Split/joinSplit text by a literal delimiter or join list as text; empty delimiter splits code points.
Sort list
ugso_list_sort
Sort listNew numeric/text/case-insensitive sorted list, ascending/descending; numeric mode requires numbers.
Reverse list
ugso_list_reverse
Reverse listNew reversed list; original stays unchanged.
Count with variable
ugso_for_range
Count with variableFixed integer limits and nonzero step, ascending/descending, at most 10000 iterations; native HA repeat.for_each.
For each with variable
ugso_foreach_variable
For each with variableAssign the named variable from repeat.item before each iteration body.

Flow, objects and lists added in 0.1.13 ​

ioBroker / original Blockly / native HA comparison and limitations.

BlockImageFunction
Pause
ugso_pause
PauseExplicit duration unit, constant or runtime number. Native HA delay.
Wait until
ugso_wait
Wait untilBoolean condition with timeout and continuation checkbox; stops on timeout when unchecked.
Stop this run
ugso_stop
Stop this runReason and optional error checkbox. Ends the whole run, including outer loops.
Repeat count
ugso_repeat
Repeat countC-shaped body for HA repeat.count; repeat.index is the 1-based index.
Repeat while/until
ugso_repeat_while
Repeat while/untilBoolean input and action body. While checks before; until after. Include a pause in the body.
For each item
ugso_foreach
For each itemIterate a list; current value through template repeat.item, index through repeat.index.
New object
ugso_object_new
New object0–100 named attributes using gear/+−. Dictionary value, not an HA entity.
Attribute of object
ugso_object_get
Attribute of objectRead a dictionary key; missing key returns null. Requires a dictionary.
Object has attribute
ugso_object_has
Object has attributeBoolean test for a dictionary key.
Object attributes
ugso_object_keys
Object attributesKey list for list operations and for-each.
Set attribute in variable
ugso_object_set
Set attribute in variableVariable selector and value socket; assigns a dictionary copy with the changed key. Initialize as an object first.
Remove attribute from variable
ugso_object_remove
Remove attribute from variableReassigns without the key. Does not mutate other variables or entity attributes.
Range comparison
ugso_logic_range
Range comparisonIndependent < or ≤ for each bound; numbers and runtime numbers.
Fallback value
ugso_logic_default
Fallback valueSelect null/undefined or empty/false/zero; null mode preserves valid zero and false.
Case selection
ugso_case
Case selection1–100 cases using gear/+− and action bodies. First match wins; optional populated default body.
Create list
ugso_list_new
Create list0–100 arbitrary items using gear/+−, including nested values.
List length
ugso_list_length
List lengthList length as a runtime number. Strings and dictionaries are not lists.
List is empty
ugso_list_empty
List is emptyBoolean test for a list with no items.

Conversion added in 0.1.12 ​

Guide, ioBroker comparison and pending JSONata.

BlockImageFunction
To number
ugso_convert_number
To numberHA float without fallback; complete numeric input with decimal point. Runtime number for variables, comparisons and time calculations.
To Boolean
ugso_convert_boolean
To BooleanHA bool for recognized Boolean/text values. Boolean output for conditions and logic.
To string
ugso_convert_string
To stringJinja text representation of a value; not JSON serialization.
Type of
ugso_convert_type
Type ofHA typeof returns Python names such as str, float, bool, dict. HA 2023.4 or newer.
To datetime
ugso_convert_datetime
To datetimeISO text or Unix seconds/milliseconds to HA local datetime. Typed Time output.
Datetime to …
ugso_convert_date_format
Datetime to …Datetime, formatted text, Unix number or date component. Selection changes output type; custom format shows a field.
Format duration
ugso_convert_duration
Format durationDuration in milliseconds or seconds to hh:mm:ss, hh:mm, mm:ss. Preserves sign and total hours/minutes.
JSON to value
ugso_convert_from_json
JSON to valueJSON text to object, list or scalar. Invalid JSON causes an HA error.
Value to JSON
ugso_convert_to_json
Value to JSONJSON serialization with indentation checkbox. Format datetimes first.

Date and time added in 0.1.11 ​

Purple time blocks use a typed datetime socket. Usage, boundary rules and comparison.

BlockImageFunction
Clock comparison
ugso_time_compare
Clock comparisonFixed HH:mm/HH:mm:ss; comparison or period. End field appears for between/outside.
Clock comparison with inputs
ugso_time_compare_input
Clock comparison with inputsText boundaries; uncheck current time to expose a datetime socket. Overnight periods supported.
Current datetime
ugso_time_now
Current datetimeHA local date, time and timezone. Typed Time output.
Calendar start
ugso_time_boundary
Calendar startStart of today, tomorrow, week (Monday), month or year.
Next sun event
ugso_time_sun
Next sun eventRise, set, dawn, dusk, solar noon or midnight from sun.sun, with minute offset. May be tomorrow.
Shift datetime
ugso_time_shift
Shift datetimeDatetime plus/minus number in milliseconds, seconds, minutes, hours or days.
Format datetime
ugso_time_format
Format datetimeClock time, date, date/time, ISO with timezone or Unix seconds.

Other blocks ​

BlockEditor imageFunction
Automation
ugso_automation
AutomationRoot with triggers, optional condition and action chain. Name, ID, description and mode are edited outside the block.
State reached
ugso_state_trigger
State reachedStarts when the entity reaches the entered state. Generates trigger: state with to.
Numeric threshold trigger
ugso_numeric_trigger
Numeric threshold triggerStarts on threshold crossing, not continuously. Number threshold; trigger: numeric_state.
Time
ugso_time_trigger
TimeDaily time trigger, HH:MM or HH:MM:SS; trigger: time.
Sunrise/sunset
ugso_sun_trigger
Sunrise/sunsetSunrise or sunset dropdown; trigger: sun.
HA starts
ugso_start_trigger
HA startsStarts when Home Assistant starts; trigger: homeassistant.
State is
ugso_state_condition
State isBoolean condition: entity has the specified state; condition: state.
Numeric condition
ugso_numeric_condition
Numeric conditionBoolean above/below threshold condition; condition: numeric_state.
AND / OR / NOT
ugso_logic_condition
AND / OR / NOTCombines 1–100 conditions. Plus/minus adds or removes the last input; gear reorders. and, or, not.
Today’s date
ugso_date_condition
Today’s dateDate picker with equals/on-or-after/on-or-before, including year. HA template compares today in HA’s time zone. Not a trigger.
Number
ugso_number
NumberGeneral numeric value. Fits thresholds and delays; destination-specific validation still applies.
Percentage
ugso_percent
PercentageSlider and exact input for integers 0–100. Number output, e.g. charge level or brightness.
Multiline text
ugso_text
Multiline textString value for logs. Enter inserts a newline; Shift+Enter commits. Three visible lines; full text is retained.
Colour
ugso_colour
ColourHex colour picker; exports an RGB list to lights, variables or colour calculations. Colour/Value output; fixed numeric inputs remain incompatible.
On / off / toggle
ugso_switch_action
On / off / toggleEntity-domain action: turn_on, turn_off or toggle. Entity must support the action.
Generic HA action
ugso_service_action
Generic HA actionAction name, optional single entity target, JSON object data. Supports parameters not exposed by dedicated blocks.
Wait seconds
ugso_delay_action
Wait secondsDelay of 0–86400 integer seconds. Number input with shadow default.
If / else if / else
ugso_if_action
If / else if / elsePlus/minus adds or removes the last else-if branch; S toggles else. Gear reorders. if or choose, first matching branch.
Log output
ugso_log_action
Log outputText message and severity dropdown; system_log.write. HA may filter Info/Debug.
Control HA script
ugso_script_action
Control HA scriptStart without waiting, stop, or call and wait. script.turn_on, script.turn_off or script.name.
Refresh entity
ugso_update_action
Refresh entityhomeassistant.update_entity requests a refresh. Does not set state; support depends on integration.
Control helper
ugso_helper_action
Control helperSwitch/counter/timer type controls the action dropdown. Entity ID must match. Timer uses configured duration; parameters use generic action.
Light with colour
ugso_colour_action
Light with colourLight entity, Colour input and brightness 0–100. Generates light.turn_on with rgb_color and brightness_pct. Device must support colours.

Minus or disabling else detaches connected blocks instead of deleting them. Reconnect or remove them before YAML export. Undo restores inputs and connections. Shadow values reappear when a replacement value block is removed.

Variable and template blocks added in 0.1.8 ​

BlockEditor imageFunction
Set variable
ugso_variable_set
Set variableAction block: assign a number, text/template, Boolean or null to the selected variable. Generates native HA variables. Place before subsequent reads.
Read variable
ugso_variable_get
Read variableSide String connector; generates {{ name }} for log messages and further assignments. Dropdown supports rename/delete.
Template value
ugso_template
Template valueMultiline Jinja template with String connector for log messages or variable assignments. HA evaluates the template during execution; Blocks does not execute it.
Template condition
ugso_template_condition
Template conditionBoolean connector for Only if, If and logical groups. Generates condition: template with value_template. HA must evaluate it as true; not a trigger.

Using variables and templates ​

Increment and decrement added in 0.1.10 ​

BlockEditor imageFunction
Change variable by …
ugso_variable_change
Change variable byVariable dropdown and Number input with default step 1. Adds the step to a previously assigned numeric variable. Negative steps decrease; 0 and fractional steps are supported. Native HA variable assignment using Jinja.

The Variablen menu dynamically offers Set, Change by and Read for each created variable. Example action chain: Set test to 10 → Change test by 1 → Log Info message Read test. The message then uses 11; a step of -2 changes 10 to 8.

Assign a number before incrementing. Undefined variables, text (including "10"), Boolean and null are not automatically converted or initialized as 0; Jinja evaluation in HA fails for those values. Creating a variable alone does not assign it. JSON retains the increment block; importing our exact YAML output recreates it. Other calculation templates remain template blocks. The planned typed-variable dialog is still pending.

Choose Variablen → Variable erstellen … in the German editor to create, for example, leistung. Names use ASCII letters, digits and _, with no leading digit. Place Set variable in Dann and connect a number or template. Connect Read variable to a subsequent log message. Creating a name alone does not assign a value. Variables belong to the HA automation run; they are not persistent helpers.

Example: Set leistung to Template containing {{ states('sensor.leistung') | float(0) }}, followed by Log Info message Read leistung. HA reads the sensor during assignment and uses that value in the next step. A template condition can check {{ states('sensor.leistung') | float(0) > 100 }}.

Renaming updates variable blocks. References in free-form Jinja text must be changed manually. Action variables become available after assignment, not in preceding automation conditions. Blocks validates structure and YAML, not Jinja syntax or HA entities. Import supports text/template, number, Boolean or null for each variable value. Multiple entries are supported since 0.1.34 in the grouped JSON block; list/object values and automation-level variables remain rejected. Native HA variables and scope.

Logic blocks added in 0.1.9 ​

BlockEditor imageFunction
Compare
ugso_compare
CompareCompares two values using =, ≠, <, ≤, > or ≥. Accepts numbers, text, variables and single template expressions. Boolean result exported as an HA template condition or variable value.
Compact AND / OR
ugso_binary_logic
Compact AND ORTwo Boolean inputs. Generates native HA and/or groups as conditions and parenthesized Jinja as variable values. Expandable groups remain available.
NOT
ugso_not
NOTNegates a Boolean condition. Native HA not group as condition, Jinja not as variable value.
true / false
ugso_boolean
true falseBoolean constant with dropdown for conditions and variables. Assignments retain native YAML Boolean types.
null
ugso_null
nullNo value: YAML null in assignments, Jinja none in expressions. Different from 0 and false; not a Boolean condition.
If → value → otherwise value
ugso_ternary
Conditional valueSelects one of two values using a Boolean condition. For variables, log messages and comparisons; generates a Jinja expression, not an action sequence.

Example: Assign leistung first. Then use Set meldung to If, with Compare Variable leistung > Number 100 as test, text High power as true value and Low power as false value. Follow with Log Info message Variable meldung. HA evaluates the choice during execution.

Comparisons do not automatically convert types: number 20 differs from text "20". Convert sensor states with float or int where appropriate. Expression inputs accept a single Jinja output, for example {{ states('sensor.leistung') | float(0) }}. Multiline statements and mixed text remain supported in standalone template value blocks. Dynamic choices are not supported as fixed numeric thresholds or delays.

JSON projects preserve block shapes and connections. YAML preserves native meaning: reopening maps comparisons and value choices to template blocks and AND/OR/NOT to condition groups. HA logical conditions.

Original plugins and integration ​

The six existing plugins are pinned to 13.2.0, the four theme/zoom plugins and workspace search to 13.3.0, all bundled locally with Blockly 13.3.0. License: Apache-2.0. Links below lead directly to upstream repositories. HA blocks, YAML adapters and plus/minus controls are UGSo code.

OriginalpluginUsage / status
workspace-searchFinds placed blocks in the workspace; separate from toolbox search. Available since 0.1.21.
toolbox-searchSearch at the bottom of the menu, German search hints; results preserve dropdowns and shadows.
field-multilineinputUsed by Text; newlines remain in projects and YAML.
field-sliderUsed by Percentage; 0–100 with exact numeric entry.
field-colourUsed by Colour; converts hex to RGB for lights. Random/RGB/blend use own HA generators since 0.1.15.
theme-darkDark workspace/flyout, part of the saved theme selector.
theme-modernOriginal palette with stronger borders; own blocks use theme styles.
theme-tritanopiaOriginal standard-group palette, matching UGSo extension colours and adaptive label contrast.
zoom-to-fitAdditional fit control next to zoom controls; keyboard accessible.
field-dateUsed by date comparison; UGSo subclass guards the deferred picker call.
field-dependent-dropdownUsed by Helper; type determines actions. No live HA selection.
block-plus-minusInteraction implemented in our HA blocks; original plugin is not installed. Gear remains available.
block-dynamic-connectionNot integrated yet. Automatic growing connections, text joining and lists are planned.

The colour field also uses the transitive dependency field-grid-dropdown. HA output is generated by our adapters; bundled JavaScript generators are not used.

Back to overview

Custom blocks since 0.1.18 extend the 163 native types. Editor and package catalog.

Trigger IDs and multiple targets ​

Since 0.1.28: States as JSON list, e.g. ["1_single","1_double"]; optional trigger IDs on every standard trigger; Triggered by ID as a native trigger condition (single ID or JSON list). Generic HA actions support Targets as JSON list, optional metadata and explicitly preserved empty data objects. Four-button automations with four choose branches can be fully imported.

Single automation · HA editor output omits the top-level id. Trigger IDs remain. Projects and automations.yaml list output retain an existing automation ID.

BlockImageDescription
Triggered by ID
ugso_trigger_condition
Triggered by IDcondition: trigger · id

Home Assistant: Trigger IDs · Trigger condition

Pool pumps, events and multiple times ​

Since 0.1.30: enable Times as JSON list for several fixed times, e.g. ["10:00:00","13:00:00","19:00:00"]. Any change omits to; Entities as JSON list watches multiple entities. Without to, HA also reacts to attribute changes. Event triggers support e.g. timer.finished with an optional JSON data filter. Native time conditions preserve before/after: fixed times, after inclusive and before exclusive, including overnight windows. Equal bounds mean all day. Time helpers, time templates and weekday filters remain outside the supported import. The full pool-pump automation retains multiline timer templates and nested choose branches.

BlockImageDescription
Event trigger
ugso_event_trigger
Event triggertrigger: event · event_type · event_data
Native HA time condition
ugso_native_time_condition
Native HA time conditioncondition: time · before · after

Home Assistant: triggers · Time condition

Temperature changed ​

Since 0.1.31, the new block supports native temperature.changed. Target (JSON): entity_id string or list. Threshold (JSON): type any, above, below, between or outside. any requires only type; above/below require value, between/outside value_min and value_max. Numbers: number plus unit_of_measurement (°C/°F). References: entity (sensor, number or input_number). Optional trigger ID. Since 0.1.39, area, device, floor and label targets are supported. MQTT topics, qos/retain/evaluate_payload and multiline JSON/Jinja payloads are preserved.

BlockImageDescription
Temperature changed
ugso_temperature_trigger
Temperature changedtemperature.changed

Home Assistant: temperature.changed

Calendars and response variables ​

0.1.32: calendar.event_started / calendar.event_ended. Target: JSON object with entity_id as text or a list. Options are optional: offset with combined days, hours, minutes and seconds or HH:MM:SS; offset_type is before or after. Zero offsets, omitted options and optional trigger IDs are retained.

The Response variable (optional) field in HA action generates response_variable, for example termine for calendar.get_events. An empty field omits it from YAML. The full holiday automation retains both calendars, HA startup, zeitpunkt/termin_aktiv variables, multiline Jinja templates, choose/default and queued mode. Home Assistant processes calendars and templates.

BlockImageFunction
Calendar event starts/ends
ugso_calendar_trigger
Calendar event starts/endscalendar.event_started / calendar.event_ended

Home Assistant: calendar.event_started · calendar.event_ended · calendar.get_events

Numeric triggers with hold duration ​

Since 0.1.33, Number above/below threshold accepts multiple entities: enable Entities as JSON list and enter, for example, ["sensor.temp_1","sensor.temp_2"]. Without the checkbox, the single entity remains active. Hold duration (JSON) with enabled generates optional for: for example {"hours":0,"minutes":1,"seconds":0}, 60 or "00:01:00". Combined days/hours/minutes/seconds/milliseconds, zero entries and HA output templates are retained. Disabling the checkbox omits for. Still exactly one fixed numeric threshold (above or below); trigger IDs and choose branches are preserved.

Home Assistant fires after a threshold crossing once the value has remained on that side of the threshold for the whole duration. Restarting HA or reloading automations resets a running hold timer. Home Assistant: numeric_state.

Multiple variables in one action ​

Since 0.1.34, the Variables menu includes Set variables (JSON). The JSON object contains 1–100 variable names with text, HA template, number, Boolean or null values. Multiple entries remain a single native variables action, including their order. Single assignments still use the existing Set block. Since 0.1.39, list/object values and automation-level variables are supported; see Extended HA and Jinja. Edit names and templates directly in JSON; the Blockly rename dialog does not change this free-form JSON text. Imported names are also registered in Blockly.

The timer example retains h/m, both watched entities, the condition and restart mode. Omitted conditions become an empty list.

BlockImageFunction
Set variables (JSON)
ugso_variables_action
Set variables (JSON)Variables with individual value fields; lists and objects as JSON, new names through additional options.

Home Assistant: variables

Delay as duration text or template ​

Since 0.1.35, Blocks imports native delay duration strings into the new block under Timeouts. Examples: 00:00:02, 01:30 (one hour and 30 minutes), 00:00:00.250 or an HA output template. The duration remains a string in YAML and the saved project. The current HA run waits before continuing with subsequent actions. Existing seconds and unit blocks remain available. This extension applies to delay, not the wait-until block timeout.

The timer-reset example first turns off timer_reset, waits two seconds and then turns off both targets. The entity ID input_boolean.timer_runing is preserved exactly as provided.

BlockImageFunction
Wait duration text / template
ugso_delay_text
Wait duration text / templateNative delay duration string / HA template.

Home Assistant: delay

Dynamic HA action names ​

Since 0.1.36, the first field in HA action accepts a static action name or a Jinja template. The field supports multiline editing. Examples: input_boolean.turn_on, input_boolean.turn_ followed by a Jinja expression, or a full if/else template. Target, data, metadata and response variable retain their existing fields. Templates and line breaks survive import, project storage and YAML export.

The Shelly example retains the action prefix input_boolean.turn_ combined with the state lookup and the nested choose branches. Home Assistant evaluates the action name at runtime; it must then resolve to an available service name. Blocks checks static names and template delimiters, not Jinja syntax or runtime results. Target entities must still be fixed IDs; templating the entire data object is outside this extension.

Home Assistant: choosing the action with a template

Time pattern trigger ​

Since 0.1.37, Triggers includes a native time_pattern block. Its JSON field can contain {"seconds":"/30"} to match seconds 0 and 30 of each minute. Optional keys are hours, minutes and seconds; at least one is required. Fixed values: hours 0–23, minutes/seconds 0–59, as numbers or strings without leading zeroes. * matches every value; /n matches values divisible by n (n > 0 within the field range). Omitted units and number/string types remain unchanged; Home Assistant applies its runtime defaults. An optional trigger ID is supported.

The LCD automation with four input_text.set_value actions and mode: restart passes full round-trip checks: Jinja, formatting, slicing, padding and line breaks are preserved. Home Assistant executes the templates and schedule.

BlockType
Time pattern (JSON)ugso_time_pattern_trigger

Home Assistant: time_pattern.

Dynamic target entities ​

Since 0.1.39, Target in the generic HA action accepts a static entity ID or an HA template, such as {{ ziel_tv }}. Its entity dialog supports multiline input. The JSON target list can also combine static IDs and templates. Jinja remains unchanged and is evaluated by Home Assistant at execution time. Imported dynamic targets use the generic HA action because specialized switching blocks cannot reliably determine the domain.

The bedroom-TV automation with a multiline summer-mode variable, 21:30 and 00:30 triggers and two choose branches is verified. Target templates, variable text and time conditions survive import, project reload and export. Entity fields in triggers and conditions still require static IDs.

Home Assistant: templates in action targets.

Extended HA and Jinja since 0.1.39 ​

Anleitung / Guide.

BlockImageFunction
HA state
ugso_ha_state_trigger
HA stateLabelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA numeric_state
ugso_ha_numeric_state_trigger
HA numeric_stateLabelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA time
ugso_ha_time_trigger
HA timeLabelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA sun
ugso_ha_sun_trigger
HA sunLabelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA homeassistant
ugso_ha_homeassistant_trigger
HA homeassistantLabelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA mqtt
ugso_ha_mqtt_trigger
HA mqttLabelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA template
ugso_ha_template_trigger
HA templateLabelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA webhook
ugso_ha_webhook_trigger
HA webhookLabelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA zone
ugso_ha_zone_trigger
HA zoneLabelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA device
ugso_ha_device_trigger
HA deviceLabelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA tag
ugso_ha_tag_trigger
HA tagLabelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA conversation
ugso_ha_conversation_trigger
HA conversationLabelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA geo_location
ugso_ha_geo_location_trigger
HA geo_locationLabelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA calendar
ugso_ha_calendar_trigger
HA calendarLabelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA event
ugso_ha_event_trigger
HA eventLabelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA trigger (extended)
ugso_ha_trigger
HA trigger (extended)Labelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA condition (extended)
ugso_ha_condition
HA condition (extended)Labelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA step (extended)
ugso_ha_action
HA step (extended)Labelled HA inputs and additional JSON options. Supported structure is checked; verify integration and execution in HA.
HA action target type target data step options
ugso_target_action
HA action target type target data step optionsExtended HA fields or original Jinja. Supported structure is checked; verify integration and execution in HA.
HA integration target options enabled
ugso_integration_trigger
HA integration target options enabledExtended HA fields or original Jinja. Supported structure is checked; verify integration and execution in HA.
Action group
ugso_sequence
Action groupExtended HA fields or original Jinja. Supported structure is checked; verify integration and execution in HA.
Parallel branch 1 branch 2
ugso_parallel
Parallel branch 1 branch 2Extended HA fields or original Jinja. Supported structure is checked; verify integration and execution in HA.
Wait for trigger options
ugso_wait_trigger
Wait for trigger optionsExtended HA fields or original Jinja. Supported structure is checked; verify integration and execution in HA.
Continue only if
ugso_condition_step
Continue only ifExtended HA fields or original Jinja. Supported structure is checked; verify integration and execution in HA.
Fire event data
ugso_fire_event
Fire event dataExtended HA fields or original Jinja. Supported structure is checked; verify integration and execution in HA.
Assist responds
ugso_assist_response
Assist respondsExtended HA fields or original Jinja. Supported structure is checked; verify integration and execution in HA.
Activate scene
ugso_scene
Activate sceneExtended HA fields or original Jinja. Supported structure is checked; verify integration and execution in HA.
Jinja (experimental)
ugso_jinja_value
Jinja (experimental)Extended HA fields or original Jinja. Supported structure is checked; verify integration and execution in HA.
Jinja condition (experimental)
ugso_jinja_condition
Jinja condition (experimental)Extended HA fields or original Jinja. Supported structure is checked; verify integration and execution in HA.

Jinja structures (experimental) ​

15 new types since 0.1.41. Outer value/condition blocks connect nested parts to HA. Jinja expressions and template parts have separate typed sockets. Import, editing and limits.

BlockImageFunction
Composed Jinja
ugso_jinja_composed_value
Composed JinjaOuter value block: complete template; retains the original until editing.
Composed Jinja condition
ugso_jinja_composed_condition
Composed Jinja conditionOuter Boolean block for an HA template condition.
Entity function
ugso_jinja_entity
Entity functionSearch an entity and choose states/state_attr/is_state/is_state_attr; connect additional arguments.
Filter arguments value
ugso_jinja_filter
Filter arguments valueChoose a filter; connect 0–3 positional arguments and a Jinja expression.
Literal (Jinja)
ugso_jinja_literal
Literal (Jinja)Number, quoted string, true/false or none in Jinja syntax.
Jinja variable
ugso_jinja_variable
Jinja variableSimple Jinja variable name as text; no automatic Blockly renaming.
Now (Jinja)
ugso_jinja_now
Now (Jinja)Generate now(); Home Assistant provides the time when evaluating.
Expression
ugso_jinja_binary
ExpressionCalculate, compare or combine two Jinja expressions with and/or.
Expression
ugso_jinja_unary
ExpressionApply not, a negative or positive sign to a Jinja expression.
Value if else
ugso_jinja_select
Value if elseSelect a value: yes if test else no. All three expression inputs are required.
Output
ugso_jinja_output
OutputOutput an expression as {{ ... }} inside a template.
Jinja text
ugso_jinja_text
Jinja textLiteral text including whitespace; do not insert Jinja delimiters here.
Template parts then
ugso_jinja_join
Template parts thenJoin two template parts in the displayed order.
If text else
ugso_jinja_if
If text elseif/else with a condition and nested text/output parts.
For in text when empty
ugso_jinja_for
For in text when emptySimple for loop: variable, expression, template body and optional empty case.