Search packages, repositories and app categories

Package detailsv0.3.0

hue_dart

A library for creating Philips Hue apps in Flutter and/or AngularDart.

AndroidiOSWebmacOSWindowsLinux
30-day downloads
31
Likes
20
Pub points
140

Install package

flutter pub add hue_dart

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

hue_dart is a Dart library enabling developers to build applications for Philips Hue smart lighting systems using Flutter or AngularDart. It provides a clean, asynchronous API to interact with Hue bridges, allowing control of lights, groups, scenes, and sensors. The package supports all major platforms including mobile, web, and desktop, making it ideal for cross-platform IoT solutions. With straightforward authentication and device management, it simplifies integration into home automation apps. The library is actively maintained and well-documented, facilitating rapid development.

Use cases

  • Smart home lighting control
  • Automated lighting scenes
  • IoT dashboard integration
  • Home automation workflows
  • Remote light management

Key features

  • Cross-platform support
  • Authentication handling
  • Light and group management
  • Scene and sensor interaction
  • Asynchronous API design

Suitable for

  • Flutter developers
  • AngularDart projects
  • IoT hobbyists
  • Home automation apps
  • Full-stack web and mobile apps

Considerations

  • Requires a Philips Hue bridge
  • Network access to the Hue bridge
  • Authentication setup needed
  • Limited to Philips Hue ecosystem
  • Dependent on external API stability

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

hue_dart

A library for creating Philips Hue apps in Flutter and/or AngularDart.

This library aims to make it easier to handle with the Philips Hue bridge.

Using

Discovery

Import the library and search for bridges.

import 'package:http/http.dart';
import 'package:hue_dart/hue_dart.dart';

final client = Client();
final discovery = BridgeDiscovery(client);

List<DiscoveryResult> discoverResults = await discovery.automatic();
final discoveryResult = discoverResults.first;

final bridge = Bridge(client, discoveryResult.ipAddress);

For web, use the BrowserClient.

import 'package:http/browser_client.dart';
import 'package:hue_dart/hue_dart.dart';

final client = BrowserClient();
final discovery = BridgeDiscovery(client);

List<DiscoveryResult> discoverResults = await discovery.automatic();
final discoveryResult = discoverResults.first;

final bridge = Bridge(client, discoveryResult.ipAddress);

Searching for a bridge by entering an IP address is also supported.

import package:hue_dart/hue.dart;

final client = Client();
final discovery = BridgeDiscovery(client);

DiscoveryResult discoverResult = await discovery.manual('192.168.1.2');

final bridge = Bridge(client, discoveryResult.ipAddress);
Create a new user

To create a user press the push link button before calling the createUser method

final bridge = Bridge(client, discoveryResult.ipAddress);
final whiteListItem = bridge.createUser('hue_dart');
bridge.username = whiteListItem.username;
Lights

To get the current lights on the bridge, create a Bridge, set a username and

final lights = bridge.lights();

Changing a light's color while respecting its current color mode is done by using the Light#changeColor method.

final light = lights.first.changeColor(red: 1.0, green: 0.5, blue: 1.0);
LightState state = lightStateForColorOnly(light);
await bridge.updateLightState(light.rebuild(
    (l) => l..state = state.toBuilder(),
));

Different light state attributes can also be changed.

final light = lights.first;
LightState state = LightState((s) => s
    ..brightness = 100,
);
await bridge.updateLightState(light.rebuild(
    (l) => l..state = state.toBuilder(),
));

To get the light's current color in rgb values (and other known means) use the Light#colors method

final light = lights.first;
HueColor colors = light.colors();
print('red:${colors.red}, green: ${colors.green}, blue:${colors.blue}');

Categories

Dependencies

Dependency list 4 items

Source repository

Projects using this package

No data available yet.