|
| 1 | +Smart (Components) Toolkit - Advanced Logic & State Management for Homey |
| 2 | + |
1 | 3 | Create advanced, state-aware logic units for your Homey flows. Move beyond simple AND/OR cards and build powerful logic modules based on dynamic boolean expressions. |
2 | 4 |
|
3 | | -Standard Homey Flows are powerful, but creating complex logic can quickly become messy. If you have multiple conditions to check, you often end up with a web of logic cards that is hard to read, maintain, and debug. |
| 5 | +== DEVICES == |
| 6 | + |
| 7 | +Logic Unit (2-10 inputs) |
| 8 | + Create complex boolean logic using text-based formulas. Supports multiple formulas per device, timeouts, first-impression mode, and dynamic input linking to any device capability. |
| 9 | + - Define formulas like: (A AND B) OR (NOT C) |
| 10 | + - Link inputs to any device capability |
| 11 | + - Multiple formulas per unit with individual timeouts |
| 12 | + - Error detection and formula validation |
| 13 | + |
| 14 | +Logic Device |
| 15 | + A simpler single-formula logic device for straightforward boolean logic needs. |
| 16 | + |
| 17 | +State Capture Device |
| 18 | + Dynamically capture and restore device states at runtime. |
| 19 | + - Named States: Save snapshots with custom names for scene management |
| 20 | + - Stack Operations: Push/pop for temporary state changes (e.g., doorbell interruptions) |
| 21 | + - Template-based: Define which devices and capabilities to capture |
| 22 | + - Backup/Restore: Export all named states as JSON for backup, import to restore |
| 23 | + |
| 24 | +State Device |
| 25 | + Pre-define device states and apply them via flows. Configure states at setup time rather than capturing them dynamically. |
| 26 | + |
| 27 | +== FLOW CARDS == |
| 28 | + |
| 29 | +Actions: |
| 30 | + Logic Unit/Device: |
| 31 | + - Evaluate formula / Evaluate all formulas |
| 32 | + - Set input value (single or all via JSON) |
| 33 | + - Clear error state |
| 34 | + - Validate configuration |
| 35 | + |
| 36 | + State Capture Device: |
| 37 | + - Capture state (save to named slot) |
| 38 | + - Apply captured state |
| 39 | + - Delete captured state |
| 40 | + - Push state (to stack) |
| 41 | + - Pop state (from stack and apply) |
| 42 | + - Peek and apply (view top without removing) |
| 43 | + - Clear stack |
| 44 | + - Export named states (JSON backup) |
| 45 | + - Import named states (restore from JSON) |
| 46 | + |
| 47 | + State Device: |
| 48 | + - Apply state |
| 49 | + |
| 50 | + Utilities: |
| 51 | + - Wait (delay execution) |
| 52 | + - Control waiter (pause/resume gates) |
| 53 | + - Evaluate expression (inline logic) |
| 54 | + |
| 55 | +Conditions: |
| 56 | + - Formula result is true/false |
| 57 | + - Formula has timed out |
| 58 | + - Device has error |
| 59 | + - Captured state exists |
| 60 | + - Stack is empty / Stack depth is X |
| 61 | + - Wait until becomes true |
| 62 | + |
| 63 | +Triggers: |
| 64 | + - Formula changed to true/false |
| 65 | + - Formula timed out |
| 66 | + - State changed |
| 67 | + - State captured/applied |
| 68 | + - Configuration alarm changed |
| 69 | + - Error occurred |
| 70 | + |
| 71 | +== DOCUMENTATION == |
| 72 | + |
| 73 | +Full documentation available at: https://tiwas.github.io/SmartComponentsToolkit/ |
4 | 74 |
|
5 | | -Boolean Toolbox solves this by providing a virtual "Logic Unit" device. Instead of wiring together multiple cards, you define your entire logic in a single text-based expression. The device waits for all necessary input signals, evaluates the expression, and gives you a single, predictable true or false output. |
| 75 | +== SUPPORT == |
6 | 76 |
|
7 | | -State Capture Device - Dynamically capture device states at runtime using templates. Store multiple named states and use stack-based push/pop operations for temporary state management. See docs/state-capture-device.html for details. |
| 77 | +Community forum: https://community.homey.app/t/app-boolean-toolbox-create-advanced-logic-with-simple-formulas/143906 |
| 78 | +Issues: https://github.com/Tiwas/SmartComponentsToolkit/issues |
0 commit comments