Group Control - bharat-1809/wizctl GitHub Wiki

Group Control

Control multiple lights in parallel. All commands run concurrently.

final lights = [WizLight('192.168.1.100'), WizLight('192.168.1.101')];

await WizGroup.turnOn(lights);
await WizGroup.turnOff(lights);
await WizGroup.setColor(lights, 255, 100, 50);
await WizGroup.setTemperature(lights, 3000);
await WizGroup.setScene(lights, WizScene.cozy);

Handling results

Each command returns results for all lights:

final results = await WizGroup.turnOn(lights);
for (final r in results) {
  if (r.success) {
    print('${r.light.ip}: OK');
  } else {
    print('${r.light.ip}: ${r.error}');
  }
}

Reading state

final states = await WizGroup.getStates(lights);
for (final entry in states.entries) {
  final light = entry.key;
  final state = entry.value;  // null if no response
  print('${light.ip}: ${state?.isOn}');
}