A powerful IP-Symcon module for centralized control of multiple lights with automatic switch-off, presence detection, brightness control, and Tile Visualization integration.
- Group Light Control: Register any number of boolean variables (lamps) and control them all with a single master switch
- Light Switches: Connect physical switches with three modes:
- Push-button (toggle on press)
- Toggle on any change
- On-only (staircase lighting)
- Presence Detection:
- Automatic light control based on presence detectors
- Configurable follow-up time after presence ends
- Multiple presence detectors supported (OR logic)
- Smart handling of manual vs. presence-triggered activations
- Brightness Control:
- Only turn on lights when brightness is below threshold
- Supports integer and float brightness sensors
- User-adjustable threshold via visualization
- Auto-Off Timer:
- Automatic switch-off with configurable timeout (1 second to 48 hours)
- Auto-off takes priority over presence detection
- Push Notifications:
- Notifications before auto-off via Tile Visualization
- Customizable light name and location in notifications
- Support for multiple Tile Visualizations
- Flexible Visibility & Permissions:
- Show or hide individual controls in the visualization
- Per-feature user configuration permissions
- Conditional variables (only created when feature is enabled)
- IP-Symcon 7.0 or higher
- Valid IP-Symcon subscription for push notifications (optional)
- Open IP-Symcon Console
- Navigate to Modules > Module Store
- Search for "AdvancedLightControl"
- Click Install
- Open IP-Symcon Console
- Navigate to Modules > Modules
- Click Add (Plus icon)
- Select Add Module from URL
- Enter:
https://github.com/mwlf01/IPSymcon-AdvancedLightControl.git - Click OK
- Clone or download this repository
- Copy the folder to your IP-Symcon modules directory:
- Windows:
C:\ProgramData\Symcon\modules\ - Linux:
/var/lib/symcon/modules/ - Docker: Check your volume mapping
- Windows:
- Reload modules in IP-Symcon Console
After installation, create a new instance:
- Navigate to Objects > Add Object > Instance
- Search for "AdvancedLightControl" or "Advanced Light Control"
- Click OK to create the instance
Register boolean variables that represent your lamps:
| Setting | Description |
|---|---|
| Lamp Variable | Select a boolean variable that controls a lamp |
| Name | Optional friendly name for identification |
You can add as many lamps as needed. All registered lamps will be switched on/off together using the master switch.
Connect physical switches to control the lights:
| Setting | Description |
|---|---|
| Enable Light Switches | Enable/disable the light switch feature |
| Switch Mode | How switches are interpreted (see below) |
| Switch Variable | Select a boolean variable from a switch |
| Name | Optional friendly name for identification |
Switch Modes:
- Push-button: First press turns on, second press turns off
- Toggle on any change: Any state change toggles lights
- On-only (staircase): Only turns lights on (useful with auto-off)
Automatically control lights based on presence:
| Setting | Description | Default |
|---|---|---|
| Enable Presence Detection | Enable/disable presence-based control | Off |
| Presence Detectors | List of boolean presence detector variables | - |
| Follow-Up Time (s) | Seconds to wait after presence ends before turning off | 60 |
Behavior:
- Lights turn on when ANY detector reports presence (OR logic)
- Lights turn off after follow-up time when ALL detectors report no presence
- Manual switch-on is tracked separately (presence won't turn off manually activated lights)
- After auto-off, presence must go false before it can trigger lights again
Only turn on lights when it's dark enough:
| Setting | Description | Default |
|---|---|---|
| Enable Brightness Control | Enable/disable brightness-based control | Off |
| Brightness Sensor Variable | Integer or float variable with lux value | - |
| Brightness Threshold (lux) | Lights only turn on below this value | 100 |
Configure the automatic switch-off feature:
| Setting | Description | Default |
|---|---|---|
| Enable Auto-Off Feature | Enable/disable the entire auto-off functionality | Off |
| Auto-Off Time (s) | Time in seconds until automatic switch-off (1-172800) | 300 |
| Enable Push Notifications | Send notifications before auto-off triggers | Off |
| Notification Threshold (s) | Seconds before auto-off to send notification | 60 |
| Light Name | Name for push notifications (e.g., "Ceiling Light") | - |
| Light Location | Location for push notifications (e.g., "Living Room") | - |
Note: Auto-off takes priority over presence detection. When auto-off triggers, presence must go false before it can turn lights on again.
Register Tile Visualization instances for push notifications:
| Setting | Description |
|---|---|
| Tile Visualization | Select a Tile Visualization instance |
You can register multiple Tile Visualizations. All registered visualizations will receive push notifications when the remaining time drops below the configured threshold.
Control which elements are visible in the visualization:
| Setting | Description |
|---|---|
| Show Master Switch | Display the main on/off switch |
| Show Light Switches Toggle | Display the switches enable/disable toggle |
| Show Presence Toggle | Display the presence detection toggle |
| Show Presence Follow-Up Time | Display the follow-up time setting |
| Show Brightness Toggle | Display the brightness control toggle |
| Show Brightness Threshold | Display the brightness threshold setting |
| Show Auto-Off Toggle | Display the auto-off enable/disable toggle |
| Show Auto-Off Time Setting | Display the timeout configuration |
| Show Remaining Time | Display the countdown timer |
| Show Extend Timer Button | Display the timer reset button |
| Show Notification Toggle | Display the notification toggle |
| Show Notification Threshold | Display the notification threshold setting |
Control what users can change via the visualization:
| Setting | Description |
|---|---|
| Allow Light Switches Toggle | Users can enable/disable light switches |
| Allow Presence Toggle | Users can enable/disable presence detection |
| Allow Brightness Toggle | Users can enable/disable brightness control |
| Allow Brightness Threshold | Users can adjust the brightness threshold |
| Allow Auto-Off Toggle | Users can toggle auto-off on/off |
| Allow Auto-Off Time | Users can adjust the timeout |
| Allow Extending Timer | Users can reset/extend the timer |
| Allow Notifications Toggle | Users can toggle notifications on/off |
| Allow Notification Threshold | Users can adjust the notification threshold |
When a permission is disabled, the control is visible but read-only.
Note: User changes made via visualization are automatically synced back to the instance configuration. This means changes persist and are not lost when the admin makes other configuration changes.
The module creates the following variables (conditional based on enabled features):
| Variable | Type | Description |
|---|---|---|
| All Lights | Boolean | Master switch to control all lamps |
| Light Switches Enabled | Boolean | Toggle for light switch feature |
| Presence Enabled | Boolean | Toggle for presence detection |
| Presence Follow-Up Time | Integer | Seconds to wait after presence ends |
| Brightness Enabled | Boolean | Toggle for brightness control |
| Brightness Threshold | Integer | Lux threshold for presence activation |
| Auto-Off Enabled | Boolean | Toggle for auto-off feature |
| Auto-Off Time | Integer | Timeout in seconds |
| Remaining Time | Integer | Countdown display |
| Extend Timer | Integer (Button) | Reset/extend the timer |
| Notifications Enabled | Boolean | Toggle for push notifications |
| Notification Threshold | Integer | Seconds before auto-off to send notification |
When configured with Tile Visualizations and push notifications enabled:
- Lights turn on (manually, via switch, or by presence)
- Auto-off timer starts counting down
- When remaining time reaches the notification threshold, a push notification is sent
- Notification shows: "Light Name (Location)" - "Turns off in X seconds. Tap to extend."
- User can tap the notification to extend the timer
- If not extended, lights automatically switch off when timer reaches zero
The module provides the following public functions for use in scripts:
Switch all registered lamps on or off.
ALC_SwitchAll(int $InstanceID, bool $State);Parameters:
$InstanceID- ID of the AdvancedLightControl instance$State-trueto switch on,falseto switch off
Example:
// Switch all lamps on
ALC_SwitchAll(12345, true);
// Switch all lamps off
ALC_SwitchAll(12345, false);Reset/extend the auto-off timer to the configured timeout value.
ALC_ExtendTimer(int $InstanceID);Parameters:
$InstanceID- ID of the AdvancedLightControl instance
Example:
// Extend the timer
ALC_ExtendTimer(12345);Get the current remaining time until auto-off in seconds.
int ALC_GetRemainingTime(int $InstanceID);Parameters:
$InstanceID- ID of the AdvancedLightControl instance
Returns: Remaining time in seconds (0 if timer not running)
Example:
$remaining = ALC_GetRemainingTime(12345);
echo "Lights will turn off in $remaining seconds";Set the auto-off timeout value.
ALC_SetAutoOffTime(int $InstanceID, int $Seconds);Parameters:
$InstanceID- ID of the AdvancedLightControl instance$Seconds- Timeout in seconds (1-86400)
Example:
// Set auto-off to 10 minutes
ALC_SetAutoOffTime(12345, 600);Enable or disable the auto-off feature.
ALC_SetAutoOffEnabled(int $InstanceID, bool $Enabled);Parameters:
$InstanceID- ID of the AdvancedLightControl instance$Enabled-trueto enable,falseto disable
Example:
// Disable auto-off
ALC_SetAutoOffEnabled(12345, false);Timer callback for auto-off. Generally not called directly.
ALC_AutoOff(int $InstanceID);Timer callback for countdown updates. Generally not called directly.
ALC_CountdownTick(int $InstanceID);- Initial release
- Group light control with master switch
- Light switch support with three modes (push-button, toggle, on-only)
- Presence detection with multiple detectors and follow-up time
- Brightness control with configurable lux threshold
- Auto-off timer with configurable timeout (1 second to 48 hours)
- Push notifications via Tile Visualization with customizable text
- Bidirectional sync: user changes via visualization are saved to instance config
- Flexible visibility and permission controls
- Full German localization (UI, variables, notifications)
For issues, feature requests, or contributions, please visit:
This project is licensed under the MIT License - see the LICENSE file for details.
mwlf01
- GitHub: @mwlf01