Як контролювати світло відтінку Philips за допомогою комбінацій клавіш
Можливість включити і вимкнути світло голосом - це одна з найкращих речей про розумний будинок. Якщо у вас немає Amazon Echo або Google Home, хоча або просто віддаєте перевагу клавіатурним скороченням, ви можете використовувати сценарій AutoHotkey для керування світловими сигналами Philips Hue з комп'ютера.
Для цього посібника, ми будемо використовувати AutoHotkey, дивовижну маленьку програму, яка дозволяє писати користувальницькі сценарії автоматизації і навіть перепризначення клавіш на клавіатурі. Якщо ви не знайомі з AutoHotkey або потрібно завантажити його на свою машину Windows, ознайомтеся з нашим керівництвом для початківців.
Що вам потрібно
Ми покажемо вам основний сценарій, який можна використовувати для вмикання та вимикання набору світла (який можна налаштувати пізніше). Перш ніж це зробити, вам знадобляться кілька речей.
- Машина Windows із встановленою функцією AutoHotkey: Якщо ви ще цього не зробили, тут можна завантажити AutoHotkey. На жаль, вона доступна лише для машин Windows. Програма буде працювати у фоновому режимі та інтерпретувати створені вами сценарії (зазвичай у програмі, наприклад, Блокноті).
- Ваша IP-адреса Philips Hue Bridge: Щоб працювати, потрібно ввести IP-адресу моста в сценарій. Ми дізнаємося, як знайти цю інформацію нижче.
- Ім'я користувача розробника API Hue: Скрипт, який ми використовуємо, також використовує API розробника. Щоб скористатися нею, потрібно мати обліковий запис і дізнатися своє ім'я користувача для розробника API. Ще раз, ми покажемо вам, як отримати обліковий запис і знайти ваш ідентифікатор нижче.
- Скрипт автовідтворення: У наступному великому розділі нижче буде показано скрипт, на якому ми базуємо цей посібник. Reddit користувача tarrosion створив шаблон, який ми будемо базувати наші від тут, якщо ви хочете пірнути трохи глибше. Проте ми скоригували цей сценарій, щоб спростити його. Скопіюйте скрипт з розділу нижче, вставте його в пустий документ "Блокнот", а потім збережіть його з таким ім'ям
hueshortcut.ahk
.
Якщо ви вже знаєте свою IP-адресу мосту та ім'я користувача API, ви можете пропустити його вперед.
Як знайти IP-адресу моста
Ваш IP-адресу мосту відносно простий. Зверніться до цього посилання та увійдіть до свого облікового запису Philips Hue.
Угорі сторінки натисніть Bridge.
Натисніть кнопку "Показати більше деталей мосту".
Запишіть внутрішню IP-адресу. Вам знадобиться пізніше.
Зверніться до цього для наступного розділу.
Як отримати обліковий запис API розробника відтінків
Якщо у вас ще немає облікового запису розробника "Відтінок", або якщо ви забули своє ім'я користувача API, вам потрібно отримати його зараз. Ця частина трохи складніша, але якщо вам зручно користуватися декількома текстовими командами, вона повинна бути простою. Почніть з заголовка тут і створіть новий обліковий запис розробника з Hue.
Ви отримаєте повідомлення електронної пошти з проханням підтвердити свій обліковий запис і створити пароль. Як тільки це буде зроблено, перейдіть до наступного URL, замінивши IP-адресу, яку ви захопили з попереднього розділу.
http: ///debug/clip.html
Тут ви побачите інструмент, який дозволяє вручну посилати команди на ваш міст Hue. Якщо ви не розумієте все на цій сторінці, це нормально. Вам потрібно лише скористатися цим інструментом для отримання імені користувача API. Для цього введіть / api /
у полі URL. У розділі "Повідомлення" введіть "devicetype": "my_hue_app # iphone peter"
заміни iphone Пітер
з будь-яким дескриптором, який бажаєте, бажано, який описує пристрій, на якому він використовується.
Коли ви ввели всю інформацію, натисніть кнопку посилання на мосту Hue. Це крок безпеки, щоб переконатися, що тільки ви або хтось у вашому домі може створювати програми для керування світлом. Після натискання кнопки посилання на мосту натисніть POST.
У вікні Command Response, ви повинні побачити результат, який виглядає як нижче (за вирахуванням розмиття цензора, природно). Вам буде надано довге, рандомізоване ім'я користувача. Скопіюйте це де-небудь і збережіть його. Пізніше вам знадобиться цей сценарій.
Тепер, коли у вас є ці дві частини інформації, ви готові налаштувати свій сценарій!
Як налаштувати сценарій AutoHotkey
Як я вже згадував раніше, для цього посібника ми використовуємо модифіковану версію цього скрипта від redditor tarrosion. Ми налаштували його, щоб додати ярлики, щоб ви могли включити або вимкнути групу світла одразу замість кожного світла у вашому домі. Нижче наведено такі гарячі клавіші, які ви зможете використовувати з цим сценарієм:
- Ctrl + Alt + L: Увімкніть або вимкніть всі індикатори.
- Ctrl + Alt + I: Вимкніть всі індикатори.
- Ctrl + Alt + O: Увімкніть поточну групу світла.
- Ctrl + Alt + I: Вимкніть поточну групу світла.
- Ctrl + Alt + 1: Перейти до групи 1.
- Ctrl + Alt + 2: Перейти до групи 2.
- Ctrl + Alt + Вгору: Збільшити теплоту поточної групи світла (потрібно кольорові або лампи Ambiance).
- Ctrl + Alt + Вниз: Зменшити теплоту поточної групи вогнів (потрібно кольорові або лампочки Ambiance).
- Ctrl + Alt + Вліво: Збільшення яскравості поточної групи світла.
- Ctrl + Alt + Праворуч: Зменшіть яскравість поточної групи світла.
Можна створювати або змінювати стільки груп вогнів, скільки потрібно. Для цього прикладу я створив дві групи по два освітлення: по одній для офісу і одна для вітальні. Ви можете змінити їх назви, як вважаєте за потрібне. Можливо, вам також знадобиться змінити значення кожної групи залежно від кількості світла.
По-перше, скопіюйте скрипт нижче в документ "Блокнот" і збережіть його як щось подібне до "huelights.ahk". Без цього, Блокнот збереже його як файл .txt, а AutoHotkey не зможе запустити його.
WinHTTP: = ComObjCreate ("WinHTTP.WinHttpRequest.5.1") lightsOn: = 1 office: = [1,2] вітальня: = [3,4] curgroup: = office
lightoff (світло, ByRef WinHTTP) WinHTTP.Open ("PUT", "http: /// api // вогні /". light. "/ state", 0) bodytext = "on": false WinHTTP. (bodytext) повернення lighton (світло, ByRef WinHTTP) WinHTTP.Open ("PUT", "http: /// api // вогні /". light. "/ state", 0) bodytext = "on": true WinHTTP.Send (bodytext) return setlightct (light, newct, ByRef WinHTTP) WinHTTP.Open ("PUT", "http: /// api // вогні /". світло. "/ state", 0) bodytext = "ct":% newct% WinHTTP.Передати (bodytext) modifylightct (світло, кількість, ByRef WinHTTP) WinHTTP.Open ("PUT", "http: /// api // lights /". . "/ state", 0) bodytext = "ct_inc":% amount%, "перехідний час": 2 WinHTTP.Send (bodytext) modifylightbrightness (світло, кількість, ByRef WinHTTP) WinHTTP.Open ("PUT", "http: /// api // вогні /". light. "/ state", 0) bodytext = "bri_inc":% amount%, "перехідний час": 2 WinHTTP.Send (bodytext); ctrl-alt -1: змінити на групу 1 ^! 1 :: curgroup: = office return; ctrl-alt-2: змінити на групу 2 ^! 2 :: curgroup: = повернення у вітальні; ctr l-alt-o: включення світлових груп на ^! o :: для _, світло в курсорі lighton (light, WinHTTP) повернення; ctrl-alt-i: вимкнення світлових груп ^! i :: для _, світло в групі lightoff (light, WinHTTP) return; ctrl-alt-l: перемикати всі ліхтарі ^! l :: WinHTTP.Open ("PUT", "http: /// api // groups / 0 / action", 0) if lightsOn > 0 bodytext = "on": false ще bodytext = "on": true WinHTTP.Send (bodytext) lightsOn: = 1 - lightsOn return; ctrl-alt-k: всі індикатори вимкнені ^! k :: WinHTTP.Open ("PUT", "http: /// api // groups / 0 / action", 0) bodytext = "on": false WinHTTP .Send (bodytext) lightsOn: = 0 return; ctrl-alt-Up: збільшення тепла поточної світлової групи ^! Up :: для _, світло в curgroup modifylightct (світло, 43, WinHTTP) повернення; ctrl-alt-Down: зменшення тепла поточної світлової групи ^! Down :: для _, світло в curgroup modifylightct (світло, -43, WinHTTP) повернення; ctrl-alt-ліворуч: збільшення яскравості світлової групи ^! Left :: для _, світло в curgroup modifylightbrightness (світло, -32, WinHTTP) return; ctrl-alt-Right: зменшення яскравості світлової групи ^! Right :: для _, світло в curgroup modifylightbrightness (світло, 32, WinHTTP) повернення
Тепер вам потрібно зробити кілька коригувань. По-перше, у скрипті змінюйте кожен екземпляр до IP-адреси, яку ви отримали від вашого мосту раніше. Далі замінити
з іменем користувача API Hue. У скрипті вище має бути сім екземплярів.
Далі ви побачите розділ у верхній частині, який визначає групи, якими ви можете керувати. Цей розділ виглядає так:
office: = [1,2] вітальня: = [3,4]
Перші два рядки визначають групи світла. Кожній лампочці присвоюється номер, хоча не завжди очевидно, якому номеру відповідає кожне з ваших ліхтарів. Найпростіший спосіб перевірити - це відкрити програму Hue і торкнутися налаштувань, а потім натиснути Light Setup.
Тут ви побачите список всіх ваших вогнів. Підраховуйте кожен вниз, щоб з'ясувати, яким є світло. Наприклад, два ліхтарі в моєму кабінеті знаходяться у верхній частині, так що вони будуть 1 і 2. Нижче розміщені мої вітальні, тому вони повинні бути 3 і 4. Якщо ви видалили і додали нові вогні з вашого налаштування Ці цифри можуть змінюватися трохи, тому перевірте свої сценарії і скористайтеся невеликою кількістю проб і помилок, щоб переконатися, що використовуєте правильні вогні.
Після того як ви знайдете цифри, які відповідають вашим вогням, змініть їх на дві лінії вище. Ви також можете змінити назву кожної з груп, якщо хочете. Просто переконайтеся, що змінилися кожен екземпляр цього імені групи в сценарії. Якщо ви хочете додати третю групу (або більше), створіть новий рядок нижче перших двох, використовуючи наступний формат, замінивши X, Y номерами ліхтарів, які потрібно додати до цієї групи:
назва кімнати : = [X, Y]
Також потрібно додати інший ярлик, щоб можна було змінити третю групу. Виберіть наступний блок тексту в скрипті вище і зробіть копію його нижче цього текстового блоку, змінивши всі 2s на 3s і змініть "вітальню" (або будь-яку назву, яку ви дали другій групі) на назву третьої групи:
; ctrl-alt-2: зміна на групу 2 ^! 2 :: curgroup: = повернення вітальні
Якщо ви знайомі з AutoHotkey, ви можете налаштувати цей сценарій ще більше, щоб додати нові ярлики або керувати світлом різними способами. Перевірте документацію AutoHotkey, якщо вам потрібна допомога. Тут також можна перевірити API Hue API для отримання додаткових команд, які можна інтегрувати у свій сценарій.