Hallo,
habe gestern IPS Light installiert.
Meine normalen HM Aktoren werden alle richtig angezeigt.
Nun wollte ich auch gerne meine neuen HUE Lampen integrieren.
Dazu habe ich das Script „IPSComponentRGB_PhilipsHUE“ im Objektbaum gesucht und dort die Einstellungen für die HUE gesucht.
Leider bekomm ich aber beim Ausführen einen Error…Sind die Daten an der richtigen Stelle von mir eingefügt worden?
<?
/**@addtogroup ipscomponent
* @{
*
*
* @file IPSComponentRGB_PhilipsHUE.class.php
* @author Andreas Brauneis
*
*
*/
/**
* @class IPSComponentRGB_PhilipsHUE
*
* Definiert ein IPSComponentRGB_PhilipsHUE Object, das ein IPSComponentRGB Object fuer PhilipsHUE implementiert.
*
* Farbumwandlung implementiert von meberhardt analog der offiziellen iOS App:
*
* https://github.com/PhilipsHue/PhilipsHueSDK-iOS-OSX/blob/master/ApplicationDesignNotes/RGB%20to%20xy%20Color%20conversion.md
*
* @author Andreas Brauneis
* @version
* Version 2.50.1, 28.01.2014<br/>
*/
IPSUtils_Include ('IPSComponentRGB.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentRGB');
IPSUtils_Include ("IPSLogger.inc.php", "IPSLibrary::app::core::IPSLogger");
class IPSComponentRGB_PhilipsHUE extends IPSComponentRGB {
private $bridgeIP;
private $lampNr;
private $hueKey;
private $modelID;
public $Status;
public $Hue;
public $ModelID;
public $XY;
public $Level;
public $Saturation;
/**
* @public
*
* Initialisierung eines IPSComponentRGB_PhilipsHUE Objektes
*
* @param string $bridgeIP IP Addresse der HUE Lampe
* @param string $hueKey Key zum Zugriff auf die Lampe
* @param string $lampNr Nummer der Lampe
* @param string $modelID Philips Modelnummer der Lampe
*
*/
public function __construct($bridgeIP, $hueKey, $lampNr, $modelID) {
$this-> 192.168.178.xxx = $bridgeIP;
$this-> 1234567890 = $hueKey;
$this-> 1 = $lampNr;
$this-> LCT001 = $modelID;
}
/**
* @public
*
* Function um Events zu behandeln, diese Funktion wird vom IPSMessageHandler aufgerufen, um ein aufgetretenes Event
* an das entsprechende Module zu leiten.
*
* @param integer $variable ID der auslösenden Variable
* @param string $value Wert der Variable
* @param IPSModuleRGB $module Module Object an das das aufgetretene Event weitergeleitet werden soll
*/
public function HandleEvent($variable, $value, IPSModuleRGB $module){
}
/**
* @public
*
* Funktion liefert String IPSComponent Constructor String.
* String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams
* wieder neu zu erzeugen.
*
* @return string Parameter String des IPSComponent Object
*/
public function GetComponentParams() {
return get_class($this).','.$this->bridgeIP.','.$this->hueKey.','.$this->lampNr.','.$this->modelID;
}
/**
* @brief Sends command to HUE bridge using JSON
*
* @param [in] $type Type of parameter ([Lights, Bridge]
* @param [in] $request [GET,PUT]
* @param [in] $cmd Command string
* @return Returns the result of the JSON command
*
*/
private function hue_SendLampCommand($type, $request, $cmd = null) {
switch ($type) {
case 'Lights':
$json_url = 'http://'.$this->bridgeIP.'/api/'.$this->hueKey.'/lights/'.$this->lampNr.'/state';
break;
case 'Bridge':
$json_url = 'http://'.$this->bridgeIP.'/api/'.$this->hueKey;
break;
case 'api':
//For further development
break;
default:
break;
}
$json_string = '{'.$cmd.'}';
// Configuring curl
$ch = curl_init($json_url);
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => $request,
CURLOPT_HTTPHEADER => array('Content-type: application/json') ,
CURLOPT_POSTFIELDS => $json_string
);
curl_setopt_array($ch, $options);
IPSLogger_Inf(__file__, 'Send PhilipsHUE: JsonURL='.$json_url.', Command='.$json_string);
// Execute
if ($this->bridgeIP <> '') {
$json_result = curl_exec($ch);
return json_decode($json_result);
}
}
/**
* @public
*
* @brief Zustand Setzen
*
* @param boolean $power RGB Gerät On/Off
* @param integer $color RGB Farben (Hex Codierung)
* @param integer $level Dimmer Einstellung der RGB Beleuchtung (Wertebereich 0-100)
*/
public function SetState($power, $color, $level) {
if (!$power) {
$cmd = '"on":false';
} else {
$rotDec = (($color >> 16) & 0xFF);
$gruenDec = (($color >> 8) & 0xFF);
$blauDec = (($color >> 0) & 0xFF);
$color_array = array($rotDec,$gruenDec,$blauDec);
$modelID = $this->modelID;
//Convert RGB to XY values
$values = $this->calculateXY($color_array, $modelID);
//IPSLight is using percentage in variable Level, Hue is using [0..255]
$level = round($level * 2,55);
$cmd = '"bri":'.$level.', "xy":['.$values->x.','.$values->y.'], "on":true';
}
$type = 'Lights'; //Type of Command
$request = 'PUT'; //Type of Request
//Send command to Hue lamp
$this->hue_SendLampCommand($type, $request, $cmd);
}
/**
* @brief Queries bridge for details of the lamp
*
* @return None, details are populated in the public variables of the class
*
*/
public function QueryHUE() {
$type = 'Bridge'; //Type of Command
$request = 'GET'; //Type of Request
//Send command to Hue lamp
$result = $this->hue_SendLampCommand($type, $request);
$id = 1;
foreach ($result->lights as $light) {
if ($id == $this->lampNr) {
$this->Status = $light->state->on;
$this->Hue = $light->state->hue;
$this->ModelID = $light->modelid;
$this->XY = $light->state->xy;
$this->Level = $light->state->bri;
$this->Saturation = $light->state->sat;
}
$id=$id+1;
}
}
/**
* @brief Sets the alert state. 'select' blinks once, 'lselect' blinks repeatedly, 'none' turns off blinking
*
*/
public function SetAlert( $alert_type = 'select' ) {
$type = 'Lights'; //Type of Command
$request = 'PUT'; //Type of Request
$cmd = '"alert":"'.$alert_type.'"';
//Send command to Hue lamp
$this->hue_SendLampCommand($type, $request, $cmd);
}
/**
* @brief Converts colour value from RGB to XY
*
* @param [in] $color Color in RGB
* @param [in] $model Philips lamp model
* @return XY value
*/
private function calculateXY($color, $model) {
// Get the RGB values from color object and convert them to be between 0 and 1.
$red = round($color[0] / 255,2);
$green = round($color[1] / 255,2);
$blue = round($color[2] / 255,2);
// Apply a gamma correction to the RGB values
$r = ($red > 0.04045) ? pow(($red + 0.055) / (1.0 + 0.055), 2.4) : ($red / 12.92);
$g = ($green > 0.04045) ? pow(($green + 0.055) / (1.0 + 0.055), 2.4) : ($green / 12.92);
$b = ($blue > 0.04045) ? pow(($blue + 0.055) / (1.0 + 0.055), 2.4) : ($blue / 12.92);
// Convert the RGB values to XYZ using the Wide RGB D65 conversion formula
$X = $r * 0.649926 + $g * 0.103455 + $b * 0.197109;
$Y = $r * 0.234327 + $g * 0.743075 + $b * 0.022598;
$Z = $r * 0.0000000 + $g * 0.053077 + $b * 1.035763;
// Calculate the xy values from the XYZ values
if($X==0 && $Y ==0 && $Z ==0) $Z = 0.1;
$cx = $X / ($X + $Y + $Z);
$cy = $Y / ($X + $Y + $Z);
if(is_nan($cx)) $cx = 0.0;
if(is_nan($cy)) $cy = 0.0;
// Check if the found xy value is within the color gamut of the light
$xyPoint = new cgpoint($cx, $cy);
$colorPoints = $this->getColorPointsForModel($model);
$inReachOfLamps = $this->checkPointInLampsReach($xyPoint, $colorPoints);
if(!$inReachOfLamps)
{
// Calculate the closest point on the color gamut triangle and use that as xy value
$pAB = $this->getClosestPointToPoints($colorPoints[0], $colorPoints[1], $xyPoint);
$pAC = $this->getClosestPointToPoints($colorPoints[2], $colorPoints[0], $xyPoint);
$pBC = $this->getClosestPointToPoints($colorPoints[1], $colorPoints[2], $xyPoint);
$dAB = $this->getDistanceBetweenTwoPoints($xyPoint, $pAB);
$dAC = $this->getDistanceBetweenTwoPoints($xyPoint, $pAC);
$dBC = $this->getDistanceBetweenTwoPoints($xyPoint, $pBC);
$lowest = $dAB;
$closestPoint = $pAB;
if($dAC < $lowest)
{
$lowest = $dAC;
$closestPoint = $pAC;
}
if($dBC < $lowest)
{
$lowest = $dBC;
$closestPoint = $pBC;
}
$cx = $closestPoint->x;
$cy = $closestPoint->y;
}
return new cgpoint($cx, $cy);
}
/**
* @brief Returns the color gamut of a specific Philips light model
*
* @param [in] $model ID of the lamp model
* @return Array with color gamut
*
* @details
*
* Following models are supported:
*
* Hue
* "LCT001": Hue A19
* "LCT002": Hue BR30
* "LCT003": Hue GU10
* LivingColors
* "LLC001": Monet, Renoir, Mondriaan (gen II)
* "LLC005": Bloom (gen II)
* "LLC006": Iris (gen III)
* "LLC007": Bloom, Aura (gen III)
* "LLC011": Hue Bloom
* "LLC012": Hue Bloom
* "LLC013": Storylight
* "LST001": Light Strips
*
*/
private function getColorPointsForModel($model) {
$colorPoints = array();
$hueBulbs = array("LCT001","LCT002","LCT003");
$livingColors = array("LLC001","LLC005","LLC006","LLC007","LLC011","LLC012","LLC013","LST001");
if(in_array($model, $hueBulbs))
{
array_push($colorPoints, new cgpoint(0.674,0.322));
array_push($colorPoints, new cgpoint(0.408,0.517));
array_push($colorPoints, new cgpoint(0.168,0.041));
}
else if(in_array($model, $livingColors))
{
array_push($colorPoints, new cgpoint(0.703,0.296));
array_push($colorPoints, new cgpoint(0.214,0.709));
array_push($colorPoints, new cgpoint(0.139,0.081));
}
else
{
array_push($colorPoints, new cgpoint(1.0,0.0));
array_push($colorPoints, new cgpoint(0.0,1.0));
array_push($colorPoints, new cgpoint(0.0,0.0));
}
return $colorPoints;
}
/**
* @brief Find the distance between two points.
*
* @param one
* @param two
* @return the distance between point one and two
*/
private function getDistanceBetweenTwoPoints($one, $two) {
$dx = $one->x - $two->x;
$dy = $one->y - $two->y;
$dist = sqrt($dx * $dx + $dy * $dy);
return $dist;
}
/**
* @brief Find the closest point on a line. This point will be within reach of the lamp.
*
* @param A the point where the line starts
* @param B the point where the line ends
* @param P the point which is close to a line.
* @return the point which is on the line.
*/
private function getClosestPointToPoints($A, $B, $P) {
$AP = new cgpoint($P->x - $A->x, $P->y - $A->y);
$AB = new cgpoint($B->x - $A->x, $B->y - $A->y);
$ab2 = $AB->x * $AB->x + $AB->y * $AB->y;
$ap_ab = $AP->x * $AB->x + $AP->y * $AB->y;
$t = $ap_ab / $ab2;
if($t < 0.0)
{
$t = 0.0;
}
else if($t > 1.0)
{
$t = 1.0;
}
$newPoint = new cgpoint($A->x + $AB->x * $t, $A->y + $AB->y * $t);
return $newPoint;
}
/**
* @brief Calculates crossProduct of two 2D vectors / points
*
* @param p1 first point used as vector
* @param p2 second point used as vector
* @return crossProduct of vectors
*
*/
private function getCrossProduct($p1, $p2) {
return ($p1->x * $p2->y - $p1->y * $p2->x);
}
/**
* @brief Method to see if the given XY value is within the reach of the lamps.
*
* @param p the point containing the X,Y value
* @return true if within reach, false otherwise.
*
*/
private function checkPointInLampsReach($p, $colorPoints) {
$red = $colorPoints[0];
$green = $colorPoints[1];
$blue = $colorPoints[2];
$grx =$green->x - $red->x;
$gry =$green->y - $red->y;
$brx =$blue->x - $red->x;
$bry =$blue->y -$red->y;
$prx =$p->x - $red->x;
$pry =$p->y - $red->y;
$v1 = new cgpoint($grx, $gry);
$v2 = new cgpoint($brx, $bry);
$q = new cgpoint($prx, $pry);
$s = ($this->getCrossProduct($q, $v2) / $this->getCrossProduct($v1, $v2));
$t = ($this->getCrossProduct($v1, $q) / $this->getCrossProduct($v1, $v2));
if(($s > 0.0) && ($t >= 0.0) && ($s + $t <= 1.0))
{
return true;
}
return false;
}
}
// @cond Ignore this class in doxygen
/**
*
* Helper class to ease translation from Philips C-coding
* Implements CGPoint class from iOS SDK
*
*/
class cgpoint {
public $x;
public $y;
function __construct($_x, $_y) {
$this->x = $_x;
$this->y = $_y;
}
};
// @endcond
/** @}*/
?>
In der IPS-Light Config habe ich die erste HUE so hinzugefügt
<?
/*
* This file is part of the IPSLibrary.
*
* The IPSLibrary is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The IPSLibrary is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the IPSLibrary. If not, see http://www.gnu.org/licenses/gpl.txt.
*/
/**@defgroup ipslight_configuration IPSLight Konfiguration
* @ingroup ipslight
* @{
*
* @file IPSLight_Configuration.inc.php
* @author Andreas Brauneis
* @version
* Version 2.50.1, 26.07.2012<br/>
*
* Konfigurations File für IPSLight
*
*/
/**
*
* Definition der Beleuchtungs Elemente
*
* Die Konfiguration erfolgt in Form eines Arrays, für jedes Beleuchtungselement wird ein Eintrag im Array erzeugt.
*
* Für jedes Beleuchtungselement werden dann die Eigenschaften in einem gesonderten Array hinterlegt:
*
* IPSLIGHT_NAME - spezifiziert den Namen der Beleuchtung in der GUI, Änderungen an dieser Eigenschaft werden erst nach einem
* erneuten Ausführen der Installationsprozedur sichtbar.
*
* IPSLIGHT_GROUP - beinhaltet eine Liste aller Gruppen, der das Beleuchtungselement zugeordnet ist. Diese Eigenschaft kann
* jederzeit geändert werden (vorausgesetzt die Gruppe ist bereits definiert, siehe weiter unten).
*
* IPSLIGHT_TYPE - spezifiziert den Type der Beleuchtung, zur Zeit werden 3 Beleuchtungstypen unterstützt:
* - IPSLIGHT_TYPE_SWITCH: Normale Beleuchtung mit Ein/Aus Funktionalität
* - IPSLIGHT_TYPE_RGB: RGB Beleuchtung
* - IPSLIGHT_TYPE_DIMMER: Dimmbare Beleuchtung
* Änderungen an diesem Parameter erfordern ein Ausführen der Installations Prozedure.
*
* IPSLIGHT_COMPONENT - dieser Eintrag spezifiziert die Hardware, die Angabe des Component Strings muss mit dem spezifizierten
* Beleuchtungstypen (siehe oben) zusammenpassen (Type Dimmer benötigt zB eine Klasse IPSComponentDimmer).
*
* IPSLIGHT_POWERCIRCLE - Hier kann spezifiziert werden an welchem Stromkreis die Lampe angeschlossen ist. Dieser Parameter ist
* optional.
*
* IPSLIGHT_POWERWATT - Spezifiert die maximale Leistung der Beleuchtung. Zusammen mit dem Parameter IPSLIGHT_POWERCIRCLE ist es
* nun möglich die aktuelle Leistung eines Stromkreises abzufragen. Details siehe auch im WIKI.
*
* Eine ausführliche Beispielliste findet sich auch im Example Ordner
*
*
* Beispiel:
* @code
function IPSLight_GetLightConfiguration() {
return array(
'Kueche' => array(
IPSLIGHT_NAME => 'Küche',
IPSLIGHT_GROUPS => 'Erdgeschoss,All',
IPSLIGHT_TYPE => IPSLIGHT_TYPE_SWITCH',
IPSLIGHT_COMPONENT => 'IPSComponentSwitch_Homematic,12345',
IPSLIGHT_POWERCIRCLE => 1,
IPSLIGHT_POWERWATT => 60),
'Ambiente' => array(
IPSLIGHT_NAME => 'Ambiente',
IPSLIGHT_GROUPS => 'Erdgeschoss,All',
IPSLIGHT_TYPE => IPSLIGHT_TYPE_RGB,
IPSLIGHT_COMPONENT => 'IPSComponentRGB_IPS868,12345'),
);
}
* @endcocde
*
* @return string Liefert Array mit Beleuchtungs Elementen
*/
function IPSLight_GetLightConfiguration() {
return array(
'Abstellraum' => array('Abstellraum','Keller,All','Switch','IPSComponentSwitch_Homematic,55594 /*[Haus\Keller\Abstellraum\Deckenlampe]*/'),
'Werkstatt' => array('Werkstatt','Keller,All','Switch','IPSComponentSwitch_Homematic,56997 /*[Haus\Keller\Werkstatt\Deckenlampe]*/'),
'Bad Keller' => array('Bad Keller','Keller,All','Switch','IPSComponentSwitch_Homematic,47649 /*[Haus\Keller\Bad\Deckenlampe]*/'),
'Gästezimmer' => array('Gästezimmer','Keller,All','Switch','IPSComponentSwitch_Homematic,11330 /*[Haus\Keller\Gästezimmer\Deckenlampe]*/'),
'Flur Keller' => array('Flur Keller','Keller,All','Switch','IPSComponentSwitch_Homematic,30527 /*[Haus\Keller\Flur\Deckenlampe]*/'),
'Wohnzimmer' => array('Wohnzimmer','Erdgeschoss,All','Switch','IPSComponentSwitch_Homematic,34265 /*[Haus\Erdgeschoss\Wohnzimmer\Deckenlampe Wohnzimmer]*/ /*[Haus\Erdgeschoss\Wohnzimmer\Deckenlampe Esszimmer]*/'),
'Esszimmer' => array('Esszimmer','Erdgeschoss,All','Switch','IPSComponentSwitch_Homematic,24648 /*[Haus\Erdgeschoss\Wohnzimmer\Deckenlampe Esszimmer]*/ /*[Haus\Obergeschoss\Bad\Deckenlampe]*/'),
'Eingang' => array('Flur EG','Flur EG,All','Switch','IPSComponentSwitch_Homematic,45769 /*[Haus\Erdgeschoss\Foyer\Deckenlampe Flur]*/ /*[Haus\Erdgeschoss\Eingang\Außenlampe Eingang]*/'),
'Foyer EG' => array('Foyer EG','Erdgeschoss,All','Switch','IPSComponentSwitch_Homematic,32664 /*[Haus\Erdgeschoss\Foyer\Deckenlampen Foyer Erdgeschoss]*/'),
'BadEG' => array('Bad EG','Erdgeschoss,All','Switch','IPSComponentSwitch_Homematic,54260 /*[Haus\Erdgeschoss\Bad\Deckenlampe]*/'),
'Küche' => array('Küche','Erdgeschoss,All','Switch','IPSComponentSwitch_Homematic,25507 /*[Haus\Erdgeschoss\Küche\Deckenlampe]*/'),
'Anbau Terrasse' => array('Anbau Terrasse','Erdgeschoss,All','Switch','IPSComponentSwitch_Homematic,10732 /*[Haus\Erdgeschoss\Wohnzimmer\Licht Anbau Terrasse]*/'),
'Licht Treppe Foyer' => array('Licht Treppe Foyer','Erdgeschoss,All','Switch','IPSComponentSwitch_Homematic,40788 /*[Haus\Erdgeschoss\Foyer\Licht Treppe Foyer ]*/ /*[Haus\Erdgeschoss\Wohnzimmer\Licht Anbau Terrasse]*/'),
'Wohnzimmer Sofalampe' => array('Wohnzimmer Sofalampe','Erdgeschoss,All','Switch','IPSComponentSwitch_Homematic,23680 /*[Haus\Erdgeschoss\Wohnzimmer\Sofa Lampe ]*/ /*[Haus\Erdgeschoss\Küche\Deckenlampe]*/'),
'Wohnzimmer LEDs' => array('Wohnzimmer LEDs','Erdgeschoss,All','Switch','IPSComponentSwitch_Homematic,42004 /*[Haus\Erdgeschoss\Wohnzimmer\LED Beleuchtung ]*/ /*[Haus\Erdgeschoss\Wohnzimmer\Licht Anbau Terrasse]*/'),
'Außenlampe Haustür' => array('Außenlampe Haustür','Erdgeschoss,All','Switch','IPSComponentSwitch_Homematic,52658 /*[Haus\Erdgeschoss\Eingang\Außenlampe Eingang]*/ /*[Haus\Erdgeschoss\Wohnzimmer\Sofa Lampe ]*/ /*[Haus\Erdgeschoss\Küche\Deckenlampe]*/'),
'Außenlampe Terrassentür' => array('Außenlampe Terrassentür','Erdgeschoss,All','Switch','IPSComponentSwitch_Homematic,47743 /*[Haus\Erdgeschoss\Foyer\Außenlampe Kellertür]*/ /*[Haus\Erdgeschoss\Wohnzimmer\LED Beleuchtung ]*/ /*[Haus\Erdgeschoss\Wohnzimmer\Licht Anbau Terrasse]*/'),
'Foyer OG' => array('Foyer OG','Obergeschoss,All','Switch','IPSComponentSwitch_Homematic,23391 /*[Haus\Obergeschoss\Foyer\Container Links\Beleuchtung\Deckenlampe Foyer Obergeschoss]*/'),
'Kinderzimmer' => array('Kinderzimmer','Obergeschoss,All','Switch','IPSComponentSwitch_Homematic,34810 /*[Haus\Obergeschoss\Kinderzimmer\Container Links\Deckenlampe]*/'),
'Bad OG' => array('Bad OG','Obergeschoss,All','Switch', 'IPSComponentSwitch_Homematic,11849 /*[Haus\Obergeschoss\Bad\Deckenlampe]*/'),
'Schlafzimmer' => array('Schlafzimmer','Obergeschoss,All','Switch','IPSComponentSwitch_Homematic,37891 /*[Haus\Obergeschoss\Schlafzimmer\Container Links\Beleuchtung\Deckenlampe]*/'),
'Nachttisch Dom' => array('Nachttisch Dom','Obergeschoss,All','Switch','IPSComponentSwitch_Homematic,21758 /*[Haus\Obergeschoss\Schlafzimmer\Nachttischlampe Dom]*/ /*[Haus\Obergeschoss\Foyer\Container Links\Beleuchtung\Deckenlampe Foyer Obergeschoss]*/'),
'Nachttisch Caro' => array('Nachttisch Caro','Obergeschoss,All','Switch','IPSComponentSwitch_Homematic,23614 /*[Haus\Obergeschoss\Schlafzimmer\Nachttischlampe Caro]*/ /*[Haus\Obergeschoss\Kinderzimmer\Container Links\Deckenlampe]*/'),
'Terrasse Einbaustrahler' => array('Terrasse Einbaustrahler','Garten,All','Switch','IPSComponentSwitch_Homematic,16017 /*[Wired\Schaltaktor\KEQ0055045\Einbaustrahler Terrasse und Strahler Teich]*/ /*[Wired\Schaltaktor\KEQ0055045\Einbaustrahler Terrasse und Strahler Teich]*/ /*[Haus\Obergeschoss\Schlafzimmer\Container Links\Beleuchtung\Deckenlampe]*/'),
'Terrasse Decken- und Wandlampe' => array('Terrasse Decken- und Wandlampe','Garten,All','Switch','IPSComponentSwitch_Homematic,44790 /*[Haus\Garten Hinten\Terrasse\Decken- und Wandlampe]*/ /*[Wired\Schaltaktor\KEQ0055045\Einbaustrahler Terrasse und Strahler Teich]*/ /*[Haus\Obergeschoss\Schlafzimmer\Container Links\Beleuchtung\Deckenlampe]*/'),
'Laternen Einfahrt' => array('Laternen Einfahrt','Garten,All','Switch','IPSComponentSwitch_Homematic,51413 /*[Haus\Garten Vorne\Einfahrt\Laternen Einfahrt ]*/ /*[Haus\Garten Vorne\Einfahrt\Laternen Einfahrt ]*/ /*[Haus\Obergeschoss\Schlafzimmer\Nachttischlampe Dom]*/ /*[Haus\Obergeschoss\Foyer\Container Links\Beleuchtung\Deckenlampe Foyer Obergeschoss]*/'),
'Laternen Garten Hinten' => array('Laternen Garten Hinten','Garten,All','Switch', 'IPSComponentSwitch_Homematic,34746 /*[Wired\Schaltaktor\KEQ0055045\Laternen Garten Hinten]*/ /*[Wired\Schaltaktor\KEQ0055045\Laternen Garten Hinten]*/ /*[Haus\Obergeschoss\Schlafzimmer\Nachttischlampe Caro]*/ /*[Haus\Obergeschoss\Kinderzimmer\Container Links\Deckenlampe]*/'),
'Beleuchtung Teichfilter' => array('Beleuchtung Teichfilter','Garten,All','Switch','IPSComponentSwitch_Homematic,46552 /*[Wired\Schaltaktor\KEQ0055045\Beleuchtung Teichfilter]*/ /*[Wired\Schaltaktor\KEQ0055045\Einbaustrahler Terrasse und Strahler Teich]*/ /*[Haus\Obergeschoss\Schlafzimmer\Container Links\Beleuchtung\Deckenlampe]*/'),
'Strahler Carport' => array('Strahler Carport','Garten,All','Switch','IPSComponentSwitch_Homematic,54259 /*[Haus\Garten Vorne\Einfahrt\Carport Strahler ]*/ /*[Wired\Schaltaktor\KEQ0055045\Einbaustrahler Terrasse und Strahler Teich]*/ /*[Haus\Obergeschoss\Schlafzimmer\Container Links\Beleuchtung\Deckenlampe]*/'),
'Beleuchtung Schuppen' => array('Beleuchtung Schuppen','Garten,All','Switch','IPSComponentSwitch_Homematic,51020 /*[Wired\Schaltaktor\KEQ0055045\Beleuchtung Schuppen]*/ /*[Haus\Garten Vorne\Einfahrt\Laternen Einfahrt ]*/ /*[Haus\Obergeschoss\Schlafzimmer\Nachttischlampe Dom]*/ /*[Haus\Obergeschoss\Foyer\Container Links\Beleuchtung\Deckenlampe Foyer Obergeschoss]*/'),
'Strahler Satspiegel' => array('Strahler Satspiegel','Garten,All','Switch','IPSComponentSwitch_Homematic,11721 /*[Haus\Garten Hinten\Garten\Strahler Satspiegel ]*/ /*[Wired\Schaltaktor\KEQ0055045\Laternen Garten Hinten]*/ /*[Haus\Obergeschoss\Schlafzimmer\Nachttischlampe Caro]*/ /*[Haus\Obergeschoss\Kinderzimmer\Container Links\Deckenlampe]*/'),
'TV Wohnzimmer' => array('TV Wohnzimmer','Technik,All','Switch','IPSComponentSwitch_Homematic,34113 /*[Haus\Erdgeschoss\Wohnzimmer\Entertainment ]*/ /*[Wired\Schaltaktor\KEQ0055045\Beleuchtung Teichfilter]*/ /*[Wired\Schaltaktor\KEQ0055045\Einbaustrahler Terrasse und Strahler Teich]*/ /*[Haus\Obergeschoss\Schlafzimmer\Container Links\Beleuchtung\Deckenlampe]*/'),
'IPS Touch PC' => array('IPS Touch PC','Technik,All','Switch','IPSComponentSwitch_Homematic,13083 /*[Haus\Erdgeschoss\Foyer\IPS Touch PC Foyer]*/ /*[Haus\Garten Vorne\Einfahrt\Carport Strahler ]*/ /*[Wired\Schaltaktor\KEQ0055045\Einbaustrahler Terrasse und Strahler Teich]*/ /*[Haus\Obergeschoss\Schlafzimmer\Container Links\Beleuchtung\Deckenlampe]*/'),
'TV Schlafzimmer' => array('TV Schlafzimmer','Technik,All','Switch','IPSComponentSwitch_Homematic,44362 /*[Haus\Obergeschoss\Schlafzimmer\Container Links\Beleuchtung\Entertainment]*/ /*[Wired\Schaltaktor\KEQ0055045\Beleuchtung Schuppen]*/ /*[Haus\Garten Vorne\Einfahrt\Laternen Einfahrt ]*/ /*[Haus\Obergeschoss\Schlafzimmer\Nachttischlampe Dom]*/ /*[Haus\Obergeschoss\Foyer\Container Links\Beleuchtung\Deckenlampe Foyer Obergeschoss]*/'),
'Ozon Pumpe' => array('Ozon Pumpe','Technik,All','Switch','IPSComponentSwitch_Homematic,33552 /*[Haus\Garten Hinten\Teich\Pumpe Ozon]*/ /*[Haus\Garten Hinten\Garten\Strahler Satspiegel ]*/ /*[Wired\Schaltaktor\KEQ0055045\Laternen Garten Hinten]*/ /*[Haus\Obergeschoss\Schlafzimmer\Nachttischlampe Caro]*/ /*[Haus\Obergeschoss\Kinderzimmer\Container Links\Deckenlampe]*/'),
'Filter Pumpe' => array('Filter Pumpe','Technik,All','Switch','IPSComponentSwitch_Homematic,42865 /*[Haus\Garten Hinten\Teich\Pumpe Teichfilter]*/ /*[Wired\Schaltaktor\KEQ0055045\Beleuchtung Teichfilter]*/ /*[Wired\Schaltaktor\KEQ0055045\Einbaustrahler Terrasse und Strahler Teich]*/ /*[Haus\Obergeschoss\Schlafzimmer\Container Links\Beleuchtung\Deckenlampe]*/'),
'Ozon- und Sauerstoffkonzentrator' => array('Ozon- und Sauerstoffkonzentrator','Technik,All','Switch','IPSComponentSwitch_Homematic,54259 /*[Haus\Garten Vorne\Einfahrt\Carport Strahler ]*/ /*[Wired\Schaltaktor\KEQ0055045\Einbaustrahler Terrasse und Strahler Teich]*/ /*[Haus\Obergeschoss\Schlafzimmer\Container Links\Beleuchtung\Deckenlampe]*/'),
'Sauerstoffpumpe Filter' => array('Sauerstoffpumpe Filter','Technik,All','Switch','IPSComponentSwitch_Homematic,27168 /*[Wired\Schaltaktor\KEQ0055045\Sauerstoffpumpe Hel-X]*/ /*[Wired\Schaltaktor\KEQ0055045\Beleuchtung Schuppen]*/ /*[Haus\Garten Vorne\Einfahrt\Laternen Einfahrt ]*/ /*[Haus\Obergeschoss\Schlafzimmer\Nachttischlampe Dom]*/ /*[Haus\Obergeschoss\Foyer\Container Links\Beleuchtung\Deckenlampe Foyer Obergeschoss]*/'),
'UV Lampe' => array('UV Lampe','Technik,All','Switch','IPSComponentSwitch_Homematic,31967 /*[Wired\Schaltaktor\KEQ0055045\UVC]*/ /*[Haus\Garten Hinten\Garten\Strahler Satspiegel ]*/ /*[Wired\Schaltaktor\KEQ0055045\Laternen Garten Hinten]*/ /*[Haus\Obergeschoss\Schlafzimmer\Nachttischlampe Caro]*/ /*[Haus\Obergeschoss\Kinderzimmer\Container Links\Deckenlampe]*/'),
'Beleuchtung Briefkasten' => array('Beleuchtung Briefkasten','Garten,All','Switch','IPSComponentSwitch_Homematic,17878 /*[Haus\Einfahrt\Container Links\Beleuchtung\Beleuchtung Briefkasten]*/ /*[Haus\Garten Hinten\Garten\Strahler Satspiegel ]*/ /*[Wired\Schaltaktor\KEQ0055045\Laternen Garten Hinten]*/ /*[Haus\Obergeschoss\Schlafzimmer\Nachttischlampe Caro]*/ /*[Haus\Obergeschoss\Kinderzimmer\Container Links\Deckenlampe]*/'),
'Philips HUE Lampe Terrasse' => array('Philips HUE Lampe Terrasse','Garten,All','RGB','IPSComponentRGB_PhilipsHUE,192.168.178.46,9711014820aa6881368541449fe7ce00,1,LCT001),
);
}
/**
*
* Definition der Beleuchtungs Gruppen
*
* Die Konfiguration erfolgt in Form eines Arrays, für jede Beleuchtungsgruppe wird ein Eintrag im Array erzeugt.
*
* Für jede Beleuchtungsgruppe werden dann die Eigenschaften in einem gesonderten Array hinterlegt:
*
* IPSLIGHT_NAME - spezifiziert den Namen der Gruppe in der GUI, Änderungen an dieser Eigenschaft werden erst nach einem
* erneuten Ausführen der Installationsprozedur sichtbar.
*
* IPSLIGHT_ACTIVATABLE - gibt an, ob die Gruppe über die GUI eingeschaltet werden kann
*
* Eine Liste mit diversen Beispiel Konfigurationen findet sich auch im Example Ordner
*
*
* Beispiel:
* @code
function IPSLight_GetGroupConfiguration() {
return array(
'All' => array(
IPSLIGHT_NAME => 'All',
IPSLIGHT_ACTIVATABLE => false),
'Erdgeschoss' => array(
IPSLIGHT_NAME => 'Erdgeschoss',
IPSLIGHT_ACTIVATABLE => false),
'Obergeschoss' => array(
IPSLIGHT_NAME => 'Obergeschoss',
IPSLIGHT_ACTIVATABLE => false),
'Keller' => array(
IPSLIGHT_NAME => 'Keller',
IPSLIGHT_ACTIVATABLE => false),
'Garten' => array(
IPSLIGHT_NAME => 'Garten',
IPSLIGHT_ACTIVATABLE => false),
'Technik' => array(
IPSLIGHT_NAME => 'Technik',
IPSLIGHT_ACTIVATABLE => false),
);
}
* @endcocde
*
* @return string Liefert Array mit Beleuchtungs Gruppen
*/
function IPSLight_GetGroupConfiguration() {
return array('All' => array('All', IPSLIGHT_ACTIVATABLE => false,),
'Erdgeschoss' => array('Erdgeschoss', IPSLIGHT_ACTIVATABLE => false,),
'Obergeschoss' => array('Obergeschoss', IPSLIGHT_ACTIVATABLE => false,),
'Keller' => array('Keller', IPSLIGHT_ACTIVATABLE => false,),
'Garten' => array('Garten', IPSLIGHT_ACTIVATABLE => false,),
'Technik' => array('Technik', IPSLIGHT_ACTIVATABLE => false,)
);
}
/**
*
* Definition der Beleuchtungs Programme
*
* Die Konfiguration erfolgt in Form eines Arrays, für jedes Beleuchtungsprogramm wird ein Eintrag im Array erzeugt.
*
* Für jedes Beleuchtungsprogramm werden dann die einzelnen Programme ebenfalls als Array hinterlegt, diese wiederum haben ihre
* Eigenschaften nochmals in einem Array gespeichert:
*
* IPSLIGHT_PROGRAMON - Liste mit Beleuchungselementen, die bei diesem Programm eingeschaltet sein sollen.
*
* IPSLIGHT_PROGRAMOFF - Liste mit Beleuchungselementen, die bei diesem Programm ausgeschaltet sein sollen.
*
* IPSLIGHT_PROGRAMLEVEL - Liste mit Beleuchungselementen, die auf einen bestimmten Dimm Level gestellt werden sollen
*
* Eine Liste mit diversen Beispiel Konfigurationen findet sich auch im Example Ordner
*
*
* Beispiel:
* @code
function IPSLight_GetProgramConfiguration() {
return array(
'Aus' => array(
IPSLIGHT_PROGRAMOFF => 'WellnessWand,WellnessDecke,WellnessSauna,WellnessDusche,WellnessAmbiente',
),
'TV' => array(
IPSLIGHT_PROGRAMLEVEL => 'WellnessWand,30',
IPSLIGHT_PROGRAMOFF => 'WellnessDecke,WellnessSauna,WellnessDusche,WellnessAmbiente',
),
'Relax' => array(
IPSLIGHT_PROGRAMON => 'WellnessSauna,WellnessDusche,WellnessAmbiente',
IPSLIGHT_PROGRAMLEVEL => 'WellnessDecke,30,WellnessWand,30',
),
);
}
* @endcocde
*
* @return string Liefert Array mit Beleuchtungs Gruppen
*/
function IPSLight_GetProgramConfiguration() {
return array(
);
}
/**
*
* Definition der WebFront GUI
*
* Die Konfiguration der WebFront Oberfläche ist NICHT dokumentiert, ist aber analog zur normalen WebFront Konfigurator GUI
* aufgebaut.
*
* Beispiele finden sich im Example Ordner
*
* @return string Liefert Array zum Aufbau des WebFronts
*/
function IPSLight_GetWebFrontConfiguration() {
return array(
);
}
/**
*
* Definition der Mobile GUI
*
* Die Konfiguration der Mobile GUI ist NICHT dokumentiert
*
* Beispiele finden sich im Example Ordner
*
* @return string Liefert Array zum Aufbau der Mobile GUI
*/
function IPSLight_GetMobileConfiguration() {
return array(
);
}
/** @}*/
?>
Leider bekomm ich auch hier einen Error
Parse error: syntax error, unexpected ‚All‘ (T_STRING), expecting ‚)‘ in [Program\IPSLibrary\config\modules\IPSLight\IPSLight_Configuration] on line 153
Abort Processing during Fatal-Error: syntax error, unexpected ‚All‘ (T_STRING), expecting ‚)‘
Error in Script C:\IPS\ips\scripts\IPSLibrary\config\modules\IPSLight\IPSLight_Configuration.inc.php on Line 153