function Entertainment_SetRoomControlVisibility($RoomControlId, $Value) {
	   $RoomName     = IPS_GetName(IPS_GetParent($RoomControlId));
	   $RoomConfig   = get_RoomConfiguration();
	   $ControlName  = IPS_GetName($RoomControlId);
	   $WFRoomName   = $RoomConfig[$RoomName][c_Property_Name];
	   if ($WFRoomName=="") return;
	   $WFRoomId     = IPS_GetCategoryIDByName($WFRoomName, c_ID_WebFrontRoomes);

      $WFControlId = false;
		$ChildrenIds = IPS_GetChildrenIDs($WFRoomId);
		foreach($ChildrenIds as $ChildrenIdx => $ChildrenId) {
		   if (IPS_LinkExists($ChildrenId)) {
		      if (IPS_GetName($ChildrenId)==$ControlName) {
		         $WFControlId = $ChildrenId;
		      }
			} else {
				$WFControlId = @IPS_GetLinkIDByName($ControlName, $WFRoomId);
			}
		}

		if ($WFControlId!==false) {
			$WFControl=IPS_GetObject($WFControlId);
			if ($WFControl['ObjectIsHidden']<> !$Value) {
				IPS_SetHidden($WFControlId, !$Value);
			}
		}

	}
Пример #2
0
	function Entertainment_SetRoomVisible($PowerId, $Value) {
	   $RoomConfig   = get_RoomConfiguration();
	   $RoomId        = IPS_GetParent($PowerId);
	   $RoomName      = IPS_GetName($RoomId);
	   $WFRoomName   = $RoomConfig[$RoomName][c_Property_Name];
	   if ($WFRoomName=="") return;
	   $WFRoomId     = IPS_GetCategoryIDByName($WFRoomName, c_ID_WebFrontRoomes);

		$ChildrenIds = IPS_GetChildrenIDs($WFRoomId);
		foreach($ChildrenIds as $ChildrenIdx => $ChildrenId) {
		   if (IPS_LinkExists($ChildrenId)) {
			   $LinkData = IPS_GetLink($ChildrenId);
			   $LinkedChildId = $LinkData["LinkChildID"];
		  		if ($LinkedChildId <> $PowerId) {
		    		IPSLogger_Trc(__file__, 'Set Control "'.IPS_GetName($ChildrenId).'" of Room "'.IPS_GetName($RoomId).'" Visible='.bool2OnOff($Value));
		  			IPS_SetHidden($ChildrenId, !$Value);
		  		}
			} else {
		  	   $GroupSwitchId = get_ControlIdByRoomId($RoomId, c_Control_Group);
		 		IPS_SetHidden($ChildrenId, !GetValue($GroupSwitchId) or !$Value);
			}
		}
	}