# Logic Blocks

Logic blocks are the building elements of an automation program. Each block performs a specific function and communicates with other blocks through input and output ports.

# Input

NameIDDescription
Binary inputbinary_inputBinary input of Voldeno module
Boolean constantboolean_constantProvides a constant boolean value configured by the user
Mode monitoroperation_mode_monitorLogic block to monitor state of the operation mode
Numeric constantnumeric_constantProvides a constant numeric value configured by the user
Numeric inputnumeric_inputNumeric input of Voldeno module
PulseAtpulse_atSends a pulse at specified time
SchedulescheduleTimer switch with freely adjustable schedule. The block outputs a state (active/inactive) and an analog value based on the current schedule entry.
String constantstring_constantProvides a constant string value configured by the user
SwitchswitchLogic block representing a wall switch

# Process

NameIDDescription
Binary limiterbinary_limiterA 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 stringboolean_to_stringConverts a boolean value to a configurable text label.
Climate regulatorclimate_regulatorZonal 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 hubclimate_regulator_hubCentral, climate regulator hub - aggregates the heating or cooling requirements from zonal climate regulators and decides which should be enabled.
DelaydelayDelays the output state changes based on switch-on and switch-off delay durations
Delayed Pulsedelayed_pulseGenerates a delayed pulse at the output when triggered by a rising edge on the input
Door, windowdoor_window_monitorDoor and window monitor
Edge detectoredge_detectorDetects rising, falling, or both edges on a boolean input and generates a timed output pulse.
HTTP Requesthttp_requestPerforms 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).
HysteresishysteresisA 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.
IrrigationirrigationIrrigation system
JSON Get Booleanjson_get_booleanExtracts a boolean value from a JSON string using a dot-notation path.
JSON Get Numberjson_get_numberExtracts a numeric value from a JSON string using a dot-notation path.
JSON Get Stringjson_get_stringExtracts a string value from a JSON string using a dot-notation path.
Level to pulselevel_to_pulseConverts 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::Andlogic_andAND logic block
Logic::Notlogic_notNOT logic block - negates the input binary value
Logic::Orlogic_orOR logic block
Math::Absmath_absReturns the absolute value of the input
Math::Addmath_addAdds all block input values
Math::Averagemath_averageAverages all block input values
Math::Ceilmath_ceilRounds the input value up to the nearest integer
Math::Dividemath_divideDivides the I1 input block value by the value of I2 input
Math::Floormath_floorRounds the input value down to the nearest integer
Math::Maxmath_maxOutputs the maximum value from all block input values
Math::Minmath_minOutputs the minimum value from all block input values
Math::Modulomath_moduloReturns the remainder after dividing I1 by I2
Math::Multiplymath_multiplyMultiplies all block input values
Math::Randommath_randomGenerates a pseudo-random number in the range [0.0, 1.0) on each rising edge of the trigger.
Math::Roundmath_roundRounds the input value to the nearest integer
Math::Subtractmath_subtractSubtracts I2, I3 and I4 block input values from the I1 input
Motor axismotor_axisSingle-axis motor controller with homing support. Drives a motor to a target position using encoder pulse counting or time-based step control.
Moving averagemoving_averageComputes a running average of incoming numeric values using a selectable algorithm (EMA or CA)
Number to stringnumber_to_stringConverts a numeric value to its string representation.
Numeric latchnumeric_latchCaptures 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 predicatenumeric_predicateEvaluates a numeric input against a configured comparison operator and reference value(s), outputting a boolean result.
Numeric throttlenumeric_throttleRate-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::PublishpubsubPublishes 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 counterpulse_counterCounts rising-edge pulses up and/or down within configurable limits. Supports clamp and wrap overflow modes.
Pulse gatepulse_gateConditionally 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 throttlepulse_throttleSuppresses 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.
SequencersequencerLogic block representing a sequence
ShadingshadingControls shading devices like blinds, curtains, and awnings
String formatstring_formatFormats 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 latchstring_latchCaptures 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.
ToggletoggleConverts 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 Pulsevariable_delayed_pulseGenerates a delayed pulse at the output when triggered by a rising edge. Delay duration is provided via input.

# Output

NameIDDescription
Mode controlleroperation_mode_controllerLogic block to control state of the operation mode
RelayrelayRelay output of Voldeno module
Overview of all available logic blocks.