Ik heb die lightmanager mini nog.
Ik gebruik in mijn ht wel geen harmony meer
Kun je wat meer uitleg geven?
Wat en hoe ik het moet instellen met die callbacks.. 0,0 ervaring hier
Eerst u eens verdiepen hoe de Hue api werkt denk ik zo. Dat doe je via
https://www.developers.meethue.com/philips-hue-api
Ge moet u daar registeren. Eens dat je toegang hebt, kan je daar terugvinden hoe Hue precies werkt en hoe je vanuit uw browser uw lichten/groepen kan sturen, met alle toeters en bellen.
Als je dan callbacks in uw Kodi opzet, kan je via het PUT commando direct naar uw Hue api een commando sturen die uw lichten instelt bij bepaalde acties. “Probleem” is dat je per actie maar 1 commando kan meesturen. Stel dat je verschillende licht groepen hebt in uw room, waarvan je wenst dat ze zich anders gedragen bij het uitvoeren van een actie, ja dan hebt ge een probleem. Als oplossing kan je dan bv die PUT verwijzen naar een php scriptje, waar ge dan per group van lichten instopt wat ge wilt.
Op de nas draait daarvoor dan een php webserver. In callbacks verwijs ik per actie naar een php “pagina/script”. In die php pagina worden er eigenlijk PUT commando’s gestuurd naar de Hue api.
Zo heb ik voor de acties in Kodi (opstarten, afsluiten Kodi, spelen, pauze, stoppen van film) die ik nodig acht een php fileke dat callbacks dan uitvoert bij een bepaalde Kodi actie.
Simpel gezegd: callbacks runt de php file, de php file roept naar de Hue hub doe dit of dat.
PHP:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Toothless HT HUE Setup</title>
</head>
<body>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// The light group ID that we need to target
$groups1 = array(5); //eerste groep(en) - HT Dak
$groups2 = array(7); //tweede groep(en) - Hifi Mode
// Zet de Hue eigenschappen voor $groups1
$status = true;
$hue = 39503;
$sat = 50;
$bri = 40;
$tra = 20;
$ct = 369;
// Zet de Hue eigenschappen voor $groups2
$status2 = true;
$hue2 = 47000;
$sat2 = 254;
$bri2 = 254;
$tra2 = 20;
$ct2 = 500;
// Maak een array met de gekozen properties
$data = array("on" => $status, "hue" => $hue, "sat" => $sat, "bri" => $bri, "transitiontime" => $tra,"ct" => $ct);
$data2 = array("on" => $status2, "hue" => $hue2, "sat" => $sat2, "bri" => $bri2, "transitiontime" => $tra2,"ct" => $ct2);
// Maak een JSON string van de gekozen properties in de arrays
$data_string = json_encode($data);
$data_string2 = json_encode($data2);
//echo $data_string;
// Stuur een PUT request naar de Hue Bridge voor elke groep in de groups1 array
foreach ($groups1 as $group) {
$ch = curl_init("http://XXX/api/YYY/groups/$group/action");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
print_r($result);
}
// Stuur een PUT request naar de Hue Bridge for elke groep in de groups2 array
foreach ($groups2 as $group1) {
$ch2 = curl_init("http://XXX/api/YYY/groups/$group1/action");
curl_setopt($ch2, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch2, CURLOPT_POSTFIELDS, $data_string2);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string2))
);
$result = curl_exec($ch2);
print_r($result);
}
?>
</body>
</html>
Als ge dat niet nodig hebt (verschillende lichtacties per actie), wel dan stopt ge gewoon uw hue commando als PUT in 1 enekel callback taak.
XXx staat hier voor het ip adres van uw Hue bridge, YYY is het user profile ID dat gebruikt wordt in de hue api en waaronder uw lichten/groepen van lichten zitten (zie uitleg over de hue api site)
Bv om de lichten hier allemaal met delay te schakelen, is het commando:
http://XXX/api/YYY/groups/7/actionPUT:{"on":false,"sat":255,"bri":255,"hue":46920,"transitiontime":150}
Ge kunt zoiets direct in een browser plakken en testen, zien wat het geeft. Als ik dat commande dus toewijs in de callbacks op die taak die Kodi aflsuit en pc uitzet, dan vallen de lichten uit met delay van 15 sec, of komt er meer licht of whatever...
De manier waarop je dat in Cinemavision doet is ook best via actionscripts, zgn cvaction files. Je hebt in de Cinemavision folder een submap Actions, daarin ga je in de actionfile eigenlijk hetzelfde doen, nml de Hue api aansturen:
Code:
# This CinemaVision Action file uses a PUT method to turn off Philips Hue lights
#
# Visit "http://www.developers.meethue.com/" for more information on Philips Hue lights
# Visit "http://www.developers.meethue.com/documentation/configuration-api#71_create_user" to learn how to generate a <hue-bridge-user>
# Brightness values can be any number between 0 and 255
# The minimum brightness does not turn off the light
#
# Replace <hue-bridge-ip> with the IP address of your Hue system
# Replace <hue-bridge-user> with the username that has access to the resource
# Replace <hue-light-group> with the group number that your hue lights are in
http://XXX/api/YYY/groups/7/action
PUT:{"on":false,"sat":255,"bri":255,"hue":46920,"transitiontime":150}
Die actions kan je dan in de Cinemavision in een sequence steken en bepalen hoe de lichten zich dus moeten gedragen bij elkeen van die acties.
Bv, bij trailers afspelen heb ik nog wat blauw licht op de muur naast het scherm schijnen, in het dak is verlichting uit. Maar als de film begint valt alles uit of whatever...
Mbt de lightmanger air, via airstudio dan, kan je uw "schakelaars" en Scenes gaan opzetten. Die scene koppel je dan een een knop op je remote (app) bijvoorbeeld.
1 is hier weer uw ip van de hue hub, 2 de user account.
In principe is het altijd hetzelfde he, PUT commando naar de Hue api en hup lichten zijn ingesteld. Wat ge in uw put commando stopt, da's up to you. Belangrijkste van heel dit gedoe is gewoon snappen hoe de Hue api werkt en ge zijt vertrokken. Je kan de PUT commando's via uw browser testen, eens ze op punt staan (naar uw goesting) sla je ze als commando op in uw applicatie (callbacks, php file, cinemavision action file etc) en that's it.
"Duur" is altijd relatief
Bediening kan via "dummy" way, maar je krijgt er die api bij he en daarmee kan je de lampen sturen met oneinidg veel mogelijkheden.