Integration

Wiz Smart Lighting

Control your Wiz smart lights directly from FaustBot. Create immersive stream experiences with dynamic lighting effects triggered by chat events, subscriptions, raids, and more.

Overview

FaustBot connects to Wiz smart lights using their local UDP protocol on port 38899, providing fast, reliable control without requiring cloud connectivity:

Device Discovery

Automatic discovery of Wiz devices via UDP broadcast on your local network.

Power Control

Turn lights on, off, or toggle their power state instantly.

RGB Colors

Set any RGB color to match your stream theme or react to events.

Brightness

Adjust brightness from 10% to 100% for the perfect ambiance.

Color Temperature

Set warm (2200K) to cool (6500K) white tones.

32 Built-in Scenes

Activate dynamic scenes like Party, Fireplace, Ocean, and more.

Setup

Discover Wiz Devices

Wiz lights are discovered automatically on your local network. No hub or bridge required.

1

Ensure Devices Are Connected

Make sure your Wiz lights are connected to the same WiFi network as your computer running FaustBot. They should be set up using the official Wiz app.

2

Open Wiz Settings

In FaustBot, go to Wiz in the sidebar. Click Discover Devices to scan your network for Wiz lights.

Screenshot: Wiz device discovery
3

Name Your Devices

Discovered devices will show their MAC address. Give each device a friendly name (e.g., "Desk Light", "Key Light") for easy identification in your actions.

4

Test Connection

Click on a device to test control. Try turning it on/off or changing the color to verify communication is working correctly.

Network Requirements

Wiz devices communicate via UDP broadcast on port 38899. Ensure your router allows UDP traffic on this port and that devices are on the same subnet. Some routers with "AP isolation" enabled may block device discovery.

Static IP Recommended

For the most reliable control, assign static IP addresses to your Wiz lights in your router settings. This prevents connection issues if devices receive new IP addresses after a router restart.

Effects

Use these action effects to control your Wiz lights from any action in FaustBot.

Power Control

Turn On

Turn a Wiz device on.

Turn Off

Turn a Wiz device off.

Toggle

Toggle device power state.

Brightness Control

Set Brightness

Set brightness level (10-100%).

Color Control

Set Color

Set RGB color with optional brightness.

Set Color Temperature

Set white temperature (2200K-6500K).

Scene Control

Set Scene

Activate a built-in scene (1-32).

Set Scene with Speed

Set scene with custom animation speed.

Built-in Scenes

Wiz lights support 32 built-in scenes. Dynamic scenes support a speed parameter (10-200) to control animation speed.

IDScene NameType
1OceanDynamic
2RomanceDynamic
3SunsetDynamic
4PartyDynamic
5FireplaceDynamic
6CozyStatic
7ForestDynamic
8Pastel ColorsDynamic
9Wake UpDynamic
10BedtimeDynamic
11Warm WhiteStatic
12DaylightStatic
13Cool WhiteStatic
14Night LightStatic
15FocusStatic
16RelaxStatic
17True ColorsStatic
18TV TimeStatic
19Plant GrowthStatic
20SpringDynamic
21SummerDynamic
22FallDynamic
23Deep DiveDynamic
24JungleDynamic
25MojitoDynamic
26ClubDynamic
27ChristmasDynamic
28HalloweenDynamic
29CandlelightDynamic
30Golden WhiteStatic
31PulseDynamic
32SteampunkDynamic

Scene Speed

Dynamic scenes support a speed parameter from 10 (slowest) to 200 (fastest). The default speed is 100. Use slower speeds for subtle ambiance or faster speeds for energetic reactions.

Using Effects from Scripts

Scripting API Not Yet Available

A dedicated scripting API for Wiz (e.g., CPH.WizSetColor()) is not yet available. In the meantime, you can control Wiz lights from scripts by calling pre-configured actions using CPH.RunAction().

Create actions with Wiz effects in the action editor, then call them from your scripts. This approach gives you full control over your lights while maintaining flexibility.

Power Control

Power control via actions
# Turn on a Wiz light using an action
CPH.RunAction("Wiz - Turn On Desk Light")

# Turn off a light
CPH.RunAction("Wiz - Turn Off Desk Light")

# Toggle light power
CPH.RunAction("Wiz - Toggle Desk Light")

# You can also pass arguments to customize behavior
CPH.RunAction("Wiz - Set Light State", {
    "device": "Desk Light",
    "state": "on"
})

Color Control

Color control via actions
# Set RGB color on a light
CPH.RunAction("Wiz - Set Color Red")

# Dynamic color based on event
follower_name = args["userName"]
colors = ["#FF0000", "#00FF00", "#0000FF", "#FF00FF", "#FFFF00"]
color_index = hash(follower_name) % len(colors)
CPH.SetArgument("color", colors[color_index])
CPH.RunAction("Wiz - Set Custom Color")

# Set color with brightness
CPH.SetArgument("color", "#FF5500")
CPH.SetArgument("brightness", 75)
CPH.RunAction("Wiz - Set Color With Brightness")

Brightness Control

Brightness control via actions
# Set brightness to 50%
CPH.SetArgument("brightness", 50)
CPH.RunAction("Wiz - Set Brightness")

# Dim lights for movie mode
CPH.RunAction("Wiz - Dim Lights 25%")

# Full brightness for gaming
CPH.RunAction("Wiz - Full Brightness")

# Dynamic brightness based on sub tier
sub_tier = args.get("tier", "1000")
brightness_map = {
    "1000": 50,   # Tier 1
    "2000": 75,   # Tier 2
    "3000": 100   # Tier 3
}
brightness = brightness_map.get(sub_tier, 50)
CPH.SetArgument("brightness", brightness)
CPH.RunAction("Wiz - Set Brightness")

Color Temperature

Color temperature control via actions
# Set warm white (2200K) for cozy evening stream
CPH.SetArgument("kelvin", 2200)
CPH.RunAction("Wiz - Set Color Temperature")

# Set daylight (6500K) for bright, energetic stream
CPH.SetArgument("kelvin", 6500)
CPH.RunAction("Wiz - Set Color Temperature")

# Neutral white (4000K) for balanced lighting
CPH.SetArgument("kelvin", 4000)
CPH.SetArgument("brightness", 80)
CPH.RunAction("Wiz - Set Color Temp With Brightness")

Scene Control

Scene control via actions
# Activate a built-in scene
CPH.RunAction("Wiz - Scene Party")
CPH.RunAction("Wiz - Scene Fireplace")
CPH.RunAction("Wiz - Scene Ocean")

# Set scene with custom speed (for dynamic scenes)
CPH.SetArgument("sceneId", 4)  # Party scene
CPH.SetArgument("speed", 150)  # Faster animation
CPH.RunAction("Wiz - Set Scene With Speed")

# React to events with scenes
if "raid" in args.get("eventType", ""):
    CPH.RunAction("Wiz - Scene Party")
elif "follow" in args.get("eventType", ""):
    CPH.RunAction("Wiz - Scene Romance")

Best Practice: Create Reusable Actions

Create a set of reusable Wiz actions like "Wiz - Alert Flash", "Wiz - Sub Celebration", or "Wiz - Raid Mode". Then call these from multiple scripts and triggers. This makes it easy to update lighting behavior in one place.