Możliwość włączania i wyłączania światła za pomocą głosu jest jedną z najlepszych rzeczy na temat posiadania inteligentnego domu. Jeśli jednak nie masz Amazon Echo ani Google Home, lub wolisz skróty klawiszowe, możesz użyć skryptu AutoHotkey do sterowania światłami Philips Hue z komputera.
W tym przewodniku będziemy używać AutoHotkey, niesamowitego programu, który pozwala pisać niestandardowe skrypty automatyzacji, a nawet mapować klawisze na klawiaturze. Jeśli nie znasz AutoHotkey lub potrzebujesz pobrać go na komputer z Windows, zapoznaj się z naszym przewodnikiem dla początkujących tutaj.
Pokażemy Ci podstawowy skrypt, za pomocą którego możesz włączać i wyłączać światła (które możesz później dostosować). Zanim to zrobimy, będziesz potrzebować kilku rzeczy.
hueshortcut.ahk
.Jeśli znasz już swój adres IP mostu i nazwę użytkownika API, możesz pominąć.
Twój adres IP mostu jest stosunkowo prosty do znalezienia. Wejdź na ten link i zaloguj się na swoje konto Philips Hue.
W górnej części strony kliknij Bridge.
Kliknij przycisk "Pokaż więcej szczegółów mostu".
Zanotuj swój wewnętrzny adres IP. Będziesz go potrzebować później.
Trzymaj się tego w następnej sekcji.
Jeśli nie masz jeszcze konta programisty Hue lub nie pamiętasz nazwy użytkownika interfejsu API, musisz je teraz uzyskać. Ta część jest nieco bardziej skomplikowana, ale jeśli czujesz się komfortowo przy użyciu kilku poleceń tekstowych, powinna być prosta. Zacznij od pozycji tutaj i utworzenia nowego konta programisty w Hue.
Otrzymasz wiadomość e-mail z prośbą o potwierdzenie konta i utworzenie hasła. Gdy to zrobisz, przejdź do następującego adresu URL, zastępując adres IP pobrany z poprzedniej sekcji.
http: ///debug/clip.html
Tutaj zobaczysz narzędzie, które pozwala ręcznie wysyłać polecenia do mostu Hue. Jeśli nie rozumiesz wszystkiego na tej stronie, wszystko w porządku. Trzeba tylko użyć tego narzędzia, aby uzyskać nazwę użytkownika API. Aby to zrobić, wprowadź / api /
w polu adresu URL. W sekcji Treść wiadomości wprowadź "devicetype": "my_hue_app # iphone peter"
zastępowanie iphone peter
z dowolnym deskryptorem, najlepiej takim, który opisuje urządzenie, na którym go używasz.
Po wprowadzeniu wszystkich informacji naciśnij przycisk łącza na swoim moście Hue. Jest to krok bezpieczeństwa, aby upewnić się, że tylko Ty lub ktoś z Twojego domu może tworzyć aplikacje do sterowania oświetleniem. Po naciśnięciu przycisku łącza na moście kliknij POST.
W polu Odpowiedzi na komendę powinieneś zobaczyć wynik, który wygląda jak poniżej (oczywiście bez rozmycia cenzury). Otrzymasz długą, losową nazwę użytkownika. Skopiuj to gdzieś i zapisz. Będziesz go potrzebować do późniejszego skryptu.
Teraz, gdy masz już te dwie informacje, jesteś gotowy, aby skonfigurować skrypt!
Jak wspomniałem wcześniej, w tym przewodniku używamy zmodyfikowanej wersji tego skryptu z redditor tarro. Zmieniliśmy go, dodając skróty, dzięki czemu możesz włączyć lub wyłączyć grupę świateł zamiast każdego światła w domu. Oto następujące skróty klawiszowe, których będziesz mógł używać w tym skrypcie:
Możesz tworzyć lub modyfikować tyle grup świateł, ile potrzebujesz. W tym przykładzie utworzyłem dwie grupy po dwie lampki każda: jedna do biura i jedna do salonu. Możesz zmienić nazwy tych, które uznasz za stosowne. Może być również konieczna zmiana wartości każdej grupy w zależności od tego, ile masz świateł.
Najpierw skopiuj poniższy skrypt do dokumentu Notatnika i zapisz go jako coś takiego jak "huelights.ahk", pamiętając o zastąpieniu rozszerzenia .txt przez .ahk. Bez tego Notatnik zapisze go jako plik .txt, a AutoHotkey nie będzie mógł go uruchomić.
WinHTTP: = ComObjCreate ("WinHTTP.WinHttpRequest.5.1") lightsOn: = 1 biuro: = [1,2] salon: = [3,4] curgroup: = biuro
lightoff (light, ByRef WinHTTP) WinHTTP.Open ("PUT", "http: /// api // światła /". light. "/ state", 0) bodytext = "on": false WinHTTP.Send (bodytext) return lighton (light, ByRef WinHTTP) WinHTTP.Open ("PUT", "http: /// api // lights /". light. "/ state", 0) bodytext = "on": true WinHTTP.Send (bodytext) return setlightct (light, newct, ByRef WinHTTP) WinHTTP.Open ("PUT", "http: /// api // lights /". light. "/ state", 0) bodytext = "ct":% newct% WinHTTP.Send (bodytext) modifylightct (light, amount, ByRef WinHTTP) WinHTTP.Open ("PUT", "http: /// api // lights /". light "/ state", 0) bodytext = "ct_inc":% amount%, "transitiontime": 2 WinHTTP.Send (bodytext) modifylightbrightness (light, amount, ByRef WinHTTP) WinHTTP.Open ("PUT", "http: /// api // lights /". light. "/ state", 0) bodytext = "bri_inc":% amount%, "transitiontime": 2 WinHTTP.Send (bodytext); ctrl-alt -1: zmień na grupę 1 ^! 1 :: curgroup: = powróć do biura; ctrl-alt-2: zmień na grupę 2 ^! 2 :: curgroup: = powrót do pokoju gościnnego; ctr l-alt-o: włącza światełka grupowe na ^! o :: dla _, światło w świetle grupowym lighton (światło, WinHTTP) powrót; ctrl-alt-i: wyłącza światła grupowe ^! i :: dla _, światło w curgroup lightoff (światło, WinHTTP) powrót; ctrl-alt-l: przełącz wszystkie światła ^! l :: WinHTTP.Open ("PUT", "http: /// api // groups / 0 / action", 0) jeśli lightsOn > 0 bodytext = "on": false else bodytext = "on": true WinHTTP.Send (bodytext) lightsOn: = 1 - lightsOn return; ctrl-alt-k: wszystkie światła wyłączone ^! k :: WinHTTP.Open ("PUT", "http: /// api // groups / 0 / action", 0) bodytext = "on": false WinHTTP .Send (bodytext) lightsOn: = 0 return; ctrl-alt-Up: zwiększenie ciepła aktualnej grupy światła ^! W górę :: dla _, światło w grupie modifylightct (światło, 43, WinHTTP) powrót; ctrl-alt-Down: Zmniejszenie ciepła aktualnej grupy światła ^! Dół :: dla _, światło w zamian modifylight (światło, -43, WinHTTP) powrót, ctrl-alt-Left: zwiększenie jasności grupy światła ^! Left :: for _, light in curgroup modifylightszybkość (światło, -32, WinHTTP) powrót; ctrl-alt-Right: zmniejszenie jasności grupy świetlnej ^! Prawe :: dla _, światło w curgroup modifylightbrightness (światło, 32, WinHTTP) powrót
Teraz musisz wprowadzić kilka poprawek. Najpierw w skrypcie zmień wszystkie wystąpienia na adres IP, który otrzymałeś wcześniej od swojego mostu. Następnie wymień
z twoją nazwą użytkownika interfejsu API Hue. W powyższym skrypcie powinno być siedem wystąpień każdego z nich.
Następnie zobaczysz sekcję u góry, która definiuje grupy, które możesz kontrolować. Ta sekcja wygląda następująco:
biuro: = [1,2] salon: = [3,4]
Pierwsze dwie linie definiują grupy świateł. Każda żarówka ma przypisany numer, choć nie zawsze wiadomo, do której liczby odpowiada każde z twoich świateł. Najprostszym sposobem sprawdzenia jest otwarcie aplikacji Hue i dotknięcie opcji Ustawienia, a następnie dotknij opcji Ustawienia światła.
Tutaj zobaczysz listę wszystkich twoich świateł. Policz każdy z nich, aby dowiedzieć się, jaki numer mają twoje światła. Na przykład dwa światła w moim biurze znajdują się na górze, więc będą to 1 i 2. Poniżej moje światła w salonie, więc powinny to być 3 i 4. Jeśli usunąłeś i dodałeś nowe światła ze swojej konfiguracji Te liczby mogą nieco się przesunąć, przetestuj więc swoje skrypty i wykorzystaj małą próbę i błąd, aby upewnić się, że używasz właściwych świateł.
Po znalezieniu liczb odpowiadających twoim światłom, zmień je w dwóch liniach powyżej. Możesz również zmienić nazwę każdej grupy, jeśli chcesz. Tylko pamiętaj, aby zmienićkażde wystąpienie tej nazwy grupy w skrypcie. Jeśli chcesz dodać trzecią grupę (lub więcej), utwórz nową linię poniżej dwóch pierwszych, używając następującego formatu, zastępując X, Y liczbami świateł, które chcesz dodać do tej grupy:
Nazwa pokoju: = [X, Y]
Będziesz także musiał dodać inny skrót, aby móc przejść do trzeciej grupy. Wybierz poniższy blok tekstu w powyższym skrypcie i utwórz jego kopię pod tym blokiem tekstu, zmieniając wszystkie 2s na 3s i zmieniając "livingroom" (lub dowolne nazwisko, które dałeś swojej drugiej grupie) na nazwę trzeciej grupy:
; ctrl-alt-2: zmiana na grupę 2 ^! 2 :: curgroup: = powrót do pokoju gościnnego
Jeśli znasz już AutoHotkey, możesz ulepszyć ten skrypt jeszcze bardziej, aby dodawać nowe skróty lub kontrolować światła na różne sposoby. Zapoznaj się z dokumentacją AutoHotkey, jeśli potrzebujesz pomocy. Możesz również zapoznać się z interfejsem API Philips Hue, aby uzyskać więcej komend, które możesz zintegrować ze swoim skryptem.