Bei meiner Lichtsteuerung habe ich das Problem das wenn ich ein Wert aktualisiere das ich prüfen möchte ob der jeweilige Raum angeschaltet ist oder nicht.
Dazu gehe ich einmal durch meine Liste und versuche anhand eines Channels mir den Parent zu holen, das funktioniert aber nicht.
if (is_array($deviceList) || is_object($deviceList)){
foreach($deviceList as $i => $device){
// Set Value for each Device if the Switch set on
$channelName = $device->Name;
$channelObjectR = IPS_GetObject($device->RChannel);
//$ObjectID = @IPS_GetObjectIDByName($channelName, $parent);
//$Object = IPS_GetObject($ObjectID);
$ObjektID = @IPS_GetObjectIDByName($device->Name, $parent);
$deviceProp = IPS_GetObject($ObjektID);
$getSwitch = $deviceProp['ChildrenIDs'][4];
$Switch = GetValue($getSwitch);
$getDevice = IPS_GetParent($device->RChannel);
$getValueChannelR = GetValue($device->RChannel);
$getValueChannelG = GetValue($device->GChannel);
$getValueChannelB = GetValue($device->BChannel);
$getValueChannelW = GetValue($device->WChannel);
// Get Ident
$channelObjectR = IPS_GetObject($device->RChannel);
$channelObjectG = IPS_GetObject($device->GChannel);
$channelObjectB = IPS_GetObject($device->BChannel);
$channelObjectW = IPS_GetObject($device->WChannel);
// Get Channel Number
$channelStringR = $channelObjectR['ObjectIdent'];
$channelStringG = $channelObjectG['ObjectIdent'];
$channelStringB = $channelObjectB['ObjectIdent'];
$channelStringW = $channelObjectW['ObjectIdent'];
$channelNumberR = $this->getIntFromString($channelStringR);
$channelNumberG = $this->getIntFromString($channelStringG);
$channelNumberB = $this->getIntFromString($channelStringB);
$channelNumberW = $this->getIntFromString($channelStringW);
if($Switch == TRUE){
DMX_FadeChannel($getDevice, $channelNumberR, $getValueGlobalR, $getValueGlobalF);
DMX_FadeChannel($getDevice, $channelNumberG, $getValueGlobalG, $getValueGlobalF);
DMX_FadeChannel($getDevice, $channelNumberB, $getValueGlobalB, $getValueGlobalF);
DMX_FadeChannel($getDevice, $channelNumberW, $getValueGlobalW, $getValueGlobalF);
}
if($Switch == FALSE){
}
}
}
echo "
Event Trigger started";
}