Skip to content

Commit 564cfd3

Browse files
Tiwasclaude
andcommitted
v1.10.0 (test): Circadian Light Group with form UI, solar/lux anchors and 24 flow cards
New device that adjusts dim and color temperature for a group of real lights following a circadian rhythm. Anchor modes per phase: time, solar event (14 events via suncalc with offset and polar fallback) or lux sensor crossing (rising/falling with fallback). Light profile: per-phase dim + temperature with smooth interpolation, plus red mode threshold — color-capable lights shift to red as calculated temperature drops below the threshold, with saturation scaling linearly. Outdoor source: astronomical, Homey lux sensor, Open-Meteo, MET.no or external value pushed via Flow. Form-based pair + repair UI replaces the JSON textarea, with sensor pickers, event dropdowns and per-light tweaks (enable, prewarm, allow red, min/max dim). The device tile always shows the calculated dim/temp regardless of on/off or paused state — the on/off only gates whether updates are pushed to the underlying lights. 24 new/updated flow cards: triggers (phase changed, red mode started/ended, paused/resumed, turned on/off, plus app-level solar event occurred); conditions (is in phase, red mode active, is paused, is on); actions (pause with sec/min/hour unit, pause until time, pause until solar, turn on/off/ toggle, set red threshold, apply temporary state, force red mode, apply now, set outdoor lux). Stable channel still ships v1.9.2 — v1.10.0 is in test only. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent ce9b71c commit 564cfd3

40 files changed

Lines changed: 2614 additions & 441 deletions

CHANGELOG.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,30 @@ All notable changes to Smart (Components) Toolkit for Homey will be documented i
66
77
---
88

9-
## [1.9.2] - February 2026 (Current)
9+
## [1.10.0] - May 2026 (Test channel)
10+
11+
> Available only via [the test channel](https://homey.app/a/no.tiwas.booleantoolbox/test/). Stable channel still ships v1.9.2.
12+
13+
### ✨ New Device: Circadian Light Group
14+
A virtual light device that follows a circadian rhythm — adjusts dim and color temperature for a group of real lights based on time, sun position or ambient lux, with optional red mode at night.
15+
16+
- **Anchor modes (per phase)**: clock time, solar event (sunrise, sunset, civil/nautical/astronomical dawn/dusk, golden hour morning/evening, blue hour morning/evening, solar noon, solar midnight) with offset and polar fallback, or lux sensor crossing (rising/falling) with polar/cloudy fallback.
17+
- **Light profile**: per-phase dim + temperature, smooth interpolation, red mode threshold (lower temperature → more saturated red on color-capable lights).
18+
- **Outdoor source**: astronomical, Homey lux sensor, weather API (Open-Meteo, MET.no) or external value pushed via Flow.
19+
- **Per-light settings**: enable, prewarm before on, allow red mode, min/max dim.
20+
- **Form-based pair + repair**: full UI for schedule, profile, sensors and per-light tuning. JSON config kept available as advanced fallback.
21+
- **Live tile**: dim/temperature on the device tile always reflects the calculated target, regardless of on/off or paused state.
22+
23+
### ✨ New Flow Cards
24+
**Triggers**: phase changed, red mode started/ended, paused/resumed, turned on/off, target changed, error occurred, outdoor light requested. Plus app-level **Solar event occurred** with all 14 events and offset, usable from any flow.
25+
26+
**Conditions**: is in phase, red mode active, is paused, is on.
27+
28+
**Actions**: pause (with seconds/minutes/hours unit), pause until time, pause until solar event, resume, turn on/off/toggle, set red threshold, apply temporary state (dim/temp/saturation/force red — overwritten on next scheduler tick), force red mode (on/off/clear with optional duration), apply now, set outdoor lux.
29+
30+
---
31+
32+
## [1.9.2] - February 2026 (Current stable)
1033

1134
### 🐛 Bug Fixes
1235
- Fixed conditional gate condition cards to correctly return boolean values

HOMEY_COMMUNITY_LISTING.md

Lines changed: 80 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
![xlarge|690x483](upload://iSxhJPUltgcgPQ7gy4z5iisCv5F.jpeg)
22

3-
# Smart (Components) Toolkit v1.9.2
3+
# Smart (Components) Toolkit v1.9.2 stable / **v1.10.0 test**
44

55
> **📚 Full Documentation:** https://tiwas.github.io/SmartComponentsToolkit/
66
@@ -10,173 +10,120 @@ Replace complex flow networks with powerful logic devices controlled by dynamic
1010

1111
---
1212

13-
## Device Types at a Glance
13+
## 🧪 New in test (v1.10.0): Circadian Light Group
1414

15-
| Device | Purpose |
16-
|--------|---------|
17-
| **Logic Device** | Boolean logic with visual wizard. Combine device states into TRUE/FALSE using formulas like `A AND B`. |
18-
| **Logic Unit** | Advanced boolean logic with multiple formulas per device. JSON configuration. |
19-
| **State Device** | Scene management. Capture states at setup, apply with one action. "Virtual device". |
20-
| **State Capture Device** | Dynamic state capture at runtime. Push/pop stack for temporary changes. |
15+
A virtual **light device** that adjusts brightness and color temperature for a group of real lights — automatically following a circadian rhythm. Available now in the [test channel](https://homey.app/a/no.tiwas.booleantoolbox/test/) only; the stable channel still ships v1.9.2 without this device.
2116

22-
## Flow Cards (no device needed)
17+
**Why use it?**
18+
- Bright cool light during the day, warm dim light in the evening, deep red at night to preserve melatonin and night vision.
19+
- Works at any latitude — pick clock times, solar events, or lux-sensor thresholds per phase.
20+
- Doesn't turn lights on or off; it only adjusts already-on lights, so it never fights with your other automations.
2321

24-
| Flow Card | Purpose |
25-
|-----------|---------|
26-
| **Conditional Gates** | Simple GO/NO GO flow control without needing variables or devices. |
27-
| **Waiter Gates** | Pause flow until a device capability reaches a specific value. |
28-
| **Evaluate Expression** | Range checking and value mapping with AND/OR logic. |
22+
### Anchor modes (mix and match per phase)
2923

30-
---
24+
| Mode | Description |
25+
|------|-------------|
26+
| **Time** | Fixed clock time (HH:MM). Best near the equator. |
27+
| **Solar event** | Sunrise, sunset, civil/nautical/astronomical dawn/dusk, golden hour, blue hour, solar noon/midnight — with offset minutes and a polar fallback time. |
28+
| **Lux sensor** | A real lux sensor crosses a configurable threshold (rising or falling). Falls back to a fixed time until the first crossing of the day. |
3129

32-
## State Capture Device
30+
### Light profile
3331

34-
A device type for dynamic state capture with templates, named slots, and push/pop stack operations:
32+
- Per-phase **dim** and **temperature** with smooth interpolation between anchors.
33+
- **Red mode threshold**: when the calculated temperature drops below the threshold, color-capable lights shift to red. Saturation scales with how deep below the threshold you are.
34+
- Per-light tweaks: enable/disable, prewarm before on, allow red mode, min/max dim.
3535

36-
- **Template-based:** Define which devices/capabilities to capture (values read at runtime)
37-
- **Named states:** Store up to 50 named snapshots per device
38-
- **Push/Pop stack:** Temporary state management with up to 20 levels
39-
- **Backup/Restore:** Export all named states as JSON, import to restore or transfer
40-
- **Homey tokens:** Use dynamic state names from flow variables
36+
### Outdoor light source
4137

42-
**Example use case:**
43-
```
44-
WHEN: Doorbell rings
45-
THEN: Push current state to stack
46-
THEN: Set all lights to 100%
47-
THEN: Wait 5 minutes
48-
THEN: Pop state (restore previous)
49-
```
38+
Choose how the device knows how bright it is outside:
39+
- **Astronomical** (sun-elevation calculation)
40+
- **Homey lux sensor**
41+
- **Open-Meteo / MET.no** (radiation-based estimate)
42+
- **External value** pushed from a Flow
5043

51-
<a href="https://tiwas.github.io/SmartComponentsToolkit/docs/state-capture-device.html" target="_blank">→ Read State Capture Device Documentation</a>
44+
### 24 new flow cards
5245

53-
---
46+
**Triggers**: phase changed, red mode started/ended, paused/resumed, turned on/off, target changed, error, outdoor light requested. Plus an **app-level "Solar event occurred"** card with all 14 events + offset, usable from any flow.
5447

55-
## Conditional Gates (NEW in v1.9.0) — Flow Cards
48+
**Conditions**: is in phase, red mode active, is paused, is on.
5649

57-
A lightweight alternative to variables and virtual switches for flow control. **No device needed** - just use the flow cards directly. Gates have two states: **GO** or **NO GO**.
50+
**Actions**: pause (sec/min/hour), pause until time, pause until solar event, resume, turn on/off/toggle, set red threshold, **apply temporary state** (override dim/temp/saturation/red — restored on next tick, perfect for testing or quick "moods"), **force red mode** (with optional duration), apply now, set outdoor lux.
5851

59-
**Why use Conditional Gates?**
60-
- No need to create devices or variables just to control flow execution
61-
- Named gates give you overview of all your flow controls in one place
62-
- Simple GO/NO GO logic is perfect for many automation scenarios
52+
<a href="https://tiwas.github.io/SmartComponentsToolkit/docs/circadian-light-group.html" target="_blank">→ Read full Circadian Light Group guide</a>
6353

64-
**Flow Cards:**
54+
<a href="https://homey.app/a/no.tiwas.booleantoolbox/test/" target="_blank">→ Install v1.10.0 test version</a>
6555

66-
| Card Type | Card | Description |
67-
|-----------|------|-------------|
68-
| **Condition** | Gate is GO/NO GO | Check if a gate is currently GO or NO GO |
69-
| **Then** | Conditional Gate: Wait for GO | Pauses flow until the gate becomes GO (with timeout) |
70-
| **Then** | Modify Conditional Gate | Set a gate to GO or NO GO by name |
56+
---
7157

72-
**Example use case:**
73-
```
74-
Flow 1 - Motion detected:
75-
WHEN: Motion sensor triggered
76-
THEN: Modify Conditional Gate "allow_lights" → GO
77-
78-
Flow 2 - Turn on lights:
79-
WHEN: Door opened
80-
AND: Gate "allow_lights" is GO
81-
THEN: Turn on lights
82-
83-
Flow 3 - Disable at night:
84-
WHEN: Time is 23:00
85-
THEN: Modify Conditional Gate "allow_lights" → NO GO
86-
```
58+
## What's already in stable (v1.9.2)
8759

88-
---
60+
| Device | Purpose |
61+
|--------|---------|
62+
| **Logic Device** | Boolean logic with visual wizard. Combine device states into TRUE/FALSE using formulas like `A AND B`. |
63+
| **Logic Unit** | Advanced boolean logic with multiple formulas per device. JSON configuration. |
64+
| **State Device** | Scene management — capture states at setup, apply with one action. |
65+
| **State Capture Device** | Dynamic state capture at runtime. Push/pop stack for temporary changes, named slots, JSON backup/restore. |
8966

90-
## Waiter Gates — Flow Cards
67+
| Flow Card (no device needed) | Purpose |
68+
|------------------------------|---------|
69+
| **Conditional Gates** | Simple GO/NO GO flow control without variables or devices. |
70+
| **Waiter Gates** | Pause flow until a device capability reaches a target value. |
71+
| **Evaluate Expression** | Range checking and value mapping with AND/OR logic. |
9172

92-
Flow cards that pause execution until a device capability reaches a target value. **No device needed** - just use the flow cards directly.
73+
<a href="https://tiwas.github.io/SmartComponentsToolkit/docs/devices.html" target="_blank">→ Complete Device Guide</a>
9374

94-
**Flow Cards:**
75+
### Quick examples
9576

96-
| Card Type | Card | Description |
97-
|-----------|------|-------------|
98-
| **Then** | Wait until device capability becomes X | Pauses flow until capability matches target (YES) or timeout (NO) |
99-
| **Then** | Control Waiter Gate | Enable, disable or stop a waiter gate by ID |
77+
**Doorbell ring → push state, change lights, restore:**
78+
```
79+
WHEN: Doorbell rings
80+
THEN: Push current state to stack
81+
THEN: Set all lights to 100%
82+
THEN: Wait 5 minutes
83+
THEN: Pop state (restore previous)
84+
```
10085

101-
**Example use case:**
86+
**Conditional Gate gating two flows:**
87+
```
88+
Flow 1 — WHEN: Motion sensor triggered
89+
THEN: Modify Conditional Gate "allow_lights" → GO
90+
91+
Flow 2 — WHEN: Door opened
92+
AND: Gate "allow_lights" is GO
93+
THEN: Turn on lights
94+
```
95+
96+
**Waiter Gate waiting for temperature:**
10297
```
10398
WHEN: Button pressed
10499
THEN: Turn on coffee machine
105-
THEN: Wait until coffee machine temperature ≥ 90°C (timeout: 5 min)
100+
THEN: Wait until coffee machine temperature ≥ 90°C (timeout 5 min)
106101
→ YES: Send notification "Coffee ready!"
107-
→ NO: Send notification "Coffee machine timeout"
102+
→ NO: Send notification "Coffee machine timeout"
108103
```
109104

110105
---
111106

112-
## Evaluate Expression — Flow Card
113-
114-
A powerful flow card for range checking and value mapping. **No device needed** - use directly in your flows.
115-
116-
**Flow Card:** `Evaluate [[input]] [[op1]] min [[logical_op]] [[op2]] max with rules [[rules]]`
117-
118-
- Check if a value is within a range (e.g., temperature between 18-22°C)
119-
- Use AND/OR logic for complex conditions
120-
- Returns output value and error message tokens
121-
122-
**Example:** Check if temperature is comfortable (18-24°C):
123-
- Input: temperature token
124-
- Rules: `18,24` (min, max)
125-
- Operators: `` AND ``
126-
127-
---
128-
129-
## Device Types
130-
131-
**Logic Device** - Recommended for beginners
132-
- Visual pairing wizard with zone/room selection
133-
- Single formula per device
134-
- State changed trigger
135-
136-
**Logic Unit** - For advanced users
137-
- Multiple formulas per device
138-
- Full JSON configuration
139-
- Dynamic input expansion (2-10 inputs)
140-
141-
**State Device** - Pre-defined scene management
142-
- Configure device states during setup
143-
- Apply states with a single flow action
144-
- Ideal for fixed scenes (movie mode, away mode, etc.)
145-
146-
**State Capture Device** - Dynamic state management
147-
- Capture device states at runtime using templates
148-
- Named states for scene snapshots
149-
- Push/pop stack for temporary interruptions
150-
- Backup/restore via JSON export/import
151-
152-
**Logic Unit X** - Deprecated
153-
- Fixed input counts (2, 3, 4...10)
154-
- Still functional but not recommended for new setups
155-
156-
<a href="https://tiwas.github.io/SmartComponentsToolkit/docs/devices.html" target="_blank">→ Complete Device Guide</a>
157-
158-
---
159-
160107
## Documentation
161108

162-
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/getting-started.html" target="_blank">**Getting Started Guide**</a> - Create your first logic device in 5 minutes
163-
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/devices.html" target="_blank">**Device Types Guide**</a> - Understanding all device types
164-
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/state-device.html" target="_blank">**State Device**</a> - Pre-defined scene management
165-
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/state-capture-device.html" target="_blank">**State Capture Device**</a> - Dynamic state capture and restore
166-
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/waiter-gates.html" target="_blank">**Waiter Gates**</a> - Flow control with wait conditions
167-
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/conditional-gates.html" target="_blank">**Conditional Gates**</a> - Simple GO/NO GO flow control
168-
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/flow-cards.html" target="_blank">**Flow Cards Reference**</a> - Complete guide to all available cards
169-
109+
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/getting-started.html" target="_blank">**Getting Started Guide**</a>
110+
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/devices.html" target="_blank">**Device Types Guide**</a>
111+
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/circadian-light-group.html" target="_blank">**Circadian Light Group**</a> 🧪 (test only)
112+
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/state-device.html" target="_blank">**State Device**</a>
113+
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/state-capture-device.html" target="_blank">**State Capture Device**</a>
114+
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/conditional-gates.html" target="_blank">**Conditional Gates**</a>
115+
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/waiter-gates.html" target="_blank">**Waiter Gates**</a>
116+
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/flow-cards.html" target="_blank">**Flow Cards Reference**</a>
170117

171118
---
172119

173120
## Installation and Links
174121

175-
* **Homey App Store:** <a href="https://homey.app/en-no/app/no.tiwas.booleantoolbox/" target="_blank">Install Smart (Components) Toolkit</a>
176-
* **Install test version:** <a href="https://homey.app/a/no.tiwas.booleantoolbox/test/" target="_blank">Install test version</a>
177-
* **GitHub Repo (source code):** <a href="https://github.com/tiwas/SmartComponentsToolkit" target="_blank">https://github.com/tiwas/SmartComponentsToolkit</a>
178-
* **Online Emulator:** <a href="https://tiwas.github.io/SmartComponentsToolkit/tools/emulator.html" target="_blank">https://tiwas.github.io/SmartComponentsToolkit/tools/emulator.html</a>
179-
* **Formula Builder:** <a href="https://tiwas.github.io/SmartComponentsToolkit/tools/formula-builder.html" target="_blank">https://tiwas.github.io/SmartComponentsToolkit/tools/formula-builder.html</a>
122+
* **Homey App Store (stable v1.9.2):** <a href="https://homey.app/en-no/app/no.tiwas.booleantoolbox/" target="_blank">Install Smart (Components) Toolkit</a>
123+
* **Test channel (v1.10.0 — Circadian Light Group):** <a href="https://homey.app/a/no.tiwas.booleantoolbox/test/" target="_blank">Install test version</a>
124+
* **GitHub Repo:** <a href="https://github.com/tiwas/SmartComponentsToolkit" target="_blank">github.com/tiwas/SmartComponentsToolkit</a>
125+
* **Online Emulator:** <a href="https://tiwas.github.io/SmartComponentsToolkit/tools/emulator.html" target="_blank">Boolean Logic Emulator</a>
126+
* **Formula Builder:** <a href="https://tiwas.github.io/SmartComponentsToolkit/tools/formula-builder.html" target="_blank">Formula Builder</a>
180127

181128
---
182129

@@ -187,7 +134,7 @@ Found a bug or have a suggestion? Please report it:
187134
* **GitHub Issues:** <a href="https://github.com/tiwas/SmartComponentsToolkit/issues" target="_blank">Report here</a>
188135
* **This Forum Thread:** Reply below!
189136

190-
All feedback is greatly appreciated and helps shape the future of this app.
137+
Test-channel feedback on Circadian Light Group is especially appreciated — that's where polish happens before stable release.
191138

192139
---
193140

@@ -199,4 +146,4 @@ If you find Smart (Components) Toolkit useful, consider supporting its developme
199146

200147
---
201148

202-
**Smart (Components) Toolkit** - Simplify complex logic and state management in your Homey flows ⚡
149+
**Smart (Components) Toolkit** Simplify complex logic, state management and circadian lighting in your Homey flows ⚡

README.md

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,12 @@
66
77
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.
88

9-
[![Version](https://img.shields.io/badge/version-1.9.2-blue.svg)](https://github.com/Tiwas/SmartComponentsToolkit)
9+
[![Stable](https://img.shields.io/badge/stable-1.9.2-blue.svg)](https://homey.app/en-no/app/no.tiwas.booleantoolbox/)
10+
[![Test](https://img.shields.io/badge/test-1.10.0-orange.svg)](https://homey.app/a/no.tiwas.booleantoolbox/test/)
1011
[![Homey](https://img.shields.io/badge/Homey-5.0+-green.svg)](https://homey.app)
1112

13+
> **🧪 v1.10.0 in test channel** — adds the new **Circadian Light Group** virtual device with time/solar/lux anchors, red mode threshold, outdoor light providers and a wide set of new flow cards. Install via [test channel](https://homey.app/a/no.tiwas.booleantoolbox/test/). [Read the guide →](https://tiwas.github.io/SmartComponentsToolkit/docs/circadian-light-group.html)
14+
1215
---
1316

1417
## 🛠️ Interactive Tools
@@ -107,6 +110,28 @@ THEN: Pop state (restore previous)
107110

108111
---
109112

113+
### Circadian Light Group 🧪 *(test channel only — v1.10.0)*
114+
115+
Virtual light device that adjusts brightness and color temperature for a group of real lights based on time, sun position or ambient lux.
116+
117+
| Feature | Description |
118+
|---------|-------------|
119+
| **Schedule** | Per anchor: clock time / solar event / lux sensor crossing |
120+
| **Solar events** | Sunrise, sunset, civil/nautical/astronomical dawn/dusk, golden hour, blue hour, solar noon/midnight — with offset and polar fallback |
121+
| **Light profile** | Per-phase dim + temperature, red mode threshold |
122+
| **Outdoor source** | Astronomical / lux sensor / Open-Meteo / MET.no / external |
123+
| **Per-light** | Enable, prewarm, allow red mode, min/max dim |
124+
125+
**Key features:**
126+
- Mix-and-match anchor modes per phase (e.g. morning by clock, evening by sunset)
127+
- Red mode threshold: lights with color support shift to red when calculated temperature drops below threshold
128+
- Live tile shows calculated values regardless of on/off or paused state
129+
- 24 flow cards: pause-until, force red, apply temporary state, phase-changed trigger, app-level solar event trigger and more
130+
131+
**Install via test channel:** [homey.app/a/no.tiwas.booleantoolbox/test/](https://homey.app/a/no.tiwas.booleantoolbox/test/)
132+
133+
[📚 Read Circadian Light Group guide →](https://tiwas.github.io/SmartComponentsToolkit/docs/circadian-light-group.html)
134+
110135
---
111136

112137
## 🎛️ Flow Cards (No Device Needed)

0 commit comments

Comments
 (0)