Skip to content

Repository files navigation

Smart (Components) Toolkit for Homey

Name Change: This app was previously known as "Boolean Toolbox". The name was changed to "Smart (Components) Toolkit" to better reflect the expanded functionality beyond just boolean logic - now including state management, scene control, and flow utilities.

📚 Full Documentation:https://tiwas.github.io/SmartComponentsToolkit/

Advanced logic and state management for your Homey automations. Create smart devices that react to multiple inputs with customizable formulas, and manage device states with powerful capture/restore functionality.

StableTestHomey

v1.10.23 test — restores the Logic Unit formula-result alarm and adds reliable Formula changed and Formula changed to... triggers with current and previous result tags.


🛠️ Interactive Tools

Test and build your logic before deploying:


🖥️ Smart (Components) Toolkit Widget (experimental)

A floating, always-on-top desktop widget that lets you run Homey flows from any platform you're working on, with local favorites organized into folders and live Homey notifications surfaced as on-screen toasts.

See apps/dashboard/README.md for setup, OAuth scopes and build instructions.


📦 Device Types

Composite Device

Combine the same capability from two or more Homey devices into one live virtual sensor, alarm, or text value.

FeatureDescription
SetupVisual pairing wizard - select capability → calculation → source devices
NumbersAverage, minimum, maximum, sum, median
BooleansAny/all, majority, count on, percentage on
Text / timeMost common, min/max, newest, circular average clock time
Flow triggersAny value change, or numeric change above a fixed/percentage threshold

📚 Read Composite Device guide →


Logic Device

The easiest way to create boolean logic with a visual pairing wizard.

FeatureDescription
SetupVisual pairing wizard - select zone → device → capability
InputsDynamic (2-10, auto-expands based on formula)
FormulasSingle formula per device
Best forSimple setups, beginners

📚 Read Logic Device guide →


Logic Unit

Powerful device for advanced users who need multiple formulas or prefer JSON configuration.

FeatureDescription
SetupQuick add with manual JSON configuration
InputsDynamic (2-10, auto-expands based on formula)
FormulasMultiple independent formulas per device
Best forAdvanced users, multi-formula needs

Note: Logic Unit X (2, 3, 4...10 inputs) are legacy devices with fixed input counts - use the new Logic Unit instead.

📚 Read Logic Unit guide →


State Device

Capture and restore device states. Create "scenes" by storing the current state of multiple devices and applying them later with a single action.

FeatureDescription
SetupVisual pairing wizard - select zones and devices
ValuesFixed at setup time
Use casePredefined scenes (Movie Night, Cleaning, etc.)

Key features:

  • Capture current state of multiple devices across zones
  • Apply stored state with a single flow action
  • "Reset All" option to turn off other State Devices first
  • Hierarchical execution with configurable delays

📚 Read State Device guide →


State Capture Device

Dynamic state capture with templates, named slots, and push/pop stack operations.

FeatureDescription
SetupVisual pairing wizard - define template of devices/capabilities
ValuesCaptured at runtime (not fixed)
Named statesStore multiple named snapshots
StackPush/pop for temporary state management

Key features:

  • Capture current device states to named slots at runtime
  • Push/pop stack for temporary state changes (e.g., doorbell interruption)
  • Dynamic state names with Homey tokens support
  • Max 50 named states, max 20 stack depth per device

Example use case:

WHEN: Doorbell rings
THEN: Push current state to stack
THEN: Set all lights to 100%
THEN: Wait 5 minutes
THEN: Pop state (restore previous)

📚 Read State Capture Device guide →


Circadian Light Group (stable v1.10.16 / test v1.10.23)

Virtual light device that adjusts brightness and color temperature for a group of real lights based on time, sun position or ambient lux.

FeatureDescription
SchedulePer anchor: clock time / solar event / lux sensor crossing
Solar eventsSunrise, sunset, civil/nautical/astronomical dawn/dusk, golden hour, blue hour, solar noon/midnight — with offset and polar fallback
Light profilePer-phase dim + temperature, red mode threshold
Outdoor sourceAstronomical / lux sensor / Open-Meteo / MET.no / external
Per-lightEnable, prewarm, allow red mode, min/max dim

Key features:

  • Mix-and-match anchor modes per phase (e.g. morning by clock, evening by sunset)
  • Red mode threshold: lights with color support shift to red when calculated temperature drops below threshold
  • Live tile shows calculated values regardless of on/off or paused state
  • 24 flow cards: pause-until, force red, apply temporary state, phase-changed trigger, app-level solar event trigger and more

Install via test channel:homey.app/a/no.tiwas.booleantoolbox/test/

📚 Read Circadian Light Group guide →


🎛️ Flow Cards (No Device Needed)

