4

我看到可以使用以下命令控制飞利浦 Hue 灯:

向(此处为您的 Hue 网站)发出以下 HTTP POST 请求

{"username": "YourAppName", "devicetype": "YourAppName"} 如果您没有按下 Hue Hub 上的按钮,您将收到这样的错误;

{"error":{"type":101,"address":"/","description":"链接按钮未按下"}} 按下集线器上的链接按钮再试一次应该会收到;

{"success":{"username":"key"}} 上面的 key 将是一个 md5 字符串,记住这一点,在以后的所有请求中都需要它

--但我不知道如何使用 Applescript 说那种语言 -- 我知道你可以使用“做 shell 脚本”,也可能在那里使用 cURL,但是,我在实际让代码工作时分崩离析正确。

有什么想法吗?

4

3 回答 3

1

对于 shell 脚本,试试这个:

curl -d "{\"username\": \"yourname\", \"devicetype\": \"yourhuename\"}" [not a link]http://hueIpAddr/api
于 2012-11-17T21:22:18.397 回答
1

我能够让我的python脚本使用curl请求来控制灯光subprocess(我认为类似于do shell脚本),使用:

curl --request PUT --data \'{"on":true, "xy":[0.4370,0.3706],"bri":255}\' http://{url}/api/{username}/lights/1/state

要使用 curl 创建用户,您可能应该将代码更改为如下所示:

curl --request POST --data \'{"devicetype":"your_devicetype", "username":"your_username"}\' http://{url}/api/

公平地说,我没有用 curl 尝试过,因为我正在努力在 python 中迁移到 urllib2。希望这可以帮助。

于 2013-10-22T21:26:32.770 回答
0

另一个 shell 脚本,具有通过 HSB 和转换时间设置颜色的有用功能。

#!/bin/sh
#
# Register "patniemeyer" key with this bridge
#
# % curl -d '{"username": "patniemeyer", "devicetype": "Philips hue"}' http://192.168.1.179/api
# [{"success":{"username":"patniemeyer"}}]
#

KEY='patniemeyer'
IP='192.168.1.179'

#
# Light number, hue, saturation, brightness, transition time
#
# hue 0-65535
# sat 0-255?
# transition time 1/10 seconds
#
lightNHSBT() 
{
    _lightNum=$1
    _hue=$2
    _sat=$3
    _brightness=$4
    _ttime=$5
    curl --request PUT --data "{\"hue\":$_hue, \"sat\":$_sat, \"bri\":$_brightness, \"on\":true, \"transitiontime\":$_ttime}" http://$IP/api/$KEY/lights/$_lightNum/state/
}

#
# CIE 1931 X,Y colors
# Light number, X, Y, brightness, transition time
#
# transition time 1/10 seconds
#
lightNXYBT() 
{
    _lightNum=$1
    _x=$2
    _y=$3
    _brightness=$4
    _ttime=$5
    curl --request PUT --data "{\"xy\":[$_x,$_y], \"bri\":$_brightness, \"on\":true, \"transitiontime\":$_ttime}" http://$IP/api/$KEY/lights/$_lightNum/state/
}

# 
for f in 1 2 3 4 5 6 
do
    lightNHSBT $f 0 255 255 5  # full red
done
于 2012-11-29T02:10:08.567 回答