Skip to main content

A python library to control the Philips Hue lighting system.

Project description

Python Hue V2

Python library to control the Philips Hue lighting system for Hue-V2 API.

Features

  • Design for Hue API 2.0

High Level Control

Simple Example

import time
from python_hue_v2 import Hue, BridgeFinder

finder = BridgeFinder()
time.sleep(1)  # wait for search
# Get server by mdns
host_name = finder.get_bridge_server_lists()[0]  # Here we use first Hue Bridge
addresses = finder.get_bridge_addresses()
# or hue = Hue('ip address','app-key')
hue = Hue(addresses[0], 'hue app key')  # create Hue instance

# If you don't have hue-app-key, press the button and call bridge.connect() (this only needs to be run a single time)
# hue = Hue(host_name)
# app_key = hue.bridge.connect() # you can get app_key and storage on disk

lights = hue.lights

for light in lights:
    print(light.on)
    light.on = True
    light.brightness = 80.0

Scenes

You can get scenes from hue bridge.

from python_hue_v2 import Hue

hue = Hue('bridge-ip', 'app-key')

scenes = hue.scenes
for scene in scenes:
    print(scene.id)
    print(scene.data_dict)

Recall scene using active, dynamic_palette, static.

scene = scenes[0]
scene.recall(action='active')

If you want create one scene with light actions in a room:

from python_hue_v2.scene import ActionPost, ScenePost

light_id = []
lights = hue.lights
for light in lights:
    light_id.append(light.light_id)

actions = []
for rid in light_id:
    actions.append(
        ActionPost.create_by_parameters(
            target_rid=rid,
            target_rtype='light',
            on=True,
            brightness=50,
            color_xy=(0.1, 0.3)  # xy color tuple
            # mirek=200 % or use mirek
        )
    )

# Get all rooms, may be empty
rooms = hue.rooms

# ScenePost should have a group property, here we bind with a room

# refer to https://developers.meethue.com/develop/hue-api-v2/api-reference/#resource_scene_post
# Group associated with this Scene. All services in the group are part of this scene. 
# If the group is changed the scene is update (e.g. light added/removed)
scene_post: ScenePost = ScenePost.create_by_parameters(
    actions=actions, name='test', group_rid=rooms[0].id, group_rtype="room"
)
hue.create_scene(scene_post)

Also, you can delete scene by id.

hue.delete_scene('scene-id-example')

Grouped Light

Get group Lights from hue.

from python_hue_v2 import Hue

hue = Hue('bridge-ip', 'app-key')
grouped_lights = hue.grouped_lights

for group in grouped_lights:
    print(group.type)
    # group.on = True
    group.set_state(True, 100, None) 
    group.set_state(on=True, brightness=100, duration_ms=1) # Feature in version 2.0.1
    

Low Level Control

Low level function may be changed when update

You can use some basic functions in this library.

For example, you can use get_lights,set_light or other low level control functions to implement some custom functions.

import time
from python_hue_v2 import Hue

# or hue = Hue('ip address','app-key')
hue = Hue('host_name', 'hue app key')  # create Hue instance
bridge = hue.bridge

bridge.get_lights()
bridge.set_light('id', light_property_name='on', property_value={'on': True})

bridge.get_zones()

Attention

Some API may be de deprecated When major version updates.

  • Grouped light API will be changed after version 2.0.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_hue_v2-2.2.1.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

python_hue_v2-2.2.1-py3-none-any.whl (16.3 kB view details)

Uploaded Python 3

File details

Details for the file python_hue_v2-2.2.1.tar.gz.

File metadata

  • Download URL: python_hue_v2-2.2.1.tar.gz
  • Upload date:
  • Size: 15.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for python_hue_v2-2.2.1.tar.gz
Algorithm Hash digest
SHA256 581b6d7cb8123eea7220d86f6dd28d1b2fb06c162f3d745571dd62719824b187
MD5 6f0c4904fec9bc731469cc10add8cbe8
BLAKE2b-256 bb860aaa0146d8087b364da3deecfdeb552b83de9ed2da6e1bef6f80a8e0fc2b

See more details on using hashes here.

File details

Details for the file python_hue_v2-2.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for python_hue_v2-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 35bcd3ab257220ba3acddb624cf67b85c986af9551d18fb4fc21f9737b73d66d
MD5 f758237c62d0e3c898d28337d693ad2a
BLAKE2b-256 6698f788b68f140a8700bd9b53faee7590d8c21b304c6dcee6c9159a35370a85

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page