| Binary limiter | binary_limiter | A block that takes a binary input and a numeric input, and outputs true only if the binary input is true and the numeric input does not exceed the configured numeric limit. |
| Boolean to string | boolean_to_string | Converts a boolean value to a configurable text label. |
| Climate regulator | climate_regulator | Zonal climate regulator - can be used as a thermostat for a specific zone heating or cooling. Output should be provided to a climate regulator hub. |
| Climate regulator hub | climate_regulator_hub | Central, climate regulator hub - aggregates the heating or cooling requirements from zonal climate regulators and decides which should be enabled. |
| Delay | delay | Delays the output state changes based on switch-on and switch-off delay durations |
| Delayed Pulse | delayed_pulse | Generates a delayed pulse at the output when triggered by a rising edge on the input |
| Door, window | door_window_monitor | Door and window monitor |
| Edge detector | edge_detector | Detects rising, falling, or both edges on a boolean input and generates a timed output pulse. |
| HTTP Request | http_request | Performs an HTTP request to an external service when triggered. Supports GET, POST, PUT, DELETE, and PATCH. URL, headers, and body can be static (config) or dynamic (input). |
| Hysteresis | hysteresis | A threshold switch with hysteresis that analyzes an analog input value and switches a digital output accordingly. The hysteresis prevents frequent toggling when the value fluctuates around the threshold. |
| Irrigation | irrigation | Irrigation system |
| JSON Get Boolean | json_get_boolean | Extracts a boolean value from a JSON string using a dot-notation path. |
| JSON Get Number | json_get_number | Extracts a numeric value from a JSON string using a dot-notation path. |
| JSON Get String | json_get_string | Extracts a string value from a JSON string using a dot-notation path. |
| Level to pulse | level_to_pulse | Converts a boolean level signal into a pulse. Generates a timed output pulse every time the input is true, even if it was already true. Useful for connecting stateful boolean outputs to pulse-triggered inputs. |
| Logic::And | logic_and | AND logic block |
| Logic::Not | logic_not | NOT logic block - negates the input binary value |
| Logic::Or | logic_or | OR logic block |
| Math::Abs | math_abs | Returns the absolute value of the input |
| Math::Add | math_add | Adds all block input values |
| Math::Average | math_average | Averages all block input values |
| Math::Ceil | math_ceil | Rounds the input value up to the nearest integer |
| Math::Divide | math_divide | Divides the I1 input block value by the value of I2 input |
| Math::Floor | math_floor | Rounds the input value down to the nearest integer |
| Math::Max | math_max | Outputs the maximum value from all block input values |
| Math::Min | math_min | Outputs the minimum value from all block input values |
| Math::Modulo | math_modulo | Returns the remainder after dividing I1 by I2 |
| Math::Multiply | math_multiply | Multiplies all block input values |
| Math::Random | math_random | Generates a pseudo-random number in the range [0.0, 1.0) on each rising edge of the trigger. |
| Math::Round | math_round | Rounds the input value to the nearest integer |
| Math::Subtract | math_subtract | Subtracts I2, I3 and I4 block input values from the I1 input |
| Motor axis | motor_axis | Single-axis motor controller with homing support. Drives a motor to a target position using encoder pulse counting or time-based step control. |
| Moving average | moving_average | Computes a running average of incoming numeric values using a selectable algorithm (EMA or CA) |
| Number to string | number_to_string | Converts a numeric value to its string representation. |
| Numeric latch | numeric_latch | Captures a numeric input value on a pulse and holds it internally. The captured value is sent to the output on trigger or optionally on capture. |
| Numeric predicate | numeric_predicate | Evaluates a numeric input against a configured comparison operator and reference value(s), outputting a boolean result. |
| Numeric throttle | numeric_throttle | Rate-limits numeric input changes using a minimum value change threshold (deadband) and a time-based discard period (cooldown). Significant changes that arrive during cooldown are deferred and output when the cooldown expires. |
| PubSub::Publish | pubsub | Publishes messages to a Google Cloud Pub/Sub topic. Batches incoming messages and flushes when the batch size is reached or the timeout expires, whichever comes first. |
| Pulse counter | pulse_counter | Counts rising-edge pulses up and/or down within configurable limits. Supports clamp and wrap overflow modes. |
| Pulse gate | pulse_gate | Conditionally passes or blocks a pulse signal based on the state of an enable input. When a rising edge arrives on the input and enable is true, the pulse is forwarded to the output. When enable is false, the pulse is suppressed. |
| Pulse throttle | pulse_throttle | Suppresses repeated pulses within a configurable discard period. The first pulse passes through and starts a cooldown window during which subsequent pulses are dropped. Useful for debouncing noisy signals or rate-limiting pulse outputs. |
| Sequencer | sequencer | Logic block representing a sequence |
| Shading | shading | Controls shading devices like blinds, curtains, and awnings |
| String format | string_format | Formats a text string from an input pattern, substituting {} placeholders with input values. Output is deferred until the pattern and all required values have been received, preventing incomplete messages. |
| String latch | string_latch | Captures a string input value on a pulse and holds it internally. The captured value is sent to the output on trigger or optionally on capture. |
| Toggle | toggle | Converts a monostable pulse input into a bi-stable toggle output. Each rising edge on the input toggles the output state. Supports explicit on/off inputs and emits pulse outputs on state transitions. |
| Variable Delayed Pulse | variable_delayed_pulse | Generates a delayed pulse at the output when triggered by a rising edge. Delay duration is provided via input. |