Raspberry Pi에서 Hue 작업
15786 단어 RaspberryPiHuePython
지난번 보도에서 서보 모터와 NFC 리더를 사용하여 Suica를 터치한 후 열쇠를 돌리는 동작을 대체적으로 완성했다.이 프로젝트에서는 열쇠를 켠 후 불을 켜고 외출 후 열쇠를 끄고 불을 끄는 동작을 실현하기 위해 필립스의 Hue 스마트 조명을 사용해 본다.
뭐 공부 해요?
Philips가 제작한 스마트 LED 전구는 밝기와 색깔을 자유롭게 바꾸어 밝게 할 수 있으며, 매일 아침 6시에 조금씩 밝아지며, Gmail과 트위터의 답장을 받고 깜박이는 등 다양한 재미있는 사용법을 사용할 수 있다.Hue는 API를 공개했고 타사 애플리케이션도 많이 개발했습니다.
이 Hue API를 사용하여 열쇠 스위치와 함께 점등 소멸합니다.
Hue API 사용
Hue 구매, 설정 등을 생략합니다.
Hue Bridge의 IP 주소 찾기
LAN 내의 Hue Bridge IP 주소를 확인하려면 아래 URL을 참조하십시오.
https://www.meethue.com/api/nupnp
만약 LAN 설정을 조작해서 IP 주소를 고정시킬 수 있다면 하세요.
API를 먼저 해보도록 하겠습니다.
http://Hue BridgeのIPアドレス/debug/clip.html
이 색상은 색상이 바래집니다.
위에서 아래로 API의 URL, 요청 body, 응답 표시 순서입니다.
API를 이용하기 위해서는 사용자를 만들어야 하기 때문에 URL 표시줄에/api
메시지 주체 표시줄에서{"devicetype":"適当な名前。RaspberryPiとか"}
그리고 전원을 켜서 자체 검사하세요.그래서[
{
"error": {
"type": 101,
"address": "",
"description": "link button not pressed"
}
}
]
돌아오다지시에 따라 Hue Bridge 중간에 있는 단추를 Potch로 한 다음 바로 다시 켜서 자체 검사합니다.그래서[
{
"success": {
"username": "XXXXXXXX"
}
}
]
사용자가 생성되었습니다.이 응답의 사용자 이름을 주의하십시오.
다음은 Hue Bridge에 연결된 전구 목록입니다.
리본에서 를 클릭합니다./api/さっき取得したusername/lights
에서 설명한 대로 해당 매개변수의 값을 수정합니다.그래서{
"1": {
"state": {
"on": false,
"bri": 128,
"hue": 13758,
"sat": 167,
"effect": "none",
"xy": [
0.4801,
0.41
],
"ct": 403,
"alert": "none",
"colormode": "xy",
"mode": "homeautomation",
"reachable": true
},
"swupdate": {
"state": "noupdates",
"lastinstall": "2017-11-28T19:15:00"
},
"type": "Extended color light",
"name": "リビング",
"modelid": "LCT007",
"manufacturername": "Philips",
"capabilities": {
"streaming": {
"renderer": true,
"proxy": true
}
},
"uniqueid": "00:11:22:33:44:55:66:77-88",
"swversion": "5.105.0.21536"
},
"2": {...以下略
이런 느낌으로 전구에 분배된 ID 번호와 그 전구의 상태를 얻을 수 있다.자신이 조작하고 싶은 전구의 ID를 확인하세요.상기 예에서 우리 집 거실에 설치된 전구에 ID:1을 분배했다.
그럼 이 전구를 1호로 켜주세요.리본에서 를 클릭합니다./api/さっき取得したusername/lights/1/state
메시지 주체 표시줄에서{"on":true}
입력하고 업로드합니다.한마디로 라이트로 얻은 전구를 직접 잠입하는 JSON 구조로 상태를 변경하고 싶은 곳에 PUT하는 느낌이다.성공하면 전구가 켜진다[
{
"success": {
"/lights/1/state/on": true
}
}
]
응답불을 끄고 싶다면true→false 같은 PUT를 사용하면 된다.
Python에서 Hue API 가져오기
이제 Python에서 API를 사용하여 작업을 수행합니다.위에서 말한 바와 같이 간단하게 업로드하면 조작할 수 있기 때문에requests로 요청을 보냅니다.
hue.py# -*- coding: utf-8 -*-
import requests
import time
HUE_API = 'http://Hue BridgeのIPアドレス/api/取得したusername/lights'
requests.put(HUE_API + '/1/state', json = {"on":True, "bri":128, "xy":[0.48, 0.41]})
time.sleep(5)
requests.put(HUE_API + '/1/state', json = {"on":False})
운행 후 불빛은 5초 후에 꺼질 것이다.
상기 코드에서 불을 켤 때 밝기와 색을 동시에 지정합니다.이 일대의 수치가 독특하고 조정하기 어렵기 때문에 우선 스마트폰의 Hue 조작 앱으로 좋아하는 밝기와 색깔을 밝게 하기 →/lights 얻기, 전구의 밝기와 색깔의 수치 얻기 → 상기 코드의 값을 수정하는 것이 효율적이다.
여러 개의 전구를 모아 조작하고 싶다
집에 Hue를 가입한 사람이라면 팀을 나누어야 하지만 기본적으로 같은 방법이다.우선/api/さっき取得したusername/groups
에서 설명한 대로 해당 매개변수의 값을 수정합니다.그래서{
"1": {
"name": "リビング",
"lights": [
"1"
],
"type": "Room",
"state": {
"all_on": false,
"any_on": false
},
"recycle": false,
"class": "Living room",
"action": {
"on": false,
"bri": 128,
"hue": 13758,
"sat": 167,
"effect": "none",
"xy": [
0.4801,
0.41
],
"ct": 403,
"alert": "none",
"colormode": "xy"
}
},
"2": {... 以下略
}
이렇게 하면 그룹 목록을 볼 수 있기 때문에 그룹 ID의 경우
URL: /api/さっき取得したusername/groups/1/action
Message Body: {"on": true}
이런 거 올리면 돼."state"가 아니라 "action"임을 주의하십시오.
Next: IFTT의 Maker Webhooks에서 Raspberry Pi를 켜서 자체 검사합니다.
Reference
이 문제에 관하여(Raspberry Pi에서 Hue 작업), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/undo0530/items/0d9eee70da46f906062a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Hue 구매, 설정 등을 생략합니다.
Hue Bridge의 IP 주소 찾기
LAN 내의 Hue Bridge IP 주소를 확인하려면 아래 URL을 참조하십시오.
https://www.meethue.com/api/nupnp
만약 LAN 설정을 조작해서 IP 주소를 고정시킬 수 있다면 하세요.
API를 먼저 해보도록 하겠습니다.
http://Hue BridgeのIPアドレス/debug/clip.html
이 색상은 색상이 바래집니다.위에서 아래로 API의 URL, 요청 body, 응답 표시 순서입니다.
API를 이용하기 위해서는 사용자를 만들어야 하기 때문에 URL 표시줄에
/api
메시지 주체 표시줄에서{"devicetype":"適当な名前。RaspberryPiとか"}
그리고 전원을 켜서 자체 검사하세요.그래서[
{
"error": {
"type": 101,
"address": "",
"description": "link button not pressed"
}
}
]
돌아오다지시에 따라 Hue Bridge 중간에 있는 단추를 Potch로 한 다음 바로 다시 켜서 자체 검사합니다.그래서[
{
"success": {
"username": "XXXXXXXX"
}
}
]
사용자가 생성되었습니다.이 응답의 사용자 이름을 주의하십시오.다음은 Hue Bridge에 연결된 전구 목록입니다.
리본에서 를 클릭합니다.
/api/さっき取得したusername/lights
에서 설명한 대로 해당 매개변수의 값을 수정합니다.그래서{
"1": {
"state": {
"on": false,
"bri": 128,
"hue": 13758,
"sat": 167,
"effect": "none",
"xy": [
0.4801,
0.41
],
"ct": 403,
"alert": "none",
"colormode": "xy",
"mode": "homeautomation",
"reachable": true
},
"swupdate": {
"state": "noupdates",
"lastinstall": "2017-11-28T19:15:00"
},
"type": "Extended color light",
"name": "リビング",
"modelid": "LCT007",
"manufacturername": "Philips",
"capabilities": {
"streaming": {
"renderer": true,
"proxy": true
}
},
"uniqueid": "00:11:22:33:44:55:66:77-88",
"swversion": "5.105.0.21536"
},
"2": {...以下略
이런 느낌으로 전구에 분배된 ID 번호와 그 전구의 상태를 얻을 수 있다.자신이 조작하고 싶은 전구의 ID를 확인하세요.상기 예에서 우리 집 거실에 설치된 전구에 ID:1을 분배했다.그럼 이 전구를 1호로 켜주세요.리본에서 를 클릭합니다.
/api/さっき取得したusername/lights/1/state
메시지 주체 표시줄에서{"on":true}
입력하고 업로드합니다.한마디로 라이트로 얻은 전구를 직접 잠입하는 JSON 구조로 상태를 변경하고 싶은 곳에 PUT하는 느낌이다.성공하면 전구가 켜진다[
{
"success": {
"/lights/1/state/on": true
}
}
]
응답불을 끄고 싶다면true→false 같은 PUT를 사용하면 된다.Python에서 Hue API 가져오기
이제 Python에서 API를 사용하여 작업을 수행합니다.위에서 말한 바와 같이 간단하게 업로드하면 조작할 수 있기 때문에requests로 요청을 보냅니다.
hue.py
# -*- coding: utf-8 -*-
import requests
import time
HUE_API = 'http://Hue BridgeのIPアドレス/api/取得したusername/lights'
requests.put(HUE_API + '/1/state', json = {"on":True, "bri":128, "xy":[0.48, 0.41]})
time.sleep(5)
requests.put(HUE_API + '/1/state', json = {"on":False})
운행 후 불빛은 5초 후에 꺼질 것이다.상기 코드에서 불을 켤 때 밝기와 색을 동시에 지정합니다.이 일대의 수치가 독특하고 조정하기 어렵기 때문에 우선 스마트폰의 Hue 조작 앱으로 좋아하는 밝기와 색깔을 밝게 하기 →/lights 얻기, 전구의 밝기와 색깔의 수치 얻기 → 상기 코드의 값을 수정하는 것이 효율적이다.
여러 개의 전구를 모아 조작하고 싶다
집에 Hue를 가입한 사람이라면 팀을 나누어야 하지만 기본적으로 같은 방법이다.우선
/api/さっき取得したusername/groups
에서 설명한 대로 해당 매개변수의 값을 수정합니다.그래서{
"1": {
"name": "リビング",
"lights": [
"1"
],
"type": "Room",
"state": {
"all_on": false,
"any_on": false
},
"recycle": false,
"class": "Living room",
"action": {
"on": false,
"bri": 128,
"hue": 13758,
"sat": 167,
"effect": "none",
"xy": [
0.4801,
0.41
],
"ct": 403,
"alert": "none",
"colormode": "xy"
}
},
"2": {... 以下略
}
이렇게 하면 그룹 목록을 볼 수 있기 때문에 그룹 ID의 경우URL:
/api/さっき取得したusername/groups/1/action
Message Body: {"on": true}
이런 거 올리면 돼."state"가 아니라 "action"임을 주의하십시오.Next: IFTT의 Maker Webhooks에서 Raspberry Pi를 켜서 자체 검사합니다.
Reference
이 문제에 관하여(Raspberry Pi에서 Hue 작업), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/undo0530/items/0d9eee70da46f906062a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)