These flow cards work independently - no device setup required.

Conditional Gates

Simple GO/NO GO flow control without needing variables or devices. Gates persist in memory until changed.

FeatureDescription
StatesGO (open) or NO GO (closed)
Wait conditionPause flow until gate becomes GO (with timeout)
ControlOpen/close gates from any flow

Flow Cards:

  • Gate is GO/NO GO(condition) - Check gate state instantly
  • Conditional Gate: Wait for GO(condition) - Pause until gate opens or timeout
  • Modify Conditional Gate(action) - Set gate to GO, NO GO, or Toggle

Example:

Flow 1 - Motion detected:
WHEN: Motion sensor triggered
THEN: Modify Conditional Gate "allow_lights" → GO
Flow 2 - Turn on lights:
WHEN: Door opened
AND: Gate "allow_lights" is GO
THEN: Turn on lights
Flow 3 - Disable at night:
WHEN: Time is 23:00
THEN: Modify Conditional Gate "allow_lights" → NO GO

📚 Read Conditional Gates guide →


Waiter Gates

Waiter Gates let your flows pause and wait for device states to change, with YES/NO outputs:

FeatureDescription
Wait conditionPause flow until device capability reaches target value
YES pathValue matches (or already matched)
NO pathTimeout expired before match

Flow Cards:

  • Wait until device capability becomes value(condition) - Waits with timeout
  • Control waiter gate(action) - Enable/disable/stop a waiter by ID
  • Wait(action) - Simple delay (basic pause without device monitoring)

📚 Read Waiter Gates guide →


Evaluate Expression

Range checking and value mapping with AND/OR logic.

  • Check if a value is within a range (e.g., temperature between 18-22°C)
  • Use AND/OR logic for complex conditions
  • Returns output value and error message tokens

Example: Check if temperature is comfortable (18-24°C):

  • Input: temperature token
  • Rules: 18,24 (min, max)
  • Operators: AND

📚 Read Flow Cards reference →


🚀 Quick Start

1. Add a Device

Logic Device (recommended for beginners):

  • Go to DevicesAdd DeviceSmart (Components) ToolkitLogic Device
  • Follow the pairing wizard to select inputs
  • Configure formula in device settings

Other devices:

  • Logic Unit, State Device, State Capture Device - same process, different wizards

2. Write Formulas (Logic devices)

[
{
"id": "formula_1",
"name": "Motion & Dark",
"expression": "A AND B",
"enabled": true,
"timeout": 60
}
]

Operators:AND, OR, XOR, NOT (plus &, |, ^, !)

3. Use in Flows

WHEN: Formula [motion_detected] changed to TRUE
THEN: Turn on lights

📚 Read complete setup guide →


🎮 Flow Cards

Triggers (WHEN)

  • Formula result changed to TRUE/FALSE
  • Formula timed out
  • State changed (Logic Device only)
  • State was captured/applied (State Capture Device)

Conditions (AND)

  • Formula result is...
  • Formula has timed out
  • Gate is GO / NO GO (Conditional Gates)
  • Conditional Gate: Wait for GO (Conditional Gates)
  • Captured state exists (State Capture Device)
  • Stack is empty / Stack depth is... (State Capture Device)
  • Wait until device capability becomes value (Waiter Gates)

Actions (THEN)

  • Set input value for formula
  • Evaluate formula / Re-evaluate all
  • Evaluate expression (Range checking)
  • Apply state (State Device)
  • Capture/Apply/Delete state, Push/Pop/Peek/Clear stack (State Capture Device)
  • Modify Conditional Gate (Conditional Gates)
  • Control waiter gate (Waiter Gates)
  • Wait (Simple delay)

📚 See all flow cards →


💡 Key Features

Dynamic Input Expansion

Start with 2 inputs, grow to 10 automatically:

{"expression": "A AND B AND C AND D"}
// Device auto-expands to 4 inputs!

First Impression Mode

Lock inputs at first value for sequence-based logic:

{"firstImpression": true, "timeout": 30}

Multiple Independent Formulas (Logic Unit only)

Each formula maintains its own input states:

[
{"id": "day_mode", "expression": "A AND B"},
{"id": "night_mode", "expression": "A OR B"}
]

JSON Auto-Formatting

Paste ugly JSON, get beautiful formatting on save. Works in all settings fields.


📚 Documentation


🤝 Support & Community

Support Development

If this app makes your life easier, consider buying me a coffee ☕

PayPal


📄 License & Credits

Created by Lars Kvanum (@Tiwas)

This app is provided as-is. Use at your own risk.


Smart (Components) Toolkit - Smarter automations with advanced logic and state management 🚀

About

Attempting to create boolean logic ports for Homey

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages