Skip to content
Elausys

HyperVisu / Logic Engine

Logic Engine — Concepts & Canvas

Functions, sheets, ports and wires — and the canvas where you build them.

elausys · 31 July 2026
On this page

Open Logic from the admin sidebar. The page is a canvas of function cards connected by wires, organized in sheets. Everything you edit stays local in the browser until you click Save.

Logic page, desktop browser.

Concepts

  • A function is one configured instance of a logic block from the catalog — one Thermostat, one Staircase timer. The catalog ships with the server; a server update is what adds new block types.
  • Functions live on sheets — tabs that organize the canvas ("Heating", "Shading", …). A special Unfiled sheet collects functions that belong to no sheet.
  • A function's inputs bind to one of four source kinds:
    1. a device object (a widget's communication object),
    2. another function's output (a wire on the canvas),
    3. a fixed constant,
    4. a service reading — astronomical clock, weather or energy price.
  • A function's outputs write to device objects, trigger actions — a scenario, an automation, a global command, a notification, an e-mail (see “Function Setup & Outputs”) — or feed other functions.
  • Edit and Monitor are two modes of the same canvas: Edit changes the wiring, Monitor shows it running (see “Logic Validation, Monitoring & Safety”). Switch between them in the page header.
  • Nothing reaches the server until you click Save. The button shows how many functions you touched, e.g. Save (3).

📘 Note: Sheets are organization only — a function runs the same wherever it is filed.

The canvas

Placing functions. Open the palette drawer; it has three tabs:

TabContains
BlocksThe block catalog, in seven groups (see “Logic Block Reference”). Drag a block onto the canvas to create a function. Each block has a help panel explaining how it behaves.
DevicesYour widgets and their objects — drag one onto the canvas to use it as a source or a target.
ServicesAstronomical clock, weather and energy price readings.

Wiring. Drag from an output port to an input port. Wires are typed: connecting incompatible ports is refused at the moment you drop the wire, with the reason shown. Where a conversion makes sense (e.g. BOOL → NUM), you can explicitly choose a coercion instead.

Variadic inputs. Some blocks accept a variable number of inputs (gates, Calculated value, Selector, Radio buttons). Use add input on the card, up to the block's maximum.

Per-input options. Each bound input can carry:

  • a type coercion (as above);
  • a stale-input watchdog — a timeout in seconds after which a silent source is treated as failed, with a policy: hold the last value or force off. Use it on safety-relevant sensors (wind, presence).

Find. Press Ctrl/⌘ K to search every sheet at once — by function name, block type, category, room, or state (error, suspended). Picking a result jumps to it.

Sheets. Create, rename, reorder and delete sheets from the sheet tabs. Deleting a sheet does not delete its functions — they move to Unfiled and keep running.

Palette drawer open on the Blocks tab with the seven groups visible.

Service sources

The Services tab of the palette offers server-side readings as input sources — no physical sensor needed:

SourceReadings
Astronomical clockBetween two events, at an event, before/after an event with a ± minutes offset, sun elevation, sun azimuth.
WeatherCurrent readings from the weather service (temperature, brightness proxy, wind, …).
Energy priceThe current electricity price and tier.

Each source reports whether it is available on this server — and if not, why (weather service not configured, no energy-price API key, location not set). Configure the underlying services in “Weather Service” and “Energy Price Service”; sun calculations depend on the coordinates set in “Network & Time Settings”.

Service reading dialog.

Frequently Asked Questions

When do canvas edits take effect?

Edits stay in the browser until you click Save. The button shows how many functions have been changed.

Does deleting a sheet stop its functions?

No. Its functions move to Unfiled and keep running. Sheets only organize the canvas.

What can feed a function input?

A device object, another function’s output, a constant or a service reading such as weather, energy price or the astronomical clock.

Why can’t I connect two ports?

Ports are typed, so incompatible connections are refused. Where appropriate, choose an explicit type coercion.

How can I handle a sensor that stops reporting?

Configure the input’s stale-input watchdog with a timeout and a policy to hold the last value or force off.

Keep exploring

Find the other guides for this product in the documentation.

Back to Logic Engine