Skip to content

Commit db77bd3

Browse files
committed
Update docs and fix conditional gate bugs for v1.9.2
- Fix conditional gate condition cards to return boolean values - Fix dropdown argument extraction for gate state/modify cards - Improve gate state handling in WaiterManager - Update README, CHANGELOG, and community listing to v1.9.2 - Add Conditional Gates and Evaluate Expression to all docs - Add Conditional Gates nav link across all HTML doc pages - Fix broken ../README.md nav links to ../index.html
1 parent 03232db commit db77bd3

14 files changed

Lines changed: 459 additions & 59 deletions

CHANGELOG.md

Lines changed: 52 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,60 @@ All notable changes to Smart (Components) Toolkit for Homey will be documented i
66
77
---
88

9-
## [1.8.0] - December 2025 (Current)
9+
## [1.9.2] - February 2026 (Current)
1010

11-
### 📦 Device Types Overview
11+
### 🐛 Bug Fixes
12+
- Fixed conditional gate condition cards to correctly return boolean values
13+
- Fixed dropdown argument extraction for gate state and modify cards
14+
- Improved gate state handling in WaiterManager
15+
16+
---
17+
18+
## [1.9.1] - January 2026
19+
20+
### 🐛 Bug Fixes
21+
- Minor fixes
22+
23+
---
24+
25+
## [1.9.0] - January 2026
26+
27+
### ✨ New Features
28+
- **Conditional Gates** - Simple GO/NO GO flow control without needing variables or devices
29+
- Gate is GO/NO GO condition card - instant state check
30+
- Conditional Gate: Wait for GO - pause flow until gate opens (with timeout)
31+
- Modify Conditional Gate action - set GO, NO GO, or Toggle
32+
- Gates persist in memory until explicitly changed
33+
- Named gates for easy management across flows
34+
35+
---
36+
37+
## [1.8.2] - December 2025
1238

13-
This release includes improved documentation with clear descriptions of all device types:
39+
### 🐛 Bug Fixes
40+
- Fixed some errors with IDs in waiter gates
1441

15-
- **Logic Device** - Boolean logic with visual pairing wizard. Combine multiple device states (motion sensors, door contacts, etc.) into a single TRUE/FALSE output using formulas like `A AND B`.
16-
- **Logic Unit** - Advanced boolean logic with multiple formulas per device. For power users who need JSON configuration.
17-
- **State Device** - Scene management. Capture device states during setup and apply them later with a single action.
18-
- **State Capture Device** - Dynamic state capture at runtime. Push/pop stack for temporary state changes.
19-
- **Waiter Gates** (BETA) - Flow control that pauses and waits for device states to change.
42+
---
43+
44+
## [1.8.1] - December 2025
45+
46+
### 🐛 Bug Fixes
47+
- Bug fix + better hints
48+
49+
---
50+
51+
## [1.8.0] - December 2025
52+
53+
### 📦 Name Change & Scene Functionality
54+
- Name change from "Boolean Toolbox" to "Smart (Components) Toolkit"
55+
- Scene functionality live
56+
57+
### 📦 Device Types Overview
58+
- **Logic Device** - Boolean logic with visual pairing wizard
59+
- **Logic Unit** - Advanced boolean logic with multiple formulas per device
60+
- **State Device** - Scene management with predefined states
61+
- **State Capture Device** - Dynamic state capture at runtime
62+
- **Waiter Gates** - Flow control that pauses and waits for device states to change
2063

2164
### 🔗 Documentation
2265
- Full documentation available at: https://tiwas.github.io/SmartComponentsToolkit/
@@ -175,8 +218,7 @@ This release includes improved documentation with clear descriptions of all devi
175218

176219
## Roadmap (Future Considerations)
177220

178-
- Waiter Gates improvements based on user feedback
179-
- Additional flow card types
221+
- Improvements based on user feedback
180222
- Enhanced error reporting
181223
- Performance optimizations
182224
- More interactive documentation

HOMEY_COMMUNITY_LISTING.md

Lines changed: 84 additions & 7 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.8.0
3+
# Smart (Components) Toolkit v1.9.2
44

55
> **📚 Full Documentation:** https://tiwas.github.io/SmartComponentsToolkit/
66
@@ -18,7 +18,14 @@ Replace complex flow networks with powerful logic devices controlled by dynamic
1818
| **Logic Unit** | Advanced boolean logic with multiple formulas per device. JSON configuration. |
1919
| **State Device** | Scene management. Capture states at setup, apply with one action. "Virtual device". |
2020
| **State Capture Device** | Dynamic state capture at runtime. Push/pop stack for temporary changes. |
21-
| **Waiter Gates** | Flow control that pauses and waits for device states to change. |
21+
22+
## Flow Cards (no device needed)
23+
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. |
2229

2330
---
2431

@@ -45,6 +52,80 @@ THEN: Pop state (restore previous)
4552

4653
---
4754

55+
## Conditional Gates (NEW in v1.9.0) — Flow Cards
56+
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**.
58+
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
63+
64+
**Flow Cards:**
65+
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 |
71+
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+
```
87+
88+
---
89+
90+
## Waiter Gates — Flow Cards
91+
92+
Flow cards that pause execution until a device capability reaches a target value. **No device needed** - just use the flow cards directly.
93+
94+
**Flow Cards:**
95+
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 |
100+
101+
**Example use case:**
102+
```
103+
WHEN: Button pressed
104+
THEN: Turn on coffee machine
105+
THEN: Wait until coffee machine temperature ≥ 90°C (timeout: 5 min)
106+
→ YES: Send notification "Coffee ready!"
107+
→ NO: Send notification "Coffee machine timeout"
108+
```
109+
110+
---
111+
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+
48129
## Device Types
49130

50131
**Logic Device** - Recommended for beginners
@@ -68,11 +149,6 @@ THEN: Pop state (restore previous)
68149
- Push/pop stack for temporary interruptions
69150
- Backup/restore via JSON export/import
70151

71-
**Waiter Gates** *(BETA)* - Flow control
72-
- Pause flows until a device state changes
73-
- Wait for specific conditions to become true
74-
- Control flow execution with pause/resume gates
75-
76152
**Logic Unit X** - Deprecated
77153
- Fixed input counts (2, 3, 4...10)
78154
- Still functional but not recommended for new setups
@@ -88,6 +164,7 @@ THEN: Pop state (restore previous)
88164
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/state-device.html" target="_blank">**State Device**</a> - Pre-defined scene management
89165
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/state-capture-device.html" target="_blank">**State Capture Device**</a> - Dynamic state capture and restore
90166
- <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
91168
- <a href="https://tiwas.github.io/SmartComponentsToolkit/docs/flow-cards.html" target="_blank">**Flow Cards Reference**</a> - Complete guide to all available cards
92169

93170

README.md

Lines changed: 68 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
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.0-blue.svg)](https://github.com/Tiwas/SmartComponentsToolkit)
9+
[![Version](https://img.shields.io/badge/version-1.9.2-blue.svg)](https://github.com/Tiwas/SmartComponentsToolkit)
1010
[![Homey](https://img.shields.io/badge/Homey-5.0+-green.svg)](https://homey.app)
1111

1212
---
@@ -107,9 +107,48 @@ THEN: Pop state (restore previous)
107107

108108
---
109109

110-
### Waiter Gates (BETA)
110+
---
111+
112+
## 🎛️ Flow Cards (No Device Needed)
113+
114+
These flow cards work independently - no device setup required.
115+
116+
### Conditional Gates
117+
118+
Simple GO/NO GO flow control without needing variables or devices. Gates persist in memory until changed.
119+
120+
| Feature | Description |
121+
|---------|-------------|
122+
| **States** | GO (open) or NO GO (closed) |
123+
| **Wait condition** | Pause flow until gate becomes GO (with timeout) |
124+
| **Control** | Open/close gates from any flow |
125+
126+
**Flow Cards:**
127+
- **Gate is GO/NO GO** *(condition)* - Check gate state instantly
128+
- **Conditional Gate: Wait for GO** *(condition)* - Pause until gate opens or timeout
129+
- **Modify Conditional Gate** *(action)* - Set gate to GO, NO GO, or Toggle
130+
131+
**Example:**
132+
```
133+
Flow 1 - Motion detected:
134+
WHEN: Motion sensor triggered
135+
THEN: Modify Conditional Gate "allow_lights" → GO
136+
137+
Flow 2 - Turn on lights:
138+
WHEN: Door opened
139+
AND: Gate "allow_lights" is GO
140+
THEN: Turn on lights
141+
142+
Flow 3 - Disable at night:
143+
WHEN: Time is 23:00
144+
THEN: Modify Conditional Gate "allow_lights" → NO GO
145+
```
111146

112-
**⚠️ Experimental feature** - Feedback welcome!
147+
[📚 Read Conditional Gates guide →](https://tiwas.github.io/SmartComponentsToolkit/docs/conditional-gates.html)
148+
149+
---
150+
151+
### Waiter Gates
113152

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

@@ -128,6 +167,23 @@ Waiter Gates let your flows pause and wait for device states to change, with YES
128167

129168
---
130169

170+
### Evaluate Expression
171+
172+
Range checking and value mapping with AND/OR logic.
173+
174+
- Check if a value is within a range (e.g., temperature between 18-22°C)
175+
- Use AND/OR logic for complex conditions
176+
- Returns output value and error message tokens
177+
178+
**Example:** Check if temperature is comfortable (18-24°C):
179+
- Input: temperature token
180+
- Rules: `18,24` (min, max)
181+
- Operators: `` AND ``
182+
183+
[📚 Read Flow Cards reference →](https://tiwas.github.io/SmartComponentsToolkit/docs/flow-cards.html)
184+
185+
---
186+
131187
## 🚀 Quick Start
132188

133189
### 1. Add a Device
@@ -178,17 +234,21 @@ THEN: Turn on lights
178234
### Conditions (AND)
179235
- Formula result is...
180236
- Formula has timed out
237+
- Gate is GO / NO GO *(Conditional Gates)*
238+
- Conditional Gate: Wait for GO *(Conditional Gates)*
181239
- Captured state exists *(State Capture Device)*
182240
- Stack is empty / Stack depth is... *(State Capture Device)*
183-
- **Wait until device capability becomes value** *(Waiter Gates - BETA)*
241+
- Wait until device capability becomes value *(Waiter Gates)*
184242

185243
### Actions (THEN)
186244
- Set input value for formula
187245
- Evaluate formula / Re-evaluate all
246+
- Evaluate expression *(Range checking)*
188247
- Apply state *(State Device)*
189248
- Capture/Apply/Delete state, Push/Pop/Peek/Clear stack *(State Capture Device)*
190-
- **Control waiter gate** *(Waiter Gates - BETA)*
191-
- **Wait** *(Simple delay)*
249+
- Modify Conditional Gate *(Conditional Gates)*
250+
- Control waiter gate *(Waiter Gates)*
251+
- Wait *(Simple delay)*
192252

193253
[📚 See all flow cards →](https://tiwas.github.io/SmartComponentsToolkit/docs/flow-cards.html)
194254

@@ -229,9 +289,9 @@ Paste ugly JSON, get beautiful formatting on save. Works in all settings fields.
229289
- [Device Types Guide](https://tiwas.github.io/SmartComponentsToolkit/docs/devices.html)
230290
- [State Device](https://tiwas.github.io/SmartComponentsToolkit/docs/state-device.html)
231291
- [State Capture Device](https://tiwas.github.io/SmartComponentsToolkit/docs/state-capture-device.html)
232-
- [Waiter Gates (BETA)](https://tiwas.github.io/SmartComponentsToolkit/docs/waiter-gates.html)
292+
- [Conditional Gates](https://tiwas.github.io/SmartComponentsToolkit/docs/conditional-gates.html)
293+
- [Waiter Gates](https://tiwas.github.io/SmartComponentsToolkit/docs/waiter-gates.html)
233294
- [Flow Cards Reference](https://tiwas.github.io/SmartComponentsToolkit/docs/flow-cards.html)
234-
- [Changelog](https://tiwas.github.io/SmartComponentsToolkit/docs/changelog.html)
235295

236296
---
237297

docs/docs/conditional-gates.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,12 @@
3333
<nav class="bg-white shadow-sm border-b border-gray-200 sticky top-0 z-50">
3434
<div class="container mx-auto px-4 py-3">
3535
<div class="flex justify-between items-center">
36-
<a href="../README.md" class="text-xl font-bold text-purple-600 hover:text-purple-800">Smart (Components) Toolkit</a>
36+
<a href="../index.html" class="text-xl font-bold text-purple-600 hover:text-purple-800">Smart (Components) Toolkit</a>
3737
<div class="space-x-4 text-sm">
3838
<a href="getting-started.html" class="text-gray-600 hover:text-purple-600">Getting Started</a>
3939
<a href="devices.html" class="text-gray-600 hover:text-purple-600">Devices</a>
40+
<a href="state-device.html" class="text-gray-600 hover:text-purple-600">State Device</a>
41+
<a href="state-capture-device.html" class="text-gray-600 hover:text-purple-600">State Capture Device</a>
4042
<a href="conditional-gates.html" class="text-gray-900 font-semibold">Conditional Gates</a>
4143
<a href="waiter-gates.html" class="text-gray-600 hover:text-purple-600">Waiter Gates</a>
4244
</div>

docs/docs/devices.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,13 @@
4040
<nav class="bg-white shadow-sm border-b border-gray-200 sticky top-0 z-50">
4141
<div class="container mx-auto px-4 py-3">
4242
<div class="flex justify-between items-center">
43-
<a href="../README.md" class="text-xl font-bold text-purple-600 hover:text-purple-800">Smart (Components) Toolkit</a>
43+
<a href="../index.html" class="text-xl font-bold text-purple-600 hover:text-purple-800">Smart (Components) Toolkit</a>
4444
<div class="space-x-4 text-sm">
4545
<a href="getting-started.html" class="text-gray-600 hover:text-purple-600">Getting Started</a>
4646
<a href="devices.html" class="text-gray-900 font-semibold">Devices</a>
4747
<a href="state-device.html" class="text-gray-600 hover:text-purple-600">State Device</a>
4848
<a href="state-capture-device.html" class="text-gray-600 hover:text-purple-600">State Capture Device</a>
49+
<a href="conditional-gates.html" class="text-gray-600 hover:text-purple-600">Conditional Gates</a>
4950
<a href="waiter-gates.html" class="text-gray-600 hover:text-purple-600">Waiter Gates</a>
5051
</div>
5152
</div>

0 commit comments

Comments
 (0)