Het is een van de beste aspecten van een slimme woning om uw verlichting aan en uit te kunnen schakelen met uw stem. Als je echter geen Amazon Echo of Google Home hebt (of gewoon de voorkeur geeft aan sneltoetsen), kun je een AutoHotkey-script gebruiken om je Philips Hue-lampen vanaf je computer te bedienen.
VERWANT: De beginnershandleiding voor het gebruik van een AutoHotkey-script
Voor deze handleiding gaan we AutoHotkey gebruiken, een geweldig klein programma waarmee je aangepaste automatiseringsscripts kunt schrijven en zelfs toetsen op je toetsenbord opnieuw kunt toewijzen. Als u niet bekend bent met AutoHotkey of het naar uw Windows-computer wilt downloaden, bekijk dan hier onze beginnershandleiding.
Wat je nodig hebt
We gaan je een basisscript laten zien dat je kunt gebruiken om een reeks lichten aan en uit te zetten (die je later kunt aanpassen). Voordat we dat doen, heb je een paar dingen nodig.
- Een Windows-machine waarop AutoHotkey is geïnstalleerd: Als je dat nog niet hebt gedaan, kun je AutoHotkey hier downloaden. Het is helaas alleen beschikbaar voor Windows-machines. De toepassing wordt op de achtergrond uitgevoerd en interpreteert de scripts die u maakt (meestal in een programma zoals Kladblok).
- Uw Philips Hue Bridge IP-adres: U moet het IP-adres van uw Bridge in het script invoeren om het te laten werken. We laten u hieronder zien hoe u deze informatie kunt vinden.
- Een Philips Hue Developer API-gebruikersnaam: Het script dat we gebruiken, maakt ook gebruik van de ontwikkelaars-API. Om er gebruik van te kunnen maken, moet u een account hebben en uw ontwikkelaar-API-gebruikersnaam kennen. We laten u nogmaals zien hoe u een account kunt krijgen en hoe u uw ID hieronder kunt vinden.
-
Het AutoHotkey-script: In het volgende grote gedeelte hieronder hebben we het script waarop we deze handleiding baseren. Reddit user tarrosion heeft een sjabloon gemaakt waarop we de onze zullen baseren als je wat dieper wilt duiken. We hebben dit script echter aangepast om het te vereenvoudigen. Kopieer het script uit de onderstaande sectie, plak het in een leeg Kladblok-document en sla het op met een naam zoals
hueshortcut.ahk
.
Als u uw bridge-IP-adres en API-gebruikersnaam al kent, kunt u doorgaan.
Hoe u uw Bridge IP-adres kunt vinden
Het IP-adres van uw bridge is relatief eenvoudig te vinden. Ga naar deze link en log in op uw Philips Hue-account.
Klik bovenaan de pagina op Bridge.
Klik op de knop “Meer brugdetails weergeven”.
Noteer uw interne IP-adres. Je hebt het later nodig.
Houd dit vast voor de volgende sectie.
Hoe u een Hue Developer API-account kunt krijgen
Als je nog geen Hue Developer-account hebt, of als je je API-gebruikersnaam bent vergeten, moet je er nu een aanschaffen. Dit deel is iets gecompliceerder, maar als je vertrouwd bent met het gebruik van een paar tekstopdrachten, zou het eenvoudig moeten zijn. Begin door hierheen te gaan en een nieuw ontwikkelaarsaccount met Hue te maken.
U ontvangt een e-mail waarin u wordt gevraagd uw account te bevestigen en een wachtwoord aan te maken. Zodra dat is gebeurd, gaat u naar de volgende URL en vervangt u
http://<bridge ip address>/debug/clip.html
Hier zie je een tool waarmee je handmatig opdrachten naar je Hue-bridge kunt sturen. Als je niet alles op deze pagina begrijpt, is dat prima. U hoeft deze tool alleen te gebruiken om uw API-gebruikersnaam te krijgen. Om dat te doen, voert u in /api/
in het URL-vak. Voer onder Berichttekst in {"devicetype":"my_hue_app#iphone peter"}
vervangen iphone peter
met elke gewenste descriptor, bij voorkeur een die het apparaat beschrijft waarop u het gebruikt.
Als je alle informatie hebt ingevoerd, tik je op de linkknop op je Hue bridge. Dit is een beveiligingsstap om ervoor te zorgen dat alleen jij of iemand in je huis applicaties kan maken om je lampen te bedienen. Zodra je op de linkknop op je bridge hebt gedrukt, klik je op POST.
In het Command Response-vak zou u een resultaat moeten zien dat eruitziet als het onderstaande (minus de censor-vervaging, natuurlijk). U krijgt een lange, willekeurige gebruikersnaam. Kopieer dit ergens naar beneden en sla het op. Je hebt het later nodig voor het script.
Nu je die twee stukjes informatie hebt, ben je klaar om je script op te zetten!
Hoe u het AutoHotkey-script instelt
Zoals ik eerder al zei, gebruiken we voor deze handleiding een aangepaste versie van dit script van redditor tarrosion. We hebben het aangepast om snelkoppelingen toe te voegen, zodat u een groep lichten tegelijk kunt in- en uitschakelen in plaats van elk licht in uw huis. Hier zijn de volgende sneltoetsen die u met dit script kunt gebruiken:
- Ctrl + Alt + L: Schakel al uw lichten aan of uit.
- Ctrl + Alt + I: Doe alle lichten uit.
- Ctrl + Alt + O: Schakel de huidige groep lichten in.
- Ctrl + Alt + I: Schakel de huidige groep lichten uit.
- Ctrl + Alt + 1: Schakel over naar groep 1.
- Ctrl + Alt + 2: Schakel over naar groep 2.
- Ctrl + Alt + Omhoog: Verhoog de warmte van de huidige groep lampen (vereist kleur- of sfeerlampen).
- Ctrl + Alt + Omlaag: Verlaag de warmte van de huidige groep lampen (vereist kleur- of sfeerlampen).
- Ctrl + Alt + Links: Verhoog de helderheid van de huidige groep lichten.
- Ctrl + Alt + Rechts: Verlaag de helderheid van de huidige groep lichten.
U kunt zoveel groepen lampen maken of wijzigen als u nodig heeft. Voor dit voorbeeld heb ik twee groepen van elk twee lampen gemaakt: een voor een kantoor en een voor de woonkamer. U kunt de namen hiervan naar eigen inzicht wijzigen. Mogelijk moet u ook de waarden van elke groep wijzigen, afhankelijk van het aantal lampen dat u heeft.
Kopieer eerst het onderstaande script naar een Kladblok-document en sla het op als zoiets als “huelights.ahk” en zorg ervoor dat u de .txt-extensie vervangt door .ahk. Zonder dat slaat Kladblok het op als een .txt-bestand en kan AutoHotkey het niet uitvoeren.
WinHTTP := ComObjCreate("WinHTTP.WinHttpRequest.5.1")
lightsOn := 1
office := [1,2]
livingroom := [3,4]
curgroup := office
lightoff(light, ByRef WinHTTP) { WinHTTP.Open("PUT", "http://<your-bridge-IP-address>/api/<your-api-username>/lights/" . light . "/state", 0) bodytext = {"on" : false} WinHTTP.Send(bodytext) return } lighton(light, ByRef WinHTTP) { WinHTTP.Open("PUT", "http://<your-bridge-IP-address>/api/<your-api-username>/lights/" . light . "/state", 0) bodytext = {"on" : true} WinHTTP.Send(bodytext) return } setlightct(light, newct, ByRef WinHTTP) { WinHTTP.Open("PUT", "http://<your-bridge-IP-address>/api/<your-api-username>/lights/" . light . "/state", 0) bodytext = {"ct" : %newct%} WinHTTP.Send(bodytext) } modifylightct(light, amount, ByRef WinHTTP) { WinHTTP.Open("PUT", "http://<your-bridge-IP-address>/api/<your-api-username>/lights/" . light . "/state", 0) bodytext = {"ct_inc" : %amount%, "transitiontime" : 2} WinHTTP.Send(bodytext) } modifylightbrightness(light, amount, ByRef WinHTTP) { WinHTTP.Open("PUT", "http://<your-bridge-IP-address>/api/<your-api-username>/lights/" . light . "/state", 0) bodytext = {"bri_inc" : %amount%, "transitiontime" : 2} WinHTTP.Send(bodytext) } ;ctrl-alt-1: change to group 1 ^!1:: curgroup := office return ;ctrl-alt-2: change to group 2 ^!2:: curgroup := livingroom return ;ctrl-alt-o: turn group lights on ^!o:: for _, light in curgroup lighton(light, WinHTTP) return ;ctrl-alt-i: turn group lights off ^!i:: for _, light in curgroup lightoff(light, WinHTTP) return ;ctrl-alt-l: toggle all lights ^!l:: WinHTTP.Open("PUT", "http://<your-bridge-IP-address>/api/<your-api-username>/groups/0/action", 0) if lightsOn > 0 bodytext = {"on" : false} else bodytext = {"on" : true} WinHTTP.Send(bodytext) lightsOn := 1 - lightsOn return ; ctrl-alt-k : all lights off ^!k:: WinHTTP.Open("PUT", "http://<your-bridge-IP-address>/api/<your-api-username>/groups/0/action", 0) bodytext = {"on" : false} WinHTTP.Send(bodytext) lightsOn := 0 return ;ctrl-alt-Up: increase warmth of current light group ^!Up:: for _, light in curgroup modifylightct(light, 43, WinHTTP) return ;ctrl-alt-Down: decrease warmth of current light group ^!Down:: for _, light in curgroup modifylightct(light, -43, WinHTTP) return ;ctrl-alt-Left: increase brightness of light group ^!Left:: for _, light in curgroup modifylightbrightness(light, -32, WinHTTP) return ;ctrl-alt-Right: decrease brightness of light group ^!Right:: for _, light in curgroup modifylightbrightness(light, 32, WinHTTP) return
Nu moet u een paar aanpassingen maken. Verander eerst in het script elk exemplaar van <your-bridge-ip-address>
naar het IP-adres dat u eerder van uw bridge heeft gekregen. Vervang vervolgens <your-api-username>
met uw Hue API-gebruikersnaam. Er zouden zeven exemplaren van elk in het bovenstaande script moeten zijn.
Vervolgens zie je bovenaan een sectie die de groepen definieert die je kunt besturen. Dat gedeelte ziet er als volgt uit:
office := [1,2] livingroom := [3,4]
De eerste twee regels definiëren uw groepen lichten. Elke lamp krijgt een nummer toegewezen, hoewel het niet altijd duidelijk is met welk nummer elk van uw lampen overeenkomt. De eenvoudigste manier om dit te controleren, is door je Hue-app te openen en op Instellingen te tikken en vervolgens op Lichtinstellingen.
Hier zie je een lijst met al je lampen. Tel ze allemaal af om erachter te komen welk nummer uw lichten zijn. De twee lampen in mijn kantoor bevinden zich bijvoorbeeld bovenaan, dus ze zouden 1 en 2 zijn. Daaronder zijn mijn woonkamerlampen, dus die moeten 3 en 4 zijn. Als je nieuwe lampen uit je opstelling hebt verwijderd en toegevoegd , kunnen deze cijfers een beetje verschuiven, dus test uw scripts en gebruik een beetje vallen en opstaan om er zeker van te zijn dat u de juiste lichten gebruikt.
Zodra je de nummers hebt gevonden die overeenkomen met je lichten, verander je ze in de twee bovenstaande regels. U kunt desgewenst ook de naam van elk van de groepen wijzigen. Zorg ervoor dat u verandert elke instantie van die groepsnaam in het script. Als je een derde groep (of meer) wilt toevoegen, maak dan een nieuwe regel onder de eerste twee met het volgende formaat, waarbij je X, Y vervangt door de nummers van de lichten die je aan die groep wilt toevoegen:
roomname := [X, Y]
U moet ook nog een snelkoppeling toevoegen om naar de derde groep te kunnen gaan. Selecteer het volgende tekstblok in het bovenstaande script en maak er een kopie van onder dit tekstblok, verander alle 2-en in 3-en en verander “huiskamer” (of welke naam je ook aan je tweede groep hebt gegeven) in de naam van de derde groep:
;ctrl-alt-2: change to group 2 ^!2:: curgroup := livingroom return
Als u bekend bent met AutoHotkey, kunt u dit script nog verder aanpassen om nieuwe snelkoppelingen toe te voegen of uw lichten op verschillende manieren te bedienen. Bekijk de AutoHotkey-documentatie als u hulp nodig heeft. Je kunt hier ook de Philips Hue API bekijken voor meer opdrachten die je in je script kunt integreren